Cross terms in Dreiding force field

Hello Steve and Andrew.

Thanks for your comments and suggestions.

I have gone through the cross tems in class 2 force field as you mentioned. But unfortunately, they are not what I want. The format of corss terms that I need is Ebond-bond=K(R1-R0)(R2-R0), Eangle-angle=K((cosθ1-cosθ)^2(cosθ2-cos****θ)^2. They are different with the type of cross terms in class 2 force filed.

Should I do something to change the LAMMPS code? For example, add the cross terms into the code. Do you have any suggestions about it?

Thanks very much!



2012/7/31 Andrew Jewett <jewett.aij@…24…>


While it is true that the Class2 forcefield uses theta harmonic expressions for the angles and Dreiding uses cosine theta harmonic angles for the cross terms, the functional forms should give similar results. Indeed, from the original Dreiding paper, the simple angle bending terms are specified as theta harmonic, even though it does not give the correct behavior for linear bonds. A test would be to take a simple molecule and see how well the theta harmonic cross term reproduces the vibrational frequencies.

Alternatively, you could modify the Class2 forcefield to implement the cosine theta function, which should be too hard (there will be additional terms in the derivative that you need to account for)


Hi Tod,cosine theta

Thanks very much! But even if I use harmonic expressions for the angle instead of cosine theta harmonic angles for the cross terms, I think I still have some other problems. In class2 forcefield, I can only find the bond formula for one bond type.

But what I need is the bond formula for two bond types: Ebond-bond=K(R1-R01)*(R2-R02)

Also, for angle, in class2 forcefield, the angle formulas are

But what I need is:


There are two angle types in the formula.

Do you know how to solve this problem?



2012/7/31 Tod A Pascal <tod.a.cp@…24…>

If the formulas you want are not in LAMMPS, you have 2 choices:

a) code them up to add a new bond style to LAMMPS (we’d be happy
to then include it in the distro)

b) tabulate the bond functional and use bond_style table