Loading...
Searching...
No Matches
Opm::Accelerator::openclBISAI< Scalar, block_size > Class Template Reference

This class implements a Blocked version of the Incomplete Sparse Approximate Inverse (ISAI) preconditioner. More...

`#include <openclBISAI.hpp>`

Inheritance diagram for Opm::Accelerator::openclBISAI< Scalar, block_size >:

## Public Member Functions

| openclBISAI (bool opencl_ilu_parallel, int verbosity)
void | setOpencl (std::shared_ptr< cl::Context > &context, std::shared_ptr< cl::CommandQueue > &queue) override
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

## 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::openclBISAI< Scalar, block_size >

This class implements a Blocked version of the Incomplete Sparse Approximate Inverse (ISAI) preconditioner.

Inspired by the paper "Incomplete Sparse Approximate Inverses for Parallel Preconditioning" by Anzt et. al.

## Member Function Documentation

## analyze_matrix()

template<class Scalar, unsigned int block_size>

bool Opm::Accelerator::openclBISAI< 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::openclBISAI< 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::openclBISAI< Scalar, block_size >::create_preconditioner | ( | BlockedMatrix< Scalar > * | mat | ) |

override virtual

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

## setOpencl()

template<class Scalar, unsigned int block_size>

void Opm::Accelerator::openclBISAI< Scalar, block_size >::setOpencl | ( | std::shared_ptr< cl::Context > & | context,
|  | std::shared_ptr< cl::CommandQueue > & | queue )

override virtual

Reimplemented from Opm::Accelerator::openclPreconditioner< Scalar, block_size >.

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

- opm/simulators/linalg/gpubridge/opencl/openclBISAI.hpp
- opm/simulators/linalg/gpubridge/opencl/openclBISAI.cpp