BlockPCGSolver Class Reference

#include <BlockPCGSolver.h>

Collaboration diagram for BlockPCGSolver:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 BlockPCGSolver (const Epetra_Comm &_Com, const Epetra_Operator *KK, double _tol=0.0, int _iMax=0, int _verb=0)
 BlockPCGSolver (const Epetra_Comm &_Com, const Epetra_Operator *KK, Epetra_Operator *PP, double _tol=0.0, int _iMax=0, int _verb=0)
 ~BlockPCGSolver ()
const char * Label () const
bool UseTranspose () const
int SetUseTranspose (bool UseTranspose)
bool HasNormInf () const
double NormInf () const
int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
const Epetra_Comm & Comm () const
const Epetra_Map & OperatorDomainMap () const
const Epetra_Map & OperatorRangeMap () const
int Solve (const Epetra_MultiVector &X, Epetra_MultiVector &Y, int blkSize) const
const Epetra_Operator * getPreconditioner () const
void setPreconditioner (Epetra_Operator *PP)
void setAMGPreconditioner (int smoother=1, int degree=2, int numDofs=1, const Epetra_MultiVector *Z=0)
int getAMG_NLevels () const
void setIterMax (int _iMax)
int getMaxIter () const
double getAvgIter () const
int getMinIter () const

Private Member Functions

 BlockPCGSolver (const BlockPCGSolver &ref)
BlockPCGSolveroperator= (const BlockPCGSolver &ref)

Private Attributes

const Epetra_Comm & MyComm
const Epetra_BLAS callBLAS
const Epetra_LAPACK callLAPACK
const FortranRoutines callFortran
const Epetra_Operator * K
Epetra_Operator * Prec
bool mlPrec
ML * ml_handle
ML_Aggregate * ml_agg
AztecOO * vectorPCG
double tolCG
int iterMax
int verbose
int AMG_NLevels
double * workSpace
int numSolve
int maxIter
int sumIter
int minIter

Detailed Description

Definition at line 51 of file BlockPCGSolver.h.


Constructor & Destructor Documentation

BlockPCGSolver::BlockPCGSolver ( const BlockPCGSolver ref  )  [private]

BlockPCGSolver::BlockPCGSolver ( const Epetra_Comm &  _Com,
const Epetra_Operator *  KK,
double  _tol = 0.0,
int  _iMax = 0,
int  _verb = 0 
)

Definition at line 32 of file BlockPCGSolver.cpp.

BlockPCGSolver::BlockPCGSolver ( const Epetra_Comm &  _Com,
const Epetra_Operator *  KK,
Epetra_Operator *  PP,
double  _tol = 0.0,
int  _iMax = 0,
int  _verb = 0 
)

Definition at line 58 of file BlockPCGSolver.cpp.

BlockPCGSolver::~BlockPCGSolver (  ) 

Definition at line 85 of file BlockPCGSolver.cpp.

References ml_agg, ml_handle, mlPrec, Prec, vectorPCG, and workSpace.


Member Function Documentation

