VariationalProblem interface is error prone
Bug #794401 reported by
Garth Wells
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
DOLFIN |
Fix Released
|
Critical
|
Anders Logg |
Bug Description
The VariationalProblem interface distinction between linear and nonlinear problems is opaque and error prone (and it's not just me). It's a common source of questions and confusion from users. The distinction between linear and nonlinear problems needs to be much clearer. Subtly is not a good thing for this type of problem.
Changed in dolfin: | |
milestone: | none → 0.9.12 |
Changed in dolfin: | |
importance: | Undecided → Critical |
assignee: | nobody → Anders Logg (logg) |
status: | New → In Progress |
Changed in dolfin: | |
status: | In Progress → Fix Committed |
Changed in dolfin: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
On 06/08/2011 08:59 AM, Garth Wells wrote:
> Public bug reported:
>
> The VariationalProblem interface distinction between linear and
> nonlinear problems is opaque and error prone (and it's not just me).
> It's a common source of questions and confusion from users. The
> distinction between linear and nonlinear problems needs to be much
> clearer. Subtly is not a good thing for this type of problem.
>
> ** Affects: dolfin
> Importance: Undecided
> Status: New
>
The tons of questions we have been getting about the
VariationalProblem interface are not primarily due to a bug in the
interface, but rather a symptom of the following three "bugs":
1. Lack of documentation of stable versions
2. Lack of documentation of development version
3. Lack of (user-available) documentation of changes in interface
("What's new")
Fixing those are therefore higher on my list of priorities ;-)
Some other miscellaneous comments:
(a) I always forgot the nonlinear= True/False parameter with the previous
interface, so that had the same error-prone-ness.
(b) I don't think anyone can say that there is one _true_ order of the
bilinear and the linear form. However, for nonlinear problems, the
Jacobian doesn't really enter in the problem definition. It is rather
a required property of the solution method (Newton). In particular, it
should be perfectly fine to define a nonlinear variational problem
with only the linear variational form and do a default solve by Picard
iteration.
(c) In view of (b), one alternative could be to introduce the Jacobian
in the call to solve instead. Then one could enable automatic
differentiation in the Python interface too.
--
Marie