Applying a force field
The main method you will use in foyer is the
Forcefield.apply()
method. There are a few important arguments
you should understand.
The first several are the assert_bond_params
assert_angle_params
, assert_dihedral_params
, and
assert_improper_params
. These arguments require that the
supplied force field has parameters for every bond, angle, dihedral,
and improper in the system. In most cases, if you get an error,
it means that your force field is missing parameters for one of the
bonds/angles/dihedrals/impropers in the system. This could be
because the parameters are missing or because the atom-typing
(i.e., the SMARTS strings) are incorrect. These arguments are True
by default,
with the exception of assert_improper_params
. In all cases, it
is wise to verify that the final files you generate have the expected
number of bonds/angles/dihedrals/impropers for your system.
The other important optional argument is the combining_rule
option,
which is "lorentz"
(Lorentz-Berthelot) by default. The other valid
option is "geometric"
, if your force field uses geometric combining rules.