In my dmc calculations, the presence of a Jastrow factor (gjastrow form) increases the computational time needed for one DMC step by about a factor 2.5. From this I conclude that the evaluation of the MOs plus the determinant update need a computational effort on the same order of magnitude as the computational effort needed for the evaluation of the Jastrow in my current setup. Within the time it takes to evaluate the Jastrow, it is the e-e-n terms that dominate. None of this I am particularly astonished about yet.
However, the time it takes to evaluate the e-e-n term does not seem to change when I change the e-n cutoff length in the e-e-n term. The same seems to hold true for the e-e term when changing the e-e cutoff. This sounds strange to me since I would have expected the computational effort to depend on the cutoff length of the basis. In the code, I can see that the jastrow is evaluated as (shown here for the e-e term)
Code: Select all
I think this explains why the evaluation time does not change with cutoff: It seems that prod_basis_ee and prod_cutoff_ee are always evaluated, even if prod_cutoff_ee is zero. Would it not be more efficient to check whether eevecs_scr(4,...), which seems to contain the distance between the two electrons, is larger than the cutoff before actually evaluating prod_basis_ee and prod_cutoff_ee? (Especially in very large supercells where the e-n cutoff might be much smaller than the supercell size?)
In general, I follow the principle: "The problem is always the user", i.e. me in this case. So as null hypothesis, I would assume that I am overlooking something and that this check is done somewhere, but the timing of my calculation does suggest that this is not the case.
Is there a good reason why this cannot be done? Am I overlooking something else or did I fully misunderstand something here?
Thanks and all the best,