pyiron.atomistics.structure.generator module

pyiron.atomistics.structure.generator.create_ase_bulk(name, crystalstructure=None, a=None, c=None, covera=None, u=None, orthorhombic=False, cubic=False)[source]

Creating bulk systems using ASE bulk module. Crystal structure and lattice constant(s) will be guessed if not provided.

name (str): Chemical symbol or symbols as in ‘MgO’ or ‘NaCl’. crystalstructure (str): Must be one of sc, fcc, bcc, hcp, diamond, zincblende,

rocksalt, cesiumchloride, fluorite or wurtzite.

a (float): Lattice constant. c (float): Lattice constant. c_over_a (float): c/a ratio used for hcp. Default is ideal ratio: sqrt(8/3). u (float): Internal coordinate for Wurtzite structure. orthorhombic (bool): Construct orthorhombic unit cell instead of primitive cell which is the default. cubic (bool): Construct cubic unit cell if possible.

Returns

Required bulk structure

Return type

pyiron.atomistics.structure.atoms.Atoms

pyiron.atomistics.structure.generator.create_hkl_surface(lattice, hkl, layers, vacuum=1.0, center=False)[source]

Use ase.build.surface to build a surface with surface normal (hkl).

Parameters
  • lattice (pyiron.atomistics.structure.atoms.Atoms/str) – bulk Atoms instance or str, e.g. “Fe”, from which to build the surface

  • hkl (list) – miller indices of surface to be created

  • layers (int) – # of atomic layers in the surface

  • vacuum (float) – vacuum spacing

  • center (bool) – shift all positions to center the surface in the cell

Returns

Required surface

Return type

pyiron.atomistics.structure.atoms.Atoms instance

pyiron.atomistics.structure.generator.create_structure(element, bravais_basis, lattice_constant)[source]

Create a crystal structure using pyiron’s native crystal structure generator

Parameters
  • element (str) – Element name

  • bravais_basis (str) – Basis type

  • lattice_constant (float/list) – Lattice constants

Returns

The required crystal structure

Return type

pyiron.atomistics.structure.atoms.Atoms

pyiron.atomistics.structure.generator.create_surface(element, surface_type, size=1, 1, 1, vacuum=1.0, center=False, pbc=None, **kwargs)[source]

Generate a surface based on the ase.build.surface module.

Parameters
  • element (str) – Element name

  • surface_type (str) – The string specifying the surface type generators available through ase (fcc111,

  • etc.) (hcp0001) –

  • size (tuple) – Size of the surface

  • vacuum (float) – Length of vacuum layer added to the surface along the z direction

  • center (bool) – Tells if the surface layers have to be at the center or at one end along the z-direction

  • pbc (list/numpy.ndarray) – List of booleans specifying the periodic boundary conditions along all three directions. If None, it is set to [True, True, True]

  • **kwargs – Additional, arguments you would normally pass to the structure generator like ‘a’, ‘b’,

  • etc. ('orthogonal') –

Returns

Required surface

Return type

pyiron.atomistics.structure.atoms.Atoms instance