Skip to content
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

Support Blueprint mesh in shaping #1455

Draft
wants to merge 103 commits into
base: develop
Choose a base branch
from

Conversation

gunney1
Copy link
Contributor

@gunney1 gunney1 commented Oct 21, 2024

Summary

  • This PR is a feature
  • It is a follow-up to and depends on PR Construct shapes in memory and support more shapes #1436. It is kept separate to minimize the size of the change set.
  • It addresses issue Support Blueprint mesh in IntersectionShaper and the shaper in-memory shape tests #1452
  • It does the following:
    • Adds Blueprint mesh support in IntersectionShaper.
    • Support incoming mesh data on device and host and require that the data lives in a space that's compatible with the selected runtime execution policy.
    • Refactor IntersectionShaper to make any need to move memory transparent to the calling function. For example, if host functions are need for a computation, device data is copied to host, worked on then copied back to device.
    • Extends an example (quest_shape_in_memory.cpp) to test the Blueprint mesh support.

Planned follow-up.

To keep this PR and its companion as as small as possible, I avoided moving code around too much. As a result the code is a bit messy. Issue #1445 tracks the planned follow work.

Motivation

IntersectionShaper currently support only MFEM mesh. That was due to convenience when the class was developed. IntersectionShaper doesn't make any use of any features not supported by Blueprint. We need to support Blueprint mesh, as that is the standard for LLNL.

gunney1 added 30 commits October 2, 2024 17:13
This version compiles without MFEM, if conduit is supported.
But it doesn't run because the conduit side is not fully written yet.
GridFunctionView is renamed TempArrayView to reflect that it doesn't
work with just GridFunctions.
…memory' into feature/gunney/blueprint-mesh-shaping
The feature was never used and we are moving away from MFEM mesh
in favor of blueprint mesh.
Add blueprint support to shaper code and test code.
The code required what to Blueprint was optional.
Facilitated by ability to reshape array data in sidre Views.
Also add code to save results for visualization.
gunney1 added 25 commits January 3, 2025 13:10
Using Conduit is too slow, due to the need to copy device
data to host and back.  This change requires a change in
the shaper constructors, because the conversion code needs
to be told what execution space to run in.
…emory' into feature/gunney/blueprint-mesh-shaping
To be in line with other codes' convention.
Users can provide a memory pool to bypass slow CUDA memory allocations/deallocations.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
high priority Quest Issues related to Axom's 'quest' component User Request Issues related to user requests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants