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
AtomisticQuantity = (
Scalar
| AtomScalar
| CartesianVector
| AtomCartesianVector
| CartesianTensor2
| AtomCartesianTensor2
)