CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
CASM::Site Class Reference

#include <Site.hh>

+ Inheritance diagram for CASM::Site:

Detailed Description

Definition at line 16 of file Site.hh.

Public Types

typedef Eigen::Vector3d vector_type
 
typedef vector_type::Index size_type
 

Public Member Functions

 Site (const Lattice &init_home)
 
 Site (const Coordinate &init_pos, const std::string &occ_name)
 
 Site (const Coordinate &init_pos, std::initializer_list< Molecule > site_occ)
 Construct site with initial position and the allowed Molecule. More...
 
const MoleculeOccupantsite_occupant () const
 
const Array< ContinuousDoF > & displacement () const
 
void update_data_members (const Site &_ref_site)
 
bool is_vacant () const
 Checks if current occupant is a vacancy. More...
 
Index nlist_ind () const
 access m_nlist_ind More...
 
std::string occ_name () const
 Name of current occupant (name of molecule, but for single atom, molecule name is species name) More...
 
const Moleculeocc () const
 
bool compare (const Coordinate &test_coord, double compare_tol=TOL) const
 
bool compare (const Site &test_site, double compare_tol=TOL) const
 
bool compare (const Site &test_site, const Coordinate &shift, double compare_tol=TOL) const
 
bool compare_type (const Site &test_site) const
 
bool operator== (const Site &test_site) const
 
bool almost_equal (const Site &test_site, double tol) const
 
bool contains (const std::string &name) const
 
bool contains (const std::string &name, int &index) const
 
void set_lattice (const Lattice &new_lat, COORD_TYPE mode)
 
void set_site_occupant (const MoleculeOccupant &new_dof)
 
void set_occ_value (int new_val)
 
void set_occ (const Molecule &new_occ)
 
Array< std::string > allowed_occupants () const
 
void set_basis_ind (Index)
 set basis_ind of site and its occupant functions More...
 
void set_nlist_ind (Index)
 set m_nlist_ind of Site and its DoFs More...
 
Siteapply_sym (const SymOp &op)
 
Siteapply_sym_no_trans (const SymOp &op)
 
void read (std::istream &stream, bool SD_is_on=false)
 
void read (std::istream &stream, std::string &elem, bool SD_is_on)
 
void print (std::ostream &stream) const
 
void print_occ (std::ostream &stream) const
 
void print_mol (std::ostream &stream, int spaces, char delim, bool SD_is_on=false) const
 
Siteoperator+= (const Coordinate &translation)
 
Siteoperator-= (const Coordinate &translation)
 
jsonParserto_json (jsonParser &json) const
 
void from_json (const jsonParser &json)
 
Coordinate_impl::FracCoordinate frac ()
 Set the fractional coordinate vector. More...
 
const vector_typefrac () const
 const Access the fractional coordinate vector More...
 
Coordinate_impl::FracCoordinateComponent frac (size_type index)
 Set a component of the fractional coordinate vector. More...
 
const double & frac (size_type index) const
 const Access a component of the fractional coordinate vector More...
 
const vector_typeconst_frac () const
 user override to force const Access the fractional coordinate vector More...
 
const double & const_frac (size_type index) const
 user override to force const Access the fractional coordinate vector More...
 
Coordinate_impl::CartCoordinate cart ()
 Set Cartesian coordinate vector and update fractional coordinate vector. More...
 
const vector_typecart () const
 const Access the Cartesian coordinate vector More...
 
Coordinate_impl::CartCoordinateComponent cart (size_type index)
 Set a component of the Cartesian coordinate vector. More...
 
const double & cart (size_type index) const
 const Access a component of the Cartesian coordinate vector More...
 
const vector_typeconst_cart () const
 user override to force const Access the Cartesian coordinate vector More...
 
const double & const_cart (size_type index) const
 const Access a component of the Cartesian coordinate vector More...
 
Coordinate operator- () const
 unary minus of this coordinate More...
 
bool operator== (const Coordinate &RHS) const
 
bool operator!= (const Coordinate &RHS) const
 
bool almost_equal (const Coordinate &RHS, double tol) const
 
bool compare (const Coordinate &RHS, Coordinate &translation, double tol=TOL) const
 
bool compare_type (const Coordinate &RHS) const
 Return true – Exists to allow duck-typing with Site. More...
 
bool within ()
 
bool within (Coordinate &translation)
 
bool is_within () const
 Checks to see if coordinate is in the unit cell, but does not translate it. More...
 
int voronoi_number () const
 
int voronoi_number (const Lattice &cell) const
 
bool voronoi_within ()
 Map coordinate into the voronoi cell using a lattice translation. More...
 
bool voronoi_within (Coordinate &translation)
 
bool is_lattice_shift (double tol=TOL) const
 Checks to see if coordinate is at a lattice translation with respect to the origin. More...
 
Index basis_ind () const
 Access basis Index. More...
 
const Latticehome () const
 Access the home lattice of the coordinate. More...
 
void read (std::istream &stream, COORD_TYPE mode)
 
void print (std::ostream &stream, COORD_TYPE mode, char term=0, int prec=7, int pad=5) const
 
void print (std::ostream &stream, char term=0, int prec=7, int pad=5) const
 
void print_axis (std::ostream &stream, COORD_TYPE mode, char term=0, int prec=7, int pad=5) const
 Print normalized vector. More...
 
double dist (const Coordinate &neighbor) const
 distance (in Angstr) of neighbor from *this More...
 
double min_dist (const Coordinate &neighbor) const
 Returns distance (in Angstr) to nearest periodic image of neighbor. More...
 
double min_dist (const Coordinate &neighbor, Coordinate &translation) const
 Returns distance (in Angstr) to nearest periodic image of neighbor. More...
 
double robust_min_dist (const Coordinate &neighbor) const
 Returns distance (in Angstr) to nearest periodic image of neighbor. More...
 
double robust_min_dist (const Coordinate &neighbor, Coordinate &translation) const
 Returns distance (in Angstr) to nearest periodic image of neighbor. More...
 
double min_dist2 (const Coordinate &neighbor, const Eigen::Ref< const Eigen::Matrix3d > &metric) const
 Finds same shift as min_dist but returns shift(CART).transpose()*metric*shift(CART) More...
 

Static Public Member Functions

static Coordinate origin (const Lattice &_home)
 construct a coordinate describing origin of _home lattice More...
 

Private Member Functions

bool _compare_type_no_ID (const Site &test_site) const
 
Index _type_ID () const
 

Static Private Member Functions

static Array< Site > & _type_prototypes ()
 

Private Attributes

Index m_nlist_ind
 
Index m_type_ID
 
Array< ContinuousDoFm_displacement
 
MoleculeOccupant m_site_occupant
 

Member Typedef Documentation

typedef vector_type::Index CASM::Coordinate::size_type
inherited

Definition at line 37 of file Coordinate.hh.

typedef Eigen::Vector3d CASM::Coordinate::vector_type
inherited

Definition at line 36 of file Coordinate.hh.

Constructor & Destructor Documentation

CASM::Site::Site ( const Lattice init_home)
explicit

Definition at line 10 of file Site.cc.

CASM::Site::Site ( const Coordinate init_pos,
const std::string &  occ_name 
)

Definition at line 17 of file Site.cc.

CASM::Site::Site ( const Coordinate init_pos,
std::initializer_list< Molecule site_occ 
)

Construct site with initial position and the allowed Molecule.

Definition at line 33 of file Site.cc.

Member Function Documentation

bool CASM::Site::_compare_type_no_ID ( const Site test_site) const
private

Definition at line 497 of file Site.cc.

Index CASM::Site::_type_ID ( ) const
private

Definition at line 504 of file Site.cc.

static Array<Site>& CASM::Site::_type_prototypes ( )
inlinestaticprivate

Definition at line 101 of file Site.hh.

Array< std::string > CASM::Site::allowed_occupants ( ) const

Definition at line 212 of file Site.cc.

bool CASM::Site::almost_equal ( const Site test_site,
double  tol 
) const

Definition at line 175 of file Site.cc.

bool CASM::Coordinate::almost_equal ( const Coordinate RHS,
double  tol 
) const
inherited

Definition at line 66 of file Coordinate.cc.

Site & CASM::Site::apply_sym ( const SymOp op)

Definition at line 73 of file Site.cc.

Site & CASM::Site::apply_sym_no_trans ( const SymOp op)

Definition at line 88 of file Site.cc.

Index CASM::Coordinate::basis_ind ( ) const
inlineinherited

Access basis Index.

Definition at line 190 of file Coordinate.hh.

Coordinate_impl::CartCoordinate CASM::Coordinate::cart ( )
inlineinherited

Set Cartesian coordinate vector and update fractional coordinate vector.

Definition at line 593 of file Coordinate.hh.

const vector_type& CASM::Coordinate::cart ( ) const
inlineinherited

const Access the Cartesian coordinate vector

Definition at line 87 of file Coordinate.hh.

Coordinate_impl::CartCoordinateComponent CASM::Coordinate::cart ( Coordinate::size_type  index)
inlineinherited

Set a component of the Cartesian coordinate vector.

Definition at line 599 of file Coordinate.hh.

const double& CASM::Coordinate::cart ( size_type  index) const
inlineinherited

const Access a component of the Cartesian coordinate vector

Definition at line 100 of file Coordinate.hh.

bool CASM::Site::compare ( const Coordinate test_coord,
double  compare_tol = TOL 
) const

Definition at line 125 of file Site.cc.

bool CASM::Site::compare ( const Site test_site,
double  compare_tol = TOL 
) const

Definition at line 135 of file Site.cc.

bool CASM::Site::compare ( const Site test_site,
const Coordinate shift,
double  compare_tol = TOL 
) const

Definition at line 146 of file Site.cc.

bool CASM::Coordinate::compare ( const Coordinate RHS,
Coordinate translation,
double  tol = TOL 
) const
inherited

Returns true if this->min_dist(RHS)<tol if true, calculates

Parameters
translationsuch that *this = (RHS+translation)

Definition at line 80 of file Coordinate.cc.

bool CASM::Site::compare_type ( const Site test_site) const

Definition at line 158 of file Site.cc.

bool CASM::Coordinate::compare_type ( const Coordinate RHS) const
inherited

Return true – Exists to allow duck-typing with Site.

Definition at line 86 of file Coordinate.cc.

const vector_type& CASM::Coordinate::const_cart ( ) const
inlineinherited

user override to force const Access the Cartesian coordinate vector

Definition at line 92 of file Coordinate.hh.

const double& CASM::Coordinate::const_cart ( size_type  index) const
inlineinherited

const Access a component of the Cartesian coordinate vector

Definition at line 105 of file Coordinate.hh.

const vector_type& CASM::Coordinate::const_frac ( ) const
inlineinherited

user override to force const Access the fractional coordinate vector

Definition at line 66 of file Coordinate.hh.

const double& CASM::Coordinate::const_frac ( size_type  index) const
inlineinherited

user override to force const Access the fractional coordinate vector

Definition at line 79 of file Coordinate.hh.

bool CASM::Site::contains ( const std::string &  name) const

Definition at line 181 of file Site.cc.

bool CASM::Site::contains ( const std::string &  name,
int &  index 
) const

Definition at line 191 of file Site.cc.

const Array<ContinuousDoF>& CASM::Site::displacement ( ) const
inline

Definition at line 28 of file Site.hh.

double CASM::Coordinate::dist ( const Coordinate neighbor) const
inherited

distance (in Angstr) of neighbor from *this

Definition at line 146 of file Coordinate.cc.

Coordinate_impl::FracCoordinate CASM::Coordinate::frac ( )
inlineinherited

Set the fractional coordinate vector.

Definition at line 581 of file Coordinate.hh.

const vector_type& CASM::Coordinate::frac ( ) const
inlineinherited

const Access the fractional coordinate vector

Definition at line 61 of file Coordinate.hh.

Coordinate_impl::FracCoordinateComponent CASM::Coordinate::frac ( Coordinate::size_type  index)
inlineinherited

Set a component of the fractional coordinate vector.

Definition at line 587 of file Coordinate.hh.

const double& CASM::Coordinate::frac ( size_type  index) const
inlineinherited

const Access a component of the fractional coordinate vector

Definition at line 74 of file Coordinate.hh.

void CASM::Site::from_json ( const jsonParser json)

