get_next_step

chemopt.zmat_optimisation.get_next_step(last_two_C, gradients_energy_C, hess_old)[source]

Returns the next step and approximated hessian in the BFGS algorithm.

Parameters:
  • last_two_C (list) –

    A two list of the current and previous zmat values. The order is: [previous, current]. Each array is flatted out in the following order

    \[\left[ r_1, \alpha_1, \delta_1, r_2, \alpha_2, \delta_2, ... \right]\]

    And again \(r_i, \alpha_i, \delta_i\) are the bond, angle, and dihedral of the \(i\)-th atom. The units are Angstrom and radians.

  • gradients_energy_C (collections.deque) –

    A two element deque, that contains the current and previous gradient in internal coordinates. The order is: [previous, current]. Each gradient is flatted out in the following order

    \[\left[ \frac{\partial V}{\partial r_1}, \frac{\partial V}{\partial \alpha_1}, \frac{\partial V}{\partial \delta_1}, \frac{\partial V}{\partial r_2}, \frac{\partial V}{\partial \alpha_2}, \frac{\partial V}{\partial \delta_2}, ... \right]\]

    Here \(V\) is the energy and \(r_i, \alpha_i, \delta_i\) are the bond, angle, and dihedral of the \(i\)-th atom. The units are:

    \[\begin{split} &\frac{\partial V}{\partial r_i} &\frac{\text{Hartree}}{\text{Angstrom}} \\ &\frac{\partial V}{\partial \alpha_i} &\frac{\text{Hartree}}{\text{Radian}} \\ &\frac{\partial V}{\partial \delta_i} &\frac{\text{Hartree}}{\text{Radian}}\end{split}\]
Returns:

First float array is the next step, the second float array is the new approximated hessian.

Return type:

numpy.ndarray, numpy.ndarray