CASM  1.1.0
A Clusters Approach to Statistical Mechanics
IntegralCluster

Detailed Description

Functions and classes related to IntegralCluster.

Modules

 ClusterOrbits
 Functions and classes for IntegralCluster orbits of any type.
 
 ClusterSpecs
 ClusterSpecs Generate IntegralCluster orbits of specific types.
 
 ClusterSymCompare
 Functions and classes for creating cluster SymCompare functors for orbit generation .
 
 IntegralClusterOrbits
 Traits and functions for specific types of IntegralCluster orbits.
 

Classes

class  CASM::OrbitBranchSpecs< _OrbitType >
 Store data used to generate an orbit branch of IntegralCluster. More...
 

Functions

template<typename OutputIterator >
OutputIterator CASM::prim_periodic_orbit_neighborhood (const PrimPeriodicOrbit< IntegralCluster > &orbit, OutputIterator result)
 Iterate over all sites in an orbit and insert a UnitCellCoord. More...
 
template<typename ClusterOrbitIterator , typename OutputIterator >
OutputIterator CASM::prim_periodic_neighborhood (ClusterOrbitIterator begin, ClusterOrbitIterator end, OutputIterator result)
 Iterate over all sites in all orbits and insert a UnitCellCoord. More...
 
template<typename OutputIterator , typename OrbitType >
OutputIterator CASM::flower_neighborhood (OrbitType const &orbit, OutputIterator result)
 Iterate over all sites in an orbit and insert a UnitCellCoord. More...
 
template<typename ClusterOrbitIterator , typename OutputIterator >
OutputIterator CASM::flower_neighborhood (ClusterOrbitIterator begin, ClusterOrbitIterator end, OutputIterator result)
 Iterate over all sites in all orbits and insert a UnitCellCoord. More...
 
template<typename OutputIterator >
OutputIterator CASM::neighborhood (Structure const &unit, double max_radius, SiteFilterFunction site_filter, OutputIterator result, double xtal_tol)
 Output the neighborhood of UnitCellCoord within max_radius of any sites in unit cell. More...
 
template<typename OutputIterator >
OutputIterator CASM::neighborhood (IntegralCluster const &phenomenal, double cutoff_radius, SiteFilterFunction site_filter, bool include_phenomenal_sites, OutputIterator result, double xtal_tol)
 Output the neighborhood of sites within cutoff_radius of any sites in the phenomenal. More...
 
template<typename OrbitType , typename OutputIterator >
OutputIterator CASM::local_orbit_neighborhood (const OrbitType &orbit, OutputIterator result)
 Iterate over all sites in an orbit and insert a UnitCellCoord. More...
 
template<typename ClusterOrbitIterator , typename OutputIterator >
OutputIterator CASM::local_neighborhood (ClusterOrbitIterator begin, ClusterOrbitIterator end, OutputIterator result)
 Iterate over all sites in all orbits and insert a UnitCellCoord. More...
 
template<typename OrbitType >
OrbitGenerators< OrbitType > & CASM::insert_subcluster_generators (typename OrbitType::Element cluster, OrbitGenerators< OrbitType > &generators)
 Given a cluster, generate all subcluster generators. More...
 
template<typename OrbitType , typename OrbitInputIterator , typename OrbitOutputIterator >
OrbitOutputIterator CASM::make_next_orbitbranch (OrbitInputIterator begin, OrbitInputIterator end, const OrbitBranchSpecs< OrbitType > &specs, OrbitOutputIterator result, std::ostream &status)
 Use orbits of size n to generate orbits of size n+1. More...
 

Function Documentation

◆ flower_neighborhood() [1/2]

template<typename ClusterOrbitIterator , typename OutputIterator >
OutputIterator CASM::flower_neighborhood ( ClusterOrbitIterator  begin,
ClusterOrbitIterator  end,
OutputIterator  result 
)

Iterate over all sites in all orbits and insert a UnitCellCoord.

