CAMM‎ > ‎Resources‎ > ‎Software‎ > ‎Workflows‎ > ‎


Force-Field Refinement with Dakota using a Kepler workflow

This tutorial shows the steps to refine a molecular dynamics force-field parameter using Dakota for optimization between the simulated and experimental quasi-elastic neutron scattering factor. The selected system is a concentrated (7M) solution of Lithium Chloride in water. The system is modelled by a three-point charge water model with the geometry of the TIP3P water model. The distribution of charges in the water molecule is the force-field parameter to refine, effectively readjusting the permanent electric dipole due to the presence of the ions.  Li+ and Cl- ion parameters are taken from the CHARMM22 all-hydrogen parameter file for proteins and lipids.

of the problem, along with the example we will cover in the ensuing tutorial:


  • Required and installed on
    • Mantid framework for computation and visualization of scientific data. Contains the MantidPlot graphical interface and the Mantid python API. Please follow site instructions for download and installation.
    • Dakota to optimize force-field and scaling parameters.
    • Kepler workflow to submit remote simulations and run python scripts for reduction.
  • Required and installed on, and
    • Namd to perform the molecular dynamics simulations.
    • Sassena to calculate the scattering law, or structure factor.

  • Required:
    • Experimental scattering law files.
    • Python scripts that use Mantid libraries


A summary of the steps:
  1. Request an account on by emailing
  2. Enter "kepler" to start kepler workflow
  3. In the File menu, open /SNS/software/camm/code/kepler/Strategist.xml.  This will appear in Recent Files the next time kepler is opened.
  4. In the Workflow menu, select Runtime Window.
  5. In the Runtime Window:
    1. Change the RemoteLogin to your account on a remote machine.  If you change remote machine:
      1. Change the RemoteWorkingDirectory to a scratch directory on the remote machine (/scratch/scratchdirs/userName on Hopper).
      2. Change the NAMDBatchScript and SASSENABatchScript using the browse button to those for Hopper if running on Hopper.
    2. Change the LocalWorkingDirectory to a new directory where your output will be stored.
    3. Change the ExpData and Temperature to run another LiCl temperature.
  6. Click Go and output will appear in boxes on Runtime Window.

The status of remote jobs will be displayed in terminal window.  Actors and directors used in workflow are visible from the workflow window and right clicking on the composite actors will allow you to "Open Actor" to see what is inside.  All actors have documentation available by right clicking.

Once the optimization is done, we can visualize the results of the fit with MantidPlot.

Type "MantidPlot"

Load the experimental file. In our example, we load LiCl at 290K:

Load the simulation file.  In our example, we load:

Right click on the workspaces to Plot Spectrum of experimental file.  Drag from Simulated workspace to experimental plot to compare.  Black dots are experimental data.  The red curve is the initial guess and the green curve is the optimized simulation.

The comparison can also be done using a log scale to compare the tails: