# 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: null # Scale factor for lattice vectors. compute-stress: null # Whether to compute and report stress. movable: null # Whether to move lattice during geometry relaxation / dynamics. move-scale: null # Scale factor for moving each lattice vector.

## 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 null, *Default:* null

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 null, *Default:* null

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

### movable

*Type:* bool or null, *Default:* null

Whether to move lattice during geometry relaxation / dynamics. Defaults to no if unspecified.

### move-scale

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

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). Defaults to (1, 1, 1) if unspecified.