CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
Lattice.hh File Reference
#include <iostream>
#include <cmath>
#include "casm/misc/Comparisons.hh"
#include "casm/container/Array.hh"
#include "casm/container/LinearAlgebra.hh"
#include "casm/container/Counter.hh"

Go to the source code of this file.

Classes

class  CASM::Lattice
 

Namespaces

 CASM
 Main CASM namespace.
 

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...