#include <KnyazevLOBPCG.h>
Inheritance diagram for KnyazevLOBPCG:
Public Member Functions | |
KnyazevLOBPCG (const Epetra_Comm &_Comm, const Epetra_Operator *KK, const Epetra_Operator *PP, double _tol=1.0e-08, int _maxIter=100, int _verb=0) | |
KnyazevLOBPCG (const Epetra_Comm &_Comm, const Epetra_Operator *KK, const Epetra_Operator *MM, const Epetra_Operator *PP, Projector *YHCP, double _tol=1.0e-08, int _maxIter=100, int _verb=0, double *_weight=0) | |
~KnyazevLOBPCG () | |
int | solve (int numEigen, Epetra_MultiVector &Q, double *lambda) |
int | minimumSpaceDimension (int nev) const |
void | initializeCounters () |
void | algorithmInfo () const |
void | historyInfo () const |
void | memoryInfo () const |
void | operationInfo () const |
void | timeInfo () const |
Private Member Functions | |
void | accuracyCheck (const Epetra_MultiVector *X, const Epetra_MultiVector *MX, const Epetra_MultiVector *R) const |
Private Attributes | |
const CheckingTools | myVerify |
const Epetra_BLAS | callBLAS |
const FortranRoutines | callFortran |
ModalTools | modalTool |
const SortingTools | mySort |
const Epetra_Comm & | MyComm |
const Epetra_Operator * | K |
const Epetra_Operator * | M |
const Epetra_Operator * | Prec |
Projector * | YHC |
const Epetra_Time | MyWatch |
double | tolEigenSolve |
int | maxIterEigenSolve |
int | blockSize |
double * | normWeight |
int | verbose |
int | historyCount |
double * | resHistory |
double | memRequested |
double | highMem |
int | massOp |
int | numRestart |
int | outerIter |
int | precOp |
int | residual |
int | stifOp |
double | timeLocalProj |
double | timeLocalSolve |
double | timeLocalUpdate |
double | timeMassOp |
double | timeNorm |
double | timeOuterLoop |
double | timePostProce |
double | timePrecOp |
double | timeResidual |
double | timeStifOp |
Definition at line 47 of file KnyazevLOBPCG.h.
KnyazevLOBPCG::KnyazevLOBPCG | ( | const Epetra_Comm & | _Comm, | |
const Epetra_Operator * | KK, | |||
const Epetra_Operator * | PP, | |||
double | _tol = 1.0e-08 , |
|||
int | _maxIter = 100 , |
|||
int | _verb = 0 | |||
) |
Definition at line 32 of file KnyazevLOBPCG.cpp.
KnyazevLOBPCG::KnyazevLOBPCG | ( | const Epetra_Comm & | _Comm, | |
const Epetra_Operator * | KK, | |||
const Epetra_Operator * | MM, | |||
const Epetra_Operator * | PP, | |||
Projector * | YHCP, | |||
double | _tol = 1.0e-08 , |
|||
int | _maxIter = 100 , |
|||
int | _verb = 0 , |
|||
double * | _weight = 0 | |||
) |
Definition at line 75 of file KnyazevLOBPCG.cpp.
KnyazevLOBPCG::~KnyazevLOBPCG | ( | ) |
void KnyazevLOBPCG::accuracyCheck | ( | const Epetra_MultiVector * | X, | |
const Epetra_MultiVector * | MX, | |||
const Epetra_MultiVector * | R | |||
) | const [private] |
Definition at line 725 of file KnyazevLOBPCG.cpp.
References CheckingTools::errorEquality(), CheckingTools::errorOrthogonality(), CheckingTools::errorOrthonormality(), M, MyComm, and myVerify.
Referenced by solve().
Here is the call graph for this function:
void KnyazevLOBPCG::algorithmInfo | ( | ) | const [virtual] |
void KnyazevLOBPCG::historyInfo | ( | ) | const [virtual] |
Reimplemented from ModalAnalysisSolver.
Definition at line 806 of file KnyazevLOBPCG.cpp.
References blockSize, historyCount, and resHistory.
void KnyazevLOBPCG::initializeCounters | ( | ) | [virtual] |
Reimplemented from ModalAnalysisSolver.
Definition at line 761 of file KnyazevLOBPCG.cpp.
References highMem, historyCount, massOp, memRequested, numRestart, outerIter, precOp, resHistory, residual, stifOp, timeLocalProj, timeLocalSolve, timeLocalUpdate, timeMassOp, timeNorm, timeOuterLoop, timePostProce, timePrecOp, timeResidual, and timeStifOp.
void KnyazevLOBPCG::memoryInfo | ( | ) | const [virtual] |
Reimplemented from ModalAnalysisSolver.
Definition at line 825 of file KnyazevLOBPCG.cpp.
References highMem, memRequested, and MyComm.
int KnyazevLOBPCG::minimumSpaceDimension | ( | int | nev | ) | const [inline, virtual] |
void KnyazevLOBPCG::operationInfo | ( | ) | const [virtual] |
Reimplemented from ModalAnalysisSolver.
Definition at line 853 of file KnyazevLOBPCG.cpp.
References massOp, MyComm, numRestart, outerIter, precOp, residual, and stifOp.
int KnyazevLOBPCG::solve | ( | int | numEigen, | |
Epetra_MultiVector & | Q, | |||
double * | lambda | |||
) | [virtual] |
Implements ModalAnalysisSolver.
Definition at line 131 of file KnyazevLOBPCG.cpp.
References accuracyCheck(), Projector::Apply(), blockSize, callBLAS, callFortran, currentSize(), ModalTools::directSolver(), highMem, historyCount, CheckingTools::inputArguments(), K, ModalTools::localProjection(), M, massOp, maxIterEigenSolve, memRequested, modalTool, MyComm, mySort, myVerify, MyWatch, normWeight, numRestart, outerIter, PI, Prec, precOp, resHistory, residual, SortingTools::sortScalars_Vectors(), stifOp, FortranRoutines::SWAP(), timeLocalProj, timeLocalSolve, timeLocalUpdate, timeMassOp, timeNorm, timeOuterLoop, timePostProce, timePrecOp, timeResidual, timeStifOp, tolEigenSolve, verbose, and YHC.
Here is the call graph for this function:
void KnyazevLOBPCG::timeInfo | ( | ) | const [virtual] |
Reimplemented from ModalAnalysisSolver.
Definition at line 884 of file KnyazevLOBPCG.cpp.
References MyComm, timeLocalProj, timeLocalSolve, timeLocalUpdate, timeMassOp, timeNorm, timeOuterLoop, timePostProce, timePrecOp, timeResidual, and timeStifOp.
int KnyazevLOBPCG::blockSize [private] |
Definition at line 67 of file KnyazevLOBPCG.h.
Referenced by algorithmInfo(), historyInfo(), and solve().
const Epetra_BLAS KnyazevLOBPCG::callBLAS [private] |
const FortranRoutines KnyazevLOBPCG::callFortran [private] |
double KnyazevLOBPCG::highMem [private] |
Definition at line 77 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), memoryInfo(), and solve().
int KnyazevLOBPCG::historyCount [private] |
Definition at line 73 of file KnyazevLOBPCG.h.
Referenced by historyInfo(), initializeCounters(), and solve().
const Epetra_Operator* KnyazevLOBPCG::K [private] |
const Epetra_Operator* KnyazevLOBPCG::M [private] |
int KnyazevLOBPCG::massOp [private] |
Definition at line 79 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), operationInfo(), and solve().
int KnyazevLOBPCG::maxIterEigenSolve [private] |
double KnyazevLOBPCG::memRequested [private] |
Definition at line 76 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), memoryInfo(), and solve().
ModalTools KnyazevLOBPCG::modalTool [private] |
const Epetra_Comm& KnyazevLOBPCG::MyComm [private] |
Definition at line 57 of file KnyazevLOBPCG.h.
Referenced by accuracyCheck(), algorithmInfo(), memoryInfo(), operationInfo(), solve(), and timeInfo().
const SortingTools KnyazevLOBPCG::mySort [private] |
const CheckingTools KnyazevLOBPCG::myVerify [private] |
const Epetra_Time KnyazevLOBPCG::MyWatch [private] |
double* KnyazevLOBPCG::normWeight [private] |
int KnyazevLOBPCG::numRestart [private] |
Definition at line 80 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), operationInfo(), and solve().
int KnyazevLOBPCG::outerIter [private] |
Definition at line 81 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), operationInfo(), and solve().
const Epetra_Operator* KnyazevLOBPCG::Prec [private] |
int KnyazevLOBPCG::precOp [private] |
Definition at line 82 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), operationInfo(), and solve().
double* KnyazevLOBPCG::resHistory [private] |
Definition at line 74 of file KnyazevLOBPCG.h.
Referenced by historyInfo(), initializeCounters(), solve(), and ~KnyazevLOBPCG().
int KnyazevLOBPCG::residual [private] |
Definition at line 83 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), operationInfo(), and solve().
int KnyazevLOBPCG::stifOp [private] |
Definition at line 84 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), operationInfo(), and solve().
double KnyazevLOBPCG::timeLocalProj [private] |
Definition at line 86 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double KnyazevLOBPCG::timeLocalSolve [private] |
Definition at line 87 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double KnyazevLOBPCG::timeLocalUpdate [private] |
Definition at line 88 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double KnyazevLOBPCG::timeMassOp [private] |
Definition at line 89 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double KnyazevLOBPCG::timeNorm [private] |
Definition at line 90 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double KnyazevLOBPCG::timeOuterLoop [private] |
Definition at line 91 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double KnyazevLOBPCG::timePostProce [private] |
Definition at line 92 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double KnyazevLOBPCG::timePrecOp [private] |
Definition at line 93 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double KnyazevLOBPCG::timeResidual [private] |
Definition at line 94 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double KnyazevLOBPCG::timeStifOp [private] |
Definition at line 95 of file KnyazevLOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double KnyazevLOBPCG::tolEigenSolve [private] |
int KnyazevLOBPCG::verbose [private] |
Projector* KnyazevLOBPCG::YHC [private] |