int BlockPCGSolver::Apply ( const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const

Definition at line 183 of file BlockPCGSolver.cpp.

References K.

int BlockPCGSolver::ApplyInverse ( const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const

Definition at line 190 of file BlockPCGSolver.cpp.

References iterMax, K, maxIter, minIter, numSolve, Prec, Solve(), sumIter, tolCG, vectorPCG, and verbose.

Here is the call graph for this function:

const Epetra_Comm& BlockPCGSolver::Comm (  )  const [inline]

Definition at line 109 of file BlockPCGSolver.h.

References MyComm.

int BlockPCGSolver::getAMG_NLevels (  )  const [inline]

Definition at line 121 of file BlockPCGSolver.h.

References AMG_NLevels.

double BlockPCGSolver::getAvgIter (  )  const [inline]

Definition at line 126 of file BlockPCGSolver.h.

References numSolve, and sumIter.

int BlockPCGSolver::getMaxIter (  )  const [inline]

Definition at line 125 of file BlockPCGSolver.h.

References maxIter.

int BlockPCGSolver::getMinIter (  )  const [inline]

Definition at line 127 of file BlockPCGSolver.h.

References minIter.

const Epetra_Operator* BlockPCGSolver::getPreconditioner (  )  const [inline]

Definition at line 116 of file BlockPCGSolver.h.

References Prec.

bool BlockPCGSolver::HasNormInf (  )  const [inline]

Definition at line 103 of file BlockPCGSolver.h.

const char* BlockPCGSolver::Label (  )  const [inline]

Definition at line 98 of file BlockPCGSolver.h.

double BlockPCGSolver::NormInf (  )  const [inline]

Definition at line 104 of file BlockPCGSolver.h.

BlockPCGSolver& BlockPCGSolver::operator= ( const BlockPCGSolver ref  )  [private]

const Epetra_Map& BlockPCGSolver::OperatorDomainMap (  )  const [inline]

Definition at line 111 of file BlockPCGSolver.h.

References K.

const Epetra_Map& BlockPCGSolver::OperatorRangeMap (  )  const [inline]

Definition at line 112 of file BlockPCGSolver.h.

References K.

void BlockPCGSolver::setAMGPreconditioner ( int  smoother = 1,
int  degree = 2,
int  numDofs = 1,
const Epetra_MultiVector *  Z = 0 
)

Definition at line 108 of file BlockPCGSolver.cpp.

References AMG_NLevels, K, ml_agg, ml_handle, mlPrec, MyComm, Prec, and verbose.

void BlockPCGSolver::setIterMax ( int  _iMax  )  [inline]

Definition at line 123 of file BlockPCGSolver.h.

References iterMax.

void BlockPCGSolver::setPreconditioner ( Epetra_Operator *  PP  ) 

Definition at line 175 of file BlockPCGSolver.cpp.

References mlPrec, and Prec.

Referenced by QuadraticEigsolvOperators::getHSolver(), and LinearEigsolvOperators::getHSolver().

int BlockPCGSolver::SetUseTranspose ( bool  UseTranspose  )  [inline]

Definition at line 101 of file BlockPCGSolver.h.

int BlockPCGSolver::Solve ( const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y,
int  blkSize 
) const

Definition at line 275 of file BlockPCGSolver.cpp.

References callBLAS, callFortran, callLAPACK, iterMax, K, FortranRoutines::LAENV(), maxIter, minIter, MyComm, numSolve, Prec, FortranRoutines::SCAL_INCX(), sumIter, FortranRoutines::SYEV(), tolCG, verbose, and workSpace.

Referenced by ApplyInverse().

Here is the call graph for this function:

bool BlockPCGSolver::UseTranspose (  )  const [inline]

Definition at line 100 of file BlockPCGSolver.h.


Member Data Documentation

int BlockPCGSolver::AMG_NLevels [private]

Definition at line 74 of file BlockPCGSolver.h.

Referenced by getAMG_NLevels(), and setAMGPreconditioner().

const Epetra_BLAS BlockPCGSolver::callBLAS [private]

Definition at line 56 of file BlockPCGSolver.h.

Referenced by Solve().

const FortranRoutines BlockPCGSolver::callFortran [private]

Definition at line 58 of file BlockPCGSolver.h.

Referenced by Solve().

const Epetra_LAPACK BlockPCGSolver::callLAPACK [private]

Definition at line 57 of file BlockPCGSolver.h.

Referenced by Solve().

int BlockPCGSolver::iterMax [private]

Definition at line 70 of file BlockPCGSolver.h.

Referenced by ApplyInverse(), setIterMax(), and Solve().

const Epetra_Operator* BlockPCGSolver::K [private]

Definition at line 60 of file BlockPCGSolver.h.

Referenced by Apply(), ApplyInverse(), OperatorDomainMap(), OperatorRangeMap(), setAMGPreconditioner(), and Solve().

int BlockPCGSolver::maxIter [mutable, private]

Definition at line 79 of file BlockPCGSolver.h.

Referenced by ApplyInverse(), getMaxIter(), and Solve().

int BlockPCGSolver::minIter [mutable, private]

Definition at line 81 of file BlockPCGSolver.h.

Referenced by ApplyInverse(), getMinIter(), and Solve().

ML_Aggregate* BlockPCGSolver::ml_agg [private]

Definition at line 65 of file BlockPCGSolver.h.

Referenced by setAMGPreconditioner(), and ~BlockPCGSolver().

ML* BlockPCGSolver::ml_handle [private]

Definition at line 64 of file BlockPCGSolver.h.

Referenced by setAMGPreconditioner(), and ~BlockPCGSolver().

bool BlockPCGSolver::mlPrec [private]

Definition at line 63 of file BlockPCGSolver.h.

Referenced by setAMGPreconditioner(), setPreconditioner(), and ~BlockPCGSolver().

const Epetra_Comm& BlockPCGSolver::MyComm [private]

Definition at line 55 of file BlockPCGSolver.h.

Referenced by Comm(), setAMGPreconditioner(), and Solve().

int BlockPCGSolver::numSolve [mutable, private]

Definition at line 78 of file BlockPCGSolver.h.

Referenced by ApplyInverse(), getAvgIter(), and Solve().

Epetra_Operator* BlockPCGSolver::Prec [private]

Definition at line 61 of file BlockPCGSolver.h.

Referenced by ApplyInverse(), getPreconditioner(), setAMGPreconditioner(), setPreconditioner(), Solve(), and ~BlockPCGSolver().

int BlockPCGSolver::sumIter [mutable, private]

Definition at line 80 of file BlockPCGSolver.h.

Referenced by ApplyInverse(), getAvgIter(), and Solve().

double BlockPCGSolver::tolCG [private]

Definition at line 69 of file BlockPCGSolver.h.

Referenced by ApplyInverse(), and Solve().

AztecOO* BlockPCGSolver::vectorPCG [mutable, private]

Definition at line 67 of file BlockPCGSolver.h.

Referenced by ApplyInverse(), and ~BlockPCGSolver().

int BlockPCGSolver::verbose [private]

Definition at line 72 of file BlockPCGSolver.h.

Referenced by ApplyInverse(), setAMGPreconditioner(), and Solve().

double* BlockPCGSolver::workSpace [mutable, private]

Definition at line 76 of file BlockPCGSolver.h.

Referenced by Solve(), and ~BlockPCGSolver().


The documentation for this class was generated from the following files:
Generated on Fri Oct 26 13:35:16 2007 for FEMAXX (Finite Element Maxwell Eigensolver) by  doxygen 1.4.7