libMesh/libmesh — pull request #208 by roystgnr (2014-02-21 20:27:44+00:00)
Title: Petsc names

This adds two libMesh command line options:

With --solver_system_names, solver objects get handed the name of the System they'll be solving. PETSc solvers use this to set a prefix for their command-line options; e.g. -ksp_type becomes -Poisson_ksp_type for a Poisson system. This is useful for independently tweaking solvers for decoupled problems.

With --solver_variable_names, solver objects get a chance to query the System for what variables are named what. PETSc solvers use this to set pc_fieldsplit variables. This is useful for doing things like Schur complement preconditioning on coupled problems.

I'm not sure the API for this is as clean as it could be. Worst of all: the new init() API argument will break (albeit with an easily-fixed compile-time error) any 3rd party codes subclassing LinearSolver or NonlinearSolver. I'll wait a week before merging to see if anyone has complaints or suggestions.