opm-simulators
Loading...
Searching...
No Matches
Opm::Accelerator::openclBILU0< Scalar, block_size > Class Template Reference

This class implements a Blocked ILU0 preconditioner The decomposition is done on GPU, using exact decomposition, or ChowPatel decomposition The preconditioner is applied via two exact triangular solves. More...

#include <openclBILU0.hpp>

Inheritance diagram for Opm::Accelerator::openclBILU0< Scalar, block_size >:
Opm::Accelerator::openclPreconditioner< Scalar, block_size > Opm::Accelerator::Preconditioner< Scalar, block_size, cl::Buffer >

Public Member Functions

 openclBILU0 (bool opencl_ilu_parallel, int verbosity)
bool analyze_matrix (BlockedMatrix< Scalar > *mat) override
bool analyze_matrix (BlockedMatrix< Scalar > *mat, BlockedMatrix< Scalar > *jacMat) override
bool create_preconditioner (BlockedMatrix< Scalar > *mat) override
bool create_preconditioner (BlockedMatrix< Scalar > *mat, BlockedMatrix< Scalar > *jacMat) override
void apply (const cl::Buffer &y, cl::Buffer &x, WellContributions< Scalar > &wellContribs) override
std::tuple< std::vector< int >, std::vector< int >, std::vector< int > > get_preconditioner_structure ()
std::pair< cl::Buffer, cl::Buffer > get_preconditioner_data ()
Public Member Functions inherited from Opm::Accelerator::openclPreconditioner< Scalar, block_size >
virtual void setOpencl (std::shared_ptr< cl::Context > &context, std::shared_ptr< cl::CommandQueue > &queue)

Additional Inherited Members

Static Public Member Functions inherited from Opm::Accelerator::openclPreconditioner< Scalar, block_size >
static std::unique_ptr< openclPreconditioner< Scalar, block_size > > create (PreconditionerType type, int verbosity, bool opencl_ilu_parallel)
Static Public Member Functions inherited from Opm::Accelerator::Preconditioner< Scalar, block_size, cl::Buffer >
static std::unique_ptr< Preconditioner > create (PreconditionerType type, bool opencl_ilu_parallel, int verbosity)
Protected Member Functions inherited from Opm::Accelerator::openclPreconditioner< Scalar, block_size >
 openclPreconditioner (int verbosity_)
Protected Member Functions inherited from Opm::Accelerator::Preconditioner< Scalar, block_size, cl::Buffer >
 Preconditioner (int verbosity_)
Protected Attributes inherited from Opm::Accelerator::openclPreconditioner< Scalar, block_size >
std::shared_ptr< cl::Context > context
std::shared_ptr< cl::CommandQueue > queue
std::vector< cl::Event > events
cl_int err
Protected Attributes inherited from Opm::Accelerator::Preconditioner< Scalar, block_size, cl::Buffer >
int N
int Nb
int nnz
int nnzb
int verbosity

Detailed Description

template<class Scalar, unsigned int block_size>
class Opm::Accelerator::openclBILU0< Scalar, block_size >

This class implements a Blocked ILU0 preconditioner The decomposition is done on GPU, using exact decomposition, or ChowPatel decomposition The preconditioner is applied via two exact triangular solves.

Member Function Documentation

◆ analyze_matrix()

template<class Scalar, unsigned int block_size>
bool Opm::Accelerator::openclBILU0< Scalar, block_size >::analyze_matrix ( BlockedMatrix< Scalar > * mat)
overridevirtual

◆ apply()

template<class Scalar, unsigned int block_size>
void Opm::Accelerator::openclBILU0< Scalar, block_size >::apply ( const cl::Buffer & y,
cl::Buffer & x,
WellContributions< Scalar > & wellContribs )
overridevirtual

◆ create_preconditioner()

template<class Scalar, unsigned int block_size>
bool Opm::Accelerator::openclBILU0< Scalar, block_size >::create_preconditioner ( BlockedMatrix< Scalar > * mat)
overridevirtual

The documentation for this class was generated from the following files:
  • opm/simulators/linalg/gpubridge/opencl/openclBILU0.hpp
  • opm/simulators/linalg/gpubridge/opencl/openclBILU0.cpp