Move Particle Cloud Generation to Pre-Process - #1839
Conversation
|
Claude Code Review Head SHA: 40af4f1 Files changed:
Findings:
|
# Conflicts: # src/simulation/m_collisions.fpp
|
Reviewed Two things block it, though, and both are silent. 1. Every fresh IB run now zeroes
|
… only the local ranks and then share. This also reduces the memroy reading required in exascale cases, which optimizes read times
|
@sbryngelson, if this branch passes tests, it will now be ready for review. |
Lines of Code
|
|
Went through the failures here while triaging CI across the open PRs. They are three different things, not one: 1. Two missing golden files — 2. One real numerical difference — Five orders of magnitude outside tolerance, so not roundoff. Given the branch moves particle-cloud generation into pre_process, an initial-condition difference feeding the STL case seems the likelier explanation than a solver change, but that is a guess and worth confirming from the case itself. 3. None of these are the 23 |
Simulation should always read the initial state of particles upon start/restart. The particle cloud code was added haphazardly in an attempt to test scaling, but was poorly designed because it performs CPU-only particle placement that is invarient under restart simultaneously on each processor. This compute would be more efficiently done once on CPUs in pre_process and then read in by simulation each time. It saves some placement time in simulation, allows users to not utilize GPU node time to place particles (or worse, to get an allocation just for the job to fail), and muddies the waters for development on particle clouds.
This PR moves that code to preprocessing, and has preprocessing produce IB state files for the first time step, matching the implementation of all other initial values of the code.