On Wed, 17 Sep 2008, Derek Gaston wrote:
> 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? Could we make them match (so far as possible) the DiffSolver equivalents? DiffSolver::max_nonlinear_iterations, absolute_residual_tolerance, and relative_residual_tolerance should correspond to three of those entries. I suspect that "step_tolerance()" corresponds to something like "initial_linear_tolerance", but my inexact Newton solver uses decreasing tolerances with successive steps and I'd be surprised if PETSc and Trilinos didn't. Of course, the DiffSolver parameters are currently just Reals; we can change those to setter/getter pairs or functions returning references or whatever if you prefer. --- Roy ------------------------------------------------------------------------- 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
