casm powered utility to create gamma surfaces, UBER curves, and twisted bilayers along crystal planes.
A common technique for investigating dislocations, stacking faults, and slip planes in crystals involves the calculation of \(\gamma\)-surface energies.
The software provided in the multishifter
toolbox facilitate the creation of crystal structures for calculations of UBER curves and surface energies along arbitrary slip planes.
The multishifter
libraries also have tools that aid in the construction of twisted bilayers to create periodic Moiré structures.
The multishift
executable is a suite of command line tools that can manipulate and create crystal structures for slab model calculations.
Each tool is specialized to complete a particular task, and accepts arguments directly from the command line.
Input and output files of crystal structures use the VASP format.
Starting from a primitive structure, several steps must be taken to create the slab models, each accomplished using a multishifter
tool.
A typical workflow looks like
slice
).stack
).translate
)shift
(\(\gamma\)-surface), cleave the structure at different intervals with cleave
(UBER), or create commensurate structures that have been rotated with twist
(Moiré/twisted layers).Each of these commands takes the form
multishift <command> --args
All available tools and a list on their input parameters can be found with
multishift --help
multhishift <command> --help
multishift
comes as a collection of tools, each meant to manipulate crystal structures a particular way.
multishift slice
will create a supercell of a primitive cell that exposes a particular slip or surface plane.
multishift stack
will concatenate a list of structures together.
The stack is created by fusing unit cells together along the \(ab\) facet.
multishift translate
will rigidly translate all the basis atoms of the given structure.
multishift align
will apply a rigid rotation to the structure, aligning the $a$ vector along the $x$ direction, and restricting the $b$ vector to the $xy$-plane.
multishift mutate
will alter the \(c\) vector of the lattice, while retaining all Cartesian values of the basis.
Useful for individual stacking fault and surface energy calculations.
multishift cleave
will generate a series of slab structures with a specified amount of vacuum between their periodic images.
Useful for Universal Binding Energy Relation (UBER) calculations.
multishift shift
will generate a series of slab structures that have been shifted relative to each other along the \(ab\)-plane.
Useful for \(\gamma\)-surface calculations.
multishift chain
combines the shift
and chain
commands.
For each perturbed slab generated by shift
, all the values of cleave
are applied to it.
Useful for \(\gamma\)-surface calculations.
multishift fourier
reads DFT or UBER parameters that you’ve assigned to each gridpoint from a chain
or shift
command, and returns an analytical expression for your surface.
The expression is printed as python code.
json
file that holds the data to interpolate.json
file.multishift twist
creates twisted commensurate supercells that can be combined to create Moiré patterns when stacked together.
Follow this series of tutorials to acquaint yourself with all of the available features. Each tutorial focuses on one or two of the available tools, and build on each other as they progress.
Tutorial I: Slicing a structure
Tutorial II: Stacking structures
Tutorial III: Stacking faults and surfaces
Tutorial IV: Cleaving for UBER
Tutorial V: Shifting for \(\gamma\)-surfaces
Tutorial VI: Chaining shifting and cleaving
Tutorial VII: Fourier interpolation
Tutorial VIII: Do the twist
Tutorial IX: What’s in a record.json?
Initial development of this software package was possible thanks to the financial support from NSF DMREF program under grant DMR-1534264. Subsequent development was made possible by additional grants. The scientific work was supported by the National Science Foundation DMREF grant: DMR-1729166 “DMREF/GOALI: Integrated ComputationalFramework for Designing Dynamically Controlled Alloy-Oxide Heterostructures”. Software development was supported by the National Science Foundation, Grant No. OAC-1642433.