Parameters
begin,endRange of PrimPeriodicOrbit<IntegralCluster>
resultan OutputIterator for UnitCellCoord

This simply outputs all UnitCellCoord for clusters that include the origin UnitCell, without any standard order. It uses all clusters that touch origin unitcell, including translationally equivalent clusters. Respects translational properties of local orbits, so can be used when translational type is unknown.

Parameters
begin,endRange of PrimPeriodicOrbit<IntegralCluster>
resultan OutputIterator for UnitCellCoord

This simply outputs all UnitCellCoord for clusters that include the origin UnitCell, without any standard order. It uses all clusters that touch origin unitcell, including translationally equivalent clusters.

Definition at line 816 of file ClusterOrbits_impl.hh.

◆ flower_neighborhood() [2/2]

template<typename OutputIterator , typename OrbitType >
OutputIterator CASM::flower_neighborhood ( OrbitType const &  orbit,
OutputIterator  result 
)

Iterate over all sites in an orbit and insert a UnitCellCoord.

Parameters
orbitan PrimPeriodicOrbit<IntegralCluster>
resultan OutputIterator for UnitCellCoord
Returns
the resulting OutputIterator

This simply outputs all UnitCellCoord for clusters that include the origin UnitCell, without any standard order. It uses all clusters that touch origin unitcell, including translationally equivalent clusters. Respects translational properties of local orbits, so can be used when translational type is unknown.

Parameters
orbitan PrimPeriodicOrbit<IntegralCluster>
resultan OutputIterator for UnitCellCoord
Returns
the resulting OutputIterator

This simply outputs all UnitCellCoord for clusters that include the origin UnitCell, without any standard order. It uses all clusters that touch origin unitcell, including translationally equivalent clusters.

Definition at line 764 of file ClusterOrbits_impl.hh.

◆ insert_subcluster_generators()

template<typename OrbitType >
OrbitGenerators< OrbitType > & CASM::insert_subcluster_generators ( typename OrbitType::Element  cluster,
OrbitGenerators< OrbitType > &  generators 
)

Given a cluster, generate all subcluster generators.

Parameters
clusterA cluster to generate subclusters of
generatorsAn OrbitGeneratorSet<OrbitType>& to store generating elements for subclusters of cluster
stutusStream for status messages

Uses SymCompareType::compare to find unique generating elements

Definition at line 250 of file ClusterOrbits_impl.hh.

◆ local_neighborhood()

template<typename ClusterOrbitIterator , typename OutputIterator >
OutputIterator CASM::local_neighborhood ( ClusterOrbitIterator  begin,
ClusterOrbitIterator  end,
OutputIterator  result 
)

Iterate over all sites in all orbits and insert a UnitCellCoord.

Parameters
begin,endRange of Orbit<IntegralCluster>
resultan OutputIterator for UnitCellCoord

This simply outputs all UnitCellCoord in all equivalent clusters of each orbit

Definition at line 178 of file ClusterOrbits_impl.hh.

◆ local_orbit_neighborhood()

template<typename OrbitType , typename OutputIterator >
OutputIterator CASM::local_orbit_neighborhood ( const OrbitType &  orbit,
OutputIterator  result 
)

Iterate over all sites in an orbit and insert a UnitCellCoord.

Parameters
orbitan Orbit<IntegralCluster>
resultan OutputIterator for UnitCellCoord
Returns
the resulting OutputIterator

This simply outputs all UnitCellCoord in all equivalent clusters

Definition at line 157 of file ClusterOrbits_impl.hh.

◆ make_next_orbitbranch()

template<typename OrbitType , typename OrbitInputIterator , typename OrbitOutputIterator >
OrbitOutputIterator CASM::make_next_orbitbranch ( OrbitInputIterator  begin,
OrbitInputIterator  end,
const OrbitBranchSpecs< OrbitType > &  specs,
OrbitOutputIterator  result,
std::ostream &  status 
)

Use orbits of size n to generate orbits of size n+1.

