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

#include <ClusterSpecs.hh>

+ Inheritance diagram for CASM::PeriodicMaxLengthClusterSpecs:

Detailed Description

Parameters most commonly used for periodic orbit generation

See member variables for descriptions

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

 PeriodicMaxLengthClusterSpecs (std::shared_ptr< Structure const > _shared_prim, SymGroup const &_generating_group, SiteFilterFunction const &_site_filter, std::vector< double > const &_max_length, std::vector< IntegralClusterOrbitGenerator > const &_custom_generators={})
 Constructor. More...
 
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
 
PrimPeriodicSymCompare< IntegralClustersym_compare
 The comparisons used for orbit generation. More...
 
SiteFilterFunction site_filter
 
std::vector< double > max_length
 
std::vector< IntegralClusterOrbitGeneratorcustom_generators
 Specifies particular clusters that should be used to generate orbits. More...
 

Static Public Attributes

static std::string const method_name
 

Private Member Functions

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
 

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

◆ PeriodicMaxLengthClusterSpecs()

CASM::PeriodicMaxLengthClusterSpecs::PeriodicMaxLengthClusterSpecs ( std::shared_ptr< Structure const >  _shared_prim,
SymGroup const &  _generating_group,
SiteFilterFunction const &  _site_filter,
std::vector< double > const &  _max_length,
std::vector< IntegralClusterOrbitGenerator > const &  _custom_generators = {} 
)

Constructor.

Definition at line 71 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::PeriodicMaxLengthClusterSpecs::_make_periodic_orbits ( IntegralClusterVec const &  generating_elements) const
overrideprivatevirtual

Reimplemented from CASM::ClusterSpecs.

Definition at line 97 of file ClusterSpecs.cc.

◆ _make_periodic_orbits() [2/2]

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

Reimplemented from CASM::ClusterSpecs.

Definition at line 103 of file ClusterSpecs.cc.

◆ _move()

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

◆ _name()

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

Implements CASM::ClusterSpecs.

Definition at line 89 of file ClusterSpecs.cc.

◆ _periodicity_type()

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

Implements CASM::ClusterSpecs.

Definition at line 91 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::PeriodicMaxLengthClusterSpecs::custom_generators

Specifies particular clusters that should be used to generate orbits.

Definition at line 142 of file ClusterSpecs.hh.

◆ generating_group

SymGroup CASM::PeriodicMaxLengthClusterSpecs::generating_group

The group used to generate orbits, most commonly shared_prim->factor_group()

Definition at line 119 of file ClusterSpecs.hh.

◆ max_length

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

Specifies filter for truncating orbits, by orbit branch. The value max_length[b], is the max site-to-site distance for clusters to be included in branch b.

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) and point cluster orbits (b==1) does not matter. The presence of the value indicates that null cluster and point cluster orbits should be included.

Definition at line 139 of file ClusterSpecs.hh.

◆ method_name

const std::string CASM::PeriodicMaxLengthClusterSpecs::method_name
static
Initial value:
=
"periodic_max_length"

Definition at line 104 of file ClusterSpecs.hh.

◆ shared_prim

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

The prim.

Definition at line 115 of file ClusterSpecs.hh.

◆ site_filter

SiteFilterFunction CASM::PeriodicMaxLengthClusterSpecs::site_filter

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

Definition at line 127 of file ClusterSpecs.hh.

◆ sym_compare

PrimPeriodicSymCompare<IntegralCluster> CASM::PeriodicMaxLengthClusterSpecs::sym_compare

The comparisons used for orbit generation.

Definition at line 122 of file ClusterSpecs.hh.


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