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