Move Particle Cloud Generation to Pre-Process - #1839
Draft
danieljvickers wants to merge 2 commits into
Draft
Conversation
|
Claude Code Review Head SHA: 40af4f1 Files changed:
Findings:
|
Lines of Code
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.