GEOS
Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
geos::hypre::mgr::MGRStrategyBase< NLEVEL > Class Template Reference

Helper struct for strategies that provides some basic parameter arrays needed by MGR. More...

#include <HypreMGR.hpp>

Static Public Attributes

static constexpr HYPRE_Int numLevels = NLEVEL
 Number of levels.
 

Protected Member Functions

 MGRStrategyBase (HYPRE_Int const numBlocks)
 Constructor. More...
 
void setupLabels ()
 Call this after populating lv_cindexes.
 
void setReduction (HyprePrecWrapper &precond, HypreMGRData &mgrData)
 Helper function that sets the reduction features common to all mgr strategies. More...
 
void setDisplacementAMG (HyprePrecWrapper &solver, integer const &separateComponents)
 Set up BoomerAMG to perform the solve for the displacement system. More...
 
void setPressureAMG (HyprePrecWrapper &solver)
 Set up BoomerAMG to perform the solve for the pressure system. More...
 
void setPressureTemperatureAMG (HyprePrecWrapper &solver)
 Set up BoomerAMG to perform the solve for the pressure/temperature system. More...
 
void setMechanicsFSolver (HyprePrecWrapper &precond, HypreMGRData &mgrData, integer const &separateComponents)
 Set up BoomerAMG to perform the mechanics F-solve for the first F-relaxation. More...
 
void setILUCoarseSolver (HyprePrecWrapper &solver)
 

Protected Attributes

HYPRE_Int m_numBlocks { 0 }
 Number of different matrix blocks treated separately.
 
stdVector< HYPRE_Int > m_labels [numLevels] {}
 Dof labels kept at each level.
 
HYPRE_Int m_numLabels [numLevels] { -1 }
 Number of dof labels kept.
 
HYPRE_Int * m_ptrLabels [numLevels] { nullptr }
 Pointers to each level's labels, as consumed by MGR.
 
MGRFRelaxationType m_levelFRelaxType [numLevels]
 F-relaxation type for each level.
 
HYPRE_Int m_levelFRelaxIters [numLevels] { -1 }
 Number of F-relaxation iterations for each level.
 
MGRInterpolationType m_levelInterpType [numLevels]
 Interpolation type for each level.
 
MGRRestrictionType m_levelRestrictType [numLevels]
 Restriction type for each level.
 
MGRCoarseGridMethod m_levelCoarseGridMethod [numLevels]
 Coarse grid method for each level.
 
MGRGlobalSmootherType m_levelGlobalSmootherType [numLevels]
 Global smoother type for each level.
 
HYPRE_Int m_levelGlobalSmootherIters [numLevels] { -1 }
 Number of global smoother iterations for each level.
 
HYPRE_Real m_coarseGridThreshold { 1.0e-20 }
 Coarse grid truncation threshold.
 

Detailed Description

template<int NLEVEL>
class geos::hypre::mgr::MGRStrategyBase< NLEVEL >

Helper struct for strategies that provides some basic parameter arrays needed by MGR.

Template Parameters
NLEVELnumber of reduction levels (not including the coarsest level)

Definition at line 73 of file HypreMGR.hpp.

Constructor & Destructor Documentation

◆ MGRStrategyBase()

template<int NLEVEL>
geos::hypre::mgr::MGRStrategyBase< NLEVEL >::MGRStrategyBase ( HYPRE_Int const  numBlocks)
inlineexplicitprotected

Constructor.

Parameters
numBlocksnumber of blocks

Definition at line 105 of file HypreMGR.hpp.

Member Function Documentation

◆ setDisplacementAMG()

template<int NLEVEL>
void geos::hypre::mgr::MGRStrategyBase< NLEVEL >::setDisplacementAMG ( HyprePrecWrapper solver,
integer const &  separateComponents 
)
inlineprotected

Set up BoomerAMG to perform the solve for the displacement system.

Parameters
solverthe solver wrapper
separateComponentsflag controlling the use of the separate displacement component (SDC) approximation

Definition at line 174 of file HypreMGR.hpp.

◆ setILUCoarseSolver()

template<int NLEVEL>
void geos::hypre::mgr::MGRStrategyBase< NLEVEL >::setILUCoarseSolver ( HyprePrecWrapper solver)
inlineprotected
Parameters
solver

Definition at line 277 of file HypreMGR.hpp.

◆ setMechanicsFSolver()

template<int NLEVEL>
void geos::hypre::mgr::MGRStrategyBase< NLEVEL >::setMechanicsFSolver ( HyprePrecWrapper precond,
HypreMGRData mgrData,
integer const &  separateComponents 
)
inlineprotected

Set up BoomerAMG to perform the mechanics F-solve for the first F-relaxation.

Parameters
precondthe preconditioner wrapper
mgrDataauxiliary MGR data
separateComponentsflag controlling the use of the separate displacement component (SDC) approximation
Note
This function should be rethought once MGR allows for customizing boomerAMG (or any other solver) for F-relaxation at any level

Definition at line 265 of file HypreMGR.hpp.

◆ setPressureAMG()

template<int NLEVEL>
void geos::hypre::mgr::MGRStrategyBase< NLEVEL >::setPressureAMG ( HyprePrecWrapper solver)
inlineprotected

Set up BoomerAMG to perform the solve for the pressure system.

Parameters
solverthe solver wrapper

Definition at line 204 of file HypreMGR.hpp.

◆ setPressureTemperatureAMG()

template<int NLEVEL>
void geos::hypre::mgr::MGRStrategyBase< NLEVEL >::setPressureTemperatureAMG ( HyprePrecWrapper solver)
inlineprotected

Set up BoomerAMG to perform the solve for the pressure/temperature system.

Parameters
solverthe solver wrapper

Definition at line 232 of file HypreMGR.hpp.

◆ setReduction()

template<int NLEVEL>
void geos::hypre::mgr::MGRStrategyBase< NLEVEL >::setReduction ( HyprePrecWrapper precond,
HypreMGRData mgrData 
)
inlineprotected

Helper function that sets the reduction features common to all mgr strategies.

Parameters
precondthe preconditioner wrapper
mgrDataauxiliary MGR data

Definition at line 135 of file HypreMGR.hpp.


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