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