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
