3.3.0
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Namespaces | Macros
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.

Description

The specialized Dumux macro and tag for the ISTL registry to choose the solver and preconditioner at runtime.

Namespaces

namespace  Dumux
 

Macros

#define DUMUX_REGISTER_PRECONDITIONER(name, tag, ...)
 Register a Dumux preconditioner. 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:29
Definition: common/pdesolver.hh:35

Register a Dumux preconditioner.

Use this macro in namespace Dumux. Example: DUMUX_REGISTER_PRECONDITIONER("mypreconditioner", Dumux::MultiTypeBlockMatrixPreconditionerTag, Dune::defaultPreconditionerBlockLevelCreator<Dumux::MyPreconditioner, 1>()); Expicitly 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

Include dependency graph for istlsolverregistry.hh: