CASM  1.1.0
A Clusters Approach to Statistical Mechanics

Detailed Description

Relates to Lattice.

Modules

 Lattice Enumerators
 Enumerates Lattice.
 

Classes

class  CASM::xtal::Lattice
 
class  CASM::xtal::LatticeIsEquivalent
 Lattice comparisons. More...
 
class  CASM::xtal::StrainCostCalculator
 
class  CASM::xtal::NiggliRep
 

Functions

double CASM::xtal::volume (const Lattice &lat)
 Returns the volume of a Lattice. More...
 
std::pair< bool, Eigen::Matrix3d > CASM::xtal::is_superlattice (const Lattice &scel, const Lattice &unit, double tol)
 Check if scel is a superlattice of unitcell unit and some integer transformation matrix T. More...
 
std::istream & CASM::xtal::operator>> (std::istream &in, const Lattice &lattice_in)
 
Lattice CASM::xtal::make_superduperlattice (const Lattice &lat1, const Lattice &lat2)
 returns Lattice that is smallest possible superlattice of both input Lattice More...
 
Eigen::Matrix3d CASM::xtal::cart2frac (const Eigen::Ref< const Eigen::Matrix3d > &cart_mat, const Lattice &lat)
 Returns 'frac_mat' which is transformation of 'cart_mat' if cart_vec_after = cart_mat*cart_vec then frac_vec_after = frac_mat*frac_vec where cart_vec = lat.lat_column_mat()*frac_vec and cart_vec_after = lat.lat_column_mat()*frac_vec_after. More...
 
Eigen::Matrix3d CASM::xtal::frac2cart (const Eigen::Ref< const Eigen::Matrix3d > &frac_mat, const Lattice &lat)
 Returns 'cart_mat' which is transformation of 'frac_mat' if cart_vec_after = cart_mat*cart_vec then frac_vec_after = frac_mat*frac_vec where cart_vec = lat.lat_column_mat()*frac_vec and cart_vec_after = lat.lat_column_mat()*frac_vec_after. More...
 
template<typename IntegralType , int Options = 0>
Lattice CASM::xtal::make_superlattice (const Lattice &lat, const Eigen::Matrix< IntegralType, 3, 3, Options > &transf_mat)
 Returns a super Lattice. Transformation matrix must be integer. More...
 
Lattice replace_vector (const Lattice &lat, const Eigen::Vector3d &new_vector, double tol)
 Returns a minimum volume Lattice obtainable by replacing one Lattice vector. More...
 

Function Documentation

◆ cart2frac()

Eigen::Matrix3d CASM::xtal::cart2frac ( const Eigen::Ref< const Eigen::Matrix3d > &  cart_mat,
const Lattice lat 
)
inline

Returns 'frac_mat' which is transformation of 'cart_mat' if cart_vec_after = cart_mat*cart_vec then frac_vec_after = frac_mat*frac_vec where cart_vec = lat.lat_column_mat()*frac_vec and cart_vec_after = lat.lat_column_mat()*frac_vec_after.

Definition at line 258 of file Lattice.hh.

◆ frac2cart()

Eigen::Matrix3d CASM::xtal::frac2cart ( const Eigen::Ref< const Eigen::Matrix3d > &  frac_mat,
const Lattice lat 
)
inline

Returns 'cart_mat' which is transformation of 'frac_mat' if cart_vec_after = cart_mat*cart_vec then frac_vec_after = frac_mat*frac_vec where cart_vec = lat.lat_column_mat()*frac_vec and cart_vec_after = lat.lat_column_mat()*frac_vec_after.

Definition at line 270 of file Lattice.hh.

◆ is_superlattice()

std::pair< bool, Eigen::Matrix3d > CASM::xtal::is_superlattice ( const Lattice scel,
const Lattice unit,
double  tol 
)

Check if scel is a superlattice of unitcell unit and some integer transformation matrix T.

Check if scel is a superlattice of unitcell unit and some integer transformation matrix T

Definition at line 836 of file Lattice.cc.

◆ make_superduperlattice()

Lattice CASM::xtal::make_superduperlattice ( const Lattice lat1,
const Lattice lat2 
)

returns Lattice that is smallest possible superlattice of both input Lattice

Definition at line 783 of file Lattice.cc.

◆ make_superlattice()

template<typename IntegralType , int Options = 0>
Lattice CASM::xtal::make_superlattice ( const Lattice lat,
const Eigen::Matrix< IntegralType, 3, 3, Options > &  transf_mat 
)

Returns a super Lattice. Transformation matrix must be integer.

Definition at line 287 of file Lattice.hh.

◆ operator>>()

std::istream& CASM::xtal::operator>> ( std::istream &  in,
const Lattice lattice_in 
)

◆ replace_vector()

Lattice replace_vector ( const Lattice lat,
const Eigen::Vector3d &  new_vector,
double  tol 
)
related

Returns a minimum volume Lattice obtainable by replacing one Lattice vector.

  • No guarantee on the result being canonical in any way

Definition at line 812 of file Lattice.cc.

◆ volume()

double CASM::xtal::volume ( const Lattice lat)
inline

Returns the volume of a Lattice.

Small class that describes a superlattice. Contains the superlattice, the primitive tiling unit, and the integer transformation matrix to convert from the tiling unit to the superlattice.

Returns
volume of the Lattice
Parameters
lata Lattice

Definition at line 281 of file Lattice.hh.