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

#include <ClusterSpecs.hh>

+ Inheritance diagram for CASM::ClusterSpecs:

Detailed Description

Base class, enables runtime choice of which orbit type is generated via input file parameters

Note:

  • Most users will not use this class directly
  • Use for_all_orbits template functions to implement methods that are independent of orbit type

Definition at line 34 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 Member Functions

virtual std::string _name () const =0
 
virtual CLUSTER_PERIODICITY_TYPE _periodicity_type () const =0
 
virtual PeriodicOrbitVec _make_periodic_orbits (IntegralClusterVec const &generating_elements) const
 
virtual PeriodicOrbitVec _make_periodic_orbits (std::ostream &status) const
 
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.

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
privatevirtual

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
privatevirtual

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

Definition at line 62 of file ClusterSpecs.cc.

◆ _make_periodic_orbits() [1/2]

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

◆ _make_periodic_orbits() [2/2]

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

◆ _move()

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

◆ _name()

virtual std::string CASM::ClusterSpecs::_name ( ) const
privatepure virtual

◆ _periodicity_type()

virtual CLUSTER_PERIODICITY_TYPE CASM::ClusterSpecs::_periodicity_type ( ) const
privatepure virtual

◆ 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

Definition at line 30 of file ClusterSpecs.cc.

◆ make_local_orbits() [2/2]

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

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

Definition at line 20 of file ClusterSpecs.cc.

◆ make_periodic_orbits() [2/2]

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

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

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

Definition at line 16 of file ClusterSpecs.cc.


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