NudgedElasticBandStepFinder

 

__init__(self, func, jacobian, hessian=None, spring_constants=0.1, distance_function=None, step_finder='gradient-descent', logger=None, **opts): 

LLM Docstring

Initialize a nudged-elastic-band (NEB) step finder with spring couplings between neighbouring images.

  • func: Callable

    the per-image objective

  • jacobian: Callable

    the per-image gradient

  • hessian: Callable | None

    the per-image Hessian

  • spring_constants: float | np.ndarray

    spring constant(s) between images

  • distance_function: Callable | None

    optional custom inter-image distance

  • step_finder: str

    the base per-image method

  • logger: object | None

    optional logger

  • opts: Any

    extra options for the base step finder

 

get_dist(self, p1, p2): 

LLM Docstring

Return the Euclidean distance between two image geometries.

  • p1: np.ndarray

    the first geometry

  • p2: np.ndarray

    the second geometry

  • :returns: np.ndarray

    the distance

 

get_tangent(self, guess, mask, cur, prev, next): 

LLM Docstring

Compute the (normalized) NEB path tangent at an image, using the energy-weighted tangent scheme based on the neighbouring image energies.

  • guess: np.ndarray

    the full chain

  • mask: np.ndarray

    active-member indices

  • cur: int

    current image index

  • prev: int

    previous image index

  • next: int

    next image index

  • :returns: np.ndarray

    the unit path tangent

 

adjust_jacobian(self, jac, guess, mask, cur, prev, next): 

LLM Docstring

Project the tangential component out of the per-image gradient (the NEB nudging), caching the current path tangent.

  • jac: np.ndarray

    the base gradient

  • guess: np.ndarray

    the full chain

  • mask: np.ndarray

    active-member indices

  • cur: int

    current image index

  • prev: int | None

    previous image index

  • next: int | None

    next image index

  • :returns: np.ndarray

    the nudged gradient

 

climbing_node_step(self, guess, mask, gradient_modifer=None, projector=None): 

LLM Docstring

Take a climbing-image step: invert the tangential force component so the image climbs toward the saddle along the path.

  • guess: np.ndarray

    the climbing-image parameters

  • mask: np.ndarray

    active-member indices

  • gradient_modifer: Callable | None

    optional gradient transformation

  • projector: np.ndarray | None

    optional projector

  • :returns: tuple

    (step, gradient)

 

image_pairwise_contribution(self, guess, mask, cur, prev, next, order=0): 

LLM Docstring

Compute the NEB spring contribution to the objective/gradient/Hessian from the difference of the distances to the two neighbouring images.

  • guess: np.ndarray

    the full chain

  • mask: np.ndarray

    active-member indices

  • cur: int

    current image index

  • prev: int | None

    previous image index

  • next: int | None

    next image index

  • order: int

    derivative order (0=value, 1=gradient, 2=Hessian)

  • :returns: np.ndarray | int

    the spring contribution


Feedback

Examples

Templates

Documentation