Closed spasmann closed 2 months ago
Really cool changes! IF/when we want to port iqmc to GPUs will this make that more difficult as we have more independent source files?
I will run the GPU tests to ensure they still compile with all these changes and then merge
Also just so I understand it every iQMC function now uses the Halton sequence, right? Therefore it's no longer a togglable option with no need for input_.py
documentation?
Thanks, @spasmann . Does the refactor solve the issue in the CSG PR #198 ?
Passed GPU tests
This PR includes two significant changes: 1) All of the iQMC functions in both
loop.py
andkernel.py
have been moved intoiqmc_loop.py
andiqmc_kernel.py
inside of aniqmc/
subfolder. Additionally, iQMC now calls it's ownloop_source
,loop_partcile
, andstep_particle
functions. These changes are intended to reduce the complexity in the primary MCDCloop
andkernel
functions - most embedded iQMC conditional statements and loops have been removed (except for copying theP["iqmc"]["w"]
because there is still only one particle type). This should also increase readability for both Monte Carlo and iQMC functions.2) The Scipy low-discrepency sequences have been removed and custom Halton sequences were added.
halton()
is the standard Halton sequence that is currently used for all iQMC simulations.rhalton()
is the randomized-Halton sequence which will be used in a forth-coming batching method PR. This removes the dependence forscipy
.EDIT: I thought removing the halton sequence removed our dependence for
scipy
. However, we still use it ininput_.py
to integrate