pairinteraction
A Rydberg Interaction Calculator
pairinteraction::BasisAtom< Scalar > Class Template Reference

Class for creating a basis of atomic kets. More...

#include <BasisAtom.hpp>

+ Inheritance diagram for pairinteraction::BasisAtom< Scalar >:
+ Collaboration diagram for pairinteraction::BasisAtom< Scalar >:

Public Types

using Type = BasisAtom< Scalar >
 
using ket_t = typename traits::CrtpTraits< Type >::ket_t
 
using ketvec_t = typename traits::CrtpTraits< Type >::ketvec_t
 
using real_t = typename traits::CrtpTraits< Type >::real_t
 
- Public Types inherited from pairinteraction::Basis< BasisAtom< Scalar > >
using scalar_t = typename traits::CrtpTraits< BasisAtom< Scalar > >::scalar_t
 
using real_t = typename traits::CrtpTraits< BasisAtom< Scalar > >::real_t
 
using ket_t = typename traits::CrtpTraits< BasisAtom< Scalar > >::ket_t
 
using ketvec_t = typename traits::CrtpTraits< BasisAtom< Scalar > >::ketvec_t
 
- Public Types inherited from pairinteraction::TransformationBuilderInterface< traits::CrtpTraits< BasisAtom< Scalar > >::scalar_t >
using real_t = typename traits::NumTraits< traits::CrtpTraits< BasisAtom< Scalar > >::scalar_t >::real_t
 

Public Member Functions

 BasisAtom (Private, ketvec_t &&kets, std::string &&id_of_kets, Database &database)
 
Databaseget_database () const
 
const std::string & get_species () const
 
const std::string & get_id_of_kets () const
 
int get_ket_index_from_id (size_t ket_id) const
 
Eigen::VectorX< Scalar > get_matrix_elements (std::shared_ptr< const ket_t > ket, OperatorType type, int q=0) const override
 
Eigen::SparseMatrix< Scalar, Eigen::RowMajor > get_matrix_elements (std::shared_ptr< const Type > other, OperatorType type, int q=0) const override
 
- Public Member Functions inherited from pairinteraction::Basis< BasisAtom< Scalar > >
 Basis ()=delete
 
virtual ~Basis ()=default
 
bool has_quantum_number_f () const
 
bool has_quantum_number_m () const
 
bool has_parity () const
 
const ketvec_tget_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 BasisAtom< Scalar > > get_state (size_t state_index) const
 
std::shared_ptr< const ket_tget_ket (size_t ket_index) const
 
std::shared_ptr< const ket_tget_corresponding_ket (size_t state_index) const
 
std::shared_ptr< const ket_tget_corresponding_ket (std::shared_ptr< const BasisAtom< Scalar > > state) const
 
size_t get_corresponding_ket_index (size_t state_index) const
 
size_t get_corresponding_ket_index (std::shared_ptr< const BasisAtom< Scalar > > state) const
 
std::shared_ptr< const BasisAtom< Scalar > > get_corresponding_state (size_t ket_index) const
 
std::shared_ptr< const BasisAtom< Scalar > > 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 BasisAtom< Scalar > > get_canonical_state_from_ket (size_t ket_index) const
 
std::shared_ptr< const BasisAtom< Scalar > > 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_tget_amplitudes (std::shared_ptr< const ket_t > ket) const
 
Eigen::SparseMatrix< scalar_t, Eigen::RowMajor > get_amplitudes (std::shared_ptr< const BasisAtom< Scalar > > other) const
 
Eigen::VectorX< real_tget_overlaps (std::shared_ptr< const ket_t > ket) const
 
Eigen::SparseMatrix< real_t, Eigen::RowMajor > get_overlaps (std::shared_ptr< const BasisAtom< Scalar > > other) const
 
virtual Eigen::VectorX< scalar_tget_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 BasisAtom< Scalar > > other, OperatorType type, int q=0) const=0
 
Iterator begin () const
 
Iterator end () const
 
const Transformation< scalar_t > & get_transformation () const override
 
Transformation< scalar_tget_rotator (real_t alpha, real_t beta, real_t gamma) const override
 
Sorting get_sorter (const std::vector< TransformationType > &labels) const override
 
std::vector< IndicesOfBlockget_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 BasisAtom< Scalar > > transformed (const Transformation< scalar_t > &transformation) const
 
std::shared_ptr< const BasisAtom< Scalar > > transformed (const Sorting &transformation) const
 
