<html><head></head><body><div class="ydp470688b9yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div><div><span>&gt; <span>Selection happens at runtime, see in&nbsp;nbnxn_cuda.cu:select_nbnxn_kernel().</span></span></div><div><span><span><br></span></span></div><div><span><span>Yes I see that.</span></span></div><div><span><span><br></span></span><div><br></div><span><span></span></span></div><div><span><br></span></div><div><span><br></span></div><div><span>&gt; Try "git grep LJComb".</span></div><div><span><br></span></div><div><span>I am trying to find that in 2018.2 release that I have currently.</span></div><div><span><br></span></div><div><span><span>mahmood@mpc:/opt/gromacs-2018.2/src/gromacs/mdlib/nbnxn_cuda$ grep -i LJ_Comb nbnxn_cuda_kernel.cuh<br>#if defined LJ_COMB_GEOM || defined LJ_COMB_LB<br>#define LJ_COMB<br>#ifndef LJ_COMB<br>&nbsp;&nbsp;&nbsp; const float2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *lj_comb&nbsp;&nbsp;&nbsp;&nbsp; = atdat.lj_comb;<br>#ifndef LJ_COMB<br>#if !defined LJ_COMB_LB || defined CALC_ENERGIES<br>#ifdef LJ_COMB_LB<br>#ifndef LJ_COMB<br>#ifndef LJ_COMB<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ljcpib[tidxj * c_clSize + tidxi] = lj_comb[ai];<br>#ifndef LJ_COMB<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ljcp_j&nbsp; = lj_comb[aj];<br>#ifndef LJ_COMB<br>#ifdef LJ_COMB_GEOM<br>#endif&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* LJ_COMB_GEOM */<br>#endif&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* LJ_COMB */<br>#if !defined LJ_COMB_LB || defined CALC_ENERGIES<br>#else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* !LJ_COMB_LB || CALC_ENERGIES */<br>#endif&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* !LJ_COMB_LB || CALC_ENERGIES */<br>#undef LJ_COMB<br>mahmood@mpc:/opt/gromacs-2018.2/src/gromacs/mdlib/nbnxn_cuda$ grep -i LJComb nbnxn_cuda_kernel.cuh<br></span></span><div><span><span>mahmood@mpc:/opt/gromacs-2018.2/src/gromacs/mdlib/nbnxn_cuda$</span></span></div><div><span><span></span></span><br></div><div><br></div><div><br></div><div><br></div><div>I expect that <span><span><span>VdwLJCombLB_F</span></span></span> means that the statements that must be executed in <span>nbnxn_cuda_kernel.cuh, are those that are used in defined macros.</span></div><div><span><br></span></div><div><span>For example, since I see Vdw, the following code must be executed</span></div><div><span><br></span></div><div><span><span>#ifdef VDW_CUTOFF_CHECK<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Separate VDW cut-off check to enable twin-range cut-offs<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * (rvdw &lt; rcoulomb &lt;= rlist)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vdw_in_range&nbsp; = (r2 &lt; rvdw_sq) ? 1.0f : 0.0f;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; F_invr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *= vdw_in_range;<br><br></span></span><div><br></div><div><br></div><div>Also, since LJCombLB is seen, the following code must be executed<br></div><div><br></div><div><br></div><div><span>#else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* !LJ_COMB_LB || CALC_ENERGIES */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float sig_r&nbsp; = sigma*inv_r;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float sig_r2 = sig_r*sig_r;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float sig_r6 = sig_r2*sig_r2*sig_r2;<br></span></div></div></div><div><br></div><div><br></div><div><br></div><div><br></div><div>And so on...</div><div><br></div><div>Please let me know if I still haven't understand that.</div><br><div><br></div><div><br></div><div class="ydp470688b9signature">Regards,<br>Mahmood</div></div>
        <div><br></div></div><div><br></div></body></html>