<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wikis.ch.cam.ac.uk/ro-walesdocs/wiki/index.php?action=history&amp;feed=atom&amp;title=Notes_on_AMBER_12_interface</id>
	<title>Notes on AMBER 12 interface - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wikis.ch.cam.ac.uk/ro-walesdocs/wiki/index.php?action=history&amp;feed=atom&amp;title=Notes_on_AMBER_12_interface"/>
	<link rel="alternate" type="text/html" href="https://wikis.ch.cam.ac.uk/ro-walesdocs/wiki/index.php?title=Notes_on_AMBER_12_interface&amp;action=history"/>
	<updated>2026-04-12T04:36:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://wikis.ch.cam.ac.uk/ro-walesdocs/wiki/index.php?title=Notes_on_AMBER_12_interface&amp;diff=1212&amp;oldid=prev</id>
		<title>Adk44: Created page with &quot;The AMBER 12 interface is based on &#039;&#039;pmemd&#039;&#039; rather than &#039;&#039;sander&#039;&#039;.  There are many limitations on &#039;&#039;pmemd&#039;&#039;, predominantly that it lacks:  * Analytical second derivatives; *...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wikis.ch.cam.ac.uk/ro-walesdocs/wiki/index.php?title=Notes_on_AMBER_12_interface&amp;diff=1212&amp;oldid=prev"/>
		<updated>2019-05-13T09:23:48Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;The AMBER 12 interface is based on &amp;#039;&amp;#039;pmemd&amp;#039;&amp;#039; rather than &amp;#039;&amp;#039;sander&amp;#039;&amp;#039;.  There are many limitations on &amp;#039;&amp;#039;pmemd&amp;#039;&amp;#039;, predominantly that it lacks:  * Analytical second derivatives; *...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The AMBER 12 interface is based on &amp;#039;&amp;#039;pmemd&amp;#039;&amp;#039; rather than &amp;#039;&amp;#039;sander&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
