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

#include <SystemPair.hpp>

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

Public Types

using Type = SystemPair< Scalar >
 
using real_t = typename traits::CrtpTraits< Type >::real_t
 
using basis_t = typename traits::CrtpTraits< Type >::basis_t
 
- Public Types inherited from pairinteraction::System< SystemPair< Scalar > >
using scalar_t = typename traits::CrtpTraits< SystemPair< Scalar > >::scalar_t
 
using real_t = typename traits::CrtpTraits< SystemPair< Scalar > >::real_t
 
using ketvec_t = typename traits::CrtpTraits< SystemPair< Scalar > >::ketvec_t
 
using basis_t = typename traits::CrtpTraits< SystemPair< Scalar > >::basis_t
 
using operator_t = typename traits::CrtpTraits< SystemPair< Scalar > >::operator_t
 
- Public Types inherited from pairinteraction::TransformationBuilderInterface< traits::CrtpTraits< SystemPair< Scalar > >::scalar_t >
using real_t = typename traits::NumTraits< traits::CrtpTraits< SystemPair< Scalar > >::scalar_t >::real_t
 

Public Member Functions

 SystemPair (std::shared_ptr< const basis_t > basis)
 
Typeset_interaction_order (int value)
 
Typeset_distance_vector (const std::array< real_t, 3 > &vector)
 
- Public Member Functions inherited from pairinteraction::System< SystemPair< Scalar > >
 System (std::shared_ptr< const basis_t > basis)
 
 System (const System &other)
 
 System (System &&other) noexcept
 
System< SystemPair< Scalar > > & operator= (const System &other)
 
System< SystemPair< Scalar > > & operator= (System &&other) noexcept
 
virtual ~System ()
 
std::shared_ptr< const basis_tget_basis () const
 
std::shared_ptr< const basis_tget_eigenbasis () const
 
Eigen::VectorX< real_tget_eigenenergies () const
 
const Eigen::SparseMatrix< scalar_t, Eigen::RowMajor > & get_matrix () 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 get_indices_of_blocks_without_checks (const std::set< TransformationType > &unique_labels, IndicesOfBlocksCreator &blocks) const
 
System< SystemPair< Scalar > > & transform (const Transformation< scalar_t > &transformation)
 
System< SystemPair< Scalar > > & transform (const Sorting &transformation)
 
System< SystemPair< Scalar > > & diagonalize (const DiagonalizerInterface< scalar_t > &diagonalizer, std::optional< real_t > min_eigenenergy={}, std::optional< real_t > max_eigenenergy={}, double rtol=1e-6)
 
bool is_diagonal () const
 
- Public Member Functions inherited from pairinteraction::TransformationBuilderInterface< traits::CrtpTraits< SystemPair< Scalar > >::scalar_t >
virtual ~TransformationBuilderInterface ()=default
 
virtual const Transformation< traits::CrtpTraits< SystemPair< Scalar > >::scalar_t > & get_transformation () const=0
 
virtual Transformation< traits::CrtpTraits< SystemPair< Scalar > >::scalar_t > get_rotator (real_t alpha, real_t beta, real_t gamma) const=0
 
Transformation< traits::CrtpTraits< SystemPair< 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
 

Additional Inherited Members

virtual void construct_hamiltonian () const=0
 
- Protected Attributes inherited from pairinteraction::System< SystemPair< Scalar > >
std::unique_ptr< operator_thamiltonian
 
bool hamiltonian_requires_construction
 
bool hamiltonian_is_diagonal
 
std::vector< TransformationTypeblockdiagonalizing_labels
 

Detailed Description

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

Definition at line 44 of file SystemPair.hpp.

Member Typedef Documentation

◆ basis_t

template<typename Scalar >
using pairinteraction::SystemPair< Scalar >::basis_t = typename traits::CrtpTraits<Type>::basis_t

Definition at line 50 of file SystemPair.hpp.

◆ real_t

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

Definition at line 49 of file SystemPair.hpp.

◆ Type

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

Definition at line 48 of file SystemPair.hpp.

Constructor & Destructor Documentation

◆ SystemPair()

template<typename Scalar >
pairinteraction::SystemPair< Scalar >::SystemPair ( std::shared_ptr< const basis_t basis)

Definition at line 241 of file SystemPair.cpp.

Member Function Documentation

◆ set_distance_vector()

template<typename Scalar >
SystemPair< Scalar > & pairinteraction::SystemPair< Scalar >::set_distance_vector ( const std::array< real_t, 3 > &  vector)

Definition at line 255 of file SystemPair.cpp.

Referenced by pairinteraction::DOCTEST_TEST_CASE(), and main().

+ Here is the caller graph for this function:

◆ set_interaction_order()

template<typename Scalar >
SystemPair< Scalar > & pairinteraction::SystemPair< Scalar >::set_interaction_order ( int  value)

Definition at line 245 of file SystemPair.cpp.


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