CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::xtal::IntegralCoordinateWithin_f Class Reference

#include <IntegralCoordinateWithin.hh>

Detailed Description

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
 

Member Typedef Documentation

◆ matrix_type

typedef Eigen::Matrix<long, 3, 3> CASM::xtal::IntegralCoordinateWithin_f::matrix_type

Definition at line 25 of file IntegralCoordinateWithin.hh.

◆ vector_type

typedef Eigen::Matrix<long, 3, 1> CASM::xtal::IntegralCoordinateWithin_f::vector_type

Definition at line 26 of file IntegralCoordinateWithin.hh.

Constructor & Destructor Documentation

◆ IntegralCoordinateWithin_f() [1/2]

CASM::xtal::IntegralCoordinateWithin_f::IntegralCoordinateWithin_f ( const matrix_type superlattice_transformation_matrix)
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.

◆ IntegralCoordinateWithin_f() [2/2]

CASM::xtal::IntegralCoordinateWithin_f::IntegralCoordinateWithin_f ( const Eigen::Matrix3i &  superlattice_transformation_matrix)
inline

Definition at line 40 of file IntegralCoordinateWithin.hh.

Member Function Documentation

◆ _throw_if_bad_transformation_matrix()

void CASM::xtal::IntegralCoordinateWithin_f::_throw_if_bad_transformation_matrix ( const matrix_type transformation_matrix)
staticprivate

Throws exception if the transformation matrix has determinant 0.

Definition at line 16 of file IntegralCoordinateWithin.cc.

◆ operator()() [1/3]

UnitCellCoord CASM::xtal::IntegralCoordinateWithin_f::operator() ( const UnitCellCoord bijk) const

Definition at line 38 of file IntegralCoordinateWithin.cc.

◆ operator()() [2/3]

template<typename UnitCellType >
UnitCellType CASM::xtal::IntegralCoordinateWithin_f::operator() ( const UnitCellType &  ijk) const
inline

Definition at line 49 of file IntegralCoordinateWithin.hh.

◆ operator()() [3/3]

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.

Member Data Documentation

◆ m_transformation_matrix

matrix_type CASM::xtal::IntegralCoordinateWithin_f::m_transformation_matrix
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.

◆ m_transformation_matrix_adjugate

matrix_type CASM::xtal::IntegralCoordinateWithin_f::m_transformation_matrix_adjugate
private

The adjugate matrix of the transformation matrix. adjugate(T)=det(T)*inverse(T)

Definition at line 62 of file IntegralCoordinateWithin.hh.


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