1.3.2
CCC
 
ALinearOpMulti Class Referenceabstract

#include <ALinearOpMulti.hpp>

Inheritance diagram for ALinearOpMulti:
PrecisionOpMultiConditional PrecisionOpMultiConditionalCs

Public Member Functions

 ALinearOpMulti (int nitermax=1000, double eps=EPSILON8)
 
 ALinearOpMulti (const ALinearOpMulti &m)
 
ALinearOpMultioperator= (const ALinearOpMulti &m)
 
virtual ~ALinearOpMulti ()
 
virtual void evalInverse (const VectorVectorDouble &vecin, VectorVectorDouble &vecout) const
 
void evalDirect (const VectorVectorDouble &inv, VectorVectorDouble &outv) const
 
void initLk (const VectorVectorDouble &inv, VectorVectorDouble &outv) const
 
virtual int sizes () const =0
 
virtual int size (int) const =0
 
void setNIterMax (int nitermax)
 
void setEps (double eps)
 
void setPrecond (const ALinearOpMulti *precond, int status)
 
const LogStatsgetLogStats () const
 
void prepare () const
 

Public Attributes

VectorVectorDouble _temp
 
VectorVectorDouble _p
 
VectorVectorDouble _z
 

Constructor & Destructor Documentation

◆ ALinearOpMulti() [1/2]

ALinearOpMulti::ALinearOpMulti ( int  nitermax = 1000,
double  eps = EPSILON8 
)

◆ ALinearOpMulti() [2/2]

ALinearOpMulti::ALinearOpMulti ( const ALinearOpMulti m)

◆ ~ALinearOpMulti()

ALinearOpMulti::~ALinearOpMulti ( )
virtual

Member Function Documentation

◆ evalDirect()

void ALinearOpMulti::evalDirect ( const VectorVectorDouble inv,
VectorVectorDouble outv 
) const

Evaluate the product: 'outv' = Q * 'inv'

Parameters
[in]invArray of input values
[out]outvArray of output values

◆ evalInverse()

void ALinearOpMulti::evalInverse ( const VectorVectorDouble vecin,
VectorVectorDouble vecout 
) const
virtual

Evaluate the product: 'outv' = Q^{-1} * 'inv' by conjugate gradient

Parameters
[in]vecinArray of input values
[out]vecoutArray of output values. Will be used as initial value if _userInitialValue is true.

Reimplemented in PrecisionOpMultiConditionalCs.

◆ getLogStats()

const LogStats& ALinearOpMulti::getLogStats ( ) const
inline

◆ initLk()

void ALinearOpMulti::initLk ( const VectorVectorDouble inv,
VectorVectorDouble outv 
) const

◆ operator=()

ALinearOpMulti & ALinearOpMulti::operator= ( const ALinearOpMulti m)

◆ prepare()

void ALinearOpMulti::prepare ( ) const

This method intends to resize the different working arrays. It is considered as const in order to avoid breaking constness of calling function

◆ setEps()

void ALinearOpMulti::setEps ( double  eps)
inline

◆ setNIterMax()

void ALinearOpMulti::setNIterMax ( int  nitermax)
inline

◆ setPrecond()

void ALinearOpMulti::setPrecond ( const ALinearOpMulti precond,
int  status 
)

Define the Pre-Conditioner facility

Parameters
[in]precondPointer to a ALinearOp operator
[in]statusStatus of this Pre-conditioner
  • 0 : not defined and therefore not used
  • -1 : Pre-conditioner is the Q_{-1}
  • 1 : Pre-conditioner is the Q
Remarks
When 'precond' argument is not provided, 'status' is forced to 0

◆ size()

virtual int ALinearOpMulti::size ( int  ) const
pure virtual

Implemented in PrecisionOpMultiConditional.

◆ sizes()

virtual int ALinearOpMulti::sizes ( ) const
pure virtual

Implemented in PrecisionOpMultiConditional.

Member Data Documentation

◆ _p

VectorVectorDouble ALinearOpMulti::_p
mutable

◆ _temp

VectorVectorDouble ALinearOpMulti::_temp
mutable

◆ _z

VectorVectorDouble ALinearOpMulti::_z
mutable

The documentation for this class was generated from the following files: