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::BasicStructurestructure () const
 
const std::shared_ptr< const xtal::BasicStructure > & shared_structure () const
 
const Latticelattice () 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 MasterSymGroupfactor_group () const
 
const SymGrouppoint_group () const
 
SymGroupRep const * basis_permutation_symrep () const
 
SymGroupRepID basis_permutation_symrep_ID () const
 
std::vector< SymGroupRepIDoccupant_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
 
Structureoperator= (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< SymGroupRepIDm_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, SymGroupRepIDm_global_dof_symrep_IDs
 
std::shared_ptr< const xtal::BasicStructurem_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: