My Project
|
Is an adaptation of Dune::BlockPreconditioner that works within the CuISTL framework. More...
#include <CuBlockPreconditioner.hpp>
Public Types | |
using | domain_type = X |
using | range_type = Y |
using | field_type = typename X::field_type |
using | communication_type = C |
Public Member Functions | |
CuBlockPreconditioner (const std::shared_ptr< P > &p, const std::shared_ptr< const communication_type > &c) | |
Constructor. | |
CuBlockPreconditioner (const std::shared_ptr< P > &p, const communication_type &c) | |
virtual void | pre (X &x, Y &b) override |
Prepare the preconditioner. | |
virtual void | apply (X &v, const Y &d) override |
Apply the preconditioner. | |
virtual void | update () override |
virtual void | post (X &x) override |
virtual Dune::SolverCategory::Category | category () const override |
Category of the preconditioner (see SolverCategory::Category) | |
virtual std::shared_ptr< Dune::PreconditionerWithUpdate< X, Y > > | getUnderlyingPreconditioner () override |
getUnderlyingPreconditioner gets the underlying preconditioner (preconditioner being held) | |
Static Public Member Functions | |
static constexpr bool | shouldCallPre () |
static constexpr bool | shouldCallPost () |
Is an adaptation of Dune::BlockPreconditioner that works within the CuISTL framework.
|
inline |
Constructor.
constructor gets all parameters to operate the prec.
p | The sequential preconditioner. |
c | The communication object for syncing overlap and copy data points. (E.~g. OwnerOverlapCopyCommunication ) |
|
inlineoverridevirtual |
Apply the preconditioner.
|
inlineoverridevirtual |
getUnderlyingPreconditioner gets the underlying preconditioner (preconditioner being held)
Implements Opm::cuistl::PreconditionerHolder< X, Y >.
|
inlineoverridevirtual |
Prepare the preconditioner.
|
inlineoverridevirtual |
Implements Dune::PreconditionerWithUpdate< X, Y >.