My Project
Loading...
Searching...
No Matches
Opm::Accelerator::BILU0< 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 <BILU0.hpp>

Inheritance diagram for Opm::Accelerator::BILU0< block_size >:
Opm::Accelerator::Preconditioner< block_size >

Public Member Functions

 BILU0 (bool opencl_ilu_parallel, int verbosity)
 
bool analyze_matrix (BlockedMatrix *mat) override
 
bool analyze_matrix (BlockedMatrix *mat, BlockedMatrix *jacMat) override
 
bool create_preconditioner (BlockedMatrix *mat) override
 
bool create_preconditioner (BlockedMatrix *mat, BlockedMatrix *jacMat) override
 
void apply (const cl::Buffer &y, cl::Buffer &x) 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::Preconditioner< block_size >
virtual void setOpencl (std::shared_ptr< cl::Context > &context, std::shared_ptr< cl::CommandQueue > &queue)
 

Additional Inherited Members

- Public Types inherited from Opm::Accelerator::Preconditioner< block_size >
enum class  Type { BILU0 , CPR , BISAI }
 
- Static Public Member Functions inherited from Opm::Accelerator::Preconditioner< block_size >
static std::unique_ptr< Preconditionercreate (Type type, bool opencl_ilu_parallel, int verbosity)
 
- Protected Member Functions inherited from Opm::Accelerator::Preconditioner< block_size >
 Preconditioner (int verbosity_)
 
- Protected Attributes inherited from Opm::Accelerator::Preconditioner< block_size >
int N = 0
 
int Nb = 0
 
int nnz = 0
 
int nnzb = 0
 
int verbosity = 0
 
std::shared_ptr< cl::Context > context
 
std::shared_ptr< cl::CommandQueue > queue
 
std::vector< cl::Event > events
 
cl_int err
 

Detailed Description

template<unsigned int block_size>
class Opm::Accelerator::BILU0< 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() [1/2]

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

◆ analyze_matrix() [2/2]

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

◆ apply()

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

◆ create_preconditioner() [1/2]

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

◆ create_preconditioner() [2/2]

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

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