Opm::Accelerator::CPR< block_size > Class Template Reference

This class implements a Constrained Pressure Residual (CPR) preconditioner. More...

#include <CPR.hpp>

Inheritance diagram for Opm::Accelerator::CPR< block_size >:
Inheritance graph

Public Types

enum class  Type { BILU0 , CPR , BISAI }
 

Public Member Functions

 CPR (bool opencl_ilu_parallel, int verbosity)
 
bool analyze_matrix (BlockedMatrix *mat) override
 
bool analyze_matrix (BlockedMatrix *mat, BlockedMatrix *jacMat) override
 
void setOpencl (std::shared_ptr< cl::Context > &context, std::shared_ptr< cl::CommandQueue > &queue) override
 
void apply (const cl::Buffer &y, cl::Buffer &x) override
 
bool create_preconditioner (BlockedMatrix *mat) override
 
bool create_preconditioner (BlockedMatrix *mat, BlockedMatrix *jacMat) override
 

Static Public Member Functions

static std::unique_ptr< Preconditionercreate (Type type, bool opencl_ilu_parallel, int verbosity)
 

Detailed Description

template<unsigned int block_size>
class Opm::Accelerator::CPR< block_size >

This class implements a Constrained Pressure Residual (CPR) preconditioner.

Member Enumeration Documentation

◆ Type

template<unsigned int block_size>
enum class Opm::Accelerator::Preconditioner::Type
stronginherited
Enumerator
BILU0 
CPR 
BISAI 

Constructor & Destructor Documentation

◆ CPR()

template<unsigned int block_size>
Opm::Accelerator::CPR< block_size >::CPR ( bool  opencl_ilu_parallel,
int  verbosity 
)

Member Function Documentation

◆ analyze_matrix() [1/2]

template<unsigned int block_size>
bool Opm::Accelerator::CPR< block_size >::analyze_matrix ( BlockedMatrix mat)
overridevirtual

◆ analyze_matrix() [2/2]

template<unsigned int block_size>
bool Opm::Accelerator::CPR< block_size >::analyze_matrix ( BlockedMatrix mat,
BlockedMatrix jacMat 
)
overridevirtual

◆ apply()

template<unsigned int block_size>
void Opm::Accelerator::CPR< block_size >::apply ( const cl::Buffer &  y,
cl::Buffer &  x 
)
overridevirtual

◆ create()

template<unsigned int block_size>
static std::unique_ptr< Preconditioner > Opm::Accelerator::Preconditioner< block_size >::create ( Type  type,
bool  opencl_ilu_parallel,
int  verbosity 
)
staticinherited

◆ create_preconditioner() [1/2]

template<unsigned int block_size>
bool Opm::Accelerator::CPR< block_size >::create_preconditioner ( BlockedMatrix mat)
overridevirtual

◆ create_preconditioner() [2/2]

template<unsigned int block_size>
bool Opm::Accelerator::CPR< block_size >::create_preconditioner ( BlockedMatrix mat,
BlockedMatrix jacMat 
)
overridevirtual

◆ setOpencl()

template<unsigned int block_size>
void Opm::Accelerator::CPR< block_size >::setOpencl ( std::shared_ptr< cl::Context > &  context,
std::shared_ptr< cl::CommandQueue > &  queue 
)
overridevirtual

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