aAMG_level
This class is used to manage the aAMG hierarchy. More…
#include "aAMG_level.h"
Public Functions
Name | |
---|---|
aAMG_level() Constructs the object. |
|
~aAMG_level() Deletes the object. |
|
void | SetOffsets(const iReg mynrows, const iReg nRHS) Sets the offsets for RHS and SOL in the last level. |
void | Prepare_MxV(const iReg nRHS) Prepares the object for the application to a vector (DDMat). |
void | UndoPrepare_MxV() Undo the data structure necessary for MxV. |
Public Attributes
Name | |
---|---|
iReg | level Hierarchy level. |
struct aAMG_OperInfo | OperInfo Operator information. |
struct aAMG_TimeInfo | TimeInfo Set-up wall time of the AMG components. |
MPI_Comm | Comm Communicator for the current level. |
bool | is_SYM Flag to indicate symmetry of the coarsest level operator. |
bool | CoarsestFac Flag for the coarsest level with factorization. |
bool | CoarsestDiag Flag for the coarsest level without factorization (diagonal case). |
SMOOTHER * | ptr_SMOOTH Pointer to the smoother for the current level. |
PROLONGATION * | ptr_PROLO Pointer to the prolongation for the current level. |
DSMat * | ptr_A Pointer to the sparse matrix for the current level. |
DDMat * | ptr_LUFacA Pointer to the LU factorization of A (only for the last level) |
VEC< type_LAPACK_iReg > | vec_IPIV Permution LU in case of non-symmetric coarsest operator. |
aAMG_level * | ptr_nextlevel Pointer to the next level. |
VEC< type_MPI_iReg > | nRecv_loc Number of receiving coefficiets for RHS communication in the last level. |
VEC< type_MPI_iReg > | offsets RHS and SOL offsets in the last level. |
DDMat | WR1 First work array (used in recursive ApplyToVec). |
DDMat | WR2 Second work array (used in recursive ApplyToVec). |
DDMat | WR3 Third work array (used in recursive ApplyToVec). |
DDMat | nextRHS RHS vector for teh next level (used in recursive ApplyToVec). |
DDMat | nextSOL SOL vector for the next level (used in recursive ApplyToVec). |
Detailed Description
class aAMG_level;
This class is used to manage the aAMG hierarchy.
class aAMG_level.
Public Functions Documentation
function aAMG_level
inline aAMG_level()
Constructs the object.
function ~aAMG_level
~aAMG_level()
Deletes the object.
function SetOffsets
void SetOffsets(
const iReg mynrows,
const iReg nRHS
)
Sets the offsets for RHS and SOL in the last level.
Parameters:
- mynrows local size of the matrix.
- nRHS number of Right Hand Sides.
function Prepare_MxV
void Prepare_MxV(
const iReg nRHS
)
Prepares the object for the application to a vector (DDMat).
Parameters:
- nRHS number of Right Hand Sides.
function UndoPrepare_MxV
void UndoPrepare_MxV()
Undo the data structure necessary for MxV.
Public Attributes Documentation
variable level
iReg level = 0;
Hierarchy level.
variable OperInfo
struct aAMG_OperInfo OperInfo;
Operator information.
variable TimeInfo
struct aAMG_TimeInfo TimeInfo;
Set-up wall time of the AMG components.
variable Comm
MPI_Comm Comm = MPI_COMM_WORLD;
Communicator for the current level.
variable is_SYM
bool is_SYM = false;
Flag to indicate symmetry of the coarsest level operator.
variable CoarsestFac
bool CoarsestFac = false;
Flag for the coarsest level with factorization.
variable CoarsestDiag
bool CoarsestDiag = false;
Flag for the coarsest level without factorization (diagonal case).
variable ptr_SMOOTH
SMOOTHER * ptr_SMOOTH = nullptr;
Pointer to the smoother for the current level.
variable ptr_PROLO
PROLONGATION * ptr_PROLO = nullptr;
Pointer to the prolongation for the current level.
variable ptr_A
DSMat * ptr_A = nullptr;
Pointer to the sparse matrix for the current level.
variable ptr_LUFacA
DDMat * ptr_LUFacA = nullptr;
Pointer to the LU factorization of A (only for the last level)
variable vec_IPIV
VEC< type_LAPACK_iReg > vec_IPIV;
Permution LU in case of non-symmetric coarsest operator.
variable ptr_nextlevel
aAMG_level * ptr_nextlevel = nullptr;
Pointer to the next level.
variable nRecv_loc
VEC< type_MPI_iReg > nRecv_loc;
Number of receiving coefficiets for RHS communication in the last level.
variable offsets
VEC< type_MPI_iReg > offsets;
RHS and SOL offsets in the last level.
variable WR1
DDMat WR1;
First work array (used in recursive ApplyToVec).
variable WR2
DDMat WR2;
Second work array (used in recursive ApplyToVec).
variable WR3
DDMat WR3;
Third work array (used in recursive ApplyToVec).
variable nextRHS
DDMat nextRHS;
RHS vector for teh next level (used in recursive ApplyToVec).
variable nextSOL
DDMat nextSOL;
SOL vector for the next level (used in recursive ApplyToVec).
Updated on 12 February 2021 at 11:59:50 CET