CASM  1.1.0
A Clusters Approach to Statistical Mechanics
Supercell

Detailed Description

Represents a supercell of the primitive parent crystal structure.

Modules

 Supercell Enumerators
 Enumerates Supercell.
 

Classes

class  CASM::Supercell
 Represents a supercell of the primitive parent crystal structure. More...
 

Functions

std::string CASM::make_supercell_name (Structure const &prim, xtal::Superlattice const &superlattice)
 Make the supercell name from a Superlattice. More...
 
std::string CASM::make_canonical_supercell_name (Structure const &prim, xtal::Superlattice const &superlattice)
 Make the canonical supercell name from a Superlattice. More...
 
xtal::Superlattice CASM::make_superlattice_from_supercell_name (Structure const &prim, std::string supercell_name)
 Construct a Superlattice from the supercell name. More...
 
SupercellCASM::apply (const SymOp &op, Supercell &scel)
 Apply symmetry operation to Supercell. More...
 
Supercell CASM::copy_apply (const SymOp &op, const Supercell &scel)
 Copy and apply symmetry operation to Supercell. More...
 
const SupercellCASM::make_supercell (const PrimClex &primclex, std::string name)
 
std::shared_ptr< SupercellCASM::make_shared_supercell (const PrimClex &primclex, std::string name)
 
Eigen::Matrix3l CASM::transf_mat (const Lattice &prim_lat, const Lattice &super_lat)
 
std::string CASM::generate_name (const Eigen::Matrix3l &transf_mat)
 Make hermite normal form name [deprecated]. More...
 
std::string CASM::scelname (const Structure &prim, const Lattice &superlat)
 Make supercell name name [deprecated]. More...
 
std::string CASM::canonical_scelname (const Structure &prim, const Lattice &superlat)
 Make canonical supercell name name [deprecated]. More...
 

Function Documentation

◆ apply()

Supercell & CASM::apply ( const SymOp op,
Supercell scel 
)

Apply symmetry operation to Supercell.

Definition at line 357 of file Supercell.cc.

◆ canonical_scelname()

std::string CASM::canonical_scelname ( const Structure prim,
const Lattice superlat 
)

Make canonical supercell name name [deprecated].

Definition at line 510 of file Supercell.cc.

◆ copy_apply()

Supercell CASM::copy_apply ( const SymOp op,
const Supercell scel 
)

Copy and apply symmetry operation to Supercell.

Use while transitioning Supercell to no longer need a PrimClex const *

Use while transitioning Supercell to no longer need a PrimClex const *

Definition at line 362 of file Supercell.cc.

◆ generate_name()

std::string CASM::generate_name ( const Eigen::Matrix3l transf_mat)

Make hermite normal form name [deprecated].

Definition at line 482 of file Supercell.cc.

◆ make_canonical_supercell_name()

std::string CASM::make_canonical_supercell_name ( Structure const &  prim,
xtal::Superlattice const &  superlattice 
)

Make the canonical supercell name from a Superlattice.

Definition at line 343 of file Supercell.cc.

◆ make_shared_supercell()

std::shared_ptr< Supercell > CASM::make_shared_supercell ( const PrimClex primclex,
std::string  name 
)

Construct non-canonical supercell from name. Uses equivalent niggli lattice. [deprecated]

Definition at line 433 of file Supercell.cc.

◆ make_supercell()

const Supercell & CASM::make_supercell ( const PrimClex primclex,
std::string  name 
)

Get canonical supercell from name. If not yet in database, construct and insert. [deprecated]

Note: does not commit the change in the database

Definition at line 378 of file Supercell.cc.

◆ make_supercell_name()

std::string CASM::make_supercell_name ( Structure const &  prim,
xtal::Superlattice const &  superlattice 
)

Make the supercell name from a Superlattice.

Make the supercell name from a Superlattice

For supercells that are equivalent to the canonical supercell:

  • The supercell name is SCELV_A_B_C_D_E_F, where 'V' is supercell volume (number of unit cells), and 'A-F' are the six non-zero elements of the hermite normal form of the supercell transformation matrix (T00, T11, T22, T12, T02, T01)

For supercells that are not equivalent to the canonical supercell:

  • The supercell name is $CANON_SCELNAME.$FG_INDEX where CANON_SCELNAME is the supercell name for the canonical equivalent supercell and FG_INDEX is the index of the prim factor group operation which is applied to the canonical supercell to construct the non-canonical supercell.

Definition at line 336 of file Supercell.cc.

◆ make_superlattice_from_supercell_name()

xtal::Superlattice CASM::make_superlattice_from_supercell_name ( Structure const &  prim,
std::string  supercell_name 
)

Construct a Superlattice from the supercell name.

Definition at line 350 of file Supercell.cc.

◆ scelname()

std::string CASM::scelname ( const Structure prim,
const Lattice superlat 
)

Make supercell name name [deprecated].

Definition at line 497 of file Supercell.cc.

◆ transf_mat()

Eigen::Matrix3l CASM::transf_mat ( const Lattice prim_lat,
const Lattice super_lat 
)