CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::GenericPeriodicClusterSpecs Class Referenceabstract

#include <ClusterSpecs.hh>

+ Inheritance diagram for CASM::GenericPeriodicClusterSpecs:

Detailed Description

Parameters for the most generic orbit generation method currently implemented

Definition at line 223 of file ClusterSpecs.hh.

Public Types

typedef std::vector< IntegralClusterIntegralClusterVec
 
typedef std::vector< PrimPeriodicOrbit< IntegralCluster > > PeriodicOrbitVec
 
typedef std::vector< LocalOrbit< IntegralCluster > > LocalOrbitVec
 

Public Member Functions

std::string name () const
 This is the orbit generation method name. More...
 
CLUSTER_PERIODICITY_TYPE periodicity_type () const
 
PeriodicOrbitVec make_periodic_orbits (IntegralClusterVec const &generating_elements) const
 
PeriodicOrbitVec make_periodic_orbits (std::ostream &status) const
 
LocalOrbitVec make_local_orbits (IntegralClusterVec const &generating_elements) const
 
LocalOrbitVec make_local_orbits (std::ostream &status) const
 
std::unique_ptr< Cloneable > clone () const
 
std::unique_ptr< Cloneable > move ()
 

Private Types

typedef PrimPeriodicSymCompare< IntegralClusterSymCompareType
 

Private Member Functions

 GenericPeriodicClusterSpecs (std::string _method_name, std::shared_ptr< Structure const > _shared_prim, SymGroup const &_generating_group, SymCompareType const &_sym_compare, SiteFilterFunction _site_filter, std::vector< ClusterFilterFunction > _cluster_filter, std::vector< CandidateSitesFunction > _candidate_sites, std::vector< IntegralClusterOrbitGenerator > _custom_generators)
 
std::string _name () const override
 
CLUSTER_PERIODICITY_TYPE _periodicity_type () const override
 
PeriodicOrbitVec _make_periodic_orbits (IntegralClusterVec const &generating_elements) const override
 
PeriodicOrbitVec _make_periodic_orbits (std::ostream &status) const override
 
virtual LocalOrbitVec _make_local_orbits (IntegralClusterVec const &generating_elements) const
 
virtual LocalOrbitVec _make_local_orbits (std::ostream &status) const
 
virtual Cloneable * _clone () const =0
 
virtual Cloneable * _move ()=0
 

Private Attributes

std::shared_ptr< Structure const > shared_prim
 The prim. More...
 
SymGroup generating_group
 The orbit generating group. More...
 
SymCompareType sym_compare
 The comparisons used for orbit generation. More...
 
SiteFilterFunction site_filter
 
std::vector< ClusterFilterFunctioncluster_filter
 
std::vector< CandidateSitesFunctioncandidate_sites
 
std::vector< IntegralClusterOrbitGeneratorcustom_generators
 Specifies particular clusters that should be used to generate orbits. More...
 
std::string m_method_name
 

Member Typedef Documentation

◆ IntegralClusterVec

Definition at line 37 of file ClusterSpecs.hh.

◆ LocalOrbitVec

Definition at line 39 of file ClusterSpecs.hh.

◆ PeriodicOrbitVec

Definition at line 38 of file ClusterSpecs.hh.

◆ SymCompareType

Constructor & Destructor Documentation

◆ GenericPeriodicClusterSpecs()

CASM::GenericPeriodicClusterSpecs::GenericPeriodicClusterSpecs ( std::string  _method_name,
std::shared_ptr< Structure const >  _shared_prim,
SymGroup const &  _generating_group,
SymCompareType const &  _sym_compare,
SiteFilterFunction  _site_filter,
std::vector< ClusterFilterFunction _cluster_filter,
std::vector< CandidateSitesFunction _candidate_sites,
std::vector< IntegralClusterOrbitGenerator _custom_generators 
)
private

Definition at line 215 of file ClusterSpecs.cc.

Member Function Documentation

◆ _clone()

virtual Cloneable* notstd::Cloneable::_clone ( ) const
privatepure virtualinherited

◆ _make_local_orbits() [1/2]

ClusterSpecs::LocalOrbitVec CASM::ClusterSpecs::_make_local_orbits ( IntegralClusterVec const &  generating_elements) const
privatevirtualinherited

Reimplemented in CASM::GenericLocalClusterSpecs, and CASM::LocalMaxLengthClusterSpecs.

Definition at line 54 of file ClusterSpecs.cc.

◆ _make_local_orbits() [2/2]

ClusterSpecs::LocalOrbitVec CASM::ClusterSpecs::_make_local_orbits ( std::ostream &  status) const
privatevirtualinherited

Reimplemented in CASM::GenericLocalClusterSpecs, and CASM::LocalMaxLengthClusterSpecs.

Definition at line 62 of file ClusterSpecs.cc.

◆ _make_periodic_orbits() [1/2]

ClusterSpecs::PeriodicOrbitVec CASM::GenericPeriodicClusterSpecs::_make_periodic_orbits ( IntegralClusterVec const &  generating_elements) const
overrideprivatevirtual

