|
|
using | SparseMatrixAdapter = GetPropType< TypeTag, Properties::SparseMatrixAdapter > |
| |
|
using | Vector = GetPropType< TypeTag, Properties::GlobalEqVector > |
| |
|
using | Simulator = GetPropType< TypeTag, Properties::Simulator > |
| |
|
using | ElementMapper = GetPropType< TypeTag, Properties::ElementMapper > |
| |
|
using | Matrix = typename SparseMatrixAdapter::IstlMatrix |
| |
|
using | ThreadManager = GetPropType< TypeTag, Properties::ThreadManager > |
| |
|
using | GridView = GetPropType< TypeTag, Properties::GridView > |
| |
|
using | ElementContext = GetPropType< TypeTag, Properties::ElementContext > |
| |
|
using | ElementChunksType = Opm::ElementChunks< GridView, Dune::Partitions::All > |
| |
|
using | real_type = typename Vector::field_type |
| |
|
using | GPUMatrix = Opm::gpuistl::GpuSparseMatrixWrapper< real_type > |
| |
|
using | GPUVector = Opm::gpuistl::GpuVector< real_type > |
| |
|
using | GPUVectorInt = Opm::gpuistl::GpuVector< int > |
| |
|
using | CommunicationType = Dune::Communication< int > |
| |
|
using | SolverType = Opm::gpuistl::detail::FlexibleSolverWrapper< GPUMatrix, GPUVector, CommunicationType > |
| |
|
using | CommunicationType = Dune::Communication< int > |
| |
|
using | Matrix = typename GetPropType< TypeTag, Properties::SparseMatrixAdapter > ::IstlMatrix |
| |
|
| | ISTLSolverGPUISTL (const Simulator &simulator, const FlowLinearSolverParameters ¶meters, bool forceSerial=false) |
| | Construct a system solver. More...
|
| |
| | ISTLSolverGPUISTL (const Simulator &simulator) |
| | Construct a system solver. More...
|
| |
| void | eraseMatrix () override |
| | Signals that the memory for the matrix internally in the solver could be erased. More...
|
| |
| void | setActiveSolver (int num) override |
| | Set the active solver by its index. More...
|
| |
| int | numAvailableSolvers () const override |
| | Get the number of available solvers. More...
|
| |
| void | prepare (const SparseMatrixAdapter &M, Vector &b) override |
| | Prepare the solver with the given matrix and right-hand side vector. More...
|
| |
| void | prepare (const Matrix &M, Vector &b) override |
| | Prepare the solver with the given matrix and right-hand side vector. More...
|
| |
| void | setResidual (Vector &) override |
| | Set the residual vector. More...
|
| |
| void | getResidual (Vector &b) const override |
| | Get the residual vector. More...
|
| |
| void | setMatrix (const SparseMatrixAdapter &) override |
| | Set the matrix for the solver. More...
|
| |
| bool | solve (Vector &x) override |
| | Solve the system of linear equations Ax = b. More...
|
| |
| int | iterations () const override |
| |
| const CommunicationType * | comm () const override |
| | Get the communication object used by the solver. More...
|
| |
| bool | isParallel () const |
| | Check if we are running in parallel mode. More...
|
| |
| int | getSolveCount () const override |
| | Get the count of how many times the solver has been called. More...
|
| |
| virtual void | prepare (const Matrix &M, GetPropType< TypeTag, Properties::GlobalEqVector > &b)=0 |
| | Prepare the solver with the given matrix and right-hand side vector. More...
|
| |
| virtual void | prepare (const GetPropType< TypeTag, Properties::SparseMatrixAdapter > &M, GetPropType< TypeTag, Properties::GlobalEqVector > &b)=0 |
| | Prepare the solver with the given sparse matrix and right-hand side vector. More...
|
| |
| virtual void | setResidual (GetPropType< TypeTag, Properties::GlobalEqVector > &b)=0 |
| | Set the residual vector. More...
|
| |
| virtual void | getResidual (GetPropType< TypeTag, Properties::GlobalEqVector > &b) const=0 |
| | Get the residual vector. More...
|
| |
| virtual void | setMatrix (const GetPropType< TypeTag, Properties::SparseMatrixAdapter > &M)=0 |
| | Set the matrix for the solver. More...
|
| |
| virtual bool | solve (GetPropType< TypeTag, Properties::GlobalEqVector > &x)=0 |
| | Solve the system of equations Ax = b. More...
|
| |
template<class TypeTag>
class Opm::gpuistl::ISTLSolverGPUISTL< TypeTag >
ISTL solver for GPU using the GPU ISTL backend.
This class implements the AbstractISTLSolver interface and provides methods to prepare the solver, set and get residuals, solve the system, and manage communication.
- Template Parameters
-
| TypeTag | The type tag for the properties used in this solver. |
- Note
- This solver takes CPU matrices and vectors, but uses GPU matrices and vectors internally for computations.