Skip to content

Cartesian quantities

Energies, forces, and stress can be described without retaining orbital indices or a real-space grid. These atomistic quantities use scalar, Cartesian vector, or rank-2 tensor containers, with separate forms for values associated with individual atoms.

The containers specify array shape and transformation behavior. A quantity's name, units, and physical meaning are assigned by the dataset or calculation. Cartesian vectors here are polar vectors; rank-2 tensors are general tensors and need not be symmetric.

Scalars

Scalar dataclass

Scalar(array: ArrayLike)

One or more real scalars with shape extra_shape.

AtomScalar dataclass

AtomScalar(array: ArrayLike)

Atom-level real scalars with shape (*extra_shape, n_atoms).

Vectors

CartesianVector dataclass

CartesianVector(array: ArrayLike)

One or more real polar vectors with shape (*extra_shape, 3).

rotated

rotated(rotation: ArrayLike) -> CartesianVector

Return the vectors after an active orthogonal transformation.

AtomCartesianVector dataclass

AtomCartesianVector(array: ArrayLike)

Atom-level real polar vectors with shape (*extra_shape, n_atoms, 3).

rotated

rotated(rotation: ArrayLike) -> AtomCartesianVector

Return the vectors after an active orthogonal transformation.

Rank-2 tensors

CartesianTensor2 dataclass

CartesianTensor2(array: ArrayLike)

One or more real rank-2 Cartesian tensors with shape (*extra_shape, 3, 3).

rotated

rotated(rotation: ArrayLike) -> CartesianTensor2

Return the tensors after an active orthogonal transformation.

AtomCartesianTensor2 dataclass

AtomCartesianTensor2(array: ArrayLike)

Atom-level rank-2 Cartesian tensors with shape (*extra_shape, n_atoms, 3, 3).

rotated

rotated(rotation: ArrayLike) -> AtomCartesianTensor2

Return the tensors after an active orthogonal transformation.

Atomistic quantities in a sample

AtomisticQuantity is the union of these six types used by Sample.

AtomisticQuantity