NEB Simulation Config¶
- class mlip.simulation.configs.neb_config.NEBSimulationConfig(*, simulation_type: ~mlip.simulation.enums.SimulationType = SimulationType.TS_SEARCH, md_integrator: ~mlip.simulation.enums.MDIntegrator = MDIntegrator.NVT_LANGEVIN, num_steps: ~typing.Annotated[int, ~annotated_types.Gt(gt=0)], snapshot_interval: ~typing.Annotated[int, ~annotated_types.Gt(gt=0)] = 1, box: ~typing.Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | ~typing.Annotated[list[~typing.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: ~typing.Annotated[float, ~annotated_types.Ge(ge=1)] = 1.25, set_none_charge_to_zero: bool = True, log_interval: ~typing.Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = None, log_outputs: ~mlip.simulation.configs.simulation_config.SimulationLogOutputs = SimulationLogOutputs(positions=True, velocities=True, forces=True, kinetic_energy=True, temperature=True, cell=True), timestep_fs: ~typing.Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = 1.0, temperature_kelvin: ~typing.Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = 300.0, friction: ~typing.Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = 0.1, temperature_schedule_config: ~mlip.simulation.configs.simulation_config.TemperatureScheduleConfig = TemperatureScheduleConfig(method=<TemperatureScheduleMethod.CONSTANT: 'constant'>, temperature=300.0, start_temperature=None, end_temperature=None, max_temperature=None, min_temperature=None, heating_period=None), pressure_bar: ~typing.Annotated[float, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = 1.01325, barostat_update_interval: ~typing.Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])] | None = 25, molecule_indices: list[int] | None = None, max_force_convergence_threshold: float | None = 0.1, optimizer: ~mlip.simulation.enums.StructureOptimizationMethod = StructureOptimizationMethod.BFGS, num_images: int = 7, neb_k: float | None = 10.0, continue_from_previous_run: bool = False, climb: bool = False, neb_method: ~mlip.simulation.enums.NEBMethod = NEBMethod.IMPROVED_TANGENT, bfgs_alpha: float = 70.0, bfgs_maxstep: float = 0.03, fire_timestep: float = 0.1)¶
Configuration for the NEB simulations.
Also includes all the attributes of the
ASESimulationConfig.- simulation_type¶
The type of simulation to run. Only ts_search is supported.
- optimizer¶
Optimizer algorithm for the NEB force optimization.
- Type:
mlip.simulation.enums.StructureOptimizationMethod
- num_images¶
Number of images along the elastic band.
- Type:
int
- neb_k¶
Force constant between the images.
- Type:
float | None
- max_force_convergence_threshold¶
Max. atom force threshold for NEB simulation.
- Type:
float | None
- continue_from_previous_run¶
Whether the NEB simulation restarts from a previous run. This will skip interpolation between images.
- Type:
bool
- climb¶
Whether to apply the climbing image method.
- Type:
bool
- neb_method¶
Tangent / spring formulation passed to
ase.mep.NEB.- Type:
mlip.simulation.enums.NEBMethod
- bfgs_alpha¶
Alpha parameter for the BFGS optimizer.
- Type:
float
- bfgs_maxstep¶
Maxstep parameter for the BFGS optimizer.
- Type:
float
- fire_timestep¶
Timestep parameter for the FIRE optimizer. Note that this timestep is in ASE units.
- Type:
float