molmod / QuickFF

A Python code to quickly derive ab initio parameterized force fields.
GNU General Public License v3.0
38 stars 16 forks source link

Confirmation for BENDCOS parameters calls in LAMMPS #22

Closed camilofs closed 3 years ago

camilofs commented 3 years ago

Just a simple issue. I am modelling CO2 molecules using data from VASP. CO2 molecules usually have a rest angle of 180 deg. Running the conventional qff.py (without non-bonding terms) I get three parameters for the covalent force field:

1) BONDHARM = Bond Coeffs, harmonic 2) BENDCOS = Angle Coeffs, ? 3) CROSS = Angle Coeffs, cross

Is it right to set the values from BENDCOS to a cosine/delta angle style in LAMMPS? Should I divide the coefficient obtained in qff by 2? What about the cross (energy) coefficients?

PS: in LAMMPS, the usual 1/2 factor is included in K - which diverges from equation 2.1 from your last paper. Edit: *divide by 2

lvduyfhu commented 3 years ago

The mathematical formula for the BENDCOS term is:

V(theta) = K/2(1-cos(m(theta-theta0)))

Therefore, it might be that a LAMMPS cosine/delta term is appropriate (if m=1), but it could also be a cosine/periodic is required (e.g. if m=4). Furthermore, indeed you should divide the force constant by 2 to be consistent with the LAMMPS definition.

With respect to the CROSS terms, these can be converted to LAMMPS using the angle_style 'cross' from LAMMPS. If you also switched on dihedral cross terms in QuickFF (DSS, DSD, or DAD), you can use the dihedral_style class2. I am unsure at the moment if DAA terms are supported in LAMMPS (the aat contribution in class2 also includes a dihedral factor cos(phi) which is not in QuickFF). Offcourse these dihedral cross terms are irrelevant for CO2.

camilofs commented 3 years ago

Thank you. In my head, it was more intuitive to use cosine/delta due to the presence of a rest angle (theta0). Still, the cosine/periodic implementation makes sense in the case of a specific periodicity. I am closing the issue. Thanks again.