|
using | Matrix = typename Operator::matrix_type |
| Linear algebra types.
|
|
using | Vector = typename Operator::domain_type |
|
using | PrecPtr = std::shared_ptr< Dune::PreconditionerWithUpdate< Vector, Vector > > |
| The type of pointer returned by create().
|
|
using | Creator = std::function< PrecPtr(const Operator &, const PropertyTree &, const std::function< Vector()> &, std::size_t)> |
| The type of creator functions passed to addCreator().
|
|
using | ParCreator = std::function< PrecPtr(const Operator &, const PropertyTree &, const std::function< Vector()> &, std::size_t, const Comm &)> |
|
using | CriterionBase = Dune::Amg::AggregationCriterion< Dune::Amg::SymmetricDependency< Matrix, Dune::Amg::FirstDiagonal > > |
|
using | Criterion = Dune::Amg::CoarsenCriterion< CriterionBase > |
|
|
static PrecPtr | create (const Operator &op, const PropertyTree &prm, const std::function< Vector()> &weightsCalculator={}, std::size_t pressureIndex=std::numeric_limits< std::size_t >::max()) |
| Create a new serial preconditioner and return a pointer to it. More...
|
|
static PrecPtr | create (const Operator &op, const PropertyTree &prm, const std::function< Vector()> &weightsCalculator, const Comm &comm, std::size_t pressureIndex=std::numeric_limits< std::size_t >::max()) |
| Create a new parallel preconditioner and return a pointer to it. More...
|
|
static PrecPtr | create (const Operator &op, const PropertyTree &prm, const Comm &comm, std::size_t pressureIndex=std::numeric_limits< std::size_t >::max()) |
| Create a new parallel preconditioner and return a pointer to it. More...
|
|
static void | addCreator (const std::string &type, Creator creator) |
| Add a creator for a serial preconditioner to the PreconditionerFactory. More...
|
|
static void | addCreator (const std::string &type, ParCreator creator) |
| Add a creator for a parallel preconditioner to the PreconditionerFactory. More...
|
|
template<class Operator, class Comm>
class Opm::PreconditionerFactory< Operator, Comm >
This is an object factory for creating preconditioners.
The user need only interact with the factory through the static methods addStandardPreconditioners() and create(). In addition a user can call the addCreator() static method to add further preconditioners.