CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::Structure Class Reference

#include <Structure.hh>

Detailed Description

Structure specifies the lattice and atomic basis of a crystal.

Definition at line 30 of file Structure.hh.

Public Member Functions

 operator const xtal::BasicStructure & () const
 Returns constant reference to the structure. More...
 
const xtal::BasicStructure & structure () const
 
const std::shared_ptr< const xtal::BasicStructure > & shared_structure () const
 
const Lattice & lattice () const
 
const std::vector< xtal::Site > & basis () const
 
 Structure ()
 
 Structure (const xtal::BasicStructure &base)
 
 Structure (const fs::path &filepath)
 
 Structure (const Structure &RHS)
 
 ~Structure ()
 
const MasterSymGroup & factor_group () const
 
const SymGroup & point_group () const
 
SymGroupRep const * basis_permutation_symrep () const
 
SymGroupRepID basis_permutation_symrep_ID () const
 
std::vector< SymGroupRepID > occupant_symrep_IDs () const
 
std::vector< std::map< DoFKey, SymGroupRepID > > site_dof_symrep_IDs () const
 
SymGroupRepID global_dof_symrep_ID (const std::string dof_name) const
 
Structure & operator= (const Structure &RHS)
 

Private Member Functions

void _reset_occupant_symrep_IDs ()
 
void _reset_site_dof_symrep_IDs ()
 
void _generate_basis_symreps ()
 
void _generate_global_symreps ()
 Obtain global dof symreps of factor_group. More...
 
void _fg_converge (SymGroup &factor_group, double small_tol, double large_tol, double increment)
 
void generate_factor_group ()
 
void copy_attributes_from (const Structure &RHS)
 copy all non-derived members More...
 

Private Attributes

MasterSymGroup m_factor_group
 
SymGroupRepID m_basis_perm_rep_ID
 This holds the representation id of the permutation representation. More...
 
std::vector< SymGroupRepID > m_occupant_symrep_IDs
 Hold the SymRepIDs for the occupant DoF, one for each of the basis sites. More...
 
std::vector< std::map< DoFKey, SymGroupRepID > > m_site_dof_symrep_IDs
 
std::unordered_map< std::string, SymGroupRepID > m_global_dof_symrep_IDs
 
std::shared_ptr< const xtal::BasicStructure > m_structure_ptr
 

Constructor & Destructor Documentation

◆ Structure() [1/4]

CASM::Structure::Structure ( )

Definition at line 56 of file Structure.cc.

◆ Structure() [2/4]

CASM::Structure::Structure ( const xtal::BasicStructure &  base)
explicit

Definition at line 64 of file Structure.cc.

◆ Structure() [3/4]

CASM::Structure::Structure ( const fs::path &  filepath)
explicit

Definition at line 41 of file Structure.cc.

◆ Structure() [4/4]

CASM::Structure::Structure ( const Structure &  RHS)

Have to explicitly define the copy constructor so that factor_group does not depend on the lattice of 'RHS'

Definition at line 59 of file Structure.cc.

◆ ~Structure()

CASM::Structure::~Structure ( )
inline

Definition at line 116 of file Structure.hh.

Member Function Documentation

◆ _fg_converge()

void CASM::Structure::_fg_converge ( SymGroup &  factor_group,
double  small_tol,
double  large_tol,
double  increment 
)
private

◆ _generate_basis_symreps()

void CASM::Structure::_generate_basis_symreps ( )
private

Obtain the basis permutation symrep and site dof symreps of factor_group sets internal m_basis_perm_rep_ID

Definition at line 162 of file Structure.cc.

◆ _generate_global_symreps()

void CASM::Structure::_generate_global_symreps ( )
private

Obtain global dof symreps of factor_group.

Definition at line 275 of file Structure.cc.

◆ _reset_occupant_symrep_IDs()

void CASM::Structure::_reset_occupant_symrep_IDs ( )
private

Definition at line 142 of file Structure.cc.

◆ _reset_site_dof_symrep_IDs()

void CASM::Structure::_reset_site_dof_symrep_IDs ( )
private

Definition at line 151 of file Structure.cc.

◆ basis()

