pairinteraction
A Rydberg Interaction Calculator
pairinteraction::Operator< Derived > Class Template Reference

#include <Operator.hpp>

+ Inheritance diagram for pairinteraction::Operator< Derived >:
+ Collaboration diagram for pairinteraction::Operator< Derived >:

Public Types

using scalar_t = typename traits::CrtpTraits< Derived >::scalar_t
 
using real_t = typename traits::CrtpTraits< Derived >::real_t
 
using ketvec_t = typename traits::CrtpTraits< Derived >::ketvec_t
 
using basis_t = typename traits::CrtpTraits< Derived >::basis_t
 
- Public Types inherited from pairinteraction::TransformationBuilderInterface< traits::CrtpTraits< Derived >::scalar_t >
using real_t = typename traits::NumTraits< traits::CrtpTraits< Derived >::scalar_t >::real_t
 

Public Member Functions

 Operator (std::shared_ptr< const basis_t > basis)
 
virtual ~Operator ()=default
 
std::shared_ptr< const basis_tget_basis () const
 
std::shared_ptr< const basis_t > & get_basis ()
 
const Eigen::SparseMatrix< scalar_t, Eigen::RowMajor > & get_matrix () const
 
Eigen::SparseMatrix< scalar_t, Eigen::RowMajor > & get_matrix ()
 
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
 
Derived transformed (const Transformation< scalar_t > &transformation) const
 
Derived transformed (const Sorting &transformation) const
 
- Public Member Functions inherited from pairinteraction::TransformationBuilderInterface< traits::CrtpTraits< Derived >::scalar_t >
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< IndicesOfBlockget_indices_of_blocks (const std::vector< TransformationType > &labels) const=0
 

Protected Member Functions

void initialize_as_energy_operator ()
 
void initialize_from_matrix (Eigen::SparseMatrix< scalar_t, Eigen::RowMajor > &&matrix)
 

Protected Attributes

std::shared_ptr< const basis_tbasis
 
Eigen::SparseMatrix< scalar_t, Eigen::RowMajor > matrix
 

Friends

Derived operator* (const typename Operator< Derived >::scalar_t &lhs, const Operator< Derived > &rhs)
 
Derived operator* (const Operator< Derived > &lhs, const typename Operator< Derived >::scalar_t &rhs)
 
Derived operator/ (const Operator< Derived > &lhs, const typename Operator< Derived >::scalar_t &rhs)
 
Derived & operator+= (Operator< Derived > &lhs, const Operator< Derived > &rhs)
 
Derived & operator-= (Operator< Derived > &lhs, const Operator< Derived > &rhs)
 
Derived operator+ (const Operator< Derived > &lhs, const Operator< Derived > &rhs)
 
Derived operator- (const Operator< Derived > &lhs, const Operator< Derived > &rhs)
 

Detailed Description

template<typename Derived>
class pairinteraction::Operator< Derived >

Definition at line 41 of file Operator.hpp.

Member Typedef Documentation

◆ basis_t

template<typename Derived >
using pairinteraction::Operator< Derived >::basis_t = typename traits::CrtpTraits<Derived>::basis_t

Definition at line 47 of file Operator.hpp.

◆ ketvec_t

template<typename Derived >
using pairinteraction::Operator< Derived >::ketvec_t = typename traits::CrtpTraits<Derived>::ketvec_t

Definition at line 46 of file Operator.hpp.

◆ real_t

template<typename Derived >
using pairinteraction::Operator< Derived >::real_t = typename traits::CrtpTraits<Derived>::real_t

Definition at line 45 of file Operator.hpp.

◆ scalar_t

template<typename Derived >
using pairinteraction::Operator< Derived >::scalar_t = typename traits::CrtpTraits<Derived>::scalar_t

Definition at line 44 of file Operator.hpp.

Constructor & Destructor Documentation

◆ Operator()

template<typename Derived >
pairinteraction::Operator< Derived >::Operator ( std::shared_ptr< const basis_t basis)

Definition at line 21 of file Operator.cpp.

References pairinteraction::Operator< Derived >::matrix.

◆ ~Operator()

template<typename Derived >
virtual pairinteraction::Operator< Derived >::~Operator ( )
virtualdefault

Member Function Documentation

◆ get_basis() [1/2]

template<typename Derived >
std::shared_ptr< const typename Operator< Derived >::basis_t > & pairinteraction::Operator< Derived >::get_basis

Definition at line 68 of file Operator.cpp.

◆ get_basis() [2/2]

template<typename Derived >
std::shared_ptr< const typename Operator< Derived >::basis_t > pairinteraction::Operator< Derived >::get_basis

