<html><head></head><body><div class="ydp470688b9yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div><div><span>> <span>Selection happens at runtime, see in 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>> 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> const float2 *lj_comb = 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> ljcpib[tidxj * c_clSize + tidxi] = lj_comb[ai];<br>#ifndef LJ_COMB<br> ljcp_j = lj_comb[aj];<br>#ifndef LJ_COMB<br>#ifdef LJ_COMB_GEOM<br>#endif /* LJ_COMB_GEOM */<br>#endif /* LJ_COMB */<br>#if !defined LJ_COMB_LB || defined CALC_ENERGIES<br>#else /* !LJ_COMB_LB || CALC_ENERGIES */<br>#endif /* !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> /* Separate VDW cut-off check to enable twin-range cut-offs<br> * (rvdw < rcoulomb <= rlist)<br> */<br> vdw_in_range = (r2 < rvdw_sq) ? 1.0f : 0.0f;<br> F_invr *= 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 /* !LJ_COMB_LB || CALC_ENERGIES */<br> float sig_r = sigma*inv_r;<br> float sig_r2 = sig_r*sig_r;<br> 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>