Source code for pyrevs.trajectory.config
from dataclasses import dataclass
from dataclasses import field
from pyrevs.core import MergePolicy
@dataclass(frozen=True)
[docs]
class TrajectoryConfig:
"""Trajectory configuration."""
__section__ = "trajectory"
__merge_policy__ = MergePolicy.IMMUTABLE
[docs]
step_size: float = field(
default=-1.0,
metadata={
"doc": "The stochastic time step size. Needs to be > 0.",
},
)
[docs]
end_time: float = field(
default=-1.0,
metadata={
"doc": "The end time of the trajectory.",
},
)
[docs]
targetscore: float = field(
default=0.95,
metadata={
"doc": "The target score for the trajectory.",
},
)
[docs]
sparse_freq: int = field(
default=1,
metadata={
"doc": "The frequency at which the model state is stored in the trajectory.",
},
)
[docs]
sparse_start: int = field(
default=0,
metadata={
"doc": "The first step at which the model state is stored in the trajectory.",
},
)
[docs]
chkfile_dump_all: bool = field(
default=False,
metadata={
"doc": "Whether to dump all trajectory chkfile at every step.",
},
)
[docs]
def validate(self) -> None:
"""Validate trajectory configuration."""
if self.step_size <= 0:
err_msg = "TrajectoryConfig.step_size must be > 0"
raise ValueError(err_msg)