re-throw exceptions

Definition at line 458 of file Site.cc.

const Lattice& CASM::Coordinate::home ( ) const
inlineinherited

Access the home lattice of the coordinate.

Definition at line 195 of file Coordinate.hh.

bool CASM::Coordinate::is_lattice_shift ( double  tol = TOL) const
inherited

Checks to see if coordinate is at a lattice translation with respect to the origin.

Definition at line 367 of file Coordinate.cc.

bool CASM::Site::is_vacant ( ) const

Checks if current occupant is a vacancy.

Definition at line 41 of file Site.cc.

bool CASM::Coordinate::is_within ( ) const
inherited

Checks to see if coordinate is in the unit cell, but does not translate it.

Definition at line 301 of file Coordinate.cc.

double CASM::Coordinate::min_dist ( const Coordinate neighbor) const
inherited

Returns distance (in Angstr) to nearest periodic image of neighbor.

Is unsafe if min_dist is comparable to half a lattice vector in length

Definition at line 155 of file Coordinate.cc.

double CASM::Coordinate::min_dist ( const Coordinate neighbor,
Coordinate translation 
) const
inherited

Returns distance (in Angstr) to nearest periodic image of neighbor.

This version calculates the translation such that (neighbor+translation) is the periodic nearest period image of neighbor

Definition at line 169 of file Coordinate.cc.

double CASM::Coordinate::min_dist2 ( const Coordinate neighbor,
const Eigen::Ref< const Eigen::Matrix3d > &  metric 
) const
inherited

Finds same shift as min_dist but returns shift(CART).transpose()*metric*shift(CART)

Definition at line 205 of file Coordinate.cc.

Index CASM::Site::nlist_ind ( ) const

access m_nlist_ind

Definition at line 48 of file Site.cc.

const Molecule & CASM::Site::occ ( ) const

Const reference to occupying molecule. ***WARNING*** only use if you are certain the occupant has been set. If you only need to know occupant name or whether site is vacant, use Site::is_vacant() or Site::occ_name() instead

Definition at line 63 of file Site.cc.

std::string CASM::Site::occ_name ( ) const

Name of current occupant (name of molecule, but for single atom, molecule name is species name)

Definition at line 54 of file Site.cc.

bool CASM::Coordinate::operator!= ( const Coordinate RHS) const
inlineinherited

Definition at line 120 of file Coordinate.hh.

Site & CASM::Site::operator+= ( const Coordinate translation)

Definition at line 103 of file Site.cc.

Coordinate CASM::Coordinate::operator- ( ) const
inherited

unary minus of this coordinate

Definition at line 53 of file Coordinate.cc.

Site & CASM::Site::operator-= ( const Coordinate translation)

Definition at line 114 of file Site.cc.

bool CASM::Site::operator== ( const Site test_site) const

Definition at line 169 of file Site.cc.

bool CASM::Coordinate::operator== ( const Coordinate RHS) const
inherited

Definition at line 59 of file Coordinate.cc.

void CASM::Site::print ( std::ostream &  stream) const

Print coordinate of site with name of all possible occupying molecule

Definition at line 379 of file Site.cc.

void CASM::Coordinate::print ( std::ostream &  stream,
COORD_TYPE  mode,
char  term = 0,
int  prec = 7,
int  pad = 5 
) const
inherited

Definition at line 112 of file Coordinate.cc.

void CASM::Coordinate::print ( std::ostream &  stream,
char  term = 0,
int  prec = 7,
int  pad = 5 
) const
inherited

Definition at line 107 of file Coordinate.cc.

void CASM::Coordinate::print_axis ( std::ostream &  stream,
COORD_TYPE  mode,
char  term = 0,
int  prec = 7,
int  pad = 5 
) const
inherited

Print normalized vector.

Definition at line 129 of file Coordinate.cc.

void CASM::Site::print_mol ( std::ostream &  stream,
int  spaces,
char  delim,
bool  SD_is_on = false 
) const

Print each AtomPosition in current molecule, with name of occupying atom

Definition at line 410 of file Site.cc.

void CASM::Site::print_occ ( std::ostream &  stream) const

Print coordinate of site with name of occupying molecule

