On Sep 17, 2008, at 9:42 AM, Roy Stogner wrote: > Could we make them match (so far as possible) the DiffSolver > equivalents?
I did look at Diffsolver... I don't have any problems making them match... I just couldn't see how a couple of them mapped. > 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. The step_tolerance is meant to correspond to something close to your relative step tolerance... and I would have named it that except I'm not entirely sure that Petsc does use a scaled relative step tolerance (as I suspect you are doing). I believe that they use the absolute step size instead (which is really a bummer). I don't think Petsc has any kind of decreasing tolerance with successive steps. Petsc's convergence tests are really pretty poor. Trilinos (specifically NOX) has a sophisticated system for convergence criteria... you can actually specify any boolean combination (not just OR's like Petsc) of many different things and present that as a convergence test. For now though, I figured I would just make the default behavior be something like Petsc... where you just OR together all 5 tolerances. > 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. This is where I wasn't quite sure what I preferred. I think functions returning references would be the simplest... that way those functions could be implemented completely in the base NonlinearSolver class. All Petsc/NoxNonlinearSolver would do is pick up the Reals out of the base before calling solve. That said... there's not much difference between just exposing Reals and using concrete methods that return references. So I'm game for either. 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
