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.

> 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.

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?

Garth

> Then there's the question of how to feedback the current pseudo-time
> from the solver to the user (who may define fields in terms of the
> pseudo-time). One option could be to let users overload a function
> update(t) which is called with the current pseudo-time. Then the user
> may do whatever with the pseudo-time, such as updating coefficients
> and boundary conditions.
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> 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