httk.atomistic.sites

The Sites class for httk-atomistic.

Classes

Sites

The sites of a crystal structure: the Nx3 matrix of reduced coordinates, held exactly.

Module Contents

class httk.atomistic.sites.Sites(reduced_coords: httk.core.VectorLike, precision: Any = None)[source]

The sites of a crystal structure: the Nx3 matrix of reduced coordinates, held exactly.

Reduced (fractional) coordinates are the symmetry-native frame: point-group operations are integer matrices and translations are rationals, so no radicals ever appear. They are therefore stored as an exact rational FracVector of shape (N, 3). A Sites object is iterable and indexable over its length-3 coordinate rows (each a FracVector), with len giving the number of sites.

Inputs embed exactly: rationals (and rational-valued floats), rational strings, and numpy arrays all land on their exact rational value. An irrational SurdVector input is reduced deterministically through the vector family’s fractions hub (never raising on data); the exact Cartesian frame — where radicals belong — is obtained instead via cartesian_sites().

property reduced_coords: httk.core.FracVector[source]

The Nx3 reduced site coordinates as an exact FracVector (one site per row).

property precision: fractions.Fraction | None[source]

How precisely these coordinates were stated, in fractional units, or None.

Fractional and therefore dimensionless: reduced coordinates are fractions of a cell edge, and a Sites carries no cell to convert with. Use cartesian_precision() for the corresponding length, which is the number an interatomic tolerance or an spglib symprec actually wants.

It is the coarsest precision among the coordinates, since a structure is only as precisely stated as its least precisely stated number. None means unknown.

numeric() httk.atomistic.numeric_sites.NumericSites[source]

A plain-numpy presentation of these sites (requires the httk-atomistic[numpy] extra).