version 3.10-dev
istlsolverregistry.hh File Reference

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

Macro Definition Documentation

◆ DUMUX_REGISTER_PRECONDITIONER

#define DUMUX_REGISTER_PRECONDITIONER (   name,
  tag,
  ... 
)
Value:
} namespace Dune { \
DUNE_REGISTRY_PUT(tag, name, __VA_ARGS__); \
} namespace Dumux { \
static_assert(true, "Require semicolon after macro call")
Definition: adapt.hh:17
Definition: common/pdesolver.hh:24

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

◆ DUMUX_REGISTER_SOLVER

#define DUMUX_REGISTER_SOLVER (   name,
  tag,
  ... 
)
Value:
} namespace Dune { \
DUNE_REGISTRY_PUT(tag, name, __VA_ARGS__); \
} namespace Dumux { \
static_assert(true, "Require semicolon after macro call")

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

Include dependency graph for istlsolverregistry.hh: