CASM  1.1.0
A Clusters Approach to Statistical Mechanics
symmetrize_impl Namespace Reference

Functions

void _print_factor_group_convergence (const Structure &struc, double small_tol, double large_tol, double increment, std::ostream &print_stream)
 
SymGroup make_enforced_factor_group (xtal::BasicStructure basic_structure, double enforced_tol)
 Return SymGroup calculated for basic_structure with specified tolerance. More...
 
void symmetrize_v1 (fs::path poscar_path, double tol)
 
void symmetrize_v2 (fs::path input_poscar_location, fs::path output_poscar_location, double enforced_tol, double input_tol)
 

Function Documentation

◆ _print_factor_group_convergence()

void symmetrize_impl::_print_factor_group_convergence ( const Structure struc,
double  small_tol,
double  large_tol,
double  increment,
std::ostream &  print_stream 
)

Definition at line 21 of file symmetrize.cc.

◆ make_enforced_factor_group()

SymGroup symmetrize_impl::make_enforced_factor_group ( xtal::BasicStructure  basic_structure,
double  enforced_tol 
)

Return SymGroup calculated for basic_structure with specified tolerance.

Definition at line 60 of file symmetrize.cc.

◆ symmetrize_v1()

void symmetrize_impl::symmetrize_v1 ( fs::path  poscar_path,
double  tol 
)

Adjust a structure's lattice and basis to increase factor group symmetry

Method:

  • Read a VASP POSCAR from "input_poscar_location" and, if not primitive, make its primitive structure.
  • Construct a symmetrized lattice such that the point group of the lattice is equal to that of the input structure's lattice when using "enforced_tol" to check for lattice equivalence. The symmetrized lattice vectors are obtaining through a process of applying operations in the enforced point group, averaging, and then rotating to match the original lattice orientation.
  • Construct a symmetrized structure with factor group equal to that generated for the input structure when using "enforced_tol" to check for structure equivalence. The symmetrized structure's basis is constructed by setting basis site coordinates equal to the average coordinate positions found after applying each operation in the enforced factor group to the original basis sites.
  • Write the symmetrized structure to "output_poscar_location" (default="POSCAR_sym")

Definition at line 94 of file symmetrize.cc.

◆ symmetrize_v2()

void symmetrize_impl::symmetrize_v2 ( fs::path  input_poscar_location,
fs::path  output_poscar_location,
double  enforced_tol,
double  input_tol 
)

Adjust a structure's lattice and basis to increase factor group symmetry

Method:

  • Read a VASP POSCAR from "input_poscar_location" and, if not primitive, make its primitive structure.
  • Construct a symmetrized lattice such that the point group of the lattice is equal to that of the input structure's lattice when using "enforced_tol" to check for lattice equivalence. The symmetrized lattice vectors are obtaining through a process of applying operations in the enforced point group, averaging, and then rotating to match the original lattice orientation.
  • Construct a symmetrized structure with factor group equal to that generated for the input structure when using "enforced_tol" to check for structure equivalence. The symmetrized structure's basis is constructed by setting basis site coordinates equal to the average coordinate positions found after applying each operation in the enforced factor group to the original basis sites.
  • Write the symmetrized structure to "output_poscar_location" (default="POSCAR_sym")
Parameters
input_poscar_locationLocation of VASP POSCAR style file to read
output_poscar_locationLocation to write symmetrized structure (or primitive of input strucure if higher symmetry is not obtained).
enforced_tolTolerance used to generate the "enforced factor group"
input_tolTolerance used to generate original input structure factor group

Definition at line 169 of file symmetrize.cc.