Parameters
begin,endA range of input orbits of size n
specsOrbitBranchSpecs for orbits of size n+1
resultAn output iterator for orbits of IntegralCluster
stutusStream for status messages

Construct an OrbitGenerators object to collect orbit generating elements

Use OrbitBranchSpecs to insert orbit generating elements for the next orbitbranch

Generate orbits from the orbit generating elements

Construct an OrbitGenerators object to collect orbit generating elements

Use OrbitBranchSpecs to insert orbit generating elements for the next orbitbranch

Generate orbits from the orbit generating elements

Definition at line 453 of file ClusterOrbits_impl.hh.

◆ neighborhood() [1/2]

template<typename OutputIterator >
OutputIterator CASM::neighborhood ( IntegralCluster const &  phenomenal,
double  cutoff_radius,
SiteFilterFunction  site_filter,
bool  include_phenomenal_sites,
OutputIterator  result,
double  xtal_tol 
)

Output the neighborhood of sites within cutoff_radius of any sites in the phenomenal.

Parameters
phenomenalIntegralCluster
cutoff_radiusThe neighborhood distance cutoff
site_filterA filter function that returns true for UnitCellCoord that should be considered for the neighborhood
resultOutput iterator for container of UnitCellCoord
xtal_tolCrystallography tolerance used to contstruct UnitCellCoord
Returns
Output iterator after generating the neighborhood

lattice scaling

lattice scaling

Definition at line 83 of file ClusterOrbits_impl.hh.

◆ neighborhood() [2/2]

template<typename OutputIterator >
OutputIterator CASM::neighborhood ( Structure const &  unit,
double  max_radius,
SiteFilterFunction  site_filter,
OutputIterator  result,
double  xtal_tol 
)

Output the neighborhood of UnitCellCoord within max_radius of any sites in unit cell.

Output the neighborhood of UnitCellCoord within max_radius of any site in unit cell.

Parameters
unitThe unit cell Structure
max_radiusThe neighborhood distance cutoff
site_filterA filter function that returns true for CoordType that should be considered for the neighborhood
resultOutput iterator for container of UnitCellCoord
xtal_tolCrystallography tolerance used to contstruct UnitCellCoord from CoordType
Returns
Output iterator after generating the neighborhood

Definition at line 38 of file ClusterOrbits_impl.hh.

◆ prim_periodic_neighborhood()

template<typename ClusterOrbitIterator , typename OutputIterator >
OutputIterator CASM::prim_periodic_neighborhood ( ClusterOrbitIterator  begin,
ClusterOrbitIterator  end,
OutputIterator  result 
)

Iterate over all sites in all orbits and insert a UnitCellCoord.

Parameters
begin,endRange of PrimPeriodicOrbit<IntegralCluster>
resultan OutputIterator for UnitCellCoord

This simply outputs all UnitCellCoord for clusters that include the origin UnitCell, without any standard order. It uses all clusters that touch origin unitcell, including translationally equivalent clusters.

Parameters
begin,endRange of Orbit<IntegralCluster>
resultan OutputIterator for UnitCellCoord

This simply outputs all UnitCellCoord for clusters that include the origin UnitCell, without any standard order. It uses all clusters that touch origin unitcell, including translationally equivalent clusters.

Definition at line 740 of file ClusterOrbits_impl.hh.

◆ prim_periodic_orbit_neighborhood()

template<typename OutputIterator >
OutputIterator CASM::prim_periodic_orbit_neighborhood ( const PrimPeriodicOrbit< IntegralCluster > &  orbit,
OutputIterator  result 
)

Iterate over all sites in an orbit and insert a UnitCellCoord.

Parameters
orbitan Orbit<IntegralCluster>
resultan OutputIterator for UnitCellCoord
Returns
the resulting OutputIterator

This simply outputs all UnitCellCoord for clusters that include the origin UnitCell, without any standard order. It uses all clusters that touch origin unitcell, including translationally equivalent clusters.

Definition at line 709 of file ClusterOrbits_impl.hh.