CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
CASM::SuperConfigEnum Class Reference

#include <SuperConfigEnum.hh>

+ Inheritance diagram for CASM::SuperConfigEnum:

Detailed Description

Given a selection of Configurations, enumerate all tilings into some supercell.

  • 'sub_config' is used to refer to the input 'building block' Configuration
    • sub_config must all have the same Supercell
  • 'target_scel' is used to refer to the Supercell that is being tiled by sub_config
  • enumerates all Configurations, including non-primitive and non-canonical

Definition at line 26 of file SuperConfigEnum.hh.

Public Types

typedef InputEnumIterator
< Configuration, IsConst > 
iterator
 
typedef Configuration value_type
 
typedef CASM_TMP::ConstSwitch
< IsConst, Configuration > & 
reference
 
typedef long step_type
 

Public Member Functions

template<typename ConfigIterator >
 SuperConfigEnum (Supercell &_target_scel, ConfigIterator _begin, ConfigIterator _end)
 Constructor, using all Supercell permutations. More...
 
template<typename ConfigIterator >
 SuperConfigEnum (Supercell &_target_scel, ConfigIterator _begin, ConfigIterator _end, PermuteIterator _perm_begin, PermuteIterator _perm_end)
 Constructor. More...
 
std::string name () const override
 Derived enumerators must implement name, via ENUM_MEMBERS. More...
 
const std::vector
< Configuration > & 
sub_config () const
 Access the sub-configurations. More...
 
const Array< int > & counter () const
 Access the current value of the counter. More...
 
const PrimGridprim_grid () const
 Access the PrimGrid. More...
 
iterator begin ()
 
iterator end ()
 
reference current () const
 Access the current ObjectType by reference. More...
 
step_type step () const
 Increments with each enumerated object. More...
 
bool valid () const
 Returns false if enumeration is complete. More...
 
virtual jsonParser source (step_type step) const
 

Static Public Member Functions

static int run (PrimClex &primclex, const jsonParser &kwargs, const Completer::EnumOption &enum_opt)
 

Static Public Attributes

static const std::string enumerator_name = "SuperConfigEnum"
 
static const std::string interface_help
 

Protected Member Functions

void _initialize (value_type *_initial)
 
void _initialize ()
 
void _set_current_ptr (value_type *_new)
 Change the pointer. More...
 
value_type_current ()
 Access the current ObjectType by reference. More...
 
void _set_step (step_type val)
 Set current step value. More...
 
void _increment_step ()
 Increment current step value. More...
 
void _decrement_step ()
 Decrement current step value. More...
 
void _invalidate ()
 Call if enumeration complete. 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_target_supercell ()
 Access the super-config supercell. More...
 
Supercell_sub_supercell ()
 Access the sub-config supercell. More...
 
std::vector< Configuration > & _sub_config ()
 Access the sub-configurations. More...
 
PrimGrid_prim_grid ()
 Access the PrimGrid. More...
 
void _fill (const Array< int > &counter_val, Configuration &config)
 
const PermuteIterator_perm_begin () const
 
const PermuteIterator_perm_end () const
 

Private Attributes

Supercellm_target_scel
 The supercell being filled. More...
 
std::vector< Configurationm_sub_config
 A vector containing each possible sub_config. More...
 
PermuteIterator m_perm_begin
 
PermuteIterator m_perm_end
 
Supercellm_sub_scel
 
notstd::cloneable_ptr
< Configuration
m_current
 The 'current' Configuration. More...
 
Counter< Array< int > > m_counter
 
notstd::cloneable_ptr< PrimGridm_prim_grid
 A PrimGrid that tiles thes sub_scel into the ref_scel. More...
 
std::vector< std::vector< Index > > m_index_map
 m_current->occ(m_index_map[i][j]) = m_sub_scel[i].occ(j) More...
 
bool m_has_occ
 
bool m_has_disp
 

Member Typedef Documentation

Definition at line 231 of file InputEnumerator.hh.

typedef CASM_TMP::ConstSwitch<IsConst, Configuration >& CASM::ValEnumerator< Configuration , IsConst >::reference
inherited

Definition at line 192 of file Enumerator.hh.

typedef long CASM::EnumeratorBase::step_type
inherited

Definition at line 103 of file Enumerator.hh.

typedef Configuration CASM::ValEnumerator< Configuration , IsConst >::value_type
inherited

Definition at line 191 of file Enumerator.hh.

