Angle potential - 1412chen/potentialPack GitHub Wiki

Angle potential definition

Angle potential calculates the interaction relation of an angle, which was constructed by three atoms. The angle potential is defined as:

where



totally three independent parameters at most.

The force (first derivative of potential) and hessian (second derivative of potential) are also provided in the angle potential. By simple call the Force() and Hessian interfaces directly, they will return the (fj, fk) and (Hij, Hik, Hjk). The other force (fi) and sub-hessian matrixes (Hii, Hji, Hjj, Hki, Hkj and Hkk) can be constructed by the outputs. See more in the derivative section.

The derivatives of angle potential

The base class of the angle potential (PotentialAngle) provides an exact derivative interface and a finite difference version interface. For the given implemented angle potentials, all of them have implemented the exact derivative relations and well tested (test_angle.cpp). If user needs to implement user defined angle potential, complete the ObjectiveFunction() interface at least, the derivative relations will use the finite difference version interface automatically.

The force acting on atom i, j ,k are:



where




Integrate the above formulas together, we finally have:


The sub-hessian matrices are:









where






Implemented Angle potentials

The implemented angle potentials are referenced from LAMMPS and DL-Poly manual.

Harmonic angle potential



Harmonic cosine angle potential



Cosine angle potential



Quartic potential



Stillinger-Weber potential (angle term)










Screened harmonic potential










Compass potential








⚠️ **GitHub.com Fallback** ⚠️