opm-simulators
Loading...
Searching...
No Matches
Opm::gpuistl::detail::FlexibleSolverWrapper< Matrix, Vector, Comm > Class Template Reference

FlexibleSolverWrapper is compilational trick to reduce compile time overhead. More...

#include <FlexibleSolverWrapper.hpp>

Public Types

using AbstractSolverType = Dune::InverseOperator<Vector, Vector>
using AbstractPreconditionerType = Dune::PreconditionerWithUpdate<Vector, Vector>
using AbstractOperatorType = Dune::AssembledLinearOperator<Matrix, Vector, Vector>
using AbstractOperatorPtrType = std::unique_ptr<AbstractOperatorType>
using AbstractSolverPtrType = std::unique_ptr<AbstractSolverType>
using GpuCommunicationType

Public Member Functions

 FlexibleSolverWrapper (const Matrix &matrix, bool parallel, const PropertyTree &prm, std::size_t pressureIndex, const std::function< Vector()> &weightCalculator, bool forceSerial, const Comm *comm)
void update ()
void apply (Vector &x, Vector &y, Dune::InverseOperatorResult &result)

Detailed Description

template<class Matrix, class Vector, class Comm>
class Opm::gpuistl::detail::FlexibleSolverWrapper< Matrix, Vector, Comm >

FlexibleSolverWrapper is compilational trick to reduce compile time overhead.

Essentially this class acts as a direct interface towards the FlexibleSolver class, but we want to have a clear wall between the ISTLSolverGPUISTL and the FlexibleSolver to avoid compilational overhead (the former is based on TypeTag the latter on operators).

This wrapper handles the mapping from matrices to concrete operator types.

Member Typedef Documentation

◆ GpuCommunicationType

template<class Matrix, class Vector, class Comm>
using Opm::gpuistl::detail::FlexibleSolverWrapper< Matrix, Vector, Comm >::GpuCommunicationType
Initial value:
std::conditional_t<
std::is_same_v<Comm, Dune::Communication<int>>,
int,
CUDA compatiable variant of Dune::OwnerOverlapCopyCommunication.
Definition GpuOwnerOverlapCopy.hpp:55

The documentation for this class was generated from the following files:
  • opm/simulators/linalg/gpuistl/detail/FlexibleSolverWrapper.hpp
  • opm/simulators/linalg/gpuistl/detail/FlexibleSolverWrapper.cpp