Constructor & Destructor Documentation

template<typename ConfigIterator >
CASM::SuperConfigEnum::SuperConfigEnum ( Supercell _target_scel,
ConfigIterator  _begin,
ConfigIterator  _end 
)

Constructor, using all Supercell permutations.

Definition at line 158 of file SuperConfigEnum.hh.

template<typename ConfigIterator >
CASM::SuperConfigEnum::SuperConfigEnum ( Supercell _target_scel,
ConfigIterator  _begin,
ConfigIterator  _end,
PermuteIterator  _perm_begin,
PermuteIterator  _perm_end 
)

Constructor.

Definition at line 170 of file SuperConfigEnum.hh.

Member Function Documentation

bool CASM::SuperConfigEnum::_check_current ( ) const
private

Returns true if current() satisifies requested conditions.

Returns true if current() satisfies requested conditions.

Definition at line 292 of file SuperConfigEnum.cc.

value_type& CASM::ValEnumerator< Configuration , IsConst >::_current ( )
inlineprotectedinherited

Access the current ObjectType by reference.

Definition at line 244 of file Enumerator.hh.

void CASM::EnumeratorBase::_decrement_step ( )
inlineprotectedinherited

Decrement current step value.

Definition at line 164 of file Enumerator.hh.

void CASM::SuperConfigEnum::_fill ( const Array< int > &  counter_val,
Configuration config 
)
private

Fill DoF from sub_config into a Configuration

Parameters
summaryThe index of the sub_config on each PrimGrid site

Fill DoF from sub_config into a Configuration

Parameters
counter_valThe index of the sub_config on each PrimGrid site
configThe Configuration to set the occupation of

Definition at line 302 of file SuperConfigEnum.cc.

void CASM::EnumeratorBase::_increment_step ( )
inlineprotectedinherited

Increment current step value.

Definition at line 159 of file Enumerator.hh.

void CASM::SuperConfigEnum::_init ( )
private

Used by constructor.

Definition at line 208 of file SuperConfigEnum.cc.

void CASM::EnumeratorBase::_initialize ( )
inlineprotectedinherited

Initialize

  • Sets step to 0
  • Sets valid to true

Definition at line 148 of file Enumerator.hh.

void CASM::ValEnumerator< Configuration , IsConst >::_initialize ( value_type _initial)
inlineprotectedinherited

Initialize

  • Sets current to point at _initial
  • Sets step to 0
  • Sets valid to true

Definition at line 216 of file Enumerator.hh.

void CASM::EnumeratorBase::_invalidate ( )
inlineprotectedinherited

Call if enumeration complete.

Definition at line 169 of file Enumerator.hh.

const PermuteIterator& CASM::SuperConfigEnum::_perm_begin ( ) const
inlineprivate

Definition at line 120 of file SuperConfigEnum.hh.

const PermuteIterator& CASM::SuperConfigEnum::_perm_end ( ) const
inlineprivate

Definition at line 123 of file SuperConfigEnum.hh.

PrimGrid& CASM::SuperConfigEnum::_prim_grid ( )
inlineprivate

Access the PrimGrid.

Definition at line 111 of file SuperConfigEnum.hh.

void CASM::ValEnumerator< Configuration , IsConst >::_set_current_ptr ( value_type _new)
inlineprotectedinherited

Change the pointer.

Definition at line 239 of file Enumerator.hh.

void CASM::EnumeratorBase::_set_step ( step_type  val)
inlineprotectedinherited

Set current step value.

Definition at line 154 of file Enumerator.hh.

std::vector<Configuration>& CASM::SuperConfigEnum::_sub_config ( )
inlineprivate

Access the sub-configurations.

Definition at line 106 of file SuperConfigEnum.hh.

Supercell& CASM::SuperConfigEnum::_sub_supercell ( )
inlineprivate

Access the sub-config supercell.

Definition at line 101 of file SuperConfigEnum.hh.

Supercell& CASM::SuperConfigEnum::_target_supercell ( )
inlineprivate

Access the super-config supercell.

Definition at line 96 of file SuperConfigEnum.hh.

void CASM::EnumeratorBase::_validate ( )
inlineprotectedinherited

Used if random access enumerator step is moved into valid range.

Definition at line 174 of file Enumerator.hh.

iterator CASM::InputEnumeratorBase< Configuration , IsConst >::begin ( )
inlineinherited

Definition at line 245 of file InputEnumerator.hh.

