23 #ifndef COM_DAFER45_SOLVER_ARNOLDI_ITERATOR
24 #define COM_DAFER45_SOLVER_ARNOLDI_ITERATOR
74 enum class Mode {Normal, ShiftAndInvert};
171 bool calculateEigenVectors;
175 int numLanczosVectors;
209 void initShiftAndInvert();
215 void checkZnaupdInfo(
int info)
const;
218 bool executeReverseCommunicationMessage(
227 bool executeReverseCommunicationMessage(
230 std::complex<double> *workd,
232 Matrix<std::complex<double>> &b
235 void checkZneupdIerr(
int ierr)
const;
243 std::complex<double> *dataIn,
244 std::complex<double> *dataOut,
253 std::complex<double> *dataIn,
254 std::complex<double> *dataOut,
272 this->numEigenValues = numEigenValues;
276 return numEigenValues;
280 this->calculateEigenVectors = calculateEigenVectors;
284 return calculateEigenVectors;
288 this->numLanczosVectors = numLanczosVectors;
292 return numLanczosVectors;
296 this->tolerance = tolerance;
300 this->maxIterations = maxIterations;
304 shift = centralValue;
312 return real(eigenValues[state]);
Solves Mx = b for x, where M is a SparseMatrix.
Definition: LUSolver.h:37
const CArray< std::complex< double > > & getEigenValues() const
Definition: ArnoldiIterator.h:307
Container of Model related information.
Definition: Model.h:57
Container of Model related information.
void setMaxIterations(int maxIterations)
Definition: ArnoldiIterator.h:299
Definition: SparseMatrix.h:35
int getBasisSize() const
Definition: Model.h:311
Container for a C style array.
Definition: CArray.h:44
Mode
Definition: ArnoldiIterator.h:74
void setMode(Mode mode)
Definition: ArnoldiIterator.h:263
Solves a Model using Arnoldi iteration.
Definition: ArnoldiIterator.h:60
int getBasisIndex(const Index &index) const
Definition: Model.h:331
const std::complex< double > getAmplitude(int state, const Index &index)
Definition: ArnoldiIterator.h:315
void setCentralValue(double centralValue)
Definition: ArnoldiIterator.h:303
int getNumEigenValues() const
Definition: ArnoldiIterator.h:275
bool getCalculateEigenVectors() const
Definition: ArnoldiIterator.h:283
void setCalculateEigenVectors(bool calculateEigenVectors)
Definition: ArnoldiIterator.h:279
void setTolerance(double tolerance)
Definition: ArnoldiIterator.h:295
void setNumLanczosVectors(int numLanczosVectors)
Definition: ArnoldiIterator.h:287
Solves Mx = b for x, where M is a SparseMatrix.
int getNumLanczosVectors() const
Definition: ArnoldiIterator.h:291
const double getEigenValue(int state) const
Definition: ArnoldiIterator.h:311
void setNumEigenValues(int numEigenValues)
Definition: ArnoldiIterator.h:271
Base class for classes that can communicate their status during execution.
Definition: Communicator.h:56
Mode getMode() const
Definition: ArnoldiIterator.h:267
Model & getModel()
Definition: Solver.h:73
Base class for Solvers.
Definition: Solver.h:42
Container for a C style array.
Physical index.
Definition: Index.h:44