CASM  1.1.0
A Clusters Approach to Statistical Mechanics
EnumEquivalents

Detailed Description

Enumerate equivalent objects.

Classes

class  CASM::ConfigEnumByPermutation
 Enumerate all equivalent Configurations obtained by permuations in a Supercell. 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::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::traits< EnumEquivalents< ObjectType, SymOpIterator, SymOpType, SymOpCompare > >::name
 
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

◆ _check()

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 122 of file EnumEquivalents.hh.

◆ EnumEquivalents()

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 65 of file EnumEquivalents.hh.

◆ generator()

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 91 of file EnumEquivalents.hh.

◆ increment()

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 103 of file EnumEquivalents.hh.

◆ invariant_subgroup()

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 95 of file EnumEquivalents.hh.

◆ sym_op()

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 93 of file EnumEquivalents.hh.

Variable Documentation

◆ m_compare

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 133 of file EnumEquivalents.hh.

◆ m_current

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 129 of file EnumEquivalents.hh.

◆ m_initial

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 128 of file EnumEquivalents.hh.

◆ m_invariant_subgroup

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 132 of file EnumEquivalents.hh.

◆ m_symop_end

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 131 of file EnumEquivalents.hh.

◆ m_symop_it

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 130 of file EnumEquivalents.hh.

◆ name

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

Definition at line 27 of file EnumEquivalents.hh.