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:

load_default()[source]

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)

simulation_cell()[source]

Returns:

property structure

Returns:

structure_atomic()[source]

Write routine to create atom structure static file that can be loaded by LAMMPS

Returns:

structure_bond()[source]

Returns:

structure_charge()[source]

Create atom structure including the atom charges.

By convention the LAMMPS atom type numbers are chose alphabetically for the chemical species.

Returns: LAMMPS readable structure.

structure_full()[source]

Write routine to create atom structure static file for atom_type=’full’ 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

f2qdec(f)[source]
f2s(f)[source]
get_lammps_prism_str()[source]

Return a tuple of strings

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

pyiron.lammps.structure.write_lammps_datafile(structure, file_name='lammps.data', cwd=None)[source]