pomerol
2.1
|
Part of a Hamiltonian of a quantum system. More...
#include <HamiltonianPart.hpp>
Public Member Functions | |
template<typename ScalarType > | |
HamiltonianPart (LOperatorType< ScalarType > const &HOp, StatesClassification const &S, BlockNumber Block) | |
void | prepare () |
Fill the matrix with elements. More... | |
void | compute () |
bool | reduce (RealType Cutoff) |
bool | isComplex () const |
Is this object storing a complex-valued matrix? More... | |
BlockNumber | getBlockNumber () const |
Return the index of the block (invariant subspace) this part corresponds to. More... | |
InnerQuantumState | getSize () const |
Return dimension of the respective invariant subspace. More... | |
RealVectorType const & | getEigenValues () const |
RealType | getEigenValue (InnerQuantumState State) const |
template<bool Complex> | |
MatrixType< Complex > const & | getMatrix () const |
template<bool Complex> | |
MatrixType< Complex > & | getMatrix () |
RealType | getMinimumEigenvalue () const |
template<bool Complex> | |
VectorType< Complex > | getEigenState (InnerQuantumState State) const |
Public Member Functions inherited from Pomerol::ComputableObject | |
ComputableObject ()=default | |
StatusEnum | getStatus () const |
Return the current computation status. More... | |
void | setStatus (StatusEnum Status_in) |
Friends | |
class | Hamiltonian |
std::ostream & | operator<< (std::ostream &os, HamiltonianPart const &part) |
Additional Inherited Members | |
Public Types inherited from Pomerol::ComputableObject | |
enum | StatusEnum { Constructed, Prepared, Computed } |
Computation status of the object. More... | |
Protected Attributes inherited from Pomerol::ComputableObject | |
StatusEnum | Status = Constructed |
Current computation status. More... | |
Part of a Hamiltonian of a quantum system.
This class stores and diagonalizes a single block of the Hamiltonian matrix, which corresponds to a single invariant subspace of the Hamiltonian.
Definition at line 40 of file HamiltonianPart.hpp.
|
inline |
Constructor.
ScalarType | Scalar type (either double or std::complex<double>) of the linear operator HOp . |
[in] | HOp | The linear operator object corresponding to the Hamiltonian. |
[in] | S | Information about invariant subspaces of the Hamiltonian. |
[in] | Block | Index of the block (invariant subspace) this part corresponds to. |
Definition at line 69 of file HamiltonianPart.hpp.
void Pomerol::HamiltonianPart::compute | ( | ) |
Diagonalize the matrix.
|
inline |
Return the index of the block (invariant subspace) this part corresponds to.
Definition at line 89 of file HamiltonianPart.hpp.
VectorType<Complex> Pomerol::HamiltonianPart::getEigenState | ( | InnerQuantumState | State | ) | const |
Return a single eigenstate.
Complex | Request a reference to a complex-valued eigenvector. |
[in] | State | Index of the eigenstate. |
Complex
must agree with the result of isComplex(). RealType Pomerol::HamiltonianPart::getEigenValue | ( | InnerQuantumState | State | ) | const |
Access a single eigenvalue.
[in] | State | Index of the eigenvalue. |
RealVectorType const& Pomerol::HamiltonianPart::getEigenValues | ( | ) | const |
Access eigenvalues of the matrix.
MatrixType<Complex>& Pomerol::HamiltonianPart::getMatrix | ( | ) |
Return a reference to the stored matrix.
Complex | Request a reference to a complex-valued matrix. |
Complex
must agree with the result of isComplex(). MatrixType<Complex> const& Pomerol::HamiltonianPart::getMatrix | ( | ) | const |
Return a constant reference to the stored matrix.
Complex | Request a reference to a complex-valued matrix. |
Complex
must agree with the result of isComplex(). RealType Pomerol::HamiltonianPart::getMinimumEigenvalue | ( | ) | const |
Return the lowest eigenvalue.
InnerQuantumState Pomerol::HamiltonianPart::getSize | ( | ) | const |
Return dimension of the respective invariant subspace.
|
inline |
Is this object storing a complex-valued matrix?
Definition at line 86 of file HamiltonianPart.hpp.
void Pomerol::HamiltonianPart::prepare | ( | ) |
Fill the matrix with elements.
bool Pomerol::HamiltonianPart::reduce | ( | RealType | Cutoff | ) |
Discard all eigenvalues exceeding a given cutoff and truncate the size of the diagonalized matrix accordingly.
[in] | Cutoff | Maximum allowed value of the energy. |
|
friend |
Definition at line 60 of file HamiltonianPart.hpp.
|
friend |
Output stream insertion operator.
[out] | os | Output stream. |
[in] | part | HamiltonianPart to be inserted. |
Definition at line 128 of file HamiltonianPart.hpp.