CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::ConfigCanonicalForm< Base > Class Template Reference

#include <HasCanonicalForm.hh>

+ Inheritance diagram for CASM::ConfigCanonicalForm< Base >:

Detailed Description

template<typename Base>
class CASM::ConfigCanonicalForm< Base >

Implements canonical form finding for Configuration and DiffTransConfiguration.

Requires MostDerived implements:

  • Functor less() const;
    • Functor is a ConfigCompare like functor that can compare A*config < B*other
  • SuperGroupPermuteIteratorType default_permute_begin() const;
  • SuperGroupPermuteIteratorType default_permute_end() const;
    • where SuperGroupPermuteIteratorType may be PermuteIterator or std::vector<PermuteIterator>::const_iterator

Definition at line 136 of file HasCanonicalForm.hh.

Public Types

typedef Base::MostDerived MostDerived
 

Public Member Functions

bool is_sym_equivalent (const MostDerived &B) const
 True if this and B have same canonical form. More...
 
template<typename ConfigIterator >
ConfigIterator find_sym_equivalent (const MostDerived &B, ConfigIterator obj_begin, ConfigIterator obj_end) const
 Find Config that has same canonical form. More...
 
bool is_canonical () const
 
MostDerived canonical_form () const
 
PermuteIterator to_canonical () const
 
PermuteIterator from_canonical () const
 
std::vector< PermuteIteratorinvariant_subgroup () const
 
template<typename PermuteIteratorIt >
bool is_sym_equivalent (const MostDerived &B, PermuteIteratorIt begin, PermuteIteratorIt end) const
 True if this and B have same canonical form. More...
 
template<typename ConfigIterator , typename PermuteIteratorIt >
ConfigIterator find_sym_equivalent (ConfigIterator obj_begin, ConfigIterator obj_end, PermuteIteratorIt begin, PermuteIteratorIt end) const
 True if this and B have same canonical form. More...
 
template<typename PermuteIteratorIt >
bool is_canonical (PermuteIteratorIt begin, PermuteIteratorIt end) const
 
template<typename PermuteIteratorIt >
MostDerived canonical_form (PermuteIteratorIt begin, PermuteIteratorIt end) const
 
template<typename PermuteIteratorIt >
PermuteIterator to_canonical (PermuteIteratorIt begin, PermuteIteratorIt end) const
 
template<typename PermuteIteratorIt >
PermuteIterator from_canonical (PermuteIteratorIt begin, PermuteIteratorIt end) const
 
template<typename PermuteIteratorIt >
std::vector< PermuteIteratorinvariant_subgroup (PermuteIteratorIt begin, PermuteIteratorIt end) const
 

Member Typedef Documentation

◆ MostDerived

template<typename Base >
typedef Base::MostDerived CASM::ConfigCanonicalForm< Base >::MostDerived

Definition at line 138 of file HasCanonicalForm.hh.

Member Function Documentation

◆ canonical_form() [1/2]

template<typename Base >
ConfigCanonicalForm< Base >::MostDerived CASM::ConfigCanonicalForm< Base >::canonical_form

Definition at line 217 of file HasCanonicalForm_impl.hh.

◆ canonical_form() [2/2]

template<typename Base >
template<typename PermuteIteratorIt >
ConfigCanonicalForm< Base >::MostDerived CASM::ConfigCanonicalForm< Base >::canonical_form ( PermuteIteratorIt  begin,
PermuteIteratorIt  end 
) const

Definition at line 272 of file HasCanonicalForm_impl.hh.

◆ find_sym_equivalent() [1/2]

template<typename Base >
template<typename ConfigIterator , typename PermuteIteratorIt >
ConfigIterator CASM::ConfigCanonicalForm< Base >::find_sym_equivalent ( ConfigIterator  obj_begin,
ConfigIterator  obj_end,
PermuteIteratorIt  begin,
PermuteIteratorIt  end 
) const

True if this and B have same canonical form.

Definition at line 259 of file HasCanonicalForm_impl.hh.

◆ find_sym_equivalent() [2/2]

template<typename Base >
template<typename ConfigIterator >
ConfigIterator CASM::ConfigCanonicalForm< Base >::find_sym_equivalent ( const MostDerived B,
ConfigIterator  obj_begin,
ConfigIterator  obj_end 
) const

Find Config that has same canonical form.

Definition at line 199 of file HasCanonicalForm_impl.hh.

◆ from_canonical() [1/2]

template<typename Base >
PermuteIterator CASM::ConfigCanonicalForm< Base >::from_canonical

Definition at line 229 of file HasCanonicalForm_impl.hh.

◆ from_canonical() [2/2]

template<typename Base >
template<typename PermuteIteratorIt >
PermuteIterator CASM::ConfigCanonicalForm< Base >::from_canonical ( PermuteIteratorIt  begin,
PermuteIteratorIt  end 
) const

Definition at line 286 of file HasCanonicalForm_impl.hh.

◆ invariant_subgroup() [1/2]

template<typename Base >
std::vector< PermuteIterator > CASM::ConfigCanonicalForm< Base >::invariant_subgroup

Definition at line 235 of file HasCanonicalForm_impl.hh.

◆ invariant_subgroup() [2/2]

template<typename Base >
template<typename PermuteIteratorIt >
std::vector< PermuteIterator > CASM::ConfigCanonicalForm< Base >::invariant_subgroup ( PermuteIteratorIt  begin,
PermuteIteratorIt  end 
) const

Definition at line 315 of file HasCanonicalForm_impl.hh.

◆ is_canonical() [1/2]

template<typename Base >
bool CASM::ConfigCanonicalForm< Base >::is_canonical

Definition at line 210 of file HasCanonicalForm_impl.hh.

◆ is_canonical() [2/2]

template<typename Base >
template<typename PermuteIteratorIt >
bool CASM::ConfigCanonicalForm< Base >::is_canonical ( PermuteIteratorIt  begin,
PermuteIteratorIt  end 
) const

Definition at line 243 of file HasCanonicalForm_impl.hh.

◆ is_sym_equivalent() [1/2]

template<typename Base >
bool CASM::ConfigCanonicalForm< Base >::is_sym_equivalent ( const MostDerived B) const

True if this and B have same canonical form.

Definition at line 193 of file HasCanonicalForm_impl.hh.

◆ is_sym_equivalent() [2/2]

template<typename Base >
template<typename PermuteIteratorIt >
bool CASM::ConfigCanonicalForm< Base >::is_sym_equivalent ( const MostDerived B,
PermuteIteratorIt  begin,
PermuteIteratorIt  end 
) const

True if this and B have same canonical form.

Definition at line 251 of file HasCanonicalForm_impl.hh.

◆ to_canonical() [1/2]

template<typename Base >
PermuteIterator CASM::ConfigCanonicalForm< Base >::to_canonical

Definition at line 223 of file HasCanonicalForm_impl.hh.

◆ to_canonical() [2/2]

template<typename Base >
template<typename PermuteIteratorIt >
PermuteIterator CASM::ConfigCanonicalForm< Base >::to_canonical ( PermuteIteratorIt  begin,
PermuteIteratorIt  end 
) const

Definition at line 279 of file HasCanonicalForm_impl.hh.


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