const Array<int>& CASM::SuperConfigEnum::counter ( ) const
inline

Access the current value of the counter.

  • The counter indicates how the sub-configurations tile into the super-configuration
  • sub_config()[counter()[i]] is tiled into the i-th PrimGrid location

Definition at line 67 of file SuperConfigEnum.hh.

reference CASM::ValEnumerator< Configuration , IsConst >::current ( ) const
inlineinherited

Access the current ObjectType by reference.

Definition at line 232 of file Enumerator.hh.

iterator CASM::InputEnumeratorBase< Configuration , IsConst >::end ( )
inlineinherited

Definition at line 249 of file InputEnumerator.hh.

void CASM::SuperConfigEnum::increment ( )
overrideprivatevirtual

Implement increment.

Implements CASM::InputEnumeratorBase< Configuration >.

Definition at line 274 of file SuperConfigEnum.cc.

std::string CASM::SuperConfigEnum::name ( ) const
inlineoverridevirtual

Derived enumerators must implement name, via ENUM_MEMBERS.

Implements CASM::EnumeratorBase.

Definition at line 46 of file SuperConfigEnum.hh.

const PrimGrid& CASM::SuperConfigEnum::prim_grid ( ) const
inline

Access the PrimGrid.

Definition at line 75 of file SuperConfigEnum.hh.

int CASM::SuperConfigEnum::run ( PrimClex primclex,
const jsonParser kwargs,
const Completer::EnumOption enum_opt 
)
static

Definition at line 149 of file SuperConfigEnum.cc.

virtual jsonParser CASM::EnumeratorBase::source ( step_type  step) const
inlinevirtualinherited

Default Object source just uses step#

Returns:

{
"enumerated_by": "<enumerator_type>",
"step": <step #>
}

Definition at line 131 of file Enumerator.hh.

step_type CASM::EnumeratorBase::step ( ) const
inlineinherited

Increments with each enumerated object.

Definition at line 113 of file Enumerator.hh.

const std::vector<Configuration>& CASM::SuperConfigEnum::sub_config ( ) const
inline

Access the sub-configurations.

Definition at line 58 of file SuperConfigEnum.hh.

bool CASM::EnumeratorBase::valid ( ) const
inlineinherited

Returns false if enumeration is complete.

Definition at line 118 of file Enumerator.hh.

Member Data Documentation

const std::string CASM::SuperConfigEnum::enumerator_name = "SuperConfigEnum"
static

Definition at line 50 of file SuperConfigEnum.hh.

const std::string CASM::SuperConfigEnum::interface_help
static

Definition at line 51 of file SuperConfigEnum.hh.

Counter<Array<int> > CASM::SuperConfigEnum::m_counter
private

Definition at line 142 of file SuperConfigEnum.hh.

notstd::cloneable_ptr<Configuration> CASM::SuperConfigEnum::m_current
private

The 'current' Configuration.

Definition at line 140 of file SuperConfigEnum.hh.

bool CASM::SuperConfigEnum::m_has_disp
private

Definition at line 151 of file SuperConfigEnum.hh.

bool CASM::SuperConfigEnum::m_has_occ
private

Definition at line 150 of file SuperConfigEnum.hh.

std::vector<std::vector<Index> > CASM::SuperConfigEnum::m_index_map
private

m_current->occ(m_index_map[i][j]) = m_sub_scel[i].occ(j)

Definition at line 148 of file SuperConfigEnum.hh.

PermuteIterator CASM::SuperConfigEnum::m_perm_begin
private

Definition at line 134 of file SuperConfigEnum.hh.

PermuteIterator CASM::SuperConfigEnum::m_perm_end
private

Definition at line 134 of file SuperConfigEnum.hh.

notstd::cloneable_ptr<PrimGrid> CASM::SuperConfigEnum::m_prim_grid
private

A PrimGrid that tiles thes sub_scel into the ref_scel.

Definition at line 145 of file SuperConfigEnum.hh.

std::vector<Configuration> CASM::SuperConfigEnum::m_sub_config
private

A vector containing each possible sub_config.

Definition at line 132 of file SuperConfigEnum.hh.

Supercell* CASM::SuperConfigEnum::m_sub_scel
private

Definition at line 137 of file SuperConfigEnum.hh.

Supercell& CASM::SuperConfigEnum::m_target_scel
private

The supercell being filled.

Definition at line 129 of file SuperConfigEnum.hh.


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