aFSAI
This class is used to manage the adaptive FSAI preconditioner for SPD. More…
#include "aFSAI.h"
Inherits from Preconditioner, MatrixProd
Public Functions
Name | |
---|---|
aFSAI() Constructs the object. |
|
~aFSAI() Deletes the object. |
|
virtual iReg | get_nrows() const Retrieve the number of rows. |
virtual iGlo | Get_Globalnrows() const Retrieve the global number of rows. |
void | print_OperStats(FILE * ofile) Prints aFSAI info. |
void | print_Times(FILE * ofile) Prints the times needed to compute the aFSAI. |
void | print_G(const string & filename) const Prints the G part of the preconditioner. |
void | print_GT(const string & filename) const Prints the GT part of the preconditioner. |
virtual void | Compute(DSMat &restrict Mat, DDMat *const restrict V0 =nullptr) Computes the FSAI preconditioner in a distributed memory environment. |
virtual void | Prepare_MxV(const iReg nRHS) Prepares the preconditioner application to a vector (DDMat). |
virtual void | UndoPrepare_MxV() Undo the data structure necessary for MxV. |
virtual void | MxV(DDMat &restrict RHS, DDMat &restrict SOL, bool Barrier_flag) Applies the preconditioner to a vetor (DDMat): prec(A9 * RHS = SOL. |
virtual void | MxM(DSMat &restrict Mat, DSMat &restrict PrecMat) Applies the preconditioner to a matrix (DSMat). |
virtual void | fPrintAll_ASCII(const string & filename) const Prints the Operator in ASCII format. |
virtual void | Set_Parameters(const void * params) Sets the aFSAI parameters. |
virtual iExt | Get_nnz() const Returns an estimate of the number of non-zeroes of the preconditioner application. |
virtual iExt | Get_FlopEst() const Returns an estimate of the number of FLOPS needed to perform the preconditioner application. |
void | Set_TargetPower(const iReg restrict input_TargetPower) Sets the requested power. |
void | Set_nstep(const iReg restrict input_nstep) Sets the number of iterative steps. |
void | Set_step_size(const iReg restrict input_step_size) Sets the number of terms added per step. |
void | Set_eps(const rExt restrict input_eps) Sets the tolerance for the preconditioner. |
Additional inherited members
Public Functions inherited from Preconditioner
Name | |
---|---|
void | copy_Preconditioner(Preconditioner & other) Copy members. |
Preconditioner & | operator=(Preconditioner & other) Copy operator. |
virtual | ~Preconditioner() =0 Deletes the object. |
Public Functions inherited from MatrixProd
Name | |
---|---|
void | copy_MatrixProd(MatrixProd & other) Copy members. |
MatrixProd & | operator=(MatrixProd & other) Copy operator. |
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 aFSAI;
This class is used to manage the adaptive FSAI preconditioner for SPD.
class aFSAI.
Public Functions Documentation
function aFSAI
aFSAI()
Constructs the object.
function ~aFSAI
~aFSAI()
Deletes the object.
function get_nrows
inline virtual iReg get_nrows() const
Retrieve the number of rows.
Reimplements: Preconditioner::get_nrows
function Get_Globalnrows
virtual iGlo Get_Globalnrows() const
Retrieve the global number of rows.
Reimplements: Preconditioner::Get_Globalnrows
function print_OperStats
void print_OperStats(
FILE * ofile
)
Prints aFSAI info.
Parameters:
- *ofile output file.
function print_Times
void print_Times(
FILE * ofile
)
Prints the times needed to compute the aFSAI.
Parameters:
- *ofile output file.
function print_G
inline void print_G(
const string & filename
) const
Prints the G part of the preconditioner.
function print_GT
inline void print_GT(
const string & filename
) const
Prints the GT part of the preconditioner.
function Compute
virtual void Compute(
DSMat &__restrict__ Mat,
DDMat *const __restrict__ V0 =nullptr
)
Computes the FSAI preconditioner in a distributed memory environment.
Parameters:
- Mat system matrix.
Reimplements: Preconditioner::Compute
function Prepare_MxV
virtual void Prepare_MxV(
const iReg nRHS
)
Prepares the preconditioner application to a vector (DDMat).
Parameters:
- nRHS number of Right Hand Sides.
Reimplements: Preconditioner::Prepare_MxV
function UndoPrepare_MxV
virtual void UndoPrepare_MxV()
Undo the data structure necessary for MxV.
Reimplements: Preconditioner::UndoPrepare_MxV
function MxV
virtual void MxV(
DDMat &__restrict__ RHS,
DDMat &__restrict__ SOL,
bool Barrier_flag
)
Applies the preconditioner to a vetor (DDMat): prec(A9 * 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: Preconditioner::MxV
function MxM
virtual void MxM(
DSMat &__restrict__ Mat,
DSMat &__restrict__ PrecMat
)
Applies the preconditioner to a matrix (DSMat).
Parameters:
- Mat system matrix.
- PrecMat.
Reimplements: Preconditioner::MxM
function fPrintAll_ASCII
inline virtual void fPrintAll_ASCII(
const string & filename
) const
Prints the Operator in ASCII format.
Reimplements: Preconditioner::fPrintAll_ASCII
function Set_Parameters
virtual void Set_Parameters(
const void * params
)
Sets the aFSAI parameters.
Parameters:
- params input parameters.
Reimplements: Preconditioner::Set_Parameters
function Get_nnz
inline virtual iExt Get_nnz() const
Returns an estimate of the number of non-zeroes of the preconditioner application.
Reimplements: Preconditioner::Get_nnz
function Get_FlopEst
inline virtual iExt Get_FlopEst() const
Returns an estimate of the number of FLOPS needed to perform the preconditioner application.
Reimplements: Preconditioner::Get_FlopEst
function Set_TargetPower
inline void Set_TargetPower(
const iReg __restrict__ input_TargetPower
)
Sets the requested power.
function Set_nstep
inline void Set_nstep(
const iReg __restrict__ input_nstep
)
Sets the number of iterative steps.
function Set_step_size
inline void Set_step_size(
const iReg __restrict__ input_step_size
)
Sets the number of terms added per step.
function Set_eps
inline void Set_eps(
const rExt __restrict__ input_eps
)
Sets the tolerance for the preconditioner.
Updated on 12 February 2021 at 11:59:50 CET