CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <IntegralCoordinateWithin.hh>
Handles bringing an integral coordinate (i,j,k value) within a particular superlattice. Provide the tiling unit and superlattice at construction, and use this class to bring any external UnitCell or UnitCellCoord within the superlattice.
Definition at line 23 of file IntegralCoordinateWithin.hh.
Public Types | |
typedef Eigen::Matrix< long, 3, 3 > | matrix_type |
typedef Eigen::Matrix< long, 3, 1 > | vector_type |
Public Member Functions | |
IntegralCoordinateWithin_f (const matrix_type &superlattice_transformation_matrix) | |
IntegralCoordinateWithin_f (const Eigen::Matrix3i &superlattice_transformation_matrix) | |
vector_type | operator() (const vector_type &ijk) const |
Brings the given lattice point within the superlattice. More... | |
template<typename UnitCellType > | |
UnitCellType | operator() (const UnitCellType &ijk) const |
UnitCellCoord | operator() (const UnitCellCoord &bijk) const |
Static Private Member Functions | |
static void | _throw_if_bad_transformation_matrix (const matrix_type &transformation_matrix) |
Throws exception if the transformation matrix has determinant 0. More... | |
Private Attributes | |
matrix_type | m_transformation_matrix |
matrix_type | m_transformation_matrix_adjugate |
typedef Eigen::Matrix<long, 3, 3> CASM::xtal::IntegralCoordinateWithin_f::matrix_type |
Definition at line 25 of file IntegralCoordinateWithin.hh.
typedef Eigen::Matrix<long, 3, 1> CASM::xtal::IntegralCoordinateWithin_f::vector_type |
Definition at line 26 of file IntegralCoordinateWithin.hh.
|
inline |
Specify the integer transformation matrix that turns the tiling unit into the desired superlattice. Lattice points (UnitCell) with fractional coordinates relative to the tiling unit will then be brought into the superlattice.
Definition at line 32 of file IntegralCoordinateWithin.hh.
|
inline |
Definition at line 40 of file IntegralCoordinateWithin.hh.
|
staticprivate |
Throws exception if the transformation matrix has determinant 0.
Definition at line 16 of file IntegralCoordinateWithin.cc.
UnitCellCoord CASM::xtal::IntegralCoordinateWithin_f::operator() | ( | const UnitCellCoord & | bijk | ) | const |
Definition at line 38 of file IntegralCoordinateWithin.cc.
|
inline |
Definition at line 49 of file IntegralCoordinateWithin.hh.
IntegralCoordinateWithin_f::vector_type CASM::xtal::IntegralCoordinateWithin_f::operator() | ( | const vector_type & | ijk | ) | const |
Brings the given lattice point within the superlattice.
Definition at line 26 of file IntegralCoordinateWithin.cc.
|
private |
Integer matrix that converts the tiling unit into the superlattice. For a tiling unit U, superlattice S, and transformation matrix T -> S=U*T
Definition at line 58 of file IntegralCoordinateWithin.hh.
|
private |
The adjugate matrix of the transformation matrix. adjugate(T)=det(T)*inverse(T)
Definition at line 62 of file IntegralCoordinateWithin.hh.