The specialized Dumux macro and tag for the ISTL registry to choose the solver and preconditioner at runtime. More...
#include <dune/istl/common/registry.hh>
Go to the source code of this file.
Namespaces | |
namespace | Dumux |
Macros | |
#define | DUMUX_REGISTER_PRECONDITIONER(name, tag, ...) |
Register a Dumux preconditioner. More... | |
#define | DUMUX_REGISTER_SOLVER(name, tag, ...) |
Register a solver from the Dumux namespace. More... | |
#define DUMUX_REGISTER_PRECONDITIONER | ( | name, | |
tag, | |||
... | |||
) |
Use this macro in namespace Dumux. Example: DUMUX_REGISTER_PRECONDITIONER("mypreconditioner", Dumux::MultiTypeBlockMatrixPreconditionerTag, Dune::defaultPreconditionerBlockLevelCreator<Dumux::MyPreconditioner, 1>()); Explicitly specifying the namespaces is required. Set parameter Preconditioner.Type to "mypreconditioner" to use it through the factory.
In the macro implementation, the final static_assert forces implementers to put a semicolon after every DUMUX_REGISTER_PRECONDITIONER macro call (cf. example) and avoids a compiler warning for an empty line semicolon at the same time
#define DUMUX_REGISTER_SOLVER | ( | name, | |
tag, | |||
... | |||
) |
Use this macro in namespace Dumux. Example: DUMUX_REGISTER_SOLVER("mysolver", Dumux::MultiTypeBlockMatrixSolverTag, Dune::defaultIterativeSolverCreator<Dumux::MySolver>()); Explicitly specifying the namespaces is required. Set parameter Solver.Type to "mysolver" to use it through the factory.
In the macro implementation, the final static_assert forces implementers to put a semicolon after every DUMUX_REGISTER_SOLVER macro call (cf. example) and avoids a compiler warning for an empty line semicolon at the same time