Source code for ase2sprkkr.potentials.definitions.sections.reference_system

from ...potential_definitions import PotSectionDefinition, PotValueDefinition
from ...potential_sections import UniqueListSection

from ....common.grammar_types import Table
from ....sprkkr.reference_systems import ReferenceSystem


[docs] class ReferenceSystemSection(UniqueListSection): _value_name = "reference_systems" _value_class = ReferenceSystem
[docs] def _set_from_atoms(self, atoms, io_data): super()._set_from_atoms(atoms, io_data) self["NREF"].set(io_data.reference_systems.len_of_unique())
[docs] class ReferenceSystemSectionDefinition(PotSectionDefinition):
[docs] def __init__(self, name="REFERENCE SYSTEM", written_name="REFERENCE SYSTEM FOR TIGHT BINDING MODE", **kwargs): V = PotValueDefinition members = [V("NREF", int), V("DATA", Table({"VREF": float, "RMTREF": float}, numbering="IREF"))] super().__init__(name, members, has_hidden_members=True, written_name=written_name)
[docs] def validate(self, values, why="set"): return values["NREF"] == len(values["DATA"]) or "Number of reference systems differs from NREF"
result_class = ReferenceSystemSection
section = ReferenceSystemSectionDefinition