const std::vector<xtal::Site>& CASM::Structure::basis ( ) const
inline

Definition at line 102 of file Structure.hh.

◆ basis_permutation_symrep()

SymGroupRep const * CASM::Structure::basis_permutation_symrep ( ) const

Definition at line 116 of file Structure.cc.

◆ basis_permutation_symrep_ID()

SymGroupRepID CASM::Structure::basis_permutation_symrep_ID ( ) const

Definition at line 122 of file Structure.cc.

◆ copy_attributes_from()

void CASM::Structure::copy_attributes_from ( const Structure &  RHS)
private

copy all non-derived members

Definition at line 79 of file Structure.cc.

◆ factor_group()

const MasterSymGroup & CASM::Structure::factor_group ( ) const

Definition at line 107 of file Structure.cc.

◆ generate_factor_group()

void CASM::Structure::generate_factor_group ( )
private

determines primitive cell, finds its factor group using generate_factor_group_slow, and then expands the factor group into the supercell using lattice translations

Definition at line 88 of file Structure.cc.

◆ global_dof_symrep_ID()

SymGroupRepID CASM::Structure::global_dof_symrep_ID ( const std::string  dof_name) const

Definition at line 137 of file Structure.cc.

◆ lattice()

const Lattice& CASM::Structure::lattice ( ) const
inline

Definition at line 100 of file Structure.hh.

◆ occupant_symrep_IDs()

std::vector< SymGroupRepID > CASM::Structure::occupant_symrep_IDs ( ) const

Definition at line 128 of file Structure.cc.

◆ operator const xtal::BasicStructure &()

CASM::Structure::operator const xtal::BasicStructure & ( ) const

Returns constant reference to the structure.

◆ operator=()

Structure & CASM::Structure::operator= ( const Structure &  RHS)

Have to explicitly define the assignment operator so that sites in this structure do not depend on the lattice of 'RHS'

Definition at line 69 of file Structure.cc.

◆ point_group()

const SymGroup & CASM::Structure::point_group ( ) const

Definition at line 110 of file Structure.cc.

◆ shared_structure()

const std::shared_ptr<const xtal::BasicStructure>& CASM::Structure::shared_structure ( ) const
inline

Definition at line 96 of file Structure.hh.

◆ site_dof_symrep_IDs()

std::vector< std::map< DoFKey, SymGroupRepID > > CASM::Structure::site_dof_symrep_IDs ( ) const

Definition at line 132 of file Structure.cc.

◆ structure()

const xtal::BasicStructure& CASM::Structure::structure ( ) const
inline

Definition at line 92 of file Structure.hh.

Member Data Documentation

◆ m_basis_perm_rep_ID

SymGroupRepID CASM::Structure::m_basis_perm_rep_ID
private

This holds the representation id of the permutation representation.

Definition at line 43 of file Structure.hh.

◆ m_factor_group

MasterSymGroup CASM::Structure::m_factor_group
private

Group symmetry operations that map the lattice and basis of Structure onto themselves, assuming that the crystal is periodic

Definition at line 40 of file Structure.hh.

◆ m_global_dof_symrep_IDs

std::unordered_map<std::string, SymGroupRepID> CASM::Structure::m_global_dof_symrep_IDs
private

Holds SymRepIDs for each of the global DoFs, using the DoF name as the key to access the SymRepID value

Definition at line 54 of file Structure.hh.

◆ m_occupant_symrep_IDs

std::vector<SymGroupRepID> CASM::Structure::m_occupant_symrep_IDs
private

Hold the SymRepIDs for the occupant DoF, one for each of the basis sites.

Definition at line 46 of file Structure.hh.

◆ m_site_dof_symrep_IDs

std::vector<std::map<DoFKey, SymGroupRepID> > CASM::Structure::m_site_dof_symrep_IDs
private

Hold the SymRepIDs for the continuous DoFs, map of DoFKey : SymGroupRepIDs for each basis site

Definition at line 50 of file Structure.hh.

◆ m_structure_ptr

std::shared_ptr<const xtal::BasicStructure> CASM::Structure::m_structure_ptr
private

Definition at line 85 of file Structure.hh.


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