#include <LOBPCG.h>
Inheritance diagram for LOBPCG:
Public Member Functions | |
LOBPCG (const Epetra_Comm &_Comm, const Epetra_Operator *KK, const Epetra_Operator *PP, Projector *YHCP, int _blk, double _tol=1.0e-08, int _maxIter=100, int _verb=0) | |
LOBPCG (const Epetra_Comm &_Comm, const Epetra_Operator *KK, const Epetra_Operator *MM, const Epetra_Operator *PP, Projector *YHCP, int _blk, double _tol=1.0e-08, int _maxIter=100, int _verb=0, double *_weight=0) | |
~LOBPCG () | |
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 Epetra_MultiVector *Q, const Epetra_MultiVector *H, const Epetra_MultiVector *P) const |
LOBPCG (const LOBPCG &ref) | |
LOBPCG & | operator= (const LOBPCG &ref) |
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 | timeOrtho |
double | timeOuterLoop |
double | timePostProce |
double | timePrecOp |
double | timeResidual |
double | timeRestart |
double | timeStifOp |
Definition at line 47 of file LOBPCG.h.
LOBPCG::LOBPCG | ( | const LOBPCG & | ref | ) | [private] |
LOBPCG::LOBPCG | ( | const Epetra_Comm & | _Comm, | |
const Epetra_Operator * | KK, | |||
const Epetra_Operator * | PP, | |||
Projector * | YHCP, | |||
int | _blk, | |||
double | _tol = 1.0e-08 , |
|||
int | _maxIter = 100 , |
|||
int | _verb = 0 | |||
) |
Definition at line 32 of file LOBPCG.cpp.
LOBPCG::LOBPCG | ( | const Epetra_Comm & | _Comm, | |
const Epetra_Operator * | KK, | |||
const Epetra_Operator * | MM, | |||
const Epetra_Operator * | PP, | |||
Projector * | YHCP, | |||
int | _blk, | |||
double | _tol = 1.0e-08 , |
|||
int | _maxIter = 100 , |
|||
int | _verb = 0 , |
|||
double * | _weight = 0 | |||
) |
Definition at line 78 of file LOBPCG.cpp.
LOBPCG::~LOBPCG | ( | ) |
void LOBPCG::accuracyCheck | ( | const Epetra_MultiVector * | X, | |
const Epetra_MultiVector * | MX, | |||
const Epetra_MultiVector * | R, | |||
const Epetra_MultiVector * | Q, | |||
const Epetra_MultiVector * | H, | |||
const Epetra_MultiVector * | P | |||
) | const [private] |
Definition at line 820 of file LOBPCG.cpp.
References CheckingTools::errorEquality(), CheckingTools::errorOrthogonality(), CheckingTools::errorOrthonormality(), M, MyComm, and myVerify.
Referenced by solve().
Here is the call graph for this function:
void LOBPCG::algorithmInfo | ( | ) | const [virtual] |
void LOBPCG::historyInfo | ( | ) | const [virtual] |
Reimplemented from ModalAnalysisSolver.
Definition at line 948 of file LOBPCG.cpp.
References blockSize, historyCount, and resHistory.
void LOBPCG::initializeCounters | ( | ) | [virtual] |
Reimplemented from ModalAnalysisSolver.
Definition at line 901 of file LOBPCG.cpp.
References highMem, historyCount, massOp, memRequested, numRestart, outerIter, precOp, resHistory, residual, stifOp, timeLocalProj, timeLocalSolve, timeLocalUpdate, timeMassOp, timeNorm, timeOrtho, timeOuterLoop, timePostProce, timePrecOp, timeResidual, timeRestart, and timeStifOp.
void LOBPCG::memoryInfo | ( | ) | const [virtual] |
Reimplemented from ModalAnalysisSolver.
Definition at line 969 of file LOBPCG.cpp.
References highMem, memRequested, and MyComm.
int LOBPCG::minimumSpaceDimension | ( | int | nev | ) | const [inline, virtual] |
Implements ModalAnalysisSolver.
Definition at line 122 of file LOBPCG.h.
References blockSize.
Referenced by solve().
void LOBPCG::operationInfo | ( | ) | const [virtual] |
Reimplemented from ModalAnalysisSolver.
Definition at line 997 of file LOBPCG.cpp.
References ModalTools::getNumNorm_MassMult(), ModalTools::getNumProj_MassMult(), massOp, modalTool, MyComm, numRestart, outerIter, precOp, residual, and stifOp.
Here is the call graph for this function:
int LOBPCG::solve | ( | int | numEigen, | |
Epetra_MultiVector & | Q, | |||
double * | lambda | |||
) | [virtual] |
Implements ModalAnalysisSolver.
Definition at line 135 of file LOBPCG.cpp.
References accuracyCheck(), Projector::Apply(), blockSize, callBLAS, callFortran, currentSize(), ModalTools::directSolver(), highMem, historyCount, CheckingTools::inputArguments(), K, ModalTools::localProjection(), M, massOp, ModalTools::massOrthonormalize(), maxIterEigenSolve, memRequested, minimumSpaceDimension(), modalTool, MyComm, mySort, myVerify, MyWatch, normWeight, numRestart, outerIter, Prec, precOp, resHistory, SortingTools::sortScalars_Vectors(), stifOp, FortranRoutines::SWAP(), timeLocalProj, timeLocalSolve, timeLocalUpdate, timeMassOp, timeNorm, timeOrtho, timeOuterLoop, timePostProce, timePrecOp, timeResidual, timeRestart, timeStifOp, tolEigenSolve, verbose, and YHC.
Here is the call graph for this function:
void LOBPCG::timeInfo | ( | ) | const [virtual] |
Reimplemented from ModalAnalysisSolver.
Definition at line 1037 of file LOBPCG.cpp.
References ModalTools::getTimeNorm(), ModalTools::getTimeNorm_MassMult(), ModalTools::getTimeProj(), ModalTools::getTimeProj_MassMult(), ModalTools::getTimeProj_QMult(), ModalTools::getTimeProj_QtMult(), modalTool, MyComm, timeLocalProj, timeLocalSolve, timeLocalUpdate, timeMassOp, timeNorm, timeOrtho, timeOuterLoop, timePostProce, timePrecOp, timeResidual, timeRestart, and timeStifOp.
Here is the call graph for this function:
int LOBPCG::blockSize [private] |
Definition at line 67 of file LOBPCG.h.
Referenced by algorithmInfo(), historyInfo(), minimumSpaceDimension(), and solve().
const Epetra_BLAS LOBPCG::callBLAS [private] |
const FortranRoutines LOBPCG::callFortran [private] |
double LOBPCG::highMem [private] |
Definition at line 77 of file LOBPCG.h.
Referenced by initializeCounters(), memoryInfo(), and solve().
int LOBPCG::historyCount [private] |
Definition at line 73 of file LOBPCG.h.
Referenced by historyInfo(), initializeCounters(), and solve().
const Epetra_Operator* LOBPCG::K [private] |
const Epetra_Operator* LOBPCG::M [private] |
int LOBPCG::massOp [private] |
Definition at line 79 of file LOBPCG.h.
Referenced by initializeCounters(), operationInfo(), and solve().
int LOBPCG::maxIterEigenSolve [private] |
double LOBPCG::memRequested [private] |
Definition at line 76 of file LOBPCG.h.
Referenced by initializeCounters(), memoryInfo(), and solve().
ModalTools LOBPCG::modalTool [private] |
const Epetra_Comm& LOBPCG::MyComm [private] |
Definition at line 57 of file LOBPCG.h.
Referenced by accuracyCheck(), algorithmInfo(), memoryInfo(), operationInfo(), solve(), and timeInfo().
const SortingTools LOBPCG::mySort [private] |
const CheckingTools LOBPCG::myVerify [private] |
const Epetra_Time LOBPCG::MyWatch [private] |
double* LOBPCG::normWeight [private] |
int LOBPCG::numRestart [private] |
Definition at line 80 of file LOBPCG.h.
Referenced by initializeCounters(), operationInfo(), and solve().
int LOBPCG::outerIter [private] |
Definition at line 81 of file LOBPCG.h.
Referenced by initializeCounters(), operationInfo(), and solve().
const Epetra_Operator* LOBPCG::Prec [private] |
int LOBPCG::precOp [private] |
Definition at line 82 of file LOBPCG.h.
Referenced by initializeCounters(), operationInfo(), and solve().
double* LOBPCG::resHistory [private] |
Definition at line 74 of file LOBPCG.h.
Referenced by historyInfo(), initializeCounters(), solve(), and ~LOBPCG().
int LOBPCG::residual [private] |
int LOBPCG::stifOp [private] |
Definition at line 84 of file LOBPCG.h.
Referenced by initializeCounters(), operationInfo(), and solve().
double LOBPCG::timeLocalProj [private] |
Definition at line 86 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::timeLocalSolve [private] |
Definition at line 87 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::timeLocalUpdate [private] |
Definition at line 88 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::timeMassOp [private] |
Definition at line 89 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::timeNorm [private] |
Definition at line 90 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::timeOrtho [private] |
Definition at line 91 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::timeOuterLoop [private] |
Definition at line 92 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::timePostProce [private] |
Definition at line 93 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::timePrecOp [private] |
Definition at line 94 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::timeResidual [private] |
Definition at line 95 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::timeRestart [private] |
Definition at line 96 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::timeStifOp [private] |
Definition at line 97 of file LOBPCG.h.
Referenced by initializeCounters(), solve(), and timeInfo().
double LOBPCG::tolEigenSolve [private] |
int LOBPCG::verbose [private] |
Projector* LOBPCG::YHC [private] |