It appears that currently there is no way to set nonlinear solver  
tolerances programatically without resorting to calls directly to  
Petsc / Trilinos from user code.  There are currently two parameters  
used in nonlinear_implicit_system: "nonlinear solver tolerance" and  
"nonlinear solver maximum iterations" both of which are passed to  
nonlinear_solver->solv() and neither of which are currently used by  
PetscNonlinearSolver.  Both of the options are wholly inadequate and I  
suppose they are probably just there as a find-replace operation...

I propose 5 new parameters and 5 new methods on NonlinearSolver to get/ 
set the values:

"nonlinear solver absolute tolerance" ->  
NonlinearSolver::absolute_tolerance()
"nonlinear solver relative tolerance" ->  
NonlinearSolver::relative_tolerance()
"nonlinear solver step tolerance" -> NonlinearSolver::step_tolerance()

"nonlinear solver maximum iterations" -> NonlinearSolver::max_its()
"nonlinear solver maximum function evalutations" ->  
NonlinearSolver::max_funcs()

I believe that all 5 of these map fairly well to both Petsc and  
Trilinos.

Any objections / suggestions?

Derek

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to