Is an adaptation of Dune::BlockPreconditioner that works within the CuISTL framework.
More...
#include <GpuBlockPreconditioner.hpp>
|
|
using | domain_type = X |
| |
|
using | range_type = Y |
| |
|
using | field_type = typename X::field_type |
| |
|
using | communication_type = C |
| |
|
| | GpuBlockPreconditioner (const std::shared_ptr< P > &p, const std::shared_ptr< const communication_type > &c) |
| | Constructor. More...
|
| |
|
| GpuBlockPreconditioner (const std::shared_ptr< P > &p, const communication_type &c) |
| |
| virtual void | pre (X &x, Y &b) override |
| | Prepare the preconditioner. More...
|
| |
| virtual void | apply (X &v, const Y &d) override |
| | Apply the preconditioner. More...
|
| |
|
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)
|
| |
|
virtual bool | hasPerfectUpdate () const override |
| |
|
|
static constexpr bool | shouldCallPre () |
| |
|
static constexpr bool | shouldCallPost () |
| |
template<class X, class Y, class C, class P = Dune::PreconditionerWithUpdate<X, Y>>
class Opm::gpuistl::GpuBlockPreconditioner< X, Y, C, P >
Is an adaptation of Dune::BlockPreconditioner that works within the CuISTL framework.
- Note
- We aim to intgrate this into OwningBlockPreconditioner (or a relative thereof).
◆ GpuBlockPreconditioner()
template<class X , class Y , class C , class P = Dune::PreconditionerWithUpdate<X, Y>>
Constructor.
constructor gets all parameters to operate the prec.
- Parameters
-
| p | The sequential preconditioner. |
| c | The communication object for syncing overlap and copy data points. (E.~g. OwnerOverlapCopyCommunication ) |
◆ apply()
template<class X , class Y , class C , class P = Dune::PreconditionerWithUpdate<X, Y>>
Apply the preconditioner.
◆ pre()
template<class X , class Y , class C , class P = Dune::PreconditionerWithUpdate<X, Y>>
Prepare the preconditioner.
The documentation for this class was generated from the following file: