implementation of born_matrix in bond_mm3.cpp
This commit is contained in:
committed by
GitHub
parent
2f22761461
commit
bfc969d5c5
@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user