Lattice input documentation

Initialize from lattice vectors or lengths and angles. Either specify a lattice system and optional modification, along with any corresponding required lengths (a, b, c) and angles (alpha, beta, gamma), or explicitly specity all three lattice vectors vector1, vector2 and vector3. Optionally, scale lattice vectors by a single or separate factors.

Used to initialize class qimpy.lattice.Lattice.

YAML template:

system: null                 # Specify crystal system and geometry parameters.
modification: null           # Specify modification of lattice.
a: null                      # First lattice vector length in bohrs.
b: null                      # Second lattice vector length in bohrs.
c: null                      # Third lattice vector length in bohrs.
alpha: null                  # Angle between b and c in degrees.
beta: null                   # Angle between c and a in degrees.
gamma: null                  # Angle between a and b in degrees.
vector1: null                # First lattice vector (x1, y1, z1) in bohrs.
vector2: null                # Second lattice vector (x2, y2, z2) in bohrs.
vector3: null                # Third lattice vector (x3, y3, z3) in bohrs.
scale: 1.0                   # Scale factor for lattice vectors.
compute-stress: no           # Whether to compute and report stress.
movable: no                  # Whether to move lattice during geometry relaxation / dynamics.
move-scale: (1.0, 1.0, 1.0)  # Scale factor for moving each lattice vector.
periodic: (yes, yes, yes)    # Whether each lattice direction is periodic.
center: (0.0, 0.0, 0.0)      # Center of cell for periodicity break along non-periodic directions.

Parameters:

system

Type: string or null, Default: null

Specify crystal system and geometry parameters. Options include:

  • cubic (specify a),

  • tetragonal (specify a, c)

  • orthorhombic (specify a, b, c)

  • hexagonal (specify a, c)

  • rhombohedral (specify a, alpha)

  • monoclinic (specify a, b, c, beta)

  • triclinic (specify a, b, c, alpha, beta, gamma)

modification

Type: string or null, Default: null

Specify modification of lattice. Options include:

  • body-centered (only for orthorhombic, tetragonal or cubic)

  • face-centered (only for orthorhombic or cubic)

  • base-centered (only for monoclinic)

a

Type: float or null, Default: null

First lattice vector length in bohrs.

b

Type: float or null, Default: null

Second lattice vector length in bohrs.

c

Type: float or null, Default: null

Third lattice vector length in bohrs.

alpha

Type: float or null, Default: null

Angle between b and c in degrees.

beta

Type: float or null, Default: null

Angle between c and a in degrees.

gamma

Type: float or null, Default: null

Angle between a and b in degrees.

vector1

Type: list of float, or null, Default: null

First lattice vector (x1, y1, z1) in bohrs.

vector2

Type: list of float, or null, Default: null

Second lattice vector (x2, y2, z2) in bohrs.

vector3

Type: list of float, or null, Default: null

Third lattice vector (x3, y3, z3) in bohrs.

scale

Type: float or list of float, or qimpy.io._default.Default[float], Default: 1.0

Scale factor for lattice vectors. Either a single number that uniformly scales all lattice vectors or separate factor \([s_1, s_2, s_3]\) for each lattice vector.

compute-stress

Type: bool or qimpy.io._default.Default[bool], Default: no

Whether to compute and report stress. Enable to report stress regardless of whether lattice is movable. (Stresses are always computed when lattice is movable.)

movable

Type: bool or qimpy.io._default.Default[bool], Default: no

Whether to move lattice during geometry relaxation / dynamics.

move-scale

Type: list of float, or qimpy.io._default.Default[typing.Sequence[float]], Default: (1.0, 1.0, 1.0)

Scale factor for moving each lattice vector. Set to zero for some directions to constrain lattice relaxation or dynamics. Can also adjust the magnitude to precondition lattice motion relative to the ions (internal coordinates).

periodic

Type: list of bool and bool and bool, or qimpy.io._default.Default[tuple[bool, bool, bool]], Default: (yes, yes, yes)

Whether each lattice direction is periodic. Set to no for some directions for lower-dimensional / no periodicity.

center

Type: list of float, or qimpy.io._default.Default[typing.Sequence[float]], Default: (0.0, 0.0, 0.0)

Center of cell for periodicity break along non-periodic directions. In fractional coordinates, and values along periodic directions are irrelevant.