Source code for pyrevs.strategies.montecarlo.config
from dataclasses import dataclass
from dataclasses import field
from pyrevs.core import MergePolicy
@dataclass(frozen=True)
[docs]
class MCConfig:
"""MC strategy configuration."""
__section__ = "montecarlo"
__merge_policy__ = MergePolicy.IMMUTABLE
[docs]
ntrajectories: int = field(
default=-1,
metadata={
"doc": "Number of trajectories to generate",
},
)
[docs]
end_time: float | None = field(
default=None,
metadata={
"doc": "End time of the individual simulations",
},
)
[docs]
def validate(self) -> None:
"""Validate MC configuration."""
if self.ntrajectories <= 0:
err_msg = " MCConfig.ntrajectories must be > 0"
raise ValueError(err_msg)