CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
EnumEquivalents

Detailed Description

Enumerate equivalent objects.

Namespaces

 CASM::CASM_TMP
 

Classes

class  CASM::ConfigEnumEquivalents
 Enumerate all equivalent Configurations in a Supercell, as generated by Supercell factor group symmetry. More...
 
class  CASM::ScelEnumEquivalents
 Enumerate equivalent Supercell. More...
 
class  CASM::LatticeEnumEquivalents
 Enumerate equivalent Lattics, given a SymGroup. More...
 
class  CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >
 Enumerate over all equivalents. More...
 
struct  CASM::CASM_TMP::traits< EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare > >
 

Functions

template<typename MakeInvariantSubgroup >
 CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::EnumEquivalents (const ObjectType &generating_obj, SymOpIterator begin, SymOpIterator end, MakeInvariantSubgroup f=MakeInvariantSubgroup(), SymOpCompare compare=SymOpCompare())
 Constructor. More...
 
const ObjectType & CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::generator () const
 
const SymOpType & CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::sym_op () const
 
const std::vector< SymOpType > & CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::invariant_subgroup () const
 
void CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::increment () override
 Implement increment. More...
 
bool CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::_check (const SymOpType &X) const
 

Variables

static const std::string CASM::CASM_TMP::traits< EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare > >::name = "EnumEquivalents"
 
notstd::cloneable_ptr< ObjectType > CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_initial
 
notstd::cloneable_ptr< ObjectType > CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_current
 
SymOpIterator CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_symop_it
 
SymOpIterator CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_symop_end
 
std::vector< SymOpType > CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_invariant_subgroup
 
SymOpCompare CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_compare
 

Function Documentation

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
bool CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::_check ( const SymOpType &  X) const
inlineprivate

Returns true for one element (the "minimum" SymOp) of the left cosets of the invariant subgroup

Definition at line 146 of file EnumEquivalents.hh.

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
template<typename MakeInvariantSubgroup >
CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::EnumEquivalents ( const ObjectType &  generating_obj,
SymOpIterator  begin,
SymOpIterator  end,
MakeInvariantSubgroup  f = MakeInvariantSubgroup(),
SymOpCompare  compare = SymOpCompare() 
)
inline

Constructor.

Parameters
generating_objThe object to enumerate equivalents of
begin,endA range of SymOpType
fA functor that outputs the subgroup of [begin,end) that leaves the generating_obj invariant

Expected form for f:

template<typename SymOpIterator, typename SymOpOutputIterator>
SymOpOutputIterator f(
const ObjectType &generating_obj,
SymOpIterator begin,
SymOpIterator end,
SymOpOutputIterator result);

Definition at line 77 of file EnumEquivalents.hh.

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
const ObjectType& CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::generator ( ) const
inline

Definition at line 107 of file EnumEquivalents.hh.

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
void CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::increment ( )
inlineoverrideprivatevirtual

Implement increment.

Implements CASM::InputEnumeratorBase< ObjectType >.

Definition at line 124 of file EnumEquivalents.hh.

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
const std::vector<SymOpType>& CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::invariant_subgroup ( ) const
inline

Definition at line 115 of file EnumEquivalents.hh.

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
const SymOpType& CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::sym_op ( ) const
inline

Definition at line 111 of file EnumEquivalents.hh.

Variable Documentation

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
SymOpCompare CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_compare
private

Definition at line 160 of file EnumEquivalents.hh.

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
notstd::cloneable_ptr<ObjectType> CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_current
private

Definition at line 156 of file EnumEquivalents.hh.

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
notstd::cloneable_ptr<ObjectType> CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_initial
private

Definition at line 155 of file EnumEquivalents.hh.

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
std::vector<SymOpType> CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_invariant_subgroup
private

Definition at line 159 of file EnumEquivalents.hh.

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
SymOpIterator CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_symop_end
private

Definition at line 158 of file EnumEquivalents.hh.

template<typename ObjectType, typename SymOpIterator, typename SymOpType = typename std::iterator_traits<SymOpIterator>::value_type, typename SymOpCompare = std::less<SymOpType>>
SymOpIterator CASM::EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare >::m_symop_it
private

Definition at line 157 of file EnumEquivalents.hh.

template<typename ObjectType , typename SymOpIterator , typename SymOpType , typename SymOpCompare >
const std::string CASM::CASM_TMP::traits< EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare > >::name = "EnumEquivalents"
static

Definition at line 34 of file EnumEquivalents.hh.