<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Hello all,
<div class=""><br class="">
</div>
<div class="">What I’m trying to do is get the energy difference between neighboring expanded ensemble simulations, i.e U(lambda_trial, x) - U(lambda_current, x). As such, I am trying to better understand the de term used in expanded ensemble calculations (de
 = weighted_lamee[lamtrial] - weighted_lamee[fep_state]).&nbsp;</div>
<div class=""><br class="">
</div>
<div class="">It is defined in forcerec.h as:</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">typedef struct {</div>
<div class="">&nbsp; &nbsp; real &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;term[F_NRE]; &nbsp; &nbsp; &nbsp; &nbsp; /* The energies for all different interaction types */</div>
<div class="">&nbsp; &nbsp; gmx_grppairener_t grpp;</div>
<div class="">&nbsp; &nbsp; double &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dvdl_lin[efptNR]; &nbsp; &nbsp;/* Contributions to dvdl with linear lam-dependence */</div>
<div class="">&nbsp; &nbsp; double &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dvdl_nonlin[efptNR]; /* Idem, but non-linear dependence &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/</div>
<div class="">&nbsp; &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; n_lambda;</div>
<div class="">&nbsp; &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fep_state; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /*current fep state -- just for printing */</div>
<div class=""><font color="#ff2600" class="">&nbsp; &nbsp; double &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *enerpart_lambda; &nbsp; &nbsp; /* Partial energy for lambda and flambda[] */</font></div>
<div class="">&nbsp; &nbsp; real &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;foreign_term[F_NRE]; /* alternate array for storing foreign lambda energies */</div>
<div class="">&nbsp; &nbsp; gmx_grppairener_t foreign_grpp; &nbsp; &nbsp; &nbsp; &nbsp;/* alternate array for storing foreign lambda energies */</div>
<div class="">} gmx_enerdata_t;</div>
<div class="">/* The idea is that dvdl terms with linear lambda dependence will be added</div>
<div class="">&nbsp;* automatically to enerpart_lambda. Terms with non-linear lambda dependence</div>
<div class="">&nbsp;* should explicitly determine the energies at foreign lambda points</div>
<div class="">&nbsp;* when n_lambda &gt; 0.</div>
<div class="">&nbsp;*/</div>
<div class=""><br class="">
</div>
<div class="">I see that this term is used in the xvg output inside of mdebin.c and&nbsp;</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">&nbsp; &nbsp; /* BAR &#43; thermodynamic integration values */</div>
<div class="">&nbsp; &nbsp; if ((md-&gt;fp_dhdl || md-&gt;dhc) &amp;&amp; bDoDHDL)</div>
<div class="">&nbsp; &nbsp; {</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; for (i = 0; i &lt; enerd-&gt;n_lambda-1; i&#43;&#43;)</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; {</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /* zero for simulated tempering */</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; md-&gt;dE[i] = enerd-&gt;enerpart_lambda[i&#43;1]-enerd-&gt;enerpart_lambda[0];</div>
</div>
<div class="">……</div>
<div class=""><br class="">
</div>
<div class="">Also, in the replica exchange code (repl_ex.c) we find this term again;</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">&nbsp; &nbsp;if (re-&gt;type == ereLAMBDA || re-&gt;type == ereTL)</div>
<div class="">&nbsp; &nbsp; {</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; bDLambda = TRUE;</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; /* lambda differences. */</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; /* de[i][j] is the energy of the jth simulation in the ith Hamiltonian</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;minus the energy of the jth simulation in the jth Hamiltonian */</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; for (i = 0; i &lt; re-&gt;nrepl; i&#43;&#43;)</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; {</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (j = 0; j &lt; re-&gt;nrepl; j&#43;&#43;)</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; re-&gt;de[i][j] = 0;</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; }</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; for (i = 0; i &lt; re-&gt;nrepl; i&#43;&#43;)</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; {</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; re-&gt;de[i][re-&gt;repl] = (enerd-&gt;enerpart_lambda[(int)re-&gt;q[ereLAMBDA][i]&#43;1]-enerd-&gt;enerpart_lambda[0]);</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; ……</div>
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">I’m trying to understand how this term is used in Thermodynamic integration (Pymbar for instance). Also, I’ve noticed that the enerd-&gt;enerpart_lambda[0] term is only updated every nstenergy step. Could anyone explain what the 0 term is and how
 this enerpart_lambda[i]-enerpart_lambda[0] term would be used in TI?&nbsp;</div>
<div class=""><br class="">
</div>
<div class="">The bottom line is that I need the correct value for the energy difference between neighboring lambda simulations. Does the de term do that for me?&nbsp;</div>
<div class=""><br class="">
</div>
<div class="">If de is the correct term, is delta lambda part of the calculation? The reason I ask this question is from not understanding the output of debug information in force.c, specifically;</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (debug)</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fprintf(debug, &quot;enerdiff lam %g: (%15s), non-linear %f linear %f*%f\n&quot;,</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fepvals-&gt;all_lambda[j][i], efpt_names[j],</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (enerd-&gt;enerpart_lambda[i&#43;1] - enerd-&gt;enerpart_lambda[0]),</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dlam, enerd-&gt;dvdl_lin[j]);</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div>
</div>
<div class=""><br class="">
</div>
<div class="">Does this mean that the energy difference is &nbsp;(enerd-&gt;enerpart_lambda[i&#43;1] - enerd-&gt;enerpart_lambda[0]) &#43; dlam*dvdl_lin[i]? I’m very confused.</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">Thanks,</div>
<div class=""><br class="">
</div>
<div class="">-ChrisM</div>
<div class=""><br class="">
</div>
<div class="">Mirabzadeh, Christopher&nbsp;<br class="">
Graduate&nbsp;Research Assistant/Physics&nbsp;Instructor<br class="">
Department of Physics<br class="">
University of Idaho<br class="">
Moscow, Id<br class="">
(509)339-5647<br class="">
<br class="">
<br class="">
</div>
<br class="">
</div>
</body>
</html>