← Back to team overview

dolfin team mailing list archive

Re: Nonlinear solvers

 



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
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev




Follow ups

References