|
pomerol
2.2
|
Hamiltonian of a quantum system. More...
#include <Hamiltonian.hpp>


Public Member Functions | |
| Hamiltonian (StatesClassification const &S) | |
| template<typename ScalarType , typename... IndexTypes> | |
| void | prepare (Operators::expression< ScalarType, IndexTypes... > const &H, HilbertSpace< IndexTypes... > const &HS, MPI_Comm const &comm=MPI_COMM_WORLD) |
| void | compute (MPI_Comm const &comm=MPI_COMM_WORLD) |
| void | reduce (RealType Cutoff) |
| bool | isComplex () const |
| Is the Hamiltonian a complex-valued matrix? More... | |
| HamiltonianPart const & | getPart (BlockNumber Block) const |
| InnerQuantumState | getBlockSize (BlockNumber Block) const |
| RealType | getEigenValue (QuantumState state) const |
| RealVectorType const & | getEigenValues (BlockNumber Block) const |
| RealVectorType | getEigenValues () const |
| RealType | getGroundEnergy () const |
Public Member Functions inherited from Pomerol::ComputableObject | |
| ComputableObject ()=default | |
| StatusEnum | getStatus () const |
| Return the current computation status. More... | |
| void | setStatus (StatusEnum Status_in) |
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... | |
Hamiltonian of a quantum system.
This class represents a Hamiltonian as a block-diagonal matrix with blocks corresponding to distinct invariant subspaces. The blocks are stored as a list of HamiltonianPart objects. The main purpose of this class is MPI-parallelized diagonalization of the entire Hamiltonian matrix.
Definition at line 43 of file Hamiltonian.hpp.
|
inlineexplicit |
Constructor.
| [in] | S | Information about invariant subspaces of the Hamiltonian. |
Definition at line 60 of file Hamiltonian.hpp.
| void Pomerol::Hamiltonian::compute | ( | MPI_Comm const & | comm = MPI_COMM_WORLD | ) |
Diagonalize matrices of all diagonal blocks in parallel.
| [in] | comm | MPI communicator used to parallelize the computation. |
| InnerQuantumState Pomerol::Hamiltonian::getBlockSize | ( | BlockNumber | Block | ) | const |
Return size of a part (dimension of a diagonal block).
| [in] | Block | Index of the diagonal block. |
| RealType Pomerol::Hamiltonian::getEigenValue | ( | QuantumState | state | ) | const |
Return a single eigenvalue of the Hamiltonian.
| [in] | state | Index of the eigenvalue within the full diagonalized matrix of the Hamiltonian. |
| RealVectorType Pomerol::Hamiltonian::getEigenValues | ( | ) | const |
Return a list of all eigenvalues of the Hamiltonian.
| RealVectorType const& Pomerol::Hamiltonian::getEigenValues | ( | BlockNumber | Block | ) | const |
Return a list of eigenvalues of the Hamiltonian within a block.
| [in] | Block | Index of the diagonal block. |
|
inline |
Return the ground state energy.
Definition at line 113 of file Hamiltonian.hpp.
|
inline |
Access a part (diagonal block) of the Hamiltonian.
| [in] | Block | Index of the diagonal block. |
Definition at line 90 of file Hamiltonian.hpp.
|
inline |
Is the Hamiltonian a complex-valued matrix?
Definition at line 85 of file Hamiltonian.hpp.
| void Pomerol::Hamiltonian::reduce | ( | RealType | Cutoff | ) |
Discard all eigenvalues exceeding a given cutoff and truncate the size of all diagonalized blocks accordingly.
| [in] | Cutoff | Maximum allowed excitation energy (energy level calculated w.r.t. the ground state energy). |