CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules

Detailed Description

Relates to Lattice.

Modules

 Lattice Enumerators
 Enumerates Lattice.
 

Classes

class  CASM::Lattice
 
class  CASM::LatticeIsEquivalent
 Putting all the Lattice comparisons in one place. More...
 
class  CASM::LatticeMap
 
class  CASM::NiggliRep
 
class  CASM::PrimGrid
 

Functions

jsonParser & CASM::to_json (const Lattice &lat, jsonParser &json)
 
void CASM::from_json (Lattice &lat, const jsonParser &json)
 
double CASM::volume (const Lattice &lat)
 Returns the volume of a Lattice. More...
 
Lattice & CASM::apply (const SymOp &op, Lattice &lat)
 Apply SymOp to a Lattice. More...
 
Lattice CASM::copy_apply (const SymOp &op, const Lattice &lat)
 Copy and apply SymOp to a Lattice. More...
 
Lattice CASM::make_supercell (const Lattice &lat, const Eigen::Matrix3i &transf_mat)
 Returns a super Lattice. More...
 
std::pair< bool, Eigen::MatrixXi > CASM::is_supercell (const Lattice &scel, const Lattice &unit, double tol)
 Check if scel is a supercell of unitcell unit and some integer transformation matrix T. More...
 
template<typename Object , typename OpIterator >
std::pair< OpIterator,
Eigen::MatrixXi > 
CASM::is_supercell (const Object &scel, const Object &unit, OpIterator begin, OpIterator end, double tol)
 
std::istream & CASM::operator>> (std::istream &in, const Lattice &lattice_in)
 
Lattice CASM::superdupercell (const Lattice &lat1, const Lattice &lat2)
 returns Lattice that is smallest possible supercell of both input Lattice More...
 
template<typename LatIterator , typename SymOpIterator >
Lattice CASM::superdupercell (LatIterator begin, LatIterator end, SymOpIterator op_begin=SymOpIterator(), SymOpIterator op_end=SymOpIterator())
 returns Lattice that is smallest possible supercell of all input Lattice More...
 
Lattice CASM::replace_vector (const Lattice &lat, const Eigen::Vector3d &new_vector, double tol)
 
Eigen::Matrix3d CASM::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::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 T >
Lattice CASM::Lattice::make_supercell (const Eigen::Matrix< T, 3, 3 > &trans_mat) const
 make a supercell of this lattice. Equivalent to Lattice(lat_column_mat()*trans_mat) More...
 

Function Documentation

Lattice & CASM::apply ( const SymOp &  op,
Lattice &  lat 
)

Apply SymOp to a Lattice.

Definition at line 1128 of file Lattice.cc.

Eigen::Matrix3d CASM::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 341 of file Lattice.hh.

Lattice CASM::copy_apply ( const SymOp &  op,
const Lattice &  lat 
)

Copy and apply SymOp to a Lattice.

Definition at line 1133 of file Lattice.cc.

Eigen::Matrix3d CASM::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 354 of file Lattice.hh.

void CASM::from_json ( Lattice &  lat,
const jsonParser &  json 
)

re-throw exceptions

re-throw exceptions

Definition at line 1117 of file Lattice.cc.

std::pair< bool, Eigen::MatrixXi > CASM::is_supercell ( const Lattice &  scel,
const Lattice &  unit,
double  tol 
)

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

Definition at line 1196 of file Lattice.cc.

template<typename Object , typename OpIterator >
std::pair< OpIterator, Eigen::MatrixXi > CASM::is_supercell ( const Object &  scel,
const Object &  unit,
OpIterator  begin,
OpIterator  end,
double  tol 
)

Check if there is a symmetry operation, op, and transformation matrix T, such that scel is a supercell of the result of applying op to unit

Check if there is a symmetry operation, op, and transformation matrix T, such that scel is a supercell of the result of applying op to unit

Returns
pair corresponding to first successful op and T, or with op=end if not successful

Definition at line 93 of file Lattice_impl.hh.

template<typename T >
Lattice CASM::Lattice::make_supercell ( const Eigen::Matrix< T, 3, 3 > &  trans_mat) const

make a supercell of this lattice. Equivalent to Lattice(lat_column_mat()*trans_mat)

Definition at line 362 of file Lattice.hh.

Lattice CASM::make_supercell ( const Lattice &  lat,
const Eigen::Matrix3i &  transf_mat 
)
inline

Returns a super Lattice.

Definition at line 377 of file Lattice.hh.

std::istream& CASM::operator>> ( std::istream &  in,
const Lattice &  lattice_in 
)
Lattice CASM::replace_vector ( const Lattice &  lat,
const Eigen::Vector3d &  new_vector,
double  tol 
)
related
Lattice CASM::superdupercell ( const Lattice &  lat1,
const Lattice &  lat2 
)

returns Lattice that is smallest possible supercell of both input Lattice

Definition at line 1161 of file Lattice.cc.

template<typename LatIterator , typename SymOpIterator >
Lattice CASM::superdupercell ( LatIterator  begin,
LatIterator  end,
SymOpIterator  op_begin,
SymOpIterator  op_end 
)

returns Lattice that is smallest possible supercell of all input Lattice

If SymOpIterator are provided they are applied to each Lattice in an attempt to find the smallest possible superdupercell of all symmetrically transformed Lattice

Definition at line 56 of file Lattice_impl.hh.

jsonParser & CASM::to_json ( const Lattice &  lat,
jsonParser &  json 
)

Definition at line 1107 of file Lattice.cc.

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

Returns the volume of a Lattice.

Returns
volume of the Lattice
Parameters
lata Lattice

Definition at line 372 of file Lattice.hh.