CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::BasicClexParamKey Class Reference

#include <BasicClexParamPack.hh>

+ Inheritance diagram for CASM::BasicClexParamKey:

Detailed Description

Definition at line 17 of file BasicClexParamPack.hh.

Public Types

typedef ClexParamPack::size_type size_type
 

Public Member Functions

 BasicClexParamKey (std::string const &_name="", bool _standalone=false, size_type _ind=-1)
 
 ~BasicClexParamKey ()
 
size_type index () const
 
std::string const & name () const
 Name of this Key, should be descriptive of managed data. Ex.: "disp_var" of "magspin_site_basis". More...
 
template<typename... Args>
void set_identifiers (Args const &... args)
 Specify supplemental identifiers, either via linear indices or pair indices. Internally, identifiers are always passed as linear indices. The number and specification of identifiers depends on derived ClexParamKey implementation. Linear identifiers should be passed as an integral value (Index, int, etc) pair index identifiers must be passed as std::pair<Index,Index> More...
 
std::unique_ptr< BaseKeyclone () const
 Clone the ClexParamKey. More...
 
bool standalone () const
 Returns true if key refers directly to managed data, false if it refers to values derived from managed data. More...
 

Protected Member Functions

ClexParamPack_impl::BaseKey_clone () const override
 Clone the ClexParamKey. More...
 
Index _l (Index i) const
 Returns i'th linear index identifier. More...
 
template<typename T , typename... Args>
void _set_identifiers (Index i, T const &_val, Args const &... args)
 Recursive unrolling of variadic template to set all identifiers. More...
 
void _set_identifiers (Index i, Index _ind)
 Overload for linear indexed identifier. More...
 
void _set_identifiers (Index i, std::pair< Index, Index > _inds)
 Overload for pair indexed identifier. More...
 

Protected Attributes

size_type m_index
 
std::vector< Indexm_offset
 
std::vector< Indexm_stride
 
std::vector< Indexm_identifiers
 

Private Attributes

std::string m_name
 
bool m_standalone
 

Member Typedef Documentation

◆ size_type

Constructor & Destructor Documentation

◆ BasicClexParamKey()

CASM::BasicClexParamKey::BasicClexParamKey ( std::string const &  _name = "",
bool  _standalone = false,
size_type  _ind = -1 
)
inline

Definition at line 21 of file BasicClexParamPack.hh.

◆ ~BasicClexParamKey()

CASM::BasicClexParamKey::~BasicClexParamKey ( )
inline

Definition at line 25 of file BasicClexParamPack.hh.

Member Function Documentation

◆ _clone()

ClexParamPack_impl::BaseKey* CASM::BasicClexParamKey::_clone ( ) const
inlineoverrideprotectedvirtual

Clone the ClexParamKey.

Implements CASM::ClexParamPack_impl::BaseKey.

Definition at line 30 of file BasicClexParamPack.hh.

◆ _l()

Index CASM::ClexParamPack_impl::BaseKey::_l ( Index  i) const
inlineprotectedinherited

Returns i'th linear index identifier.

Definition at line 86 of file ClexParamPack.hh.

◆ _set_identifiers() [1/3]

void CASM::ClexParamPack_impl::BaseKey::_set_identifiers ( Index  i,
Index  _ind 
)
inlineprotectedinherited

Overload for linear indexed identifier.

Definition at line 96 of file ClexParamPack.hh.

◆ _set_identifiers() [2/3]

void CASM::ClexParamPack_impl::BaseKey::_set_identifiers ( Index  i,
std::pair< Index, Index _inds 
)
inlineprotectedinherited

Overload for pair indexed identifier.

Definition at line 101 of file ClexParamPack.hh.

◆ _set_identifiers() [3/3]

template<typename T , typename... Args>
void CASM::ClexParamPack_impl::BaseKey::_set_identifiers ( Index  i,
T const &  _val,
Args const &...  args 
)
inlineprotectedinherited

Recursive unrolling of variadic template to set all identifiers.

Definition at line 90 of file ClexParamPack.hh.

◆ clone()

std::unique_ptr<BaseKey> CASM::ClexParamPack_impl::BaseKey::clone ( ) const
inlineinherited

Clone the ClexParamKey.

Definition at line 76 of file ClexParamPack.hh.

◆ index()

size_type CASM::BasicClexParamKey::index ( ) const
inline

Definition at line 27 of file BasicClexParamPack.hh.

◆ name()

std::string const& CASM::ClexParamPack_impl::BaseKey::name ( ) const
inlineinherited

Name of this Key, should be descriptive of managed data. Ex.: "disp_var" of "magspin_site_basis".

Definition at line 62 of file ClexParamPack.hh.

◆ set_identifiers()

template<typename... Args>
void CASM::ClexParamPack_impl::BaseKey::set_identifiers ( Args const &...  args)
inlineinherited

Specify supplemental identifiers, either via linear indices or pair indices. Internally, identifiers are always passed as linear indices. The number and specification of identifiers depends on derived ClexParamKey implementation. Linear identifiers should be passed as an integral value (Index, int, etc) pair index identifiers must be passed as std::pair<Index,Index>

Definition at line 71 of file ClexParamPack.hh.

◆ standalone()

bool CASM::ClexParamPack_impl::BaseKey::standalone ( ) const
inlineinherited

Returns true if key refers directly to managed data, false if it refers to values derived from managed data.

Definition at line 82 of file ClexParamPack.hh.

Member Data Documentation

◆ m_identifiers

std::vector<Index> CASM::ClexParamPack_impl::BaseKey::m_identifiers
protectedinherited

Definition at line 110 of file ClexParamPack.hh.

◆ m_index

size_type CASM::BasicClexParamKey::m_index
protected

Definition at line 34 of file BasicClexParamPack.hh.

◆ m_name

std::string CASM::ClexParamPack_impl::BaseKey::m_name
privateinherited

Definition at line 113 of file ClexParamPack.hh.

◆ m_offset

std::vector<Index> CASM::ClexParamPack_impl::BaseKey::m_offset
protectedinherited

Definition at line 108 of file ClexParamPack.hh.

◆ m_standalone

bool CASM::ClexParamPack_impl::BaseKey::m_standalone
privateinherited

Definition at line 114 of file ClexParamPack.hh.

◆ m_stride

std::vector<Index> CASM::ClexParamPack_impl::BaseKey::m_stride
protectedinherited

Definition at line 109 of file ClexParamPack.hh.


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