wulfric.crystal#

Basic manipulations#

get_vector(cell, atoms, atom1, atom2[, R, ...])

Computes a vector from atom1 (from (0,0,0)) to atom2 (from (i,j,k)).

get_distance(cell, atoms, atom1, atom2[, R])

Computes distance between atom1 (from (0,0,0)) and atom2 (from (i,j,k)).

ensure_000(atoms)

Ensures that all atoms are from (0,0,0) unit cell.

shift_atoms(atoms[, gravity_point, cell, ...])

Shifts all atoms with the same vector in a way that the gravity_point is located in the middle between minimum and maximum relative coordinates of the atoms, individually for each lattice vector.

cure_negative(atoms)

Shifts all atoms with the same vector in a way that all relative coordinates becomes non-negative.

Atoms#

get_atom_species(name[, raise_on_fail])

Attempts to identify atom's type based on its name (i.e. Cr1 -> Cr, ...).

populate_atom_species(atoms[, raise_on_fail])

Populate atom species, based on their names.

ensure_unique_names(atoms[, strategy])

Ensures that atoms have unique "names".

Standardization#

standardize(cell, atoms[, S_matrix, ...])

Standardize cell with respect to the Bravais lattice type as defined in [R5a16871852d6-1] and update atom's relative coordinates.