CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::IntegralCluster Class Reference

#include <IntegralCluster.hh>

+ Inheritance diagram for CASM::IntegralCluster:

Detailed Description

Definition at line 37 of file IntegralCluster.hh.

Public Types

typedef Structure PrimType
 
typedef xtal::Translatable< GenericCluster< CRTPBase< IntegralCluster > > > Base
 
typedef Base::MostDerived MostDerived
 
typedef traits< MostDerived >::Element Element
 
typedef Index size_type
 
typedef std::vector< Element >::value_type value_type
 
typedef std::vector< Element >::iterator iterator
 
typedef std::vector< Element >::const_iterator const_iterator
 

Public Member Functions

 IntegralCluster (PrimType const &prim)
 
template<typename Iterator >
 IntegralCluster (PrimType const &prim, Iterator begin, Iterator end)
 
const PrimTypeprim () const
 
std::vector< Element > & elements ()
 Access vector of elements. More...
 
const std::vector< Element > & elements () const
 const Access vector of elements More...
 
xtal::Coordinate coordinate (size_type i) const
 Return the coordinate corresponding to element(i) More...
 
IntegralClusteroperator+= (xtal::UnitCell trans)
 Translate the cluster by a UnitCell translation. More...
 
MostDerivedoperator-= (UnitCell frac)
 
MostDerived operator+ (UnitCell frac) const
 
MostDerived operator- (UnitCell frac) const
 
iterator begin ()
 Iterator to first element in the cluster. More...
 
const_iterator begin () const
 Iterator to first element in the cluster. More...
 
iterator end ()
 Iterator to the past-the-last element in the cluster. More...
 
const_iterator end () const
 Iterator to the past-the-last element in the cluster. More...
 
const_iterator cbegin () const
 Iterator to first element in the cluster. More...
 
const_iterator cend () const
 Iterator to the past-the-last element in the cluster. More...
 
size_type size () const
 Number of elements in the cluster. More...
 
value_typeoperator[] (size_type index)
 Access an element in the cluster by index. More...
 
value_type const & operator[] (size_type index) const
 Access an element in the cluster by index. More...
 
value_typeelement (size_type index)
 Access an element in the cluster by index. More...
 
value_type const & element (size_type index) const
 Access a UnitCellCoord in the cluster by index. More...
 
MostDerivedsort ()
 
MostDerived sorted () const
 
bool is_sorted () const
 
Permutation sort_permutation () const
 
bool operator< (MostDerived const &B) const
 
bool operator> (const MostDerived &B) const
 
bool operator<= (const MostDerived &B) const
 
bool operator>= (const MostDerived &B) const
 
bool operator== (const MostDerived &B) const
 
bool operator!= (const MostDerived &B) const
 

Protected Member Functions

MostDerivedsort_impl ()
 
bool is_sorted_impl () const
 
Permutation sort_permutation_impl () const
 
bool compare_impl (MostDerived const &B) const
 
bool eq_impl (const MostDerived &B) const
 
bool ne_impl (const MostDerived &B) const
 

Protected Attributes

friend GenericCluster< CRTPBase< IntegralCluster > >
 

Private Attributes

std::vector< xtal::UnitCellCoordm_element
 
const PrimTypem_prim_ptr
 

Related Functions

(Note that these are not member functions.)

template<typename OrbitOutputIterator >
OrbitOutputIterator make_prim_periodic_asymmetric_unit (std::shared_ptr< Structure const > prim_ptr, SiteFilterFunction const &site_filter, double xtal_tol, OrbitOutputIterator result, std::ostream &status)
 Generate the prim periodic asymmetric unit. More...
 
template<typename OrbitOutputIterator >
OrbitOutputIterator make_prim_periodic_orbits (std::shared_ptr< Structure const > prim_ptr, std::vector< double > const &max_length, std::vector< IntegralClusterOrbitGenerator > const &custom_generators, SiteFilterFunction const &site_filter, double xtal_tol, OrbitOutputIterator result, std::ostream &status)
 Generate Orbit<IntegralCluster> by specifying max cluster length for each branch. More...
 
template<typename OrbitType , typename OrbitOutputIterator >
OrbitOutputIterator make_asymmetric_unit (const OrbitBranchSpecs< OrbitType > &specs, OrbitOutputIterator result, std::ostream &status)
 Generate the asymmetric unit, using OrbitBranchSpecs. More...
 
template<typename OrbitOutputIterator >
OrbitOutputIterator make_prim_periodic_asymmetric_unit (std::shared_ptr< Structure const > prim_ptr, SiteFilterFunction const &site_filter, double xtal_tol, OrbitOutputIterator result, std::ostream &status)
 Generate the prim periodic asymmetric unit. More...
 