Definition at line 394 of file Site.cc.

void CASM::Site::read ( std::istream &  stream,
bool  SD_is_on = false 
)

Definition at line 243 of file Site.cc.

void CASM::Site::read ( std::istream &  stream,
std::string &  elem,
bool  SD_is_on 
)

Definition at line 334 of file Site.cc.

void CASM::Coordinate::read ( std::istream &  stream,
COORD_TYPE  mode 
)
inherited

Definition at line 92 of file Coordinate.cc.

double CASM::Coordinate::robust_min_dist ( const Coordinate neighbor) const
inherited

Returns distance (in Angstr) to nearest periodic image of neighbor.

It is safe in all cases, because it uses the lattice Wigner-Seitz cell to determine the nearest image, but this makes it slower than min_dist

Definition at line 179 of file Coordinate.cc.

double CASM::Coordinate::robust_min_dist ( const Coordinate neighbor,
Coordinate translation 
) const
inherited

Returns distance (in Angstr) to nearest periodic image of neighbor.

This version calculates the translation such that (neighbor+translation) is the periodic nearest period image of neighbor It is safe in all cases, because it uses the lattice Wigner-Seitz cell to determine the nearest image, but this makes it slower than min_dist

Definition at line 190 of file Coordinate.cc.

void CASM::Site::set_basis_ind ( Index  new_ind)

set basis_ind of site and its occupant functions

Definition at line 222 of file Site.cc.

void CASM::Site::set_lattice ( const Lattice new_lat,
COORD_TYPE  mode 
)

Definition at line 202 of file Site.cc.

void CASM::Site::set_nlist_ind ( Index  new_ind)

set m_nlist_ind of Site and its DoFs

Definition at line 228 of file Site.cc.

void CASM::Site::set_occ ( const Molecule new_occ)
inline

Definition at line 70 of file Site.hh.

void CASM::Site::set_occ_value ( int  new_val)
inline

Definition at line 66 of file Site.hh.

void CASM::Site::set_site_occupant ( const MoleculeOccupant new_dof)
inline

Definition at line 61 of file Site.hh.

const MoleculeOccupant& CASM::Site::site_occupant ( ) const
inline

Definition at line 24 of file Site.hh.

jsonParser & CASM::Site::to_json ( jsonParser json) const

Definition at line 439 of file Site.cc.

void CASM::Site::update_data_members ( const Site _ref_site)

Definition at line 424 of file Site.cc.

int CASM::Coordinate::voronoi_number ( ) const
inherited

Number of periodic images of this coordinate that are on voronoi cell boundary of its home lattice

Definition at line 317 of file Coordinate.cc.

int CASM::Coordinate::voronoi_number ( const Lattice cell) const
inherited

Number of periodic images of this coordinate that are on voronoi cell boundary of 'cell'

Definition at line 325 of file Coordinate.cc.

bool CASM::Coordinate::voronoi_within ( )
inherited

Map coordinate into the voronoi cell using a lattice translation.

Definition at line 333 of file Coordinate.cc.

bool CASM::Coordinate::voronoi_within ( Coordinate translation)
inherited

Same as voronoi_within(), but lattice translation is stored in Coordinate translation such that coord_after = coord_before + translation returns true if *this was already within the voronoi cell

Definition at line 348 of file Coordinate.cc.

bool CASM::Coordinate::within ( )
inherited

Map coordinate into the unit cell using a lattice translation returns true if *this was already within the unit cell

Definition at line 261 of file Coordinate.cc.

bool CASM::Coordinate::within ( Coordinate translation)
inherited

Same as within(), but lattice translation is stored in Coordinate translation, such that coord_after = coord_before + translation returns true if *this was already within the unit cell

Definition at line 280 of file Coordinate.cc.

Member Data Documentation

Array<ContinuousDoF> CASM::Site::m_displacement
private

Definition at line 112 of file Site.hh.

Index CASM::Site::m_nlist_ind
private

Definition at line 107 of file Site.hh.

MoleculeOccupant CASM::Site::m_site_occupant
private

Definition at line 117 of file Site.hh.

Index CASM::Site::m_type_ID
mutableprivate

Definition at line 108 of file Site.hh.


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