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.
Description
Please describe the changes/features in this pull request.
Reimplement compute namespace so that any data required to build kernels is available through compute namespace. The premise of this change is make the interface cleaner and more intuitive.
This is breaking pull request since the kernels need to be reimplemented to account for changes in data layout.
Major changes
- The properties are broken down into individual structs for every material type
- This should let us reference the material directly inside the kernels
- Material structs are templated on material type and material property (isotropic, anisotropic)
- Implemented point property method
- Added fields within the compute namespace
- This follows the idea that all simulation data should be owned by compute namespace
- The operating kernels can have a reference to this data
- Advantages of new implementation
- Lower memory footprint through compressed field storage
- Lower RangePolicy kernel time since kernel will only iterate though non-zero nglobs
Changes to the testing methods for properties
- The properties views are now compacted by removing zero values where the property doesnt apply. This makes me update testing routine so binary read properties can be compacted before comparison
Issue Number
If there is an issue created for these changes, link it here
Checklist
Please make sure to check developer documentation on specfem docs.
[x] I ran the code through pre-commit to check style
[] My code passes all the integration tests
[x] I have added sufficient unittests to test my changes
[x] I have added/updated documentation for the changes I am proposing
[x] I have updated CMakeLists to ensure my code builds
[x] My code builds across all platforms