|
pomerol
2.2
|
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.