Notes on AMBER 12 interface

From Docswiki
Jump to navigation Jump to search

The AMBER 12 interface is based on pmemd rather than sander.

There are many limitations on pmemd, predominantly that it lacks:

  • Analytical second derivatives;
  • Smooth cutoffs;
  • Non-periodic vacuum simulations.

However, it has built-in support for CUDA acceleration and its code is much, much simpler than the sander code.


Changes from pmemd code

amber_interface.F90

Based upon pmemd.F90, with the following changes:

  • Split the code into 3 subroutines: amber_setup, energy_and_gradient, amber_finish

smooth_cutoff.F90

The module is named smooth_cutoff_mod and keeps track of ifswitch.

Implementing force switching cut-offs. Important variables to keep track of:

ifswitch determines which style of cut-offs is used.

ifswitch = 1

rc = sqrt(cut), i.e.

In generalised Born simulations, cut is a private variable. The publicly accessible variable is gb_cutoff. Note that this is different from rgbmax, which determines the cut-off for calculating gb radii.

We switch on the additional terms at . This is arbitrarily set to 0.9 of the cut-off distance.

We have these other terms, term1(1:natom), term2(1:natom), term3(1:natom), which I shall represent as respectively.

The energies and their derivatives are given by:

mdin_ctrl_dat.F90

  • Line 31: ifswitch added to declaration
  • Line 45: ifswitch added to / mdin_ctrl_int / common block
  • Line 49: mdin_ctrl_int_cnt = 56 (rather than 55, since there is one more integer variable now)
  • Line 216: ifswitch added /cntrl/ namelist, for reading min.in files.
  • Line 434: initialised ifswitch = 0