ISMPath

class atomman.mep.ISMPath(coord: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], energyfxn: Callable, gradientfxn: str = 'cdiff', gradientkwargs: dict | None = None, integratorfxn: str = 'rk')

Bases: BasePath

Class representing an energy path for use with the improved string method.

property default_timestep: float

The default relaxation timestep

Type:

float

property default_tolerance: float

The default relaxation tolerance

Type:

float

interpolate_path(arccoord: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]) ISMPath

Uses cubic spline interpolation to interpolate a new path from intermediate arc length coordinates along the current path.

Parameters:

arccoord (array-like object) – Arc length coordinates along the current path where the new points are to be placed. Values must be in the range [0, self.arccoord].

Returns:

A new path with the interpolated coordinates.

Return type:

ISMPath

relax(relaxsteps: int = 0, climbsteps: int = 0, timestep: float | None = None, tolerance: float | None = None, climbpoints: int = 1, verbose: bool = True) ISMPath

Perform multiple relaxation and/or climb steps until either the maximum coordinate displacement per step drops below a tolerance or the maximum number of steps is reached.

Parameters:
  • relaxsteps (int, optional) – The maximum number of relaxation steps to perform. Default value is 0: no relaxation steps.

  • climbsteps (int, optional) – The maximum number of climbing steps to perform. Default value is 0: no climbing steps.

  • timestep (float, optional) – The size of the timestep to use. Will use default_timestep if not given.

  • tolerance (float, optional) – The coordinate displacement tolerance to use. Will use default_tolerance if not given.

  • climbpoints (int, optional) – Indicates the maximum number of points to subject the climbing to. Default value is 1: i.e. only one maximum is refined.

  • verbose (bool, optional) – If True (default), informative statements about the relaxation are printed.

Returns:

newpath – A Path with coordinates evolved forward from the relaxation.

Return type:

ISMPath

step(timestep: float | None = None, climbindex: int | list | None = None) ISMPath

Performs a single string relaxation step.

Parameters:
  • timestep (float, optional) – The size of the timestep to use. Will use the path’s default timestep if not given.

  • climbindex (int or list, optional) – Indicates the indices of the path points to apply the climb algorithm to. If None, no climbing will be performed.

Returns:

newpath – A Path with coordinates evolved forward by one timestep.

Return type:

ISMPath

property unittangent: ndarray

The tangent vectors along the path at each point.

Type:

numpy.NDArray