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 >:

## 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 | ) |

override virtual

Implements Opm::Accelerator::Preconditioner< Scalar, block_size, cl::Buffer >.

## 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 )

override virtual

Implements Opm::Accelerator::Preconditioner< Scalar, block_size, cl::Buffer >.

## create_preconditioner()

template<class Scalar, unsigned int block_size>

bool Opm::Accelerator::openclBILU0< Scalar, block_size >::create_preconditioner | ( | BlockedMatrix< Scalar > * | mat | ) |

override virtual

Implements Opm::Accelerator::Preconditioner< Scalar, block_size, cl::Buffer >.

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