My Project
|
This class implements a Blocked version of the Incomplete Sparse Approximate Inverse (ISAI) preconditioner. More...
#include <BISAI.hpp>
Public Member Functions | |
BISAI (ILUReorder opencl_ilu_reorder, int verbosity) | |
void | setOpencl (std::shared_ptr< cl::Context > &context, std::shared_ptr< cl::CommandQueue > &queue) override |
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 |
int * | getToOrder () override |
int * | getFromOrder () override |
BlockedMatrix * | getRMat () override |
virtual void | setOpencl (std::shared_ptr< cl::Context > &context, std::shared_ptr< cl::CommandQueue > &queue) |
virtual void | apply (const cl::Buffer &y, cl::Buffer &x)=0 |
virtual bool | analyze_matrix (BlockedMatrix *mat)=0 |
virtual bool | analyze_matrix (BlockedMatrix *mat, BlockedMatrix *jacMat) |
virtual bool | create_preconditioner (BlockedMatrix *mat)=0 |
virtual bool | create_preconditioner (BlockedMatrix *mat, BlockedMatrix *jacMat) |
virtual int * | getToOrder ()=0 |
virtual int * | getFromOrder ()=0 |
virtual BlockedMatrix * | getRMat ()=0 |
Additional Inherited Members | |
![]() | |
enum | PreconditionerType { BILU0 , CPR , BISAI } |
![]() | |
static std::unique_ptr< Preconditioner > | create (PreconditionerType type, int verbosity, ILUReorder opencl_ilu_reorder) |
![]() | |
Preconditioner (int verbosity_) | |
![]() | |
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 |
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.
|
overridevirtual |
Implements Opm::Accelerator::Preconditioner< block_size >.
|
overridevirtual |
Reimplemented from Opm::Accelerator::Preconditioner< block_size >.
|
overridevirtual |
Implements Opm::Accelerator::Preconditioner< block_size >.
|
overridevirtual |
Implements Opm::Accelerator::Preconditioner< block_size >.
|
overridevirtual |
Reimplemented from Opm::Accelerator::Preconditioner< block_size >.
|
inlineoverridevirtual |
Implements Opm::Accelerator::Preconditioner< block_size >.
|
inlineoverridevirtual |
Implements Opm::Accelerator::Preconditioner< block_size >.
|
inlineoverridevirtual |
Implements Opm::Accelerator::Preconditioner< block_size >.
|
overridevirtual |
Reimplemented from Opm::Accelerator::Preconditioner< block_size >.