Definition at line 63 of file Operator.cpp.

◆ get_indices_of_blocks()

template<typename Derived >
std::vector< IndicesOfBlock > pairinteraction::Operator< Derived >::get_indices_of_blocks ( const std::vector< TransformationType > &  labels) const
overridevirtual

◆ get_indices_of_blocks_without_checks()

template<typename Derived >
void pairinteraction::Operator< Derived >::get_indices_of_blocks_without_checks ( const std::set< TransformationType > &  unique_labels,
IndicesOfBlocksCreator blocks 
) const

◆ get_matrix() [1/2]

template<typename Derived >
Eigen::SparseMatrix< typename Operator< Derived >::scalar_t, Eigen::RowMajor > & pairinteraction::Operator< Derived >::get_matrix

Definition at line 80 of file Operator.cpp.

◆ get_matrix() [2/2]

template<typename Derived >
const Eigen::SparseMatrix< typename Operator< Derived >::scalar_t, Eigen::RowMajor > & pairinteraction::Operator< Derived >::get_matrix

Definition at line 74 of file Operator.cpp.

Referenced by main().

+ Here is the caller graph for this function:

◆ get_rotator()

template<typename Derived >
Transformation< typename Operator< Derived >::scalar_t > pairinteraction::Operator< Derived >::get_rotator ( real_t  alpha,
real_t  beta,
real_t  gamma 
) const
override

Definition at line 92 of file Operator.cpp.

◆ get_sorter()

template<typename Derived >
Sorting pairinteraction::Operator< Derived >::get_sorter ( const std::vector< TransformationType > &  labels) const
overridevirtual

◆ get_transformation()

template<typename Derived >
const Transformation< typename Operator< Derived >::scalar_t > & pairinteraction::Operator< Derived >::get_transformation
overridevirtual

◆ initialize_as_energy_operator()

template<typename Derived >
void pairinteraction::Operator< Derived >::initialize_as_energy_operator
protected

Definition at line 27 of file Operator.cpp.

◆ initialize_from_matrix()

template<typename Derived >
void pairinteraction::Operator< Derived >::initialize_from_matrix ( Eigen::SparseMatrix< scalar_t, Eigen::RowMajor > &&  matrix)
protected

Definition at line 43 of file Operator.cpp.

◆ transformed() [1/2]

template<typename Derived >
Derived pairinteraction::Operator< Derived >::transformed ( const Sorting transformation) const

Definition at line 197 of file Operator.cpp.

References pairinteraction::Sorting::matrix.

◆ transformed() [2/2]

template<typename Derived >
Derived pairinteraction::Operator< Derived >::transformed ( const Transformation< scalar_t > &  transformation) const

Friends And Related Function Documentation

◆ operator* [1/2]

template<typename Derived >
Derived operator* ( const Operator< Derived > &  lhs,
const typename Operator< Derived >::scalar_t rhs 
)
friend

◆ operator* [2/2]

template<typename Derived >
Derived operator* ( const typename Operator< Derived >::scalar_t lhs,
const Operator< Derived > &  rhs 
)
friend

◆ operator+

template<typename Derived >
Derived operator+ ( const Operator< Derived > &  lhs,
const Operator< Derived > &  rhs 
)
friend

Definition at line 248 of file Operator.cpp.

◆ operator+=

template<typename Derived >
Derived & operator+= ( Operator< Derived > &  lhs,
const Operator< Derived > &  rhs 
)
friend

Definition at line 230 of file Operator.cpp.

◆ operator-

template<typename Derived >
Derived operator- ( const Operator< Derived > &  lhs,
const Operator< Derived > &  rhs 
)
friend

Definition at line 258 of file Operator.cpp.

◆ operator-=

template<typename Derived >
Derived & operator-= ( Operator< Derived > &  lhs,
const Operator< Derived > &  rhs 
)
friend

Definition at line 239 of file Operator.cpp.

◆ operator/

template<typename Derived >
Derived operator/ ( const Operator< Derived > &  lhs,
const typename Operator< Derived >::scalar_t rhs 
)
friend

Field Documentation

◆ basis

template<typename Derived >
std::shared_ptr<const basis_t> pairinteraction::Operator< Derived >::basis
protected

Definition at line 86 of file Operator.hpp.

◆ matrix

template<typename Derived >
Eigen::SparseMatrix<scalar_t, Eigen::RowMajor> pairinteraction::Operator< Derived >::matrix
protected

Definition at line 87 of file Operator.hpp.

Referenced by pairinteraction::Operator< Derived >::Operator().


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