![]() |
pairinteraction
A Rydberg Interaction Calculator
|
Base class for a basis. More...
#include <Basis.hpp>
Data Structures | |
class | Iterator |
Public Types | |
using | scalar_t = typename traits::CrtpTraits< Derived >::scalar_t |
using | real_t = typename traits::CrtpTraits< Derived >::real_t |
using | ket_t = typename traits::CrtpTraits< Derived >::ket_t |
using | ketvec_t = typename traits::CrtpTraits< Derived >::ketvec_t |
![]() | |
using | real_t = typename traits::NumTraits< traits::CrtpTraits< Derived >::scalar_t >::real_t |
Public Member Functions | |
Basis ()=delete | |
virtual | ~Basis ()=default |
bool | has_quantum_number_f () const |
bool | has_quantum_number_m () const |
bool | has_parity () const |
const ketvec_t & | get_kets () const |
size_t | get_number_of_states () const |
size_t | get_number_of_kets () const |
real_t | get_quantum_number_f (size_t state_index) const |
real_t | get_quantum_number_m (size_t state_index) const |
Parity | get_parity (size_t state_index) const |
std::shared_ptr< const Derived > | get_state (size_t state_index) const |
std::shared_ptr< const ket_t > | get_ket (size_t ket_index) const |
std::shared_ptr< const ket_t > | get_corresponding_ket (size_t state_index) const |
std::shared_ptr< const ket_t > | get_corresponding_ket (std::shared_ptr< const Derived > state) const |
size_t | get_corresponding_ket_index (size_t state_index) const |
size_t | get_corresponding_ket_index (std::shared_ptr< const Derived > state) const |
std::shared_ptr< const Derived > | get_corresponding_state (size_t ket_index) const |
std::shared_ptr< const Derived > | get_corresponding_state (std::shared_ptr< const ket_t > ket) const |
size_t | get_corresponding_state_index (size_t ket_index) const |
size_t | get_corresponding_state_index (std::shared_ptr< const ket_t > ket) const |
std::shared_ptr< const Derived > | get_canonical_state_from_ket (size_t ket_index) const |
std::shared_ptr< const Derived > | get_canonical_state_from_ket (std::shared_ptr< const ket_t > ket) const |
const Eigen::SparseMatrix< scalar_t, Eigen::RowMajor > & | get_coefficients () const |
Eigen::SparseMatrix< scalar_t, Eigen::RowMajor > & | get_coefficients () |
Eigen::VectorX< scalar_t > | get_amplitudes (std::shared_ptr< const ket_t > ket) const |
Eigen::SparseMatrix< scalar_t, Eigen::RowMajor > | get_amplitudes (std::shared_ptr< const Derived > other) const |
Eigen::VectorX< real_t > | get_overlaps (std::shared_ptr< const ket_t > ket) const |
Eigen::SparseMatrix< real_t, Eigen::RowMajor > | get_overlaps (std::shared_ptr< const Derived > other) const |
virtual Eigen::VectorX< scalar_t > | get_matrix_elements (std::shared_ptr< const ket_t > ket, OperatorType type, int q=0) const =0 |
virtual Eigen::SparseMatrix< scalar_t, Eigen::RowMajor > | get_matrix_elements (std::shared_ptr< const Derived > other, OperatorType type, int q=0) const =0 |
Iterator | begin () const |
Iterator | end () const |
const Transformation< scalar_t > & | get_transformation () const override |
Transformation< scalar_t > | get_rotator (real_t alpha, real_t beta, real_t gamma) const override |
Sorting | get_sorter (const std::vector< TransformationType > &labels) const override |
std::vector< IndicesOfBlock > | get_indices_of_blocks (const std::vector< TransformationType > &labels) const override |
void | perform_sorter_checks (const std::vector< TransformationType > &labels) const |
void | perform_blocks_checks (const std::set< TransformationType > &unique_labels) const |
void | get_sorter_without_checks (const std::vector< TransformationType > &labels, Sorting &transformation) const |
void | get_indices_of_blocks_without_checks (const std::set< TransformationType > &unique_labels, IndicesOfBlocksCreator &blocks) const |
std::shared_ptr< const Derived > | transformed (const Transformation< scalar_t > &transformation) const |
std::shared_ptr< const Derived > | transformed (const Sorting &transformation) const |
![]() | |
virtual | ~TransformationBuilderInterface ()=default |
virtual const Transformation< traits::CrtpTraits< Derived >::scalar_t > & | get_transformation () const=0 |
virtual Transformation< traits::CrtpTraits< Derived >::scalar_t > | get_rotator (real_t alpha, real_t beta, real_t gamma) const=0 |
Transformation< traits::CrtpTraits< Derived >::scalar_t > | get_rotator (const std::array< real_t, 3 > &to_z_axis, const std::array< real_t, 3 > &to_y_axis) const |
virtual Sorting | get_sorter (const std::vector< TransformationType > &labels) const=0 |
virtual std::vector< IndicesOfBlock > | get_indices_of_blocks (const std::vector< TransformationType > &labels) const=0 |
Protected Member Functions | |
Basis (ketvec_t &&kets) | |
int | get_ket_index_from_ket (std::shared_ptr< const ket_t > ket) const |
Protected Attributes | |
ketvec_t | kets |
Base class for a basis.
This base class represents a basis. It comprises a list of ket states and a matrix of coefficients. The rows of the coefficient matrix correspond to indices of ket states and the columns to indices of basis vectors. Using CRPT, it is a base class for specific basis implementations. Its constructor is protected to indicate that derived classes should not allow direct instantiation. Instead, a factory class should be provided that is a friend of the derived class and can create instances of it.
Derived | Derived class. |
using pairinteraction::Basis< Derived >::ket_t = typename traits::CrtpTraits<Derived>::ket_t |
using pairinteraction::Basis< Derived >::ketvec_t = typename traits::CrtpTraits<Derived>::ketvec_t |
using pairinteraction::Basis< Derived >::real_t = typename traits::CrtpTraits<Derived>::real_t |
using pairinteraction::Basis< Derived >::scalar_t = typename traits::CrtpTraits<Derived>::scalar_t |
|
delete |
|
virtualdefault |
|
protected |
Basis< Derived >::Iterator pairinteraction::Basis< Derived >::begin |
Definition at line 335 of file Basis.cpp.
References pairinteraction::Basis< Derived >::begin().
Referenced by pairinteraction::Basis< Derived >::begin().
Basis< Derived >::Iterator pairinteraction::Basis< Derived >::end |
Definition at line 340 of file Basis.cpp.
References pairinteraction::Basis< Derived >::end().
Referenced by pairinteraction::Basis< Derived >::end().
Eigen::SparseMatrix< typename Basis< Derived >::scalar_t, Eigen::RowMajor > pairinteraction::Basis< Derived >::get_amplitudes | ( | std::shared_ptr< const Derived > | other | ) | const |
Definition at line 152 of file Basis.cpp.
References pairinteraction::Transformation< Scalar >::matrix.
Eigen::VectorX< typename Basis< Derived >::scalar_t > pairinteraction::Basis< Derived >::get_amplitudes | ( | std::shared_ptr< const ket_t > | ket | ) | const |
std::shared_ptr< const Derived > pairinteraction::Basis< Derived >::get_canonical_state_from_ket | ( | size_t | ket_index | ) | const |
Definition at line 296 of file Basis.cpp.
Referenced by pairinteraction::BasisPair< Scalar >::get_matrix_elements().
std::shared_ptr< const Derived > pairinteraction::Basis< Derived >::get_canonical_state_from_ket | ( | std::shared_ptr< const ket_t > | ket | ) | const |
Eigen::SparseMatrix< typename Basis< Derived >::scalar_t, Eigen::RowMajor > & pairinteraction::Basis< Derived >::get_coefficients |
const Eigen::SparseMatrix< typename Basis< Derived >::scalar_t, Eigen::RowMajor > & pairinteraction::Basis< Derived >::get_coefficients |
std::shared_ptr< const typename Basis< Derived >::ket_t > pairinteraction::Basis< Derived >::get_corresponding_ket | ( | size_t | state_index | ) | const |
std::shared_ptr< const typename Basis< Derived >::ket_t > pairinteraction::Basis< Derived >::get_corresponding_ket | ( | std::shared_ptr< const Derived > | state | ) | const |
size_t pairinteraction::Basis< Derived >::get_corresponding_ket_index | ( | size_t | state_index | ) | const |
size_t pairinteraction::Basis< Derived >::get_corresponding_ket_index | ( | std::shared_ptr< const Derived > | state | ) | const |
std::shared_ptr< const Derived > pairinteraction::Basis< Derived >::get_corresponding_state | ( | size_t | ket_index | ) | const |
std::shared_ptr< const Derived > pairinteraction::Basis< Derived >::get_corresponding_state | ( | std::shared_ptr< const ket_t > | ket | ) | const |
size_t pairinteraction::Basis< Derived >::get_corresponding_state_index | ( | size_t | ket_index | ) | const |
size_t pairinteraction::Basis< Derived >::get_corresponding_state_index | ( | std::shared_ptr< const ket_t > | ket | ) | const |
|
overridevirtual |
Implements pairinteraction::TransformationBuilderInterface< traits::CrtpTraits< Derived >::scalar_t >.
Definition at line 440 of file Basis.cpp.
References pairinteraction::Basis< Derived >::get_indices_of_blocks_without_checks(), pairinteraction::Transformation< Scalar >::matrix, pairinteraction::Basis< Derived >::perform_blocks_checks(), and pairinteraction::Basis< Derived >::perform_sorter_checks().
void pairinteraction::Basis< Derived >::get_indices_of_blocks_without_checks | ( | const std::set< TransformationType > & | unique_labels, |
IndicesOfBlocksCreator & | blocks | ||
) | const |
Definition at line 535 of file Basis.cpp.
References pairinteraction::IndicesOfBlocksCreator::add(), pairinteraction::Transformation< Scalar >::matrix, pairinteraction::SORT_BY_KET, pairinteraction::SORT_BY_PARITY, pairinteraction::SORT_BY_QUANTUM_NUMBER_F, and pairinteraction::SORT_BY_QUANTUM_NUMBER_M.
Referenced by pairinteraction::Basis< Derived >::get_indices_of_blocks().
std::shared_ptr< const typename Basis< Derived >::ket_t > pairinteraction::Basis< Derived >::get_ket | ( | size_t | ket_index | ) | const |
|
protected |
Definition at line 131 of file Basis.cpp.
Referenced by pairinteraction::Basis< Derived >::get_rotator().
const Basis< Derived >::ketvec_t & pairinteraction::Basis< Derived >::get_kets |
|
pure virtual |
Implemented in pairinteraction::BasisAtom< Scalar >, and pairinteraction::BasisPair< Scalar >.
|
pure virtual |
Implemented in pairinteraction::BasisAtom< Scalar >, and pairinteraction::BasisPair< Scalar >.
size_t pairinteraction::Basis< Derived >::get_number_of_kets |
Definition at line 369 of file Basis.cpp.
References pairinteraction::Transformation< Scalar >::matrix.
size_t pairinteraction::Basis< Derived >::get_number_of_states |
Definition at line 364 of file Basis.cpp.
References pairinteraction::Transformation< Scalar >::matrix.
Eigen::SparseMatrix< typename Basis< Derived >::real_t, Eigen::RowMajor > pairinteraction::Basis< Derived >::get_overlaps | ( | std::shared_ptr< const Derived > | other | ) | const |
Eigen::VectorX< typename Basis< Derived >::real_t > pairinteraction::Basis< Derived >::get_overlaps | ( | std::shared_ptr< const ket_t > | ket | ) | const |
Parity pairinteraction::Basis< Derived >::get_parity | ( | size_t | state_index | ) | const |
Basis< Derived >::real_t pairinteraction::Basis< Derived >::get_quantum_number_f | ( | size_t | state_index | ) | const |
Basis< Derived >::real_t pairinteraction::Basis< Derived >::get_quantum_number_m | ( | size_t | state_index | ) | const |
|
override |
Definition at line 381 of file Basis.cpp.
References pairinteraction::Basis< Derived >::get_ket_index_from_ket(), pairinteraction::Basis< Derived >::kets, pairinteraction::Transformation< Scalar >::matrix, and pairinteraction::ROTATE.
|
overridevirtual |
Implements pairinteraction::TransformationBuilderInterface< traits::CrtpTraits< Derived >::scalar_t >.
Definition at line 412 of file Basis.cpp.
References pairinteraction::Basis< Derived >::get_sorter_without_checks(), pairinteraction::Transformation< Scalar >::matrix, pairinteraction::Sorting::matrix, pairinteraction::Basis< Derived >::perform_sorter_checks(), pairinteraction::SORT_BY_ENERGY, and pairinteraction::Sorting::transformation_type.
void pairinteraction::Basis< Derived >::get_sorter_without_checks | ( | const std::vector< TransformationType > & | labels, |
Sorting & | transformation | ||
) | const |
Definition at line 454 of file Basis.cpp.
References pairinteraction::Transformation< Scalar >::matrix, pairinteraction::Sorting::matrix, pairinteraction::SORT_BY_KET, pairinteraction::SORT_BY_PARITY, pairinteraction::SORT_BY_QUANTUM_NUMBER_F, pairinteraction::SORT_BY_QUANTUM_NUMBER_M, pairinteraction::Sorting::transformation_type, and pairinteraction::UNKNOWN.
Referenced by pairinteraction::Basis< Derived >::get_sorter().
std::shared_ptr< const Derived > pairinteraction::Basis< Derived >::get_state | ( | size_t | state_index | ) | const |
|
overridevirtual |
bool pairinteraction::Basis< Derived >::has_parity |
bool pairinteraction::Basis< Derived >::has_quantum_number_f |
bool pairinteraction::Basis< Derived >::has_quantum_number_m |
void pairinteraction::Basis< Derived >::perform_blocks_checks | ( | const std::set< TransformationType > & | unique_labels | ) | const |
Definition at line 36 of file Basis.cpp.
References pairinteraction::utils::is_sorting().
Referenced by pairinteraction::Basis< Derived >::get_indices_of_blocks().
void pairinteraction::Basis< Derived >::perform_sorter_checks | ( | const std::vector< TransformationType > & | labels | ) | const |
Definition at line 26 of file Basis.cpp.
References pairinteraction::utils::is_sorting().
Referenced by pairinteraction::Basis< Derived >::get_indices_of_blocks(), and pairinteraction::Basis< Derived >::get_sorter().
std::shared_ptr< const Derived > pairinteraction::Basis< Derived >::transformed | ( | const Sorting & | transformation | ) | const |
Definition at line 579 of file Basis.cpp.
References pairinteraction::Transformation< Scalar >::matrix, pairinteraction::Sorting::matrix, pairinteraction::Sorting::transformation_type, and pairinteraction::Basis< Derived >::transformed().
std::shared_ptr< const Derived > pairinteraction::Basis< Derived >::transformed | ( | const Transformation< scalar_t > & | transformation | ) | const |
Definition at line 614 of file Basis.cpp.
References pairinteraction::utils::is_sorting(), pairinteraction::Transformation< Scalar >::matrix, pairinteraction::ROTATE, pairinteraction::Transformation< Scalar >::transformation_type, pairinteraction::Basis< Derived >::transformed(), and pairinteraction::UNKNOWN.
Referenced by pairinteraction::Basis< Derived >::transformed().
|
protected |
Definition at line 121 of file Basis.hpp.
Referenced by pairinteraction::Basis< Derived >::get_rotator().