- Public Member Functions inherited from pairinteraction::TransformationBuilderInterface< traits::CrtpTraits< BasisAtom< Scalar > >::scalar_t >
virtual ~TransformationBuilderInterface ()=default
 
virtual const Transformation< traits::CrtpTraits< BasisAtom< Scalar > >::scalar_t > & get_transformation () const=0
 
virtual Transformation< traits::CrtpTraits< BasisAtom< Scalar > >::scalar_t > get_rotator (real_t alpha, real_t beta, real_t gamma) const=0
 
Transformation< traits::CrtpTraits< BasisAtom< Scalar > >::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< IndicesOfBlockget_indices_of_blocks (const std::vector< TransformationType > &labels) const=0
 

Friends

class Database
 

Additional Inherited Members

- Protected Member Functions inherited from pairinteraction::Basis< BasisAtom< Scalar > >
 Basis (ketvec_t &&kets)
 
int get_ket_index_from_ket (std::shared_ptr< const ket_t > ket) const
 
- Protected Attributes inherited from pairinteraction::Basis< BasisAtom< Scalar > >
ketvec_t kets
 

Detailed Description

template<typename Scalar>
class pairinteraction::BasisAtom< Scalar >

Class for creating a basis of atomic kets.

Template Parameters
ScalarComplex number type.

Definition at line 39 of file BasisAtom.hpp.

Member Typedef Documentation

◆ ket_t

template<typename Scalar >
using pairinteraction::BasisAtom< Scalar >::ket_t = typename traits::CrtpTraits<Type>::ket_t

Definition at line 48 of file BasisAtom.hpp.

◆ ketvec_t

template<typename Scalar >
using pairinteraction::BasisAtom< Scalar >::ketvec_t = typename traits::CrtpTraits<Type>::ketvec_t

Definition at line 49 of file BasisAtom.hpp.

◆ real_t

template<typename Scalar >
using pairinteraction::BasisAtom< Scalar >::real_t = typename traits::CrtpTraits<Type>::real_t

Definition at line 50 of file BasisAtom.hpp.

◆ Type

template<typename Scalar >
using pairinteraction::BasisAtom< Scalar >::Type = BasisAtom<Scalar>

Definition at line 47 of file BasisAtom.hpp.

Constructor & Destructor Documentation

◆ BasisAtom()

template<typename Scalar >
pairinteraction::BasisAtom< Scalar >::BasisAtom ( Private  ,
ketvec_t &&  kets,
std::string &&  id_of_kets,
Database database 
)

Definition at line 11 of file BasisAtom.cpp.

References pairinteraction::Basis< BasisAtom< Scalar > >::kets.

Member Function Documentation

◆ get_database()

template<typename Scalar >
Database & pairinteraction::BasisAtom< Scalar >::get_database

Definition at line 21 of file BasisAtom.cpp.

◆ get_id_of_kets()

template<typename Scalar >
const std::string & pairinteraction::BasisAtom< Scalar >::get_id_of_kets

Definition at line 39 of file BasisAtom.cpp.

◆ get_ket_index_from_id()

template<typename Scalar >
int pairinteraction::BasisAtom< Scalar >::get_ket_index_from_id ( size_t  ket_id) const

Definition at line 31 of file BasisAtom.cpp.

◆ get_matrix_elements() [1/2]

template<typename Scalar >
Eigen::VectorX< Scalar > pairinteraction::BasisAtom< Scalar >::get_matrix_elements ( std::shared_ptr< const ket_t ket,
OperatorType  type,
int  q = 0 
) const
overridevirtual

Implements pairinteraction::Basis< BasisAtom< Scalar > >.

Definition at line 44 of file BasisAtom.cpp.

◆ get_matrix_elements() [2/2]

template<typename Scalar >
Eigen::SparseMatrix< Scalar, Eigen::RowMajor > pairinteraction::BasisAtom< Scalar >::get_matrix_elements ( std::shared_ptr< const Type other,
OperatorType  type,
int  q = 0 
) const
overridevirtual

Implements pairinteraction::Basis< BasisAtom< Scalar > >.

Definition at line 58 of file BasisAtom.cpp.

◆ get_species()

template<typename Scalar >
const std::string & pairinteraction::BasisAtom< Scalar >::get_species

Definition at line 26 of file BasisAtom.cpp.

Friends And Related Function Documentation

◆ Database

template<typename Scalar >
friend class Database
friend

Definition at line 43 of file BasisAtom.hpp.


The documentation for this class was generated from the following files: