GEOSX
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)
 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)
 Set up BoomerAMG to perform the mechanics F-solve for the first F-relaxation. More...
 

Protected Attributes

HYPRE_Int m_numBlocks { 0 }
 Number of different matrix blocks treated separately.
 
std::vector< 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.
 

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 72 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 103 of file HypreMGR.hpp.

Member Function Documentation

◆ setDisplacementAMG()

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

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

Parameters
solverthe solver wrapper

Definition at line 169 of file HypreMGR.hpp.

◆ setMechanicsFSolver()

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

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

Parameters
precondthe preconditioner wrapper
mgrDataauxiliary MGR data
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 256 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 197 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 224 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 133 of file HypreMGR.hpp.


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