GEOS
|
Contains some hypre-specific functions. More...
Typedefs | |
using | execPolicy = parallelDevicePolicy<> |
Execution policy for operations on hypre data. | |
Enumerations | |
enum class | AMGCoarseningType : HYPRE_Int { CLJP = 0 , Ruge_Stueben = 3 , Falgout = 6 , CLJPDebug = 7 , PMIS = 8 , PMISDebug = 9 , HMIS = 10 , CGC = 21 , CGC_E = 22 } |
This enum class specifies the AMG parallel coarsening algorithm. More... | |
enum class | MGRInterpolationType : HYPRE_Int { injection = 0 , l1jacobi = 1 , jacobi = 2 , classicalModifiedInterpolation = 3 , approximateInverse = 4 , blockJacobi = 12 } |
This enum class specifies the strategy for computing the level intepolation operator in MGR. More... | |
enum class | MGRRestrictionType : HYPRE_Int { injection = 0 , jacobi = 2 , approximateInverse = 3 , blockJacobi = 12 , cprLike = 13 , blockColLumped = 14 } |
This enum class specifies the strategy for computing the level restriction operator in MGR. More... | |
enum class | MGRCoarseGridMethod : HYPRE_Int { galerkin = 0 , nonGalerkin = 1 , cprLikeDiag = 2 , cprLikeBlockDiag = 3 , approximateInverse = 4 } |
This enum class specifies the strategy for level coarse grid computation in MGR. More... | |
enum class | MGRFRelaxationType : HYPRE_Int { none = -1 , singleVCycleSmoother = 1 , amgVCycle = 2 , forwardHybridGaussSeidel = 3 , backwardHybridGaussSeidel = 4 , hybridSymmetricGaussSeidel = 6 , jacobi = 7 , l1hybridSymmetricGaussSeidel = 8 , gsElim = 9 , l1forwardGaussSeidel = 13 , l1backwardGaussSeidel = 14 , l1jacobi = 18 , gsElimWPivoting = 99 , gsElimWInverse = 199 } |
This enum class specifies the F-relaxation type. More... | |
enum class | MGRGlobalSmootherType : HYPRE_Int { none = -1 , blockJacobi = 0 , blockGaussSeidel = 1 , jacobi = 2 , ilu0 = 16 } |
This enum class specifies the global smoother type. More... | |
Functions | |
constexpr HYPRE_MemoryLocation | getMemoryLocation (LvArray::MemorySpace const space) |
constexpr LvArray::MemorySpace | getLvArrayMemorySpace (HYPRE_MemoryLocation const location) |
void | checkDeviceErrors (char const *msg, char const *file, int const line) |
HYPRE_BigInt * | toHypreBigInt (geos::globalIndex *const index) |
Converts a non-const array from GEOSX globalIndex type to HYPRE_BigInt. More... | |
HYPRE_BigInt const * | toHypreBigInt (geos::globalIndex const *const index) |
Converts a const array from GEOSX globalIndex type to HYPRE_BigInt. More... | |
HYPRE_Vector | parVectorToVectorAll (HYPRE_ParVector const vec) |
Gather a parallel vector on a every rank. More... | |
HYPRE_Int | dummySetup (HYPRE_Solver, HYPRE_ParCSRMatrix, HYPRE_ParVector, HYPRE_ParVector) |
Dummy function that does nothing but conform to hypre's signature for preconditioner setup/apply functions. More... | |
HYPRE_Int | SuperLUDistSolve (HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, HYPRE_ParVector x) |
The missing wrapper compatible with hypre solver solve signature. More... | |
HYPRE_Int | SuperLUDistDestroy (HYPRE_Solver solver) |
The missing wrapper compatible with hypre solver destroy signature. More... | |
HYPRE_Int | relaxationCreate (HYPRE_Solver &solver, HYPRE_Int const type) |
Create a relaxation-based smoother. More... | |
HYPRE_Int | relaxationSetup (HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, HYPRE_ParVector x) |
Setup a relaxation-based smoother. More... | |
HYPRE_Int | relaxationSolve (HYPRE_Solver solver, HYPRE_ParCSRMatrix A, HYPRE_ParVector b, HYPRE_ParVector x) |
Solve with a relaxation-based smoother. More... | |
HYPRE_Int | relaxationDestroy (HYPRE_Solver solver) |
Destroy a relaxation-based smoother. More... | |
HYPRE_Int | getAMGCycleType (LinearSolverParameters::AMG::CycleType const &type) |
Returns hypre's identifier of the AMG cycle type. More... | |
HYPRE_Int | getAMGRelaxationType (LinearSolverParameters::AMG::SmootherType const &type) |
Returns hypre's identifier of the AMG smoother type. More... | |
HYPRE_Int | getAMGInterpolationType (LinearSolverParameters::AMG::InterpType const &type) |
Returns hypre's identifier of the AMG interpolation type. More... | |
HYPRE_Int | getAMGAggressiveInterpolationType (LinearSolverParameters::AMG::AggInterpType const &type) |
Returns hypre's identifier of the AMG aggressive interpolation type. More... | |
HYPRE_Int | getILUType (LinearSolverParameters::AMG::SmootherType const type) |
Returns hypre's identifier of the AMG ILU smoother type. More... | |
HYPRE_Int | getAMGCoarseType (LinearSolverParameters::AMG::CoarseType const &type) |
Returns hypre's identifier of the AMG coarse solver type. More... | |
HYPRE_Int | getAMGCoarseningType (LinearSolverParameters::AMG::CoarseningType const &type) |
Returns hypre's identifier of the AMG coarsening type. More... | |
HYPRE_Int | getRelaxationType (LinearSolverParameters::PreconditionerType const type) |
Returns hypre's identifier of the relaxation preconditioner type. More... | |
HYPRE_Int | getILUType (LinearSolverParameters::PreconditionerType const type) |
Returns hypre's identifier of the ILU preconditioner type. More... | |
Variables | |
constexpr LvArray::MemorySpace | memorySpace = parallelDeviceMemorySpace |
Memory space used by hypre matrix/vector objects. | |
constexpr HYPRE_MemoryLocation | memoryLocation = HYPRE_MEMORY_DEVICE |
Memory location used by hypre matrix/vector objects. | |
Contains some hypre-specific functions.
|
strong |
This enum class specifies the AMG parallel coarsening algorithm.
Definition at line 466 of file HypreUtils.hpp.
|
strong |
This enum class specifies the strategy for level coarse grid computation in MGR.
Definition at line 512 of file HypreUtils.hpp.
|
strong |
This enum class specifies the F-relaxation type.
Definition at line 529 of file HypreUtils.hpp.
|
strong |
This enum class specifies the global smoother type.
Enumerator | |
---|---|
none | no global smoothing is performed (default) |
blockJacobi | block Jacobi |
blockGaussSeidel | block Jacobi |
jacobi | Jacobi. |
ilu0 | incomplete LU factorization |
Definition at line 551 of file HypreUtils.hpp.
|
strong |
This enum class specifies the strategy for computing the level intepolation operator in MGR.
Definition at line 483 of file HypreUtils.hpp.
|
strong |
This enum class specifies the strategy for computing the level restriction operator in MGR.
Definition at line 498 of file HypreUtils.hpp.
|
inline |
msg | |
file | |
line |
Definition at line 154 of file HypreUtils.hpp.
HYPRE_Int geos::hypre::dummySetup | ( | HYPRE_Solver | , |
HYPRE_ParCSRMatrix | , | ||
HYPRE_ParVector | , | ||
HYPRE_ParVector | |||
) |
Dummy function that does nothing but conform to hypre's signature for preconditioner setup/apply functions.
Typical use is to prevent hypre from calling preconditioner setup when we have already called it on out side.
|
inline |
Returns hypre's identifier of the AMG aggressive interpolation type.
type | AMG aggressive interpolation type |
Definition at line 352 of file HypreUtils.hpp.
|
inline |
Returns hypre's identifier of the AMG coarsening type.
type | AMG coarsening type |
Definition at line 413 of file HypreUtils.hpp.
|
inline |
Returns hypre's identifier of the AMG coarse solver type.
type | AMG coarse solver type |
Definition at line 389 of file HypreUtils.hpp.
|
inline |
Returns hypre's identifier of the AMG cycle type.
type | AMG cycle type |
Definition at line 292 of file HypreUtils.hpp.
|
inline |
Returns hypre's identifier of the AMG interpolation type.
type | AMG interpolation type |
Definition at line 328 of file HypreUtils.hpp.
|
inline |
Returns hypre's identifier of the AMG smoother type.
type | AMG smoother type |
Definition at line 307 of file HypreUtils.hpp.
|
inline |
Returns hypre's identifier of the AMG ILU smoother type.
type | AMG ILU smoother type |
Definition at line 374 of file HypreUtils.hpp.
|
inline |
Returns hypre's identifier of the ILU preconditioner type.
type | ILU preconditioner type |
Definition at line 452 of file HypreUtils.hpp.
|
constexpr |
location | the location |
Definition at line 99 of file HypreUtils.hpp.
|
constexpr |
space | the space |
Definition at line 80 of file HypreUtils.hpp.
|
inline |
Returns hypre's identifier of the relaxation preconditioner type.
type | relaxation preconditioner type |
Definition at line 432 of file HypreUtils.hpp.
HYPRE_Vector geos::hypre::parVectorToVectorAll | ( | HYPRE_ParVector const | vec | ) |
Gather a parallel vector on a every rank.
vec | the vector to gather |
This is a wrapper around hypre_ParVectorToVectorAll() that works for both host-based and device-based vectors without relying on Unified Memory.
HYPRE_Int geos::hypre::relaxationCreate | ( | HYPRE_Solver & | solver, |
HYPRE_Int const | type | ||
) |
Create a relaxation-based smoother.
solver | the solver |
type | hypre's internal identifier of the relaxation type |
HYPRE_Int geos::hypre::relaxationDestroy | ( | HYPRE_Solver | solver | ) |
Destroy a relaxation-based smoother.
solver | the solver |
HYPRE_Int geos::hypre::relaxationSetup | ( | HYPRE_Solver | solver, |
HYPRE_ParCSRMatrix | A, | ||
HYPRE_ParVector | b, | ||
HYPRE_ParVector | x | ||
) |
Setup a relaxation-based smoother.
solver | the solver |
A | the matrix |
b | the rhs vector (unused) |
x | the solution vector (unused) |
HYPRE_Int geos::hypre::relaxationSolve | ( | HYPRE_Solver | solver, |
HYPRE_ParCSRMatrix | A, | ||
HYPRE_ParVector | b, | ||
HYPRE_ParVector | x | ||
) |
Solve with a relaxation-based smoother.
solver | the solver |
A | the matrix |
b | the rhs vector (unused) |
x | the solution vector (unused) |
HYPRE_Int geos::hypre::SuperLUDistDestroy | ( | HYPRE_Solver | solver | ) |
The missing wrapper compatible with hypre solver destroy signature.
solver | the solver |
HYPRE_Int geos::hypre::SuperLUDistSolve | ( | HYPRE_Solver | solver, |
HYPRE_ParCSRMatrix | A, | ||
HYPRE_ParVector | b, | ||
HYPRE_ParVector | x | ||
) |
The missing wrapper compatible with hypre solver solve signature.
solver | the solver |
A | the matrix (unused) |
b | the rhs vector |
x | the solution vector |
|
inline |
Converts a non-const array from GEOSX globalIndex type to HYPRE_BigInt.
[in] | index | the input array |
Definition at line 189 of file HypreUtils.hpp.
|
inline |
Converts a const array from GEOSX globalIndex type to HYPRE_BigInt.
[in] | index | the input array |
Definition at line 199 of file HypreUtils.hpp.