pyiron.lammps.structure module¶
-
class
pyiron.lammps.structure.
LammpsStructure
(input_file_name=None, bond_dict=None)[source]¶ Bases:
pyiron.base.generic.parameters.GenericParameters
- Parameters
input_file_name –
-
property
el_eam_lst
¶ Returns:
-
property
potential
¶
-
rotate_positions
(structure)[source]¶ Rotate all atomic positions in given structure according to new Prism cell
- Parameters
structure – Atoms-like object. Should has .positions attribute
- Returns
List of rotated coordinates
- Return type
(list)
-
property
structure
¶ Returns:
-
structure_atomic
()[source]¶ Write routine to create atom structure static file that can be loaded by LAMMPS
Returns:
-
class
pyiron.lammps.structure.
UnfoldingPrism
(cell, pbc=True, True, True, digits=10)[source]¶ Bases:
ase.calculators.lammps.coordinatetransform.Prism
Create a lammps-style triclinic prism object from a cell
The main purpose of the prism-object is to create suitable string representations of prism limits and atom positions within the prism. When creating the object, the digits parameter (default set to 10) specify the precision to use. lammps is picky about stuff being within semi-open intervals, e.g. for atom positions (when using create_atom in the in-file), x must be within [xlo, xhi).
- Parameters
cell –
pbc –
digits –
-
pos_to_lammps
(position)[source]¶ Rotate an ase-cell position to the lammps cell orientation
- Parameters
position –
- Returns
tuple of float.
-
unfold_cell
(cell)[source]¶ Unfold LAMMPS cell to original
- Let C be the pyiron cell and A be the Lammps cell, then define (in init) the rotation matrix between them as
R := C^inv.A
- And recall that rotation matrices have the property
R^T == R^inv
- Then left multiply the definition of R by C, and right multiply by R.T to get
C.R.R^T = C.C^inv.A.R^T
- Then
C = A.R^T
After that, account for the folding process.
- Parameters
cell – LAMMPS cell,
- Returns
unfolded cell