httk.atomistic.entries.symmetry

The symmetry properties an asymmetric-unit structure can serve over OPTIMADE.

Two families, kept apart on purpose:

Standard OPTIMADE properties. space_group_it_number, the three space-group symbols, space_group_symmetry_operations_xyz, wyckoff_positions, fractional_site_positions, and site_coordinate_span are all part of the OPTIMADE standard and are already described in the vendored structures.json. They were simply never served.

Provider-specific properties, for the things OPTIMADE does not standardise — chiefly which setting a structure is written in, and the change of basis to the standard one. Rather than inventing descriptions, these reuse the published property definitions from schemas.httk.org, vendored verbatim in the registry schema package. The served name carries the _httk_ prefix that OPTIMADE requires of a database-specific property, but the definition keeps its own $id, so a client following the link reaches the authoritative published schema instead of a local paraphrase.

Everything here serves null for a plain UnitcellStructure, which carries no symmetry — with the sole exception of fractional_site_positions, which is just the reduced coordinates and is always available.

Attributes

Functions

setting_definitions()

Load the vendored symmetry-setting definitions.

symmetry_properties(structure)

Project standard and provider-specific symmetry properties.

Module Contents

httk.atomistic.entries.symmetry.SYMMETRY_PROPERTY_KEYS: tuple[str, Ellipsis] = ('space_group_it_number', 'space_group_symbol_hall', 'space_group_symbol_hermann_mauguin',...[source]
httk.atomistic.entries.symmetry.SETTING_PROPERTY_KEYS: dict[str, str][source]
httk.atomistic.entries.symmetry.setting_definitions()[source]

Load the vendored symmetry-setting definitions.

Loaded verbatim, so each keeps the $id under schemas.httk.org that makes it resolvable. Cached, since the documents are immutable.

Returns:

Definitions keyed by their served names.

Return type:

dict[str, httk.core.PropertyDefinition]

httk.atomistic.entries.symmetry.symmetry_properties(structure)[source]

Project standard and provider-specific symmetry properties.

A structure that is not an ASUStructure carries no symmetry, so everything but fractional_site_positions serves null. That is the honest answer: inferring a space group here would mean running a symmetry search behind the caller’s back, with a tolerance nobody chose, on every record served.

Parameters:

structure (Any) – The structure to project, or None for an empty entry.

Returns:

All supported symmetry properties, with unavailable values as None.

Return type:

dict[str, Any]