SequentialImageDependentPairPotential¶
- class SequentialImageDependentPairPotential(spring_constant=None, constraints=None, break_symmetry=None, max_forces=None, max_steps=None, max_step_length=None, optimizer_method=None, memory_size=None)¶
Use the Image Dependent Pair Potential method for interpolating images.
- Parameters:
spring_constant (PhysicalQuantity of type force per length) – The spring constant used between the images. Default: 1.0*eV/Ang**2.
constraints (sequence of ints | list of str | str) – List of atom indices that are kept fixed during interpolation or the list of tags of the atoms whose positions should be constrained. Default: []
break_symmetry (bool) – If the symmetry should be broken. This can be necessary for interpolation to work and to prevent unphysically close atoms if the endpoints are symmetry equivalent. Default: False.
max_forces (PhysicalQuantity of type eV/Ang) – The maximum forces when the optimization should stop. Default: 0.05*eV/Ang.
max_steps (int) – The maximum number of optimization steps to take after adding an image. Default: 200.
max_step_length (PhysicalQuantity of type length) – The maximum step length the optimizer may take. Default: 0.2*Ang.
optimizer_method (FIRE | LBFGS.) – The optimizer to use for optimizing the structure. Default: LBFGS
- Returns:
The generated images.
- Return type:
list of
MoleculeConfiguration
|BulkConfiguration
|DeviceConfiguration
|SurfaceConfiguration
classes
- breakSymmetry()¶
- Returns:
True, if the symmetry should be broken.
- Return type:
bool
- constraints()¶
- Returns:
The constrained atoms.
- Return type:
list of type int
- interpolate(neb)¶
Interpolate the given NEB and set the new images on it. The interpolation algorithm on the returned NEB is replaced by the regular Image Dependent Pair Potential algorithm.
- Parameters:
neb (NudgedElasticBand) – The NEB to interpolate.
- Returns:
The interpolated NEB or None if the interpolation failed.
- Return type:
NudgedElasticBand | None
- maxForces()¶
- Returns:
The maximum forces when the optimization should stop.
- Return type:
PhysicalQuantity of type eV/Ang
- maxStepLength()¶
- Returns:
The maximum step length the optimizer may take.
- Return type:
PhysicalQuantity of type length
- maxSteps()¶
- Returns:
The maximum number of optimization steps to take after adding an image.
- Return type:
int
- memorySize()¶
- Returns:
The memory size which is used for the LBFGS method.
- Return type:
int
- optimizerMethod()¶
- setConstraints(constraints)¶
Set the constraints.
- Parameters:
constraints (sequence of ints | list of str | str) – List of atom indices that are kept fixed during interpolation or the list of tags of the atoms whose positions should be constrained.
- springConstant()¶
- Returns:
The spring constant used between the images.
- Return type:
PhysicalQuantity of type force per length
- tags()¶
- Returns:
The tags used for defining the constraints.
- Return type:
bool
- uniqueString()¶
Return a unique string representing the state of the object.
Notes¶
The standard ImageDependentPairPotential (IDPP) improves upon LinearInterpolation of NudgedElasticBand by avoiding close atoms as a result of rotations or translations. However, the IDPP itself starts from a linear initial path which can lead to unphysical configurations for complex systems with many moving atoms.
The sequential image dependent pair potential [1] addresses this shortcoming of the IDPP by building the path sequentially, starting from the end points and adding images one by one.