Notes on AMBER 12 interface

From Docswiki
Revision as of 10:23, 13 May 2019 by Adk44 (talk | contribs) (Created page with "The AMBER 12 interface is based on ''pmemd'' rather than ''sander''. There are many limitations on ''pmemd'', predominantly that it lacks: * Analytical second derivatives; *...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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