Skip to content
Automate force matching for legacy forcefields
Python Ruby C Shell
Branch: master
Clone or download


chemparam - an automated interface for calling forcesolve using Gromacs and CHARMM-style interaction energy forms.

Although it's been available since 2008 as the first general-purpose force matching software ever, few research groups have developed methods which use it. Forcesolve is blindingly fast, rock solid, and can fit arbitrary generalized additive forms.

This code uses OpenBabel to read in molecules and assign initial chemical atom types, sample molecular conformers, then (optionally) libnwchem to compute forces. Next, it runs forcesolve to match parameters to the best of the fitting form's ability and outputs them in both Gromacs itp and CHARMM prm formats.

Controllable Options

  1. Can fit pairwise LJ terms or assign from an existing parameter file.
  2. Can either fit charges or leave them alone.
  3. Can include Urey-Bradley terms.
  4. Can fit special 1-4 terms or assign the same LJ terms everywhere.
  5. Can handle special 1-4 LJ or charge scaling.
    • Caveat: Cannot fit LJ using a special 1-4 scale.



The script should be a one-shot wonder. If you didn't install libnwchem, your only option is theory=mmff. Try it out on your favorite mol file while enjoying as many handfuls of popcorn as possible (but you probably won't get past 3).

Most of the work is done by, which has self-explanatory long-style commandline options. No extra assembly required, no BS.


Pull requests and bug reports are welcome!



  • This code was made possible by the persistence of Phillip S. Hudson and H. Lee Woodcock.


Please cite ChemParam as:

David M. Rogers, ChemParam (2018)

You can’t perform that action at this time.