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
