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

#include <ClusterSpecs.hh>

+ Inheritance diagram for CASM::LocalMaxLengthClusterSpecs:

Detailed Description

Parameters most commonly used for local orbit generation.

Definition at line 154 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

 LocalMaxLengthClusterSpecs (std::shared_ptr< Structure const > _shared_prim, SymGroup const &_generating_group, IntegralCluster const &_phenomenal, SiteFilterFunction const &_site_filter, std::vector< double > const &_max_length, std::vector< double > const &_cutoff_radius, bool _include_phenomenal_sites, std::vector< IntegralClusterOrbitGenerator > const &_custom_generators={})
 
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 ()
 

Public Attributes

std::shared_ptr< Structure const > shared_prim
 The prim. More...
 
SymGroup generating_group
 
LocalSymCompare< IntegralClustersym_compare
 The comparisons used for orbit generation. More...
 
IntegralCluster phenomenal
 Phenomenal cluster, used to find local neighborhood. More...
 
SiteFilterFunction site_filter
 
std::vector< double > max_length
 
std::vector< double > cutoff_radius
 
bool include_phenomenal_sites
 
std::vector< IntegralClusterOrbitGeneratorcustom_generators
 Specifies particular clusters that should be used to generate orbits. More...
 

Static Public Attributes

static std::string const method_name = "local_max_length"
 

Private Member Functions

std::string _name () const override
 
CLUSTER_PERIODICITY_TYPE _periodicity_type () const override
 
LocalOrbitVec _make_local_orbits (IntegralClusterVec const &generating_elements) const override
 
LocalOrbitVec _make_local_orbits (std::ostream &status) const override
 
virtual PeriodicOrbitVec _make_periodic_orbits (IntegralClusterVec const &generating_elements) const
 
virtual PeriodicOrbitVec _make_periodic_orbits (std::ostream &status) const
 
virtual Cloneable * _clone () const =0
 
virtual Cloneable * _move ()=0
 

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.

Constructor & Destructor Documentation

◆ LocalMaxLengthClusterSpecs()

CASM::LocalMaxLengthClusterSpecs::LocalMaxLengthClusterSpecs ( std::shared_ptr< Structure const >  _shared_prim,
SymGroup const &  _generating_group,
IntegralCluster const &  _phenomenal,
SiteFilterFunction const &  _site_filter,
std::vector< double > const &  _max_length,
std::vector< double > const &  _cutoff_radius,
bool  _include_phenomenal_sites,
std::vector< IntegralClusterOrbitGenerator > const &  _custom_generators = {} 
)

Definition at line 141 of file ClusterSpecs.cc.

Member Function Documentation

◆ _clone()

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

◆ _make_local_orbits() [1/2]

ClusterSpecs::LocalOrbitVec CASM::LocalMaxLengthClusterSpecs::_make_local_orbits ( IntegralClusterVec const &  generating_elements) const
overrideprivatevirtual

Reimplemented from CASM::ClusterSpecs.

Definition at line 175 of file ClusterSpecs.cc.

◆ _make_local_orbits() [2/2]

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

Reimplemented from CASM::ClusterSpecs.

Definition at line 180 of file ClusterSpecs.cc.

◆ _make_periodic_orbits() [1/2]

ClusterSpecs::PeriodicOrbitVec CASM::ClusterSpecs::_make_periodic_orbits ( IntegralClusterVec const &  generating_elements) const
privatevirtualinherited

◆ _make_periodic_orbits() [2/2]

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

◆ _move()

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

◆ _name()

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

Implements CASM::ClusterSpecs.

Definition at line 169 of file ClusterSpecs.cc.

◆ _periodicity_type()

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

Implements CASM::ClusterSpecs.

Definition at line 171 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

◆ custom_generators

std::vector<IntegralClusterOrbitGenerator> CASM::LocalMaxLengthClusterSpecs::custom_generators

Specifies particular clusters that should be used to generate orbits.

Definition at line 210 of file ClusterSpecs.hh.

◆ cutoff_radius

std::vector<double> CASM::LocalMaxLengthClusterSpecs::cutoff_radius

Specifies the site-to-site cutoff radius for sites to be considered part of the local neighborhood, by orbit branch. For a site to be added to clusters in branch b it must be a distance less than cutoff_radius[b] to any site in the phenomenal cluster. The b==0 value is ignored.

Definition at line 203 of file ClusterSpecs.hh.

◆ generating_group

SymGroup CASM::LocalMaxLengthClusterSpecs::generating_group

The invariant group of the phenomenal object, used to generate local orbits

Definition at line 174 of file ClusterSpecs.hh.

◆ include_phenomenal_sites

bool CASM::LocalMaxLengthClusterSpecs::include_phenomenal_sites

If true, local clusters include phenomenal_cluster sites; otherwise they do not

Definition at line 207 of file ClusterSpecs.hh.

◆ max_length

std::vector<double> CASM::LocalMaxLengthClusterSpecs::max_length

Specifies filter for truncating orbits, by orbit branch. The value max_length[b], is the max site-to-site distance within a cluster for that cluster to be included in branch b. The b==0 value is ignored.

Notes:

  • The null cluster orbit must be included (max_length.size() >= 1) or the constructor will throw
  • The max_length value for the null cluster (b==0) does not matter. The presence of the value indicates that null cluster orbit should be included.

Definition at line 197 of file ClusterSpecs.hh.

◆ method_name

std::string const CASM::LocalMaxLengthClusterSpecs::method_name = "local_max_length"
static

Definition at line 157 of file ClusterSpecs.hh.

◆ phenomenal

IntegralCluster CASM::LocalMaxLengthClusterSpecs::phenomenal

Phenomenal cluster, used to find local neighborhood.

Definition at line 180 of file ClusterSpecs.hh.

◆ shared_prim

std::shared_ptr<Structure const> CASM::LocalMaxLengthClusterSpecs::shared_prim

The prim.

Definition at line 170 of file ClusterSpecs.hh.

◆ site_filter

SiteFilterFunction CASM::LocalMaxLengthClusterSpecs::site_filter

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

Definition at line 185 of file ClusterSpecs.hh.

◆ sym_compare

LocalSymCompare<IntegralCluster> CASM::LocalMaxLengthClusterSpecs::sym_compare

The comparisons used for orbit generation.

Definition at line 177 of file ClusterSpecs.hh.


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