CASM  1.1.0
A Clusters Approach to Statistical Mechanics
ClusterOrbits.hh File Reference
#include <functional>
#include <iostream>
#include <utility>
#include <vector>
#include "casm/clusterography/ClusterSymCompare.hh"
#include "casm/clusterography/IntegralCluster.hh"
#include "casm/clusterography/IntegralClusterSymCompareTraits.hh"

Go to the source code of this file.

Classes

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

Namespaces

 CASM
 Main CASM namespace.
 
 CASM::xtal
 

Typedefs

typedef std::function< bool(xtal::Site)> CASM::SiteFilterFunction
 
typedef std::function< bool(IntegralCluster)> CASM::ClusterFilterFunction
 
typedef std::function< std::vector< xtal::UnitCellCoord >Structure const &, SiteFilterFunction)> CASM::CandidateSitesFunction
 

Functions

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 >
bool CASM::has_local_neighborhood_overlap (std::vector< OrbitType > &local_orbits, const Eigen::Matrix3i &transf_mat)
 Check if periodic images of sites in an orbit are overlapping in supercells defined by the given superlattice transformation matrix. More...
 
template<typename OrbitType >
std::vector< Eigen::Matrix3i > CASM::viable_supercells (std::vector< OrbitType > &local_orbits, const std::vector< Eigen::Matrix3i > &transf_mat)
 Return superlattice transf. matrices for which has_local_neighborhood_overlap is false. 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 OrbitIterator >
std::pair< OrbitIterator, OrbitIterator > CASM::orbit_branch (OrbitIterator begin, OrbitIterator end, Index size)
 Returns the first range containing orbits of the requested orbit branch in the given range of Orbit. More...
 
template<typename OrbitType , typename OrbitOutputIterator >
OrbitOutputIterator CASM::make_asymmetric_unit (const OrbitBranchSpecs< OrbitType > &specs, OrbitOutputIterator result, std::ostream &status)
 Generate the asymmetric unit, using OrbitBranchSpecs. 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...
 
template<typename OrbitBranchSpecsIterator , typename OrbitOutputIterator >
OrbitOutputIterator CASM::make_orbits (OrbitBranchSpecsIterator begin, OrbitBranchSpecsIterator end, const std::vector< IntegralClusterOrbitGenerator > &custom_generators, OrbitOutputIterator result, std::ostream &status)
 Generate orbits of IntegralCluster using OrbitBranchSpecs. More...
 
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...