Anders Logg wrote:
> On Tue, Dec 23, 2008 at 03:28:44PM +0000, Garth N. Wells wrote:
>>
>> Anders Logg wrote:
>>> Why is there a pseudo time-stepping algorithm built into
>>> NonlinearPDE::solve? 
>> So that the PDE can be solved with a series of Newton steps and boundary 
>> conditions can functions of pseudo time t.
>>
>> Will it not converge if we just call the
>>> NewtonSolver directly?
>>>
>> Not always.
> 
> ok.
> 
>>> It would be better if the LinearPDE and NonlinearPDE only provided a
>>> layer between the forms and the linear/nonlinear solvers.
>>>
>>> If we need a pseudo time-stepping algorith, it can be built into
>>> NewtonSolver, or maybe another class?
>>>
>> I wouldn't put it NewtonSolver. Best to keep NewtonSolver abstract (i.e. 
>> unaware of PDEs) and just let it perform Newton solves. We could create 
>> a class like NonlinearSolver or NonlinearPDESolver.
> 
> NonlinearPDESolver would not be consistent with the current LinearPDE
> class which is in some sense is a solver for linear PDEs.
> 
>> Most nonlinear PDEs are sufficiently complex and the solution methods so 
>> diverse that for non-trivial problems I would expect that a user will 
>> implement the solution procedure, and a NonlinearPDE class is not very 
>> useful. Perhaps we could just provide more building blocks to make the 
>> construction of nonlinear solvers easy?
> 
> I would be inclined to just remove the NonlinearPDE class and
> implement the pseudo time-stepping directly in the demo:
> 

This is what I do in practice all the time, so removing NonlinearPDE is 
fine with me.

> while t < T:
> 
>    A = assemble()
>    b = assemble()
>    bc.apply()
> 
>    newton_solver.solve(...)
> 
>    f.t = t
>    bc.t = t 

I added a Python class to take care of the time (it's in dolfin_time.py).

>    t += dt
>



> I've also been thinking about the LinearPDE class. Perhaps we should
> rename it to VariationalProblem?
> 

Sounds good. Solving nonlinear PDEs usually involves solving a series of 
variational problems, so we could later develop a design in which a 
VariationalProblem can be sent to a nonlinear solver.

Garth

> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> DOLFIN-dev mailing list
> [email protected]
> http://www.fenics.org/mailman/listinfo/dolfin-dev


_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev

Reply via email to