CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::xtal::LatticeNode Struct Reference

#include <StrucMapping.hh>

Detailed Description

Class describing the lattice-mapping portion of a particular mapping A general map for child_struc onto parent_struc may require forming a supercell of parent_struc (most commonly) and/or of child_struc. As such, the LatticeNode is specified in terms of superlattices of both parent_struc and child_struc, as well as deformation and rotation information sufficient to fully define the lattice map.

Definition at line 82 of file StrucMapping.hh.

Public Member Functions

 LatticeNode (Lattice const &parent_prim, Lattice const &parent_scel, Lattice const &child_prim, Lattice const &child_scel, Index child_N_atom, double _cost=StrucMapping::big_inf())
 Construct with ideal parent_scel and deformed child_scel, which are related by a deformation tensor. More...
 
 LatticeNode (LatticeMap const &_lat_map, Lattice const &parent_prim, Lattice const &child_prim)
 Construct with LatticeMap, which relates a supercell of parent_prim to a supercell of child_prim. More...
 

Public Attributes

Eigen::Matrix3d stretch
 stretch tensor that takes child superlattice from its de-rotated, deformed state to its ideal, parent-mapped state We utilize a convention in which 'stretch' is applied after 'isometry', so 'stretch' is the left stretch tensor More...
 
Eigen::Matrix3d isometry
 cartesian rotation/reflection/rotoreflection that rotates the child superlattice to its de-rotated, deformed state More...
 
Superlattice parent
 PrimGrid for supercell of parent structure The parent structure defines the ideal strain state, and the child structure must undergo an 'idealization' deformation to perfectly tile the parent structure supercell. Define: More...
 
Superlattice child
 PrimGrid for supercell of child structure The child lattice is recorded in its idealized state (de-rotated and un-deformed) The transformation matrices 'isometry' and 'stretch' record the idealization transformation that yielded the ideal child lattice from its initial state Define: More...
 
double cost
 strain_cost of the LatticeNode More...
 

Constructor & Destructor Documentation

◆ LatticeNode() [1/2]

CASM::xtal::LatticeNode::LatticeNode ( Lattice const &  parent_prim,
Lattice const &  parent_scel,
Lattice const &  child_prim,
Lattice const &  child_scel,
Index  child_N_atom,
double  _cost = StrucMapping::big_inf() 
)

Construct with ideal parent_scel and deformed child_scel, which are related by a deformation tensor.

Parameters
parent_sceland
child_scelare integer combinations of the primitive cells 'parent_prim' and 'child_prim', respectively
child_N_atomis number of sites in the child
_costis used to specify mapping cost (in default case – big_inf() – cost will be calculated from scratch)

Definition at line 248 of file StrucMapping.cc.

◆ LatticeNode() [2/2]

CASM::xtal::LatticeNode::LatticeNode ( LatticeMap const &  _lat_map,
Lattice const &  parent_prim,
Lattice const &  child_prim 
)

Construct with LatticeMap, which relates a supercell of parent_prim to a supercell of child_prim.

Parameters
lat_mapspecifies a supercell that is a supercell of parent_prim, but also an idealized supercell of child_prim
child_N_atomis number of sites in the child

Definition at line 279 of file StrucMapping.cc.

Member Data Documentation

◆ child

Superlattice CASM::xtal::LatticeNode::child

PrimGrid for supercell of child structure The child lattice is recorded in its idealized state (de-rotated and un-deformed) The transformation matrices 'isometry' and 'stretch' record the idealization transformation that yielded the ideal child lattice from its initial state Define:

  • 'Sp(i)' as the ideal parent supercell
  • 'Sc(i)' as the ideal child supercell
  • 'Sc(d)' as the deformed child supercell
  • 'R' as cartesian rotation/reflection/rotoreflection ('isometry')
  • 'U' as stretch tensor ('stretch') Then, the ideal and deformed superlattices satisfy Sp(i) == Sc(i) and Sc(i) == U * R * Sc(d) and Sc(d) == R.transpose() * U.inverse() * Sc(i)

Definition at line 128 of file StrucMapping.hh.

◆ cost

double CASM::xtal::LatticeNode::cost

strain_cost of the LatticeNode

Definition at line 131 of file StrucMapping.hh.

◆ isometry

Eigen::Matrix3d CASM::xtal::LatticeNode::isometry

cartesian rotation/reflection/rotoreflection that rotates the child superlattice to its de-rotated, deformed state

Definition at line 91 of file StrucMapping.hh.

◆ parent

Superlattice CASM::xtal::LatticeNode::parent

PrimGrid for supercell of parent structure The parent structure defines the ideal strain state, and the child structure must undergo an 'idealization' deformation to perfectly tile the parent structure supercell. Define:

  • 'Sp(i)' as the ideal parent supercell
  • 'Sc(i)' as the ideal child supercell
  • 'Sc(d)' as the deformed child supercell
  • 'R' as cartesian rotation/reflection/rotoreflection ('isometry')
  • 'U' as stretch tensor ('stretch') Then, the ideal and deformed superlattices satisfy Sp(i) == Sc(i) and Sc(i) == U * R * Sc(d) and Sc(d) == R.transpose() * U.inverse() * Sc(i)

Definition at line 109 of file StrucMapping.hh.

◆ stretch

Eigen::Matrix3d CASM::xtal::LatticeNode::stretch

stretch tensor that takes child superlattice from its de-rotated, deformed state to its ideal, parent-mapped state We utilize a convention in which 'stretch' is applied after 'isometry', so 'stretch' is the left stretch tensor

Definition at line 87 of file StrucMapping.hh.


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