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
el_eam_lst

type: Returns

load_default()[source]

Returns:

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:

structure

type: 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]