Reimplemented from CASM::ClusterSpecs.

Definition at line 245 of file ClusterSpecs.cc.

◆ _make_periodic_orbits() [2/2]

ClusterSpecs::PeriodicOrbitVec CASM::GenericPeriodicClusterSpecs::_make_periodic_orbits ( std::ostream &  status) const
overrideprivatevirtual

Reimplemented from CASM::ClusterSpecs.

Definition at line 251 of file ClusterSpecs.cc.

◆ _move()

virtual Cloneable* notstd::Cloneable::_move ( )
privatepure virtualinherited

◆ _name()

std::string CASM::GenericPeriodicClusterSpecs::_name ( ) const
overrideprivatevirtual

Implements CASM::ClusterSpecs.

Definition at line 237 of file ClusterSpecs.cc.

◆ _periodicity_type()

CLUSTER_PERIODICITY_TYPE CASM::GenericPeriodicClusterSpecs::_periodicity_type ( ) const
overrideprivatevirtual

Implements CASM::ClusterSpecs.

Definition at line 239 of file ClusterSpecs.cc.

◆ clone()

std::unique_ptr<Cloneable> notstd::Cloneable::clone ( ) const
inlineinherited

Definition at line 92 of file cloneable_ptr.hh.

◆ make_local_orbits() [1/2]

ClusterSpecs::LocalOrbitVec CASM::ClusterSpecs::make_local_orbits ( IntegralClusterVec const &  generating_elements) const
inherited

Definition at line 30 of file ClusterSpecs.cc.

◆ make_local_orbits() [2/2]

ClusterSpecs::LocalOrbitVec CASM::ClusterSpecs::make_local_orbits ( std::ostream &  status) const
inherited

Definition at line 35 of file ClusterSpecs.cc.

◆ make_periodic_orbits() [1/2]

ClusterSpecs::PeriodicOrbitVec CASM::ClusterSpecs::make_periodic_orbits ( IntegralClusterVec const &  generating_elements) const
inherited

Definition at line 20 of file ClusterSpecs.cc.

◆ make_periodic_orbits() [2/2]

ClusterSpecs::PeriodicOrbitVec CASM::ClusterSpecs::make_periodic_orbits ( std::ostream &  status) const
inherited

Definition at line 25 of file ClusterSpecs.cc.

◆ move()

std::unique_ptr<Cloneable> notstd::Cloneable::move ( )
inlineinherited

Definition at line 95 of file cloneable_ptr.hh.

◆ name()

std::string CASM::ClusterSpecs::name ( ) const
inherited

This is the orbit generation method name.

Definition at line 14 of file ClusterSpecs.cc.

◆ periodicity_type()

CLUSTER_PERIODICITY_TYPE CASM::ClusterSpecs::periodicity_type ( ) const
inherited

Definition at line 16 of file ClusterSpecs.cc.

Member Data Documentation

◆ candidate_sites

std::vector<CandidateSitesFunction> CASM::GenericPeriodicClusterSpecs::candidate_sites
private

For each orbit branch, a function that generates std::vector<xtal::UnitCellCoord>, a vector of all the sites which will be considered for inclusion in the orbit branch. The null orbit function, candidate_sites[0], is ignored but must be present.

Definition at line 260 of file ClusterSpecs.hh.

◆ cluster_filter

std::vector<ClusterFilterFunction> CASM::GenericPeriodicClusterSpecs::cluster_filter
private

For each orbit branch, a function implementing 'bool filter(ClusterType)', which returns false for clusters that should not be used to construct an Orbit (i.e. pair distance too large). The null orbit filter, cluster_filter[0], is ignored.

Definition at line 254 of file ClusterSpecs.hh.

◆ custom_generators

std::vector<IntegralClusterOrbitGenerator> CASM::GenericPeriodicClusterSpecs::custom_generators
private

Specifies particular clusters that should be used to generate orbits.

Definition at line 263 of file ClusterSpecs.hh.

◆ generating_group

SymGroup CASM::GenericPeriodicClusterSpecs::generating_group
private

The orbit generating group.

Definition at line 240 of file ClusterSpecs.hh.

◆ m_method_name

std::string CASM::GenericPeriodicClusterSpecs::m_method_name
private

Definition at line 266 of file ClusterSpecs.hh.

◆ shared_prim

std::shared_ptr<Structure const> CASM::GenericPeriodicClusterSpecs::shared_prim
private

The prim.

Definition at line 237 of file ClusterSpecs.hh.

◆ site_filter

SiteFilterFunction CASM::GenericPeriodicClusterSpecs::site_filter
private

A filter which excludes sites that are part of the neighborhood from being included in orbits. If site_filter(site)==true, then the site is included, else excluded.

Definition at line 248 of file ClusterSpecs.hh.

◆ sym_compare

SymCompareType CASM::GenericPeriodicClusterSpecs::sym_compare
private

The comparisons used for orbit generation.

Definition at line 243 of file ClusterSpecs.hh.


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