Loading...
Searching...
No Matches
Opm::gpuistl::SolverAdapter< Operator, UnderlyingSolver, X > Class Template Reference

Wraps a CUDA solver to work with CPU data. More...

`#include <SolverAdapter.hpp>`

Inheritance diagram for Opm::gpuistl::SolverAdapter< Operator, UnderlyingSolver, X >:

## Public Types

using | XGPU = Opm::gpuistl::GpuVector<real_type>

## Public Member Functions

template<class Comm>
| SolverAdapter (Operator &op, Dune::ScalarProduct< X > &sp, std::shared_ptr< Dune::Preconditioner< X, X > > prec, scalar_real_type reduction, int maxit, int verbose, const Comm &comm)
| constructor
virtual void | apply (X &x, X &b, double reduction, Dune::InverseOperatorResult &res) override
virtual void | apply (X &x, X &b, Dune::InverseOperatorResult &res) override

## Static Public Attributes

static constexpr auto | block_size = domain_type::block_type::dimension

## Detailed Description

template<class Operator, template< class > class UnderlyingSolver, class X>
class Opm::gpuistl::SolverAdapter< Operator, UnderlyingSolver, X >

Wraps a CUDA solver to work with CPU data.

Template Parameters

  Operator | the Dune::LinearOperator to use
  UnderlyingSolver | a Dune solver like class, eg Dune::BiCGSTABSolver
  X | the outer type to use (eg. Dune::BlockVector<Dune::FieldVector<...>>)

## Constructor & Destructor Documentation

## SolverAdapter()

template<class Operator, template< class > class UnderlyingSolver, class X>
template<class Comm>

Opm::gpuistl::SolverAdapter< Operator, UnderlyingSolver, X >::SolverAdapter | ( | Operator & | op,
|  | Dune::ScalarProduct< X > & | sp,
|  | std::shared_ptr< Dune::Preconditioner< X, X > > | prec,
|  | scalar_real_type | reduction,
|  | int | maxit,
|  | int | verbose,
|  | const Comm & | comm )

inline

constructor

Parameters

  op | the linear operator (assumed CPU, the output (matrix) of which will be converted to a GPU variant)
  sp | the scalar product (assumed CPU, this will be converted to a GPU variant)
  prec | The preconditioner to use
  reduction | the reduction factor passed to the iterative solver
  maxit | maximum number of iterations for the linear solver
  verbose | verbosity level
  comm | the communication object. If this is Dune::Amg::SequentialInformation, we assume a serial setup

Todo
  Use a std::forward in this function

The documentation for this class was generated from the following file:

- opm/simulators/linalg/gpuistl/SolverAdapter.hpp