Preconditioner

This class is used to manage the preconditioner. More…

#include "Preconditioner.h"

Inherits from MatrixProd

Inherited by aAMG, aFSAI, Jacobi

Public Functions

Name
void copy_Preconditioner(Preconditioner & other)
Copy members.
Preconditioner & operator=(Preconditioner & other)
Copy operator.
virtual iReg get_nrows() const =0
Retrieve the number of rows.
virtual iGlo Get_Globalnrows() const =0
Retrieve the global number of rows.
virtual void Prepare_MxV(const iReg nRHS) =0
Prepares the preconditioner application to a vector (DDMat).
virtual void UndoPrepare_MxV() =0
Undo the data structure necessary for MxV.
virtual void MxV(DDMat &restrict RHS, DDMat &restrict SOL, bool Barrier_flag) =0
Applies the preconditioner to a vector (DDMat): prec(A) * RHS = SOL.
virtual ~Preconditioner() =0
Deletes the object.
virtual void fPrintAll_ASCII(const string & filename) const =0
Prints the Preconditioner in ASCII format.
virtual void MxM(DSMat &restrict Mat, DSMat &restrict PrecMat) =0
Applies the preconditioner to a matrix (DSMat).
virtual void Compute(DSMat &restrict mat_A, DDMat *const restrict V0 =nullptr) =0
Computes the preconditioner in a distributed memory environment.
virtual void Set_Parameters(const void * params) =0
Sets the preconditioner parameters.
virtual iExt Get_nnz() const =0
Returns an estimate of the number of non-zeroes of the preconditioner on this process.
virtual iExt Get_FlopEst() const =0
Returns an estimate of the number of FLOP needed to perform the preconditioner application on this process.

Additional inherited members

Public Functions inherited from MatrixProd

Name
void copy_MatrixProd(MatrixProd & other)
Copy members.
bool get_Prepared_flag() const
Get flag for MxV prepare.
iReg get_nRHS_prep() const
Get the number of rhs the matrix is prepared for.
virtual ~MatrixProd() =0
Deletes the object.

Protected Attributes inherited from MatrixProd

Name
bool Prepared_flag
flag for MxV prepare.
iReg nRHS_prep
number of rhs the matrix is prepared for

Detailed Description

class Preconditioner;

This class is used to manage the preconditioner.

class Preconditioner.

Public Functions Documentation

function copy_Preconditioner

inline void copy_Preconditioner(
    Preconditioner & other
)

Copy members.

function operator=

inline Preconditioner & operator=(
    Preconditioner & other
)

Copy operator.

function get_nrows

virtual iReg get_nrows() const =0

Retrieve the number of rows.

Reimplements: MatrixProd::get_nrows

Reimplemented by: Jacobi::get_nrows, aFSAI::get_nrows, aAMG::get_nrows

function Get_Globalnrows

virtual iGlo Get_Globalnrows() const =0

Retrieve the global number of rows.

Reimplements: MatrixProd::Get_Globalnrows

Reimplemented by: Jacobi::Get_Globalnrows, aFSAI::Get_Globalnrows, aAMG::Get_Globalnrows

function Prepare_MxV

virtual void Prepare_MxV(
    const iReg nRHS
) =0

Prepares the preconditioner application to a vector (DDMat).

Parameters:

  • nRHS number of Right Hand Sides.

Reimplements: MatrixProd::Prepare_MxV

Reimplemented by: Jacobi::Prepare_MxV, aFSAI::Prepare_MxV, aAMG::Prepare_MxV

function UndoPrepare_MxV

virtual void UndoPrepare_MxV() =0

Undo the data structure necessary for MxV.

Reimplements: MatrixProd::UndoPrepare_MxV

Reimplemented by: Jacobi::UndoPrepare_MxV, aFSAI::UndoPrepare_MxV, aAMG::UndoPrepare_MxV

function MxV

virtual void MxV(
    DDMat &__restrict__ RHS,
    DDMat &__restrict__ SOL,
    bool Barrier_flag
) =0

Applies the preconditioner to a vector (DDMat): prec(A) * RHS = SOL.

Parameters:

  • RHS vector that multiplies the Preconditioner.
  • SOL vector where result is stored.
  • Barrier_flag if true global Barrier is called before return.

Reimplements: MatrixProd::MxV

Reimplemented by: Jacobi::MxV, aFSAI::MxV, aAMG::MxV

function ~Preconditioner

virtual ~Preconditioner() =0

Deletes the object.

function fPrintAll_ASCII

virtual void fPrintAll_ASCII(
    const string & filename
) const =0

Prints the Preconditioner in ASCII format.

Reimplemented by: Jacobi::fPrintAll_ASCII, aFSAI::fPrintAll_ASCII, aAMG::fPrintAll_ASCII

function MxM

virtual void MxM(
    DSMat &__restrict__ Mat,
    DSMat &__restrict__ PrecMat
) =0

Applies the preconditioner to a matrix (DSMat).

Parameters:

  • Mat system matrix.
  • PrecMat.

Reimplemented by: Jacobi::MxM, aFSAI::MxM, aAMG::MxM

function Compute

virtual void Compute(
    DSMat &__restrict__ mat_A,
    DDMat *const __restrict__ V0 =nullptr
) =0

Computes the preconditioner in a distributed memory environment.

Parameters:

  • mat_A system matrix.

Reimplemented by: Jacobi::Compute, aFSAI::Compute, aAMG::Compute

function Set_Parameters

virtual void Set_Parameters(
    const void * params
) =0

Sets the preconditioner parameters.

Parameters:

  • params input parameters.

Reimplemented by: Jacobi::Set_Parameters, aFSAI::Set_Parameters, aAMG::Set_Parameters

function Get_nnz

virtual iExt Get_nnz() const =0

Returns an estimate of the number of non-zeroes of the preconditioner on this process.

Reimplemented by: Jacobi::Get_nnz, aFSAI::Get_nnz, aAMG::Get_nnz

function Get_FlopEst

virtual iExt Get_FlopEst() const =0

Returns an estimate of the number of FLOP needed to perform the preconditioner application on this process.

Reimplemented by: Jacobi::Get_FlopEst, aFSAI::Get_FlopEst, aAMG::Get_FlopEst


Updated on 12 February 2021 at 11:59:50 CET