-
Notifications
You must be signed in to change notification settings - Fork 44
WIP: Towards Curvilinear Swarms #1391
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
pdmullen
wants to merge
87
commits into
develop
Choose a base branch
from
pdmullen/towards-curv-swarm
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 75 commits
Commits
Show all changes
87 commits
Select commit
Hold shift + click to select a range
5f0af20
Move sparse/swarmpack to unique dirs
pdmullen 1766a75
Switch to cpp/hpp impl for SwarmPacks
pdmullen 362dd18
Update changelog
pdmullen 088d970
Merge remote-tracking branch 'origin/pdmullen/swarm-pack-uint64' into…
pdmullen 5047be3
Attempt to generalize adding types to SwarmPack
pdmullen ede9ebc
Fix typo
pdmullen 9ab1221
Format
pdmullen bb975c3
Add FinalInitialization hook
pdmullen 3ead5b8
Update changelog and copyrights
pdmullen 11f2fb2
Update src/pack/swarm_pack/swarm_pack_types.hpp
pdmullen 03ac095
Fix a few includes
pdmullen ca734ce
Merge branch 'pdmullen/pack-refactor' of github.com:parthenon-hpc-lab…
pdmullen da63bf3
Merge remote-tracking branch 'origin/pdmullen/pack-refactor' into pdm…
pdmullen 6d4cbd0
Demo usage and update docs
pdmullen f4feb75
Fix a few more includes
pdmullen 6d3429d
Merge remote-tracking branch 'origin/pdmullen/pack-refactor' into pdm…
pdmullen 35e3914
Include what you use
pdmullen 0a9d388
Merge remote-tracking branch 'origin/pdmullen/pack-refactor' into pdm…
pdmullen 9a2d47e
Add MeshData swarm tasks
pdmullen 2f15d08
Update copyrights and changelog
pdmullen 7cec51d
Not sure I like this change...
pdmullen d22f80b
Merge remote-tracking branch 'origin/develop' into pdmullen/pack-refa…
pdmullen 0dc5184
Move PackIdxMap to pack_utils
pdmullen ccb74cb
Check Swarm Adds are consistent with SwarmPackTypes
pdmullen 17c1b48
Include what you use
pdmullen 628f11e
Merge remote-tracking branch 'origin/pdmullen/pack-refactor' into pdm…
pdmullen f0fc53a
Merge remote-tracking branch 'origin/pdmullen/final-init' into pdmull…
pdmullen 962a259
Move swarm type check
pdmullen a996bbd
Merge remote-tracking branch 'origin/pdmullen/pack-refactor' into pdm…
pdmullen 502ef54
Merge remote-tracking branch 'origin/pdmullen/final-init' into pdmull…
pdmullen 9d5676e
Macro name change for type variable enrollment
pdmullen adb9334
Merge remote-tracking branch 'origin/pdmullen/pack-refactor' into pdm…
pdmullen 6a20a8b
Merge remote-tracking branch 'origin/pdmullen/final-init' into pdmull…
pdmullen 28b3c45
Address PR comments
pdmullen 8b7c477
Address PR comments
pdmullen 9f4dba2
Merge remote-tracking branch 'origin/pdmullen/final-init' into pdmull…
pdmullen 401e59f
Support Particle AMR
pdmullen 6ba07e3
Upload generative AI plan
pdmullen 2b7afe0
Format
pdmullen 9f1f85e
Add missing notices
pdmullen 8b90173
std::memcpy --> Kokkos::bit_cast
pdmullen b5ee3dc
Fix register usage in particle_tracers
pdmullen cf08403
Do not host mirror positions for refinement branch
pdmullen fbe60f7
Move developer docs to dev folder
pdmullen d16fac6
Cleanup and fold expression
pdmullen 243c751
Cleanup unnecessary ternaries
pdmullen 7ce81e0
Format name change
pdmullen 914c0c7
Move generic utilities to utils
pdmullen 7a6aab1
Rename displs --> offsets
pdmullen 82f021e
Rename PeerSet --> NeighborRanks
pdmullen d868b57
Unmanaged view for refinement remesh branch
pdmullen 2433629
Update copyrights
pdmullen 57c0ea1
Format
pdmullen 58016eb
Merge branch 'develop' into pdmullen/final-init
pgrete 634e443
Commit team-resolved name change
pdmullen 9d66fff
Call PostInitialization on base
pdmullen 1830f5d
Address pgrete lb comment
pdmullen e979177
Move generative AI notice to bottom note in rst
pdmullen c7d5677
Merge remote-tracking branch 'origin/develop' into pdmullen/swarm-mes…
pdmullen b1c170f
Merge remote-tracking branch 'origin/pdmullen/final-init' into pdmull…
pdmullen 4d453e3
Fix merge conflict resolution
pdmullen 51d240a
Merge remote-tracking branch 'origin/pdmullen/swarm-mesh-data-tasks' …
pdmullen 3b58afa
Tidy up developer docs
pdmullen 3e66bff
Fix more bad merge conflict resolutions
pdmullen 323a787
Merge remote-tracking branch 'origin/pdmullen/swarm-mesh-data-tasks' …
pdmullen dc1aff8
Towards Curvilinear Swarms
pdmullen 51660d7
Update changelog
pdmullen bd78759
Update copyrights
pdmullen aef9a6f
Merge remote-tracking branch 'origin/develop' into pdmullen/particle-…
pdmullen 5754ee6
One more copyright
pdmullen c31b873
Merge remote-tracking branch 'origin/pdmullen/particle-amr-v2' into p…
pdmullen 04c3c47
Fix bad merge conflict resolution
pdmullen 70f9fb6
Merge remote-tracking branch 'origin/pdmullen/particle-amr-v2' into p…
pdmullen 3c67bac
Fix a few more name changes
pdmullen c501317
And update copyrights
pdmullen 9842147
Add backwards compatibility for old swarm position names
pdmullen 6160e04
Update warning
pdmullen 9dbe184
Merge remote-tracking branch 'origin/develop' into pdmullen/towards-c…
pdmullen 52c013e
Restart backwards compatibility
pdmullen f6d14c7
Merge remote-tracking branch 'origin/develop' into pdmullen/towards-c…
pdmullen 7213620
Merge remote-tracking branch 'origin/develop' into pdmullen/towards-c…
pdmullen 834fdea
Try to add OpenPMD backwards compatibility
pdmullen f2edca4
Copyrights and disclaimers
pdmullen fbee784
Try this
pdmullen 719358a
Formatting
pdmullen 224a884
Include what used
pdmullen 509115f
Merge branch 'develop' into pdmullen/towards-curv-swarm
pdmullen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| <!-- This file was made in part with generative AI. --> | ||
|
|
||
| ## Goal | ||
|
|
||
| Add correct AMR remeshing support for swarms so particle records are preserved across | ||
| refinement, derefinement, and same-level redistribution, while keeping the data path | ||
| compatible with device-resident execution and GPU-aware MPI. | ||
|
|
||
| ## Functional Plan | ||
|
|
||
| - Add a dedicated swarm remesh phase that runs after the new leaf mesh and field AMR | ||
| transfers are already complete. | ||
| - Build the remesh around block ownership changes: | ||
| - same-level remap sends every particle in an old block to one new block | ||
| - derefinement sends every particle in a child block to its parent block | ||
| - refinement uses particle positions only to choose among that old block's daughters | ||
| - Represent each transported particle as one complete mixed-type record containing the | ||
| destination block identifier plus all swarm variables needed to reconstruct the | ||
| particle. | ||
| - Pack and unpack those particle records in a precision-independent wire format. | ||
| - Keep the swarm payload buffers device-resident during communication so off-rank | ||
| transfers can use direct device-buffer MPI, and keep same-rank transfers on the | ||
| device as well. | ||
| - Recreate the received particles in the destination swarms, restore all particle | ||
| variables, and clear any cached swarm pack state invalidated by the ownership change. | ||
| - Add the minimal generic swarm-schema helpers needed to enumerate variable names and | ||
| compute packed record sizes without hard-coding a particular swarm layout. | ||
| - Exercise the new capability in the `particle_tracers` example by enabling AMR tagging | ||
| and retaining an analytically checkable particle motion. | ||
| - Add focused validation for the new functionality: | ||
| - a refinement unit test that checks particles land on the correct daughter blocks | ||
| - a derefinement unit test that checks particles reunite on the correct parent block | ||
| - regression coverage that checks AMR tracer motion against the analytic translation | ||
| - Correct any supporting same-rank swarm communication issue needed to make these AMR | ||
| particle transfers reliable. | ||
|
|
||
| ## Scope Boundaries | ||
|
|
||
| - Do not redesign the field AMR transfer path; only integrate the swarm remesh phase at | ||
| the correct point in the existing AMR sequence. | ||
| - Keep the implementation generic over swarm variable layout rather than tailoring it to | ||
| one example problem. |
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