template<typename OrbitOutputIterator >
OrbitOutputIterator make_prim_periodic_orbits (std::shared_ptr< Structure const > prim_ptr, std::vector< double > const &max_length, std::vector< IntegralClusterOrbitGenerator > const &custom_generators, SiteFilterFunction const &site_filter, double xtal_tol, OrbitOutputIterator result, std::ostream &status)
 Generate Orbit<IntegralCluster> by specifying max cluster length for each branch. More...
 

Member Typedef Documentation

◆ Base

◆ const_iterator

template<typename Base >
typedef std::vector<Element>::const_iterator CASM::GenericCluster< Base >::const_iterator
inherited

Definition at line 57 of file GenericCluster.hh.

◆ Element

template<typename Base >
typedef traits<MostDerived>::Element CASM::GenericCluster< Base >::Element
inherited

Definition at line 52 of file GenericCluster.hh.

◆ iterator

template<typename Base >
typedef std::vector<Element>::iterator CASM::GenericCluster< Base >::iterator
inherited

Definition at line 56 of file GenericCluster.hh.

◆ MostDerived

◆ PrimType

Definition at line 40 of file IntegralCluster.hh.

◆ size_type

template<typename Base >
typedef Index CASM::GenericCluster< Base >::size_type
inherited

Definition at line 53 of file GenericCluster.hh.

◆ value_type

template<typename Base >
typedef std::vector<Element>::value_type CASM::GenericCluster< Base >::value_type
inherited

Definition at line 55 of file GenericCluster.hh.

Constructor & Destructor Documentation

◆ IntegralCluster() [1/2]

CASM::IntegralCluster::IntegralCluster ( PrimType const &  prim)

Definition at line 8 of file IntegralCluster.cc.

◆ IntegralCluster() [2/2]

template<typename Iterator >
CASM::IntegralCluster::IntegralCluster ( PrimType const &  prim,
Iterator  begin,
Iterator  end 
)

Definition at line 73 of file IntegralCluster.hh.

Member Function Documentation

◆ begin() [1/2]

template<typename Base >
iterator CASM::GenericCluster< Base >::begin ( )
inlineinherited

Iterator to first element in the cluster.

Definition at line 60 of file GenericCluster.hh.

◆ begin() [2/2]

template<typename Base >
const_iterator CASM::GenericCluster< Base >::begin ( ) const
inlineinherited

Iterator to first element in the cluster.

Definition at line 63 of file GenericCluster.hh.

◆ cbegin()

template<typename Base >
const_iterator CASM::GenericCluster< Base >::cbegin ( ) const
inlineinherited

Iterator to first element in the cluster.

Definition at line 72 of file GenericCluster.hh.

◆ cend()

template<typename Base >
const_iterator CASM::GenericCluster< Base >::cend ( ) const
inlineinherited

Iterator to the past-the-last element in the cluster.

Definition at line 75 of file GenericCluster.hh.

◆ compare_impl()

template<typename Base >
bool CASM::GenericCluster< Base >::compare_impl ( MostDerived const &  B) const
inlineprotectedinherited

Definition at line 135 of file GenericCluster.hh.

◆ coordinate()

xtal::Coordinate CASM::IntegralCluster::coordinate ( size_type  i) const

Return the coordinate corresponding to element(i)

Definition at line 25 of file IntegralCluster.cc.

◆ element() [1/2]

template<typename Base >
value_type& CASM::GenericCluster< Base >::element ( size_type  index)
inlineinherited

Access an element in the cluster by index.

Definition at line 89 of file GenericCluster.hh.

◆ element() [2/2]

template<typename Base >
value_type const& CASM::GenericCluster< Base >::element ( size_type  index) const
inlineinherited

Access a UnitCellCoord in the cluster by index.

Definition at line 92 of file GenericCluster.hh.

◆ elements() [1/2]

std::vector< xtal::UnitCellCoord > & CASM::IntegralCluster::elements ( )

Access vector of elements.

Definition at line 15 of file IntegralCluster.cc.

◆ elements() [2/2]

const std::vector< xtal::UnitCellCoord > & CASM::IntegralCluster::elements ( ) const

const Access vector of elements

Definition at line 20 of file IntegralCluster.cc.

◆ end() [1/2]

template<typename Base >
iterator CASM::GenericCluster< Base >::end ( )
inlineinherited

Iterator to the past-the-last element in the cluster.

Definition at line 66 of file GenericCluster.hh.

◆ end() [2/2]

template<typename Base >
const_iterator CASM::GenericCluster< Base >::end ( ) const
inlineinherited

Iterator to the past-the-last element in the cluster.

