Simulation Config

class mlip.simulation.configs.simulation_config.SimulationConfig(*, simulation_type: SimulationType = SimulationType.MD, num_steps: Annotated[int, Gt(gt=0)], snapshot_interval: Annotated[int, Gt(gt=0)] = 1, box: Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | Annotated[list[Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=3), MaxLen(max_length=3)])] | None = None, edge_capacity_multiplier: Annotated[float, Ge(ge=1)] = 1.25)

The base configuration that all simulations share.

It only contains fields that are independent of backend and simulation type.

simulation_type

The type of simulation to run, either MD or minimization. Defaults to MD.

Type:

mlip.simulation.enums.SimulationType

num_steps

The number of total steps to run. For energy minimizations, this is the maximum number of steps if no convergence reached earlier.

Type:

int

snapshot_interval

The interval (in steps) between snapshots of the simulation state. This means information about every N-th snapshot is stored in the simulation state available to the loggers (N being the snapshot interval). Defaults to 1.

Type:

int

box

The optional simulation box. If None, no periodic boundary conditions (PBCs) are applied. It can be set to either a float or a list three floats, to enforce orthorhombic PBCs. Note that the ASESimulationEngine supports generic PBCs by reading the cell attribute of the ase.Atoms to simulate, in which case the box parameter should not be used.

Type:

float | list[float] | None

edge_capacity_multiplier

Factor to multiply the number of edges by to obtain the edge capacity including padding. Defaults to 1.25.

Type:

float

class mlip.simulation.configs.simulation_config.TemperatureScheduleConfig(*, method: TemperatureScheduleMethod = TemperatureScheduleMethod.CONSTANT, temperature: Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = None, start_temperature: Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = None, end_temperature: Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = None, max_temperature: Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = None, min_temperature: Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = None, heating_period: Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = None)

The base configuration containing all the possible parameters for the temperature schedules.

method

The type of temperature schedule to use. Default is constant.

Type:

mlip.simulation.enums.TemperatureScheduleMethod

temperature

The temperature to use for the constant schedule in Kelvin.

Type:

float | None

start_temperature

The starting temperature in Kelvin. Used for the linear schedule.

Type:

float | None

end_temperature

The ending temperature in Kelvin. Used for the linear schedule.

Type:

float | None

max_temperature

The maximum temperature in Kelvin. Used for the triangle schedule.

Type:

float | None

min_temperature

The minimum temperature in Kelvin. Used for the triangle schedule.

Type:

float | None

heating_period

The period for heating the system. Measured in number of simulation steps. Used for the triangle schedule.

Type:

int | None