This post presents the basics about the Universal Force Field (UFF) interaction model.
This interaction model implements the UFF force fields proposed by Rappe et al. in . It also includes an automatic scheme to perceive the molecular system in order to compute the bonds, bond orders, and atom types, so that UFF can directly be applied on a given molecular system. For more details regarding this UFF implementation and the approach used to automatically perceive the molecular structure, please refer to publication .
- Open a document with a molecular system you want to simulate with UFF.
- Add a simulator by choosing Simulation, Add simulator in the main menu (or use the shortcut Ctrl+Shift+M).
- Select “Universal Force Field” in the list of interaction models.
- Choose the state updater you want to rely on for the simulation.
- Push the “OK” button.
The UFF setup window now appears.
- Check “Use existing bonds” if you want to rely on the existing bonds of the model. Otherwise, UFF will recompute the bonds from the atom types and position.
- Press the “OK” button.
The module now initializes the system for UFF by performing to the following operations:
- Compute the covalent bonds if “Use existing bonds” was not checked earlier.
- Compute the bond orders.
- Compute the atom types.
In case of detected inconsistencies, a warning message describing these inconsistencies may appear. Then press the “OK” button.
At this stage, you should now see the parameter window of UFF.
Running the UFF simulation
You can now run the UFF simulation:
- Press the “Simulation running” (green arrow) button.
A UFF simulation is now running. At the bottom of the UFF window, you can see the energy of each UFF term as well as the total UFF energy. You can interactively move atoms and see how the UFF model reacts by updating the position of the other atoms in consequence.
The UFF interface allows the user to modify the following UFF parameters:
- the type of bond stretch interaction: tt is possible to switch between Harmonic and Morse for this interaction by selecting the corresponding radio button (see the detail of the difference between these modes in ).
- the van der Waals cutoff distance that bonds the distance for which vdW interaction are considered.
- the switching distance from which the vdW term is weighted so that it smoothly reaches zero at the cutoff distance.
- the periodicity of neighbor lists construction, that may be modified to recompute the neighbor lists used in vdW more or less often (by default it is recomputed at each time step).
Customizing the typization
Several options are offered to customize the typization of UFF in SAMSON. Note that such customization is recommended for advanced users only since it can easily lead to incorrect structures in case of misuse. Below we describe the options proposed to customize the UFF typization.
- Some default maximum coordination (i.e. the number of neighbors) and maximum Valence (i.e. the number of neighbors weighted by their bond order) are set for the atoms (see  for more details). These default values can be modified for each atom by selecting the new value in the corresponding combo box and pushing the “Set” button. This new value is then taken into account in the new round of automatic atom perception. Note that these values are effective only if the new maximum coordination of valence is lower than the default one.
- The bond order of the bonds can be forced. For this, first, select the bond (or set of bonds) you are interested in, then select a bond order value (between 0.1 and 3.9 ) in the UFF parameter window, finally, push the “Set” button in the bond order group. You can also force a bond order to do not change after a new round of perception. For this, first, select the bond(s) and then press the “Freeze” button of the Bond order group in the UFF parameter window. Note that non-integer bond orders are possible.
- Similarly, the UFF types of atoms can be forced. For this, first, select the atom (or set of atoms) you are interested in, then select the UFF type you want to assign to the atom(s). Finally, push the “Set” button to force the type. You can also force a given type to not change after a new round of perception. For this, select the atom(s) and press the “Freeze” button of the Typization group in the UFF parameter window.
You can reset all of the previously mentioned customizations by pressing the corresponding “Reset all” buttons. Finally, you can recompute a new perception from the current customized settings and current atom positions (since bond creations depend on atomic distances) by pushing the “Reset perception” button.
Deleting and adding atoms
Atoms can be deleted from the model and added to the model “on the fly” ie. the typization is then recomputed automatically accordingly.
- Deleting an atom: select the eraser editor (rubber icon), then, select the atoms you want to delete.
- Adding an atom: Important remark: before detailing the operation, let’s note that adding atoms to the simulation is currently a bit tricky because in Samson 0.7.0, atoms are by default added to the currently active structural model. If you have loaded a molecular system from an importer, it is not the currently active structural model, and only this imported model is simulated, so newly added atoms belonging to another model will not be simulated. Hence, there are two options to add atoms that will be automatically included in the UFF simulation: 1) if you design your model from scratch (i.e. without importing any model), new atoms will remain in that same structural model so nothing special needs to be done. 2) if you are working with an imported system, add atoms connected to this system by creating them as bonded to an existing atom of the model. E.g. Select an atom element in the periodic table, editor. Click on a simulated atom, move the mouse, you should see an atom bonded to the initial atom appearing in transparency, then release the button of the mouse after moving the mouse. The atom should be part of the simulated model.
That’s all for this tutorial. For more details about the UFF implementation please see reference .
If you have any questions or feedback, please use the SAMSON forum.