My Project
Loading...
Searching...
No Matches
Opm::Linear::ParallelAmgBackend< TypeTag > Class Template Reference

Provides a linear solver backend using the parallel algebraic multi-grid (AMG) linear solver from DUNE-ISTL. More...

#include <parallelamgbackend.hh>

Inheritance diagram for Opm::Linear::ParallelAmgBackend< TypeTag >:
Opm::Linear::ParallelBaseBackend< TypeTag >

Public Member Functions

 ParallelAmgBackend (const Simulator &simulator)
 
- Public Member Functions inherited from Opm::Linear::ParallelBaseBackend< TypeTag >
 ParallelBaseBackend (const Simulator &simulator)
 
void eraseMatrix ()
 Causes the solve() method to discared the structure of the linear system of equations the next time it is called.
 
void prepare (const SparseMatrixAdapter &M, const Vector &)
 Set up the internal data structures required for the linear solver.
 
void setResidual (const Vector &b)
 Assign values to the internal data structure for the residual vector.
 
void getResidual (Vector &b) const
 Retrieve the synchronized internal residual vector.
 
void setMatrix (const SparseMatrixAdapter &M)
 Sets the values of the residual's Jacobian matrix.
 
bool solve (Vector &x)
 Actually solve the linear system of equations.
 
size_t iterations () const
 Return number of iterations used during last solve.
 

Static Public Member Functions

static void registerParameters ()
 
- Static Public Member Functions inherited from Opm::Linear::ParallelBaseBackend< TypeTag >
static void registerParameters ()
 Register all run-time parameters for the linear solver.
 

Protected Member Functions

std::shared_ptr< AMG > preparePreconditioner_ ()
 
void cleanupPreconditioner_ ()
 
std::shared_ptr< RawLinearSolverprepareSolver_ (ParallelOperator &parOperator, ParallelScalarProduct &parScalarProduct, AMG &parPreCond)
 
std::pair< bool, int > runSolver_ (std::shared_ptr< RawLinearSolver > solver)
 
void cleanupSolver_ ()
 
template<typename C >
auto setUseFixedOrder (C criterion, bool booleanValue) -> decltype(criterion.setUseFixedOrder(booleanValue))
 
template<typename C >
void setUseFixedOrder (C,...)
 
void setupAmg_ ()
 
- Protected Member Functions inherited from Opm::Linear::ParallelBaseBackend< TypeTag >
Implementation & asImp_ ()
 
const Implementation & asImp_ () const
 
void cleanup_ ()
 
std::shared_ptr< ParallelPreconditionerpreparePreconditioner_ ()
 
void cleanupPreconditioner_ ()
 
void writeOverlapToVTK_ ()
 

Protected Attributes

friend ParentType
 
std::unique_ptr< ConvergenceCriterion< OverlappingVector > > convCrit_
 
std::shared_ptr< FineOperator > fineOperator_
 
std::shared_ptr< AMG > amg_
 
- Protected Attributes inherited from Opm::Linear::ParallelBaseBackend< TypeTag >
const Simulator & simulator_
 
int gridSequenceNumber_
 
size_t lastIterations_
 
OverlappingMatrix * overlappingMatrix_
 
OverlappingVector * overlappingb_
 
OverlappingVector * overlappingx_
 
PreconditionerWrapper precWrapper_
 

Additional Inherited Members

- Protected Types inherited from Opm::Linear::ParallelBaseBackend< TypeTag >
enum  { dimWorld = GridView::dimensionworld }
 
using Implementation = GetPropType<TypeTag, Properties::LinearSolverBackend>
 
using Simulator = GetPropType<TypeTag, Properties::Simulator>
 
using Scalar = GetPropType<TypeTag, Properties::Scalar>
 
using LinearSolverScalar = GetPropType<TypeTag, Properties::LinearSolverScalar>
 
using SparseMatrixAdapter = GetPropType<TypeTag, Properties::SparseMatrixAdapter>
 
using Vector = GetPropType<TypeTag, Properties::GlobalEqVector>
 
using BorderListCreator = GetPropType<TypeTag, Properties::BorderListCreator>
 
using GridView = GetPropType<TypeTag, Properties::GridView>
 
using Overlap = GetPropType<TypeTag, Properties::Overlap>
 
using OverlappingVector = GetPropType<TypeTag, Properties::OverlappingVector>
 
using OverlappingMatrix = GetPropType<TypeTag, Properties::OverlappingMatrix>
 
using PreconditionerWrapper = GetPropType<TypeTag, Properties::PreconditionerWrapper>
 
using SequentialPreconditioner = typename PreconditionerWrapper::SequentialPreconditioner
 
using ParallelPreconditioner = Opm::Linear::OverlappingPreconditioner<SequentialPreconditioner, Overlap>
 
using ParallelScalarProduct = Opm::Linear::OverlappingScalarProduct<OverlappingVector, Overlap>
 
using ParallelOperator
 

Detailed Description

template<class TypeTag>
class Opm::Linear::ParallelAmgBackend< TypeTag >

Provides a linear solver backend using the parallel algebraic multi-grid (AMG) linear solver from DUNE-ISTL.


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