implementation of born_matrix in bond_mm3.cpp

This commit is contained in:
Evangelos Voyiatzis
2023-06-19 16:39:49 +03:00
committed by GitHub
parent 2f22761461
commit bfc969d5c5

View File

@ -31,7 +31,10 @@ using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
BondMM3::BondMM3(LAMMPS *lmp) : Bond(lmp) {}
BondMM3::BondMM3(LAMMPS *lmp) : Bond(lmp)
{
born_matrix_enable = 1;
}
/* ---------------------------------------------------------------------- */
@ -219,3 +222,19 @@ double BondMM3::single(int type, double rsq,
else fforce = 0.0;
return k2[type]*dr2*(1.0+K3*dr+K4*dr2);
}
/* ---------------------------------------------------------------------- */
void BondMM3::born_matrix(int type, double rsq, int /*i*/, int /*j*/, double &du, double &du2)
{
double r = sqrt(rsq);
double dr = r - r0[type];
double dr2 = dr * dr;
double dr3 = dr2 * dr;
double K3 = -2.55 * k2[type] /force->angstrom;
double K4 = 7.0 * k2[type] * 2.55 * 2.55 / (12.0 * force->angstrom * force->angstrom);
du = 2.0 * k2[type] * dr + 3.0 * K3 * dr2 + 4.0 * K4 * dr3;
du2 = 2.0 * k2[type] + 6.0 * K3 * dr + 12.0 * K4 * dr2;
}