PAOFLOW.transport.utils.converters#

Functions#

cartesian_to_crystal(coords, basis)

Convert coordinates from Cartesian to crystal (fractional) coordinates.

crystal_to_cartesian(coords, basis)

Convert coordinates from crystal (fractional) to Cartesian coordinates.

Module Contents#

PAOFLOW.transport.utils.converters.cartesian_to_crystal(coords, basis)[source]#

Convert coordinates from Cartesian to crystal (fractional) coordinates.

Parameters:
  • coords (np.ndarray) – Cartesian coordinates, shape (3,) or (3, N)

  • basis (np.ndarray) – Lattice basis vectors (columns), shape (3, 3)

Returns:

Fractional crystal coordinates, same shape as input

Return type:

np.ndarray

Notes

The transformation is given by:

k_crys = inv(basis) @ k_cart

where basis contains the lattice vectors as columns.

If coords is a single 3-vector (shape (3,)), it is automatically promoted to shape (3, 1), and the returned result will have shape (3, 1).

PAOFLOW.transport.utils.converters.crystal_to_cartesian(coords, basis)[source]#

Convert coordinates from crystal (fractional) to Cartesian coordinates.

Parameters:
  • coords (np.ndarray) – Fractional crystal coordinates, shape (3,) or (3, N)

  • basis (np.ndarray) – Lattice basis vectors (columns), shape (3, 3)

Returns:

Cartesian coordinates, same shape as input

Return type:

np.ndarray

Notes

The transformation is given by:

r_cart = basis @ r_crys

where basis contains the lattice vectors as columns.

If coords is a single 3-vector (shape (3,)), it is automatically promoted to shape (3, 1), and the returned result will have shape (3, 1).