There are many limitations on &amp;#039;&amp;#039;pmemd&amp;#039;&amp;#039;, predominantly that it lacks:&lt;br /&gt;
&lt;br /&gt;
* Analytical second derivatives;&lt;br /&gt;
* Smooth cutoffs;&lt;br /&gt;
* Non-periodic vacuum simulations.&lt;br /&gt;
&lt;br /&gt;
However, it has built-in support for CUDA acceleration and its code is much, much simpler than the &amp;#039;&amp;#039;sander&amp;#039;&amp;#039; code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Changes from pmemd code ==&lt;br /&gt;
&lt;br /&gt;
=== amber_interface.F90 ===&lt;br /&gt;
&lt;br /&gt;
Based upon pmemd.F90, with the following changes:&lt;br /&gt;
&lt;br /&gt;
* Split the code into 3 subroutines: &amp;lt;code&amp;gt;amber_setup&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;energy_and_gradient&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;amber_finish&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== smooth_cutoff.F90 ===&lt;br /&gt;
&lt;br /&gt;
The module is named &amp;lt;code&amp;gt;smooth_cutoff_mod&amp;lt;/code&amp;gt; and keeps track of &amp;lt;code&amp;gt;ifswitch&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Implementing force switching cut-offs. Important variables to keep track of:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ifswitch&amp;lt;/code&amp;gt; determines which style of cut-offs is used.&lt;br /&gt;
&lt;br /&gt;
==== ifswitch = 1 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rc = sqrt(cut)&amp;lt;/code&amp;gt;, i.e. &amp;lt;math&amp;gt;\text{cut} = r_c^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In generalised Born simulations, &amp;lt;code&amp;gt;cut&amp;lt;/code&amp;gt; is a private variable. The publicly accessible variable is &amp;lt;code&amp;gt;gb_cutoff&amp;lt;/code&amp;gt;. Note that this is different from &amp;lt;code&amp;gt;rgbmax&amp;lt;/code&amp;gt;, which determines the cut-off for calculating gb radii.&lt;br /&gt;
&lt;br /&gt;
We switch on the additional terms at &amp;lt;math&amp;gt;r_\text{on}&amp;lt;/math&amp;gt;. This is arbitrarily set to 0.9 of the cut-off distance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r_\text{on}^2 = (0.9r_c)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We have these other terms, &amp;lt;code&amp;gt;term1(1:natom), term2(1:natom), term3(1:natom)&amp;lt;/code&amp;gt;, which I shall represent as &amp;lt;math&amp;gt;c_1, c_2, c_3&amp;lt;/math&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;r^2 = (x_i-x_j)^2 + (y_i-y_j)^2 + (z_i-z_j)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
c_1 = \frac{c_3}{c_2} =&lt;br /&gt;
\begin{cases} &lt;br /&gt;
0.0,  &amp;amp; \mbox{if }r \le r_\text{on} \\&lt;br /&gt;
\frac{-12(r_\text{on}^2-r^2)}{(r_c^2-r^2)(r_c^2+2r^2-3r_\text{on}^2)}, &amp;amp; \mbox{if }r &amp;gt; r_\text{on}&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
c_2 = &lt;br /&gt;
\begin{cases} &lt;br /&gt;
1.0,  &amp;amp; \mbox{if }r \le r_\text{on} \\&lt;br /&gt;
(r_c^2-r^2)^2(r_c^2+2r^2-3r_\text{on}^2)\frac{1}{r_c^6}\frac{1}{(1-0.9^2)^3}, &amp;amp; \mbox{if }r &amp;gt; r_\text{on}&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
c_3 = &lt;br /&gt;
\begin{cases} &lt;br /&gt;
0.0,  &amp;amp; \mbox{if }r \le r_\text{on} \\&lt;br /&gt;
-12(r_c^2-r^2)(r_\text{on}^2-r^2)\frac{1}{r_c^6}\frac{1}{(1-0.9^2)^3}, &amp;amp; \mbox{if }r &amp;gt; r_\text{on}&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The energies and their derivatives are given by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E_\text{elec} = \frac{q_iq_j}{\epsilon_\text{int}r}c_2 \mbox{  and  } \frac{-1}{r}\frac{dE_\text{elec}}{dr} = \frac{E_\text{elec}}{r^2} + E_\text{elec}c_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E_\text{gb} = E_\text{gb}c_2 \mbox{  and  } \frac{dE_\text{gb}}{dr} = \frac{-1}{r}\frac{dE_\text{gb}}{dr}c_2 + E_\text{gb}c_1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E_\text{vdW} = \left ( \frac{A}{r^{12}} - \frac{B}{r^6} \right ) c_2 \mbox{  and  } \frac{-1}{r}\frac{dE_\text{vdW}}{dr} = \left (\frac{12A}{r^{12}} - \frac{6B}{r^6} \right )\frac{1}{r^2}c_2 + \left ( \frac{A}{r^{12}} - \frac{B}{r^6} \right ) c_3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== mdin_ctrl_dat.F90 ===&lt;br /&gt;
&lt;br /&gt;
* Line 31: &amp;lt;code&amp;gt;ifswitch&amp;lt;/code&amp;gt; added to declaration&lt;br /&gt;
* Line 45: &amp;lt;code&amp;gt;ifswitch&amp;lt;/code&amp;gt; added to &amp;lt;code&amp;gt;/ mdin_ctrl_int /&amp;lt;/code&amp;gt; common block&lt;br /&gt;
* Line 49: &amp;lt;code&amp;gt;mdin_ctrl_int_cnt = 56&amp;lt;/code&amp;gt; (rather than 55, since there is one more integer variable now)&lt;br /&gt;
* Line 216: &amp;lt;code&amp;gt;ifswitch&amp;lt;/code&amp;gt; added &amp;lt;code&amp;gt;/cntrl/&amp;lt;/code&amp;gt; namelist, for reading min.in files.&lt;br /&gt;
* Line 434: initialised &amp;lt;code&amp;gt;ifswitch = 0&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Adk44</name></author>
	</entry>
</feed>