On Wed 2008-09-17 16:10, Roy Stogner wrote:
> 
> On Wed, 17 Sep 2008, Derek Gaston wrote:
> 
> > This causes some trouble during non-linear solves as you end up
> > _way_ over solving the initial non-linear steps
> 
> Exactly.

Motivation to use Eisenstat-Walker?

> > Another problem is with setting command-line options... I'm calling
> > KSPSetTolerances and SNESSetTolerances now... using the values
> > specified in the equation systems parameters.  It appears that those
> > values override any command-line options (such as -ksp_rtol or -
> > snes_atol, etc.).

If you set these *before* you call SNESSetFromOptions() then the command
line options will be used if they are specified.  This is the correct
way to change the defaults without clobbering the command line.

By the way, you can see all the application defaults by running with
-help.  For instance, this is for the Schur complement solver (in a
preconditioner).

  -schur_ksp_rtol <1e-05>: Relative decrease in residual norm (KSPSetTolerances)

I have not changed the default so it shows the PETSc default relative
tolerance.  If my program had changed the value to 1e-03 (using
KSPSetTolerances()) then it would show <1e-03>, but the command line
would still have priority.

> >  In and of itself this isn't really a problem...
> > it's always been something of a hack that we allow you to pass Petsc
> > command-line options to control Petsc.

Really?  I think the command line options are perhaps the single
greatest advantage to using PETSc.  The functions to set solver options
are really intended for cases where the application (problem-specific,
usually not discretization-specific) needs to adjust solver parameters
adaptively, for instance in your convergence test.

It is not possible to provide a libmesh-specific options database that
is as powerful without knowing about every package that PETSc may be
built against.  Do you really want libmesh to keep track of this?

  -snes_type tr -snes_tr_delta2 0.8 -snes_lag_preconditioner 3
    -snes_ksp_ew -snes_ksp_ew_threshold 0.15 -ksp_type ibcgs
    -pc_type asm -pc_asm_overlap 2 -sub_pc_type hypre
    -sub_pc_hypre_boomeramg_interp_type multipass-wts ...

This is a slightly contrived example, but it should make the point that
you can't hope to replicate this functionality.  Making a common
interface to a few options might be useful, but they should really only
be defaults and the PETSc command line options should have precedence.

My $.02

Jed

Attachment: pgpnwkfeP5Wkb.pgp
Description: PGP signature

-------------------------------------------------------------------------
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