httk.atomistic.models.protopattern

The geometry-free, element-free protopattern family.

Submodules

Attributes

Classes

ProtopatternAPI

The common interface for a space group with class-partitioned Wyckoff letters.

ProtopatternBackend

Backend root for standard-setting anonymous crystal keys.

ProtopatternOccupation

Store one Wyckoff orbit assigned to one anonymous species class.

Protopattern

Store a standard-setting space group and its class-partitioned Wyckoff letters.

ProtopatternViewBase

Base class for views presenting protopattern backends.

Package Contents

class httk.atomistic.models.protopattern.ProtopatternAPI[source]

Bases: abc.ABC

The common interface for a space group with class-partitioned Wyckoff letters.

A protopattern is the information content of an unsuffixed AFLOW-style label: a space group, its occupied Wyckoff letters, and the partition of those occupations into anonymous species classes. It carries no chemical elements and no continuous degrees of freedom. All derivations use the standard-setting conventional-cell scale.

property spacegroup: httk.atomistic.symmetry.spacegroup.Spacegroup
Abstractmethod:

Return the standard-setting space group.

property occupations: tuple[httk.atomistic.models.protopattern.occupation.ProtopatternOccupation, Ellipsis]
Abstractmethod:

Return the occupied Wyckoff positions in canonical order.

multiplicities()[source]

Return tabulated standard-setting multiplicities for each occupation.

Returns:

The standard-setting multiplicity for each occupation.

Return type:

tuple[int, Ellipsis]

property nsites_conventional: int

Return the total number of sites in the standard conventional cell.

Returns:

The conventional-cell site count.

Return type:

int

property pearson_symbol: str

Return the Pearson symbol at the standard conventional-cell scale.

Returns:

The Pearson symbol, such as "cF8".

Return type:

str

property label: httk.atomistic.models.protopattern.label.ProtopatternLabel

Return the httk protopattern label of this pattern.

Any faithful render is the protopattern label; the canonical protopattern label is the one obtained from a normalizer-canonical pattern.

Returns:

The protopattern label view.

Return type:

httk.atomistic.models.protopattern.label.ProtopatternLabel

property anonymous_formula: httk.atomistic.models.formula.formulapattern_view.FormulapatternView

Return the reduced anonymous formula at the standard conventional-cell scale.

The anonymous amounts are the per-class conventional multiplicities. This differs from the label’s own anonymous prefix, which follows group order rather than the canonical non-increasing formula order.

Returns:

The conventional-cell anonymous formula view.

Return type:

httk.atomistic.models.formula.formulapattern_view.FormulapatternView

property protopattern: Self

Return this protopattern value.

class httk.atomistic.models.protopattern.ProtopatternBackend(backend, **hints)[source]

Bases: httk.core.Backend[ProtopatternBackend], httk.atomistic.models.protopattern.api.ProtopatternAPI

Backend root for standard-setting anonymous crystal keys.

backend_classes: ClassVar[list[type[httk.core.Backend[Any]]]]
type httk.atomistic.models.protopattern.ProtopatternLike = httk.atomistic.models.protopattern.backend.ProtopatternBackend | httk.atomistic.models.protopattern.view_base.ProtopatternViewBase | httk.atomistic.models.protopattern.protopattern.Protopattern | str[source]
class httk.atomistic.models.protopattern.ProtopatternOccupation[source]

Store one Wyckoff orbit assigned to one anonymous species class.

Unlike WyckoffOccupation, the class carries an anonymous class label ("A", "B", …) rather than a real Species, so it can represent an element-agnostic pattern.

Parameters:
  • wyckoff – The Wyckoff letter in the standard setting.

  • label – The anonymous species-class label.

wyckoff: str
label: str
class httk.atomistic.models.protopattern.Protopattern(spacegroup, occupations)[source]

Bases: httk.atomistic.models.protopattern.backend.ProtopatternBackend

Store a standard-setting space group and its class-partitioned Wyckoff letters.

A protopattern is space group plus occupied Wyckoff letters plus a partition of those occupations into anonymous species classes; it has no chemical elements and no continuous degrees of freedom. Construction re-canonicalizes the class assignment by the pinned group-ordering rule, so any permutation of the input class labels builds an equal value that renders the identical label.

Protopattern is the anonymous-species, Wyckoff-positions-only cell of the material-information matrix:

Geometrical info

Anonymous

Assigned

Wyckoff positions only

Protopattern

Protostructure

Geometrical class

Prototype

Structuretype

Exact geometry

CrystalPattern

Structure

Parameters:
kind: ClassVar[str] = 'protopattern'
property spacegroup: httk.atomistic.symmetry.spacegroup.Spacegroup

Return the standard-setting space group.

property occupations: tuple[httk.atomistic.models.protopattern.occupation.ProtopatternOccupation, Ellipsis]

Return the canonical class-partitioned occupied Wyckoff positions.

class httk.atomistic.models.protopattern.ProtopatternViewBase[source]

Bases: httk.core.View[httk.atomistic.models.protopattern.backend.ProtopatternBackend]

Base class for views presenting protopattern backends.