Definition at line 69 of file GenericCluster.hh.

◆ eq_impl()

template<typename Base >
bool notstd::Comparisons< Base >::eq_impl ( const MostDerived B) const
inlineprotectedinherited

Definition at line 40 of file Comparisons.hh.

◆ is_sorted()

template<typename Base >
bool CASM::GenericCluster< Base >::is_sorted ( ) const
inlineinherited

Definition at line 103 of file GenericCluster.hh.

◆ is_sorted_impl()

template<typename Base >
bool CASM::GenericCluster< Base >::is_sorted_impl ( ) const
inlineprotectedinherited

Definition at line 122 of file GenericCluster.hh.

◆ ne_impl()

template<typename Base >
bool notstd::Comparisons< Base >::ne_impl ( const MostDerived B) const
inlineprotectedinherited

Definition at line 44 of file Comparisons.hh.

◆ operator!=()

template<typename Base >
bool notstd::Comparisons< Base >::operator!= ( const MostDerived B) const
inlineinherited

Definition at line 37 of file Comparisons.hh.

◆ operator+()

MostDerived CASM::xtal::Translatable< GenericCluster< CRTPBase< IntegralCluster > > >::operator+ ( UnitCell  frac) const
inlineinherited

Definition at line 103 of file UnitCellCoord.hh.

◆ operator+=()

IntegralCluster & CASM::IntegralCluster::operator+= ( xtal::UnitCell  trans)

Translate the cluster by a UnitCell translation.

Definition at line 30 of file IntegralCluster.cc.

◆ operator-()

MostDerived CASM::xtal::Translatable< GenericCluster< CRTPBase< IntegralCluster > > >::operator- ( UnitCell  frac) const
inlineinherited

Definition at line 108 of file UnitCellCoord.hh.

◆ operator-=()

MostDerived& CASM::xtal::Translatable< GenericCluster< CRTPBase< IntegralCluster > > >::operator-= ( UnitCell  frac)
inlineinherited

Definition at line 101 of file UnitCellCoord.hh.

◆ operator<()

template<typename Base >
bool CASM::GenericCluster< Base >::operator< ( MostDerived const &  B) const
inlineinherited

Definition at line 109 of file GenericCluster.hh.

◆ operator<=()

template<typename Base >
bool notstd::Comparisons< Base >::operator<= ( const MostDerived B) const
inlineinherited

Definition at line 31 of file Comparisons.hh.

◆ operator==()

template<typename Base >
bool notstd::Comparisons< Base >::operator== ( const MostDerived B) const
inlineinherited

Definition at line 35 of file Comparisons.hh.

◆ operator>()

template<typename Base >
bool notstd::Comparisons< Base >::operator> ( const MostDerived B) const
inlineinherited

Definition at line 29 of file Comparisons.hh.

◆ operator>=()

template<typename Base >
bool notstd::Comparisons< Base >::operator>= ( const MostDerived B) const
inlineinherited

Definition at line 33 of file Comparisons.hh.

◆ operator[]() [1/2]

template<typename Base >
value_type& CASM::GenericCluster< Base >::operator[] ( size_type  index)
inlineinherited

Access an element in the cluster by index.

Definition at line 81 of file GenericCluster.hh.

◆ operator[]() [2/2]

template<typename Base >
value_type const& CASM::GenericCluster< Base >::operator[] ( size_type  index) const
inlineinherited

Access an element in the cluster by index.

Definition at line 84 of file GenericCluster.hh.

◆ prim()

IntegralCluster::PrimType const & CASM::IntegralCluster::prim ( ) const

Definition at line 10 of file IntegralCluster.cc.

◆ size()

template<typename Base >
size_type CASM::GenericCluster< Base >::size ( ) const
inlineinherited

Number of elements in the cluster.

Definition at line 78 of file GenericCluster.hh.

◆ sort()

template<typename Base >
MostDerived& CASM::GenericCluster< Base >::sort ( )
inlineinherited

Definition at line 96 of file GenericCluster.hh.

◆ sort_impl()

template<typename Base >
MostDerived& CASM::GenericCluster< Base >::sort_impl ( )
inlineprotectedinherited

Definition at line 117 of file GenericCluster.hh.

◆ sort_permutation()

template<typename Base >
Permutation CASM::GenericCluster< Base >::sort_permutation ( ) const
inlineinherited

Definition at line 105 of file GenericCluster.hh.

◆ sort_permutation_impl()

template<typename Base >
Permutation CASM::GenericCluster< Base >::sort_permutation_impl ( ) const
inlineprotectedinherited

Definition at line 124 of file GenericCluster.hh.

◆ sorted()

template<typename Base >
MostDerived CASM::GenericCluster< Base >::sorted ( ) const
inlineinherited

Definition at line 98 of file GenericCluster.hh.

Friends And Related Function Documentation

◆ make_asymmetric_unit()

template<typename OrbitType , typename OrbitOutputIterator >
OrbitOutputIterator make_asymmetric_unit ( const OrbitBranchSpecs< OrbitType > &  specs,
OrbitOutputIterator  result,
std::ostream &  status 
)
related

Generate the asymmetric unit, using OrbitBranchSpecs.

Parameters
specsOrbitBranchSpecs for the asymmetric unit
resultAn output iterator for orbits of IntegralCluster

Definition at line 427 of file ClusterOrbits_impl.hh.

◆ make_prim_periodic_asymmetric_unit() [1/2]

template<typename OrbitOutputIterator >
OrbitOutputIterator make_prim_periodic_asymmetric_unit ( std::shared_ptr< Structure const >  prim_ptr,
SiteFilterFunction const &  site_filter,
double  xtal_tol,
OrbitOutputIterator  result,
std::ostream &  status 
)
related

Generate the prim periodic asymmetric unit.

Parameters
primA PrimType
site_filterA filter function that returns true for Site that should be considered for the neighborhood (i.e. to check the number of components)
xtal_tolCrystallography tolerance
resultAn output iterator for orbits of IntegralCluster
statusStream for status messages

◆ make_prim_periodic_asymmetric_unit() [2/2]

template<typename OrbitOutputIterator >
OrbitOutputIterator make_prim_periodic_asymmetric_unit ( std::shared_ptr< Structure const >  prim_ptr,
SiteFilterFunction const &  site_filter,
double  xtal_tol,
OrbitOutputIterator  result,
std::ostream &  status 
)
related

Generate the prim periodic asymmetric unit.

Parameters
primA PrimType
site_filterA filter function that returns true for Site that should be considered for the neighborhood (i.e. to check the number of components)
xtal_tolCrystallography tolerance
resultAn output iterator for orbits of IntegralCluster
statusStream for status messages

Definition at line 584 of file ClusterOrbits_impl.hh.

◆ make_prim_periodic_orbits() [1/2]

template<typename OrbitOutputIterator >
OrbitOutputIterator make_prim_periodic_orbits ( std::shared_ptr< Structure const >  prim_ptr,
std::vector< double > const &  max_length,
std::vector< IntegralClusterOrbitGenerator > const &  custom_generators,
SiteFilterFunction const &  site_filter,
double  xtal_tol,
OrbitOutputIterator  result,
std::ostream &  status 
)
related

Generate Orbit<IntegralCluster> by specifying max cluster length for each branch.

Parameters
primPrimitive structure
max_lengthvector of max_length of pairs of cluster sites. Expects that max_length[b] is the max_length for orbit branch b. The values for the null cluster and point clusters are ignored.
custom_generatorsA vector of custom orbit generating clusters
site_filterA filter function that returns true for Site that should be considered for the neighborhood (i.e. to check the number of components)
xtal_tolCrystallography tolerance
resultAn output iterator for Orbit
statusStream for status messages

◆ make_prim_periodic_orbits() [2/2]

template<typename OrbitOutputIterator >
OrbitOutputIterator make_prim_periodic_orbits ( std::shared_ptr< Structure const >  prim_ptr,
std::vector< double > const &  max_length,
std::vector< IntegralClusterOrbitGenerator > const &  custom_generators,
SiteFilterFunction const &  site_filter,
double  xtal_tol,
OrbitOutputIterator  result,
std::ostream &  status 
)
related

Generate Orbit<IntegralCluster> by specifying max cluster length for each branch.

Parameters
primPrimitive structure
max_lengthvector of max_length of pairs of cluster sites. Expects that max_length[b] is the max_length for orbit branch b. The values for the null cluster and point clusters are ignored.
custom_generatorsA vector of custom orbit generating clusters
site_filterA filter function that returns true for Site that should be considered for the neighborhood (i.e. to check the number of components)
xtal_tolCrystallography tolerance
resultAn output iterator for Orbit
statusStream for status messages

Definition at line 633 of file ClusterOrbits_impl.hh.

Member Data Documentation

◆ GenericCluster< CRTPBase< IntegralCluster > >

Definition at line 65 of file IntegralCluster.hh.

◆ m_element

std::vector<xtal::UnitCellCoord> CASM::IntegralCluster::m_element
private

Definition at line 68 of file IntegralCluster.hh.

◆ m_prim_ptr

const PrimType* CASM::IntegralCluster::m_prim_ptr
private

Definition at line 69 of file IntegralCluster.hh.


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