Source code for pysisyphus.irc.Euler

import numpy as np

from pysisyphus.irc.IRC import IRC
from pysisyphus.TableFormatter import TableFormatter


[docs] class Euler(IRC): def __init__(self, geometry, step_length=0.01, **kwargs): super(Euler, self).__init__(geometry, step_length, **kwargs) step_header = "E/au ΔE(TS)/au |gradient|".split() step_fmts = [".6f", ".6f", ".4f"] self.step_formatter = TableFormatter(step_header, step_fmts, 10)
[docs] def step(self): grad = self.mw_gradient grad_norm = np.linalg.norm(grad) # Step downhill, against the gradient step_direction = -grad / grad_norm self.mw_coords += self.step_length*step_direction