Refactor pcms#316
Open
Sichao25 wants to merge 79 commits intoSCOREC:developfrom
Open
Conversation
This change makes the ownership model more clear. Since UniformGrid is a small POD type this seems sensible.
This is one proposed avenue to remove the field creation from the layout.
PCMS follows the language standard requirements of Kokkos. The assumption is that standard that is required by Kokkos will be well supported across the DOE systems.
This Commit addresses three issues: 1. Add Omega_h adapter that handles order 0 and order 1 without MeshFields 2. Gate all calls (CMakeLists.txt, headers, etc.) to MeshFields 3. Add CI test that builds with -DPCMS_ENABLE_MESHFIELDS=OFF
This commit adds a -DPCMS_ENABLE_PETSC=OFF compilation to the CI
This commit removes the create_field.h header and makes use of the Lagrange field factory for the uniform grid evaluations and mask creation.
This removes the Serialize/Deserialize from the fields and for now, uses a default implementation that works of GetDOFHolder and SetDOFHolder from the field definitions. In the future, we could implement optimized version of the serialization through derived class that is specific to each field type. This split is required to move towards separate evaluation and coupling libraries in PCMS.
This commit creates a field exchange planner which constructs permutations / works with the layout. A classification API is added to the layout as well. This allows us to define a generic Exchange plan that works with any field that implement it.
This commit applies the reorganization of PCMS into specific libraries related to field operations (particularly, evaluation) and communication/coordination operations in the coupler library. The old adapters that mix field and coupling operations are now located inside the coupler library. The field library does not require linking against redev.
This commit implements the new style of evaluation that we are testing with PCMS. To ensure that things are working as expected, we pass the old field evaluation routines through the new ones. This ensures that all tests are passing as expected and avoids copy-pasting the underlying field logic.
This commit adds an XGC adapter class that utilizes the new interface design. Once we update the C interface to use this design, we will be able to remove the old XGC adapter.
This maintains similar ergonomics to the previous version. This is needed to avoid making the CAPI somewhat unpleasant.
The old version of PCMS communicators had one layout per field. We need to match that, and the participates logic for xgc tests to work.
62142e1 to
9987eb7
Compare
Contributor
Author
|
@jacobmerson Just let you know that this is ready for review. |
Collaborator
|
Thanks. |
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.
Refactor the entire source code and API so the implementation better matches the underlying concepts, with improved abstraction and encapsulation. Major changes include: