CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <SuperConfigEnum.hh>
Given a selection of Configurations, enumerate all tilings into some supercell.
Notes:
is_valid_sub_configuration
and make_all_super_configurations
when preparing valid constructor inputs. Definition at line 29 of file SuperConfigEnum.hh.
Public Types | |
typedef InputEnumIterator< Configuration, true > | iterator |
typedef ValueType | value_type |
typedef CASM_TMP::ConstSwitch< IsConst, ValueType > & | reference |
typedef long | step_type |
Public Member Functions | |
template<typename ConfigIterator > | |
SuperConfigEnum (Supercell const &_target_scel, ConfigIterator sub_config_begin, ConfigIterator sub_config_end) | |
Constructor, using all Supercell permutations. More... | |
std::string | name () const override |
Derived enumerators must implement name, via ENUM_MEMBERS. More... | |
std::vector< Configuration > const & | sub_config () const |
Access the sub-configurations. More... | |
Array< int > const & | counter () const |
Access the current value of the counter. More... | |
iterator | begin () |
iterator | end () |
reference | current () const |
Access the current ObjectType by reference. More... | |
virtual std::string | name () const=0 |
Derived enumerators must implement name, via ENUM_MEMBERS. More... | |
virtual jsonParser | source (step_type step) const |
virtual jsonParser | source (step_type step) const |
step_type | step () const |
Increments with each enumerated object. More... | |
step_type | step () const |
Increments with each enumerated object. More... | |
bool | valid () const |
Returns false if enumeration is complete. More... | |
bool | valid () const |
Returns false if enumeration is complete. More... | |
Static Public Attributes | |
static const std::string | enumerator_name = "SuperConfigEnum" |
Protected Member Functions | |
void | _initialize (CASM_TMP::ConstSwitch< IsConst, value_type > *_initial) |
void | _initialize () |
void | _set_current_ptr (CASM_TMP::ConstSwitch< IsConst, value_type > *_new) |
Change the pointer. More... | |
void | _decrement_step () |
Decrement current step value. More... | |
void | _increment_step () |
Increment current step value. More... | |
void | _invalidate () |
Call if enumeration complete. More... | |
void | _set_step (step_type val) |
Set current step value. More... | |
void | _set_step (step_type val) |
Set current step value. More... | |
void | _validate () |
Used if random access enumerator step is moved into valid range. More... | |
Private Member Functions | |
void | increment () override |
Implement increment. More... | |
void | _init () |
Used by constructor. More... | |
bool | _check_current () const |
Returns true if current() satisifies requested conditions. More... | |
Supercell const & | _target_supercell () |
Access the super-config supercell. More... | |
Supercell const & | _sub_supercell () const |
Access the sub-config supercell. More... | |
std::vector< Configuration > & | _sub_config () |
Access the sub-configurations. More... | |
xtal::UnitCellIndexConverter & | _unitcell_index_converter () |
Access the UnitCellIndexConverter. More... | |
void | _fill (Array< int > const &counter_val, Configuration &config) |
Private Attributes | |
Supercell const & | m_target_scel |
The supercell being filled. More... | |
std::vector< Configuration > | m_sub_config |
A vector containing each possible sub_config. More... | |
Supercell const * | m_sub_scel |
notstd::cloneable_ptr< Configuration > | m_current |
The 'current' Configuration. More... | |
Counter< Array< int > > | m_counter |
notstd::cloneable_ptr< xtal::UnitCellIndexConverter > | m_unitcell_index_converter |
std::vector< std::vector< Index > > | m_index_map |
m_current->occ(m_index_map[i][j]) = m_sub_scel[i].occ(j) More... | |
friend | InputEnumIteratorBase< ValueType, IsConst > |
CASM_TMP::ConstSwitch< IsConst, value_type > * | m_current_ptr |
bool | m_valid |
step_type | m_step |
|
inherited |
Definition at line 204 of file InputEnumerator.hh.
|
inherited |
Definition at line 174 of file Enumerator.hh.
|
inherited |
Definition at line 107 of file Enumerator.hh.
|
inherited |
Definition at line 173 of file Enumerator.hh.
CASM::SuperConfigEnum::SuperConfigEnum | ( | Supercell const & | _target_scel, |
ConfigIterator | sub_config_begin, | ||
ConfigIterator | sub_config_end | ||
) |
Constructor, using all Supercell permutations.
Constructor
Definition at line 114 of file SuperConfigEnum.hh.
|
private |
Returns true if current() satisifies requested conditions.
Returns true if current() satisfies requested conditions.
Definition at line 102 of file SuperConfigEnum.cc.
|
inlineprotectedinherited |
Decrement current step value.
Definition at line 156 of file Enumerator.hh.
|
private |
Fill DoF from sub_config into a Configuration
summary | The index of the sub_config on each lattice site |
Fill DoF from sub_config into a super configuration
counter_val | The index of the sub_config on each lattice point |
super_config | The super configuration to set the DoF values |
Definition at line 109 of file SuperConfigEnum.cc.
|
inlineprotectedinherited |
Increment current step value.
Definition at line 153 of file Enumerator.hh.
|
private |
Used by constructor.
Definition at line 21 of file SuperConfigEnum.cc.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
Initialize
Definition at line 197 of file Enumerator.hh.
|
inlineprotectedinherited |
Call if enumeration complete.
Definition at line 159 of file Enumerator.hh.
|
inlineprotectedinherited |
Change the pointer.
Definition at line 215 of file Enumerator.hh.
|
inlineprotectedinherited |
Set current step value.
Definition at line 150 of file Enumerator.hh.
|
inlineprotectedinherited |
Set current step value.
Definition at line 150 of file Enumerator.hh.
|
inlineprivate |
Access the sub-configurations.
Definition at line 76 of file SuperConfigEnum.hh.
|
inlineprivate |
Access the sub-config supercell.
Definition at line 73 of file SuperConfigEnum.hh.
|
inlineprivate |
Access the super-config supercell.
Definition at line 70 of file SuperConfigEnum.hh.
|
inlineprivate |
Access the UnitCellIndexConverter.
Definition at line 79 of file SuperConfigEnum.hh.
|
inlineprotectedinherited |
Used if random access enumerator step is moved into valid range.
Definition at line 162 of file Enumerator.hh.
|
inlineinherited |
Definition at line 216 of file InputEnumerator.hh.
|
inline |
Access the current value of the counter.
Definition at line 53 of file SuperConfigEnum.hh.
|
inlineinherited |
Access the current ObjectType by reference.
Definition at line 211 of file Enumerator.hh.
|
inlineinherited |
Definition at line 220 of file InputEnumerator.hh.
|
overrideprivatevirtual |
Implement increment.
Implements CASM::InputEnumeratorBase< Configuration >.
Definition at line 86 of file SuperConfigEnum.cc.
|
overridevirtual |
Derived enumerators must implement name, via ENUM_MEMBERS.
Implements CASM::EnumeratorBase.
Definition at line 17 of file SuperConfigEnum.cc.
|
inherited |
Derived enumerators must implement name, via ENUM_MEMBERS.
|
inlinevirtualinherited |
Default Object source just uses step#
Returns:
Definition at line 129 of file Enumerator.hh.
|
inlineinherited |
|
inlineinherited |
Increments with each enumerated object.
Definition at line 115 of file Enumerator.hh.
|
inlineinherited |
Increments with each enumerated object.
Definition at line 115 of file Enumerator.hh.
|
inline |
Access the sub-configurations.
Definition at line 46 of file SuperConfigEnum.hh.
|
inlineinherited |
Returns false if enumeration is complete.
Definition at line 118 of file Enumerator.hh.
|
inlineinherited |
Returns false if enumeration is complete.
Definition at line 118 of file Enumerator.hh.
|
static |
Definition at line 41 of file SuperConfigEnum.hh.
|
privateinherited |
Definition at line 198 of file InputEnumerator.hh.
Definition at line 100 of file SuperConfigEnum.hh.
|
private |
The 'current' Configuration.
Definition at line 98 of file SuperConfigEnum.hh.
|
privateinherited |
Definition at line 220 of file Enumerator.hh.
|
private |
m_current->occ(m_index_map[i][j]) = m_sub_scel[i].occ(j)
Definition at line 108 of file SuperConfigEnum.hh.
|
privateinherited |
Definition at line 167 of file Enumerator.hh.
|
private |
A vector containing each possible sub_config.
Definition at line 92 of file SuperConfigEnum.hh.
|
private |
Definition at line 95 of file SuperConfigEnum.hh.
|
private |
The supercell being filled.
Definition at line 89 of file SuperConfigEnum.hh.
|
private |
An ordered set of lattice points (UnitCell) that tile the sub_scel into the ref_scel
Definition at line 105 of file SuperConfigEnum.hh.
|
privateinherited |
Definition at line 165 of file Enumerator.hh.