-
-
Notifications
You must be signed in to change notification settings - Fork 182
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
Write and read mesh using ADIOS2 #3291
base: main
Are you sure you want to change the base?
Conversation
Update cmakelists
Debug local-to-global mapping
What's going on with this one @ampdes? Is it ready to review? |
A preliminary review of the structure/naming in the slack channel will be appropriate first. |
cpp/dolfinx/io/checkpointing.cpp
Outdated
const std::vector<int64_t> input_global_indices | ||
= geometry.input_global_indices(); |
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.
const std::vector<int64_t> input_global_indices | |
= geometry.input_global_indices(); | |
const std::vector<int64_t>& input_global_indices | |
= geometry.input_global_indices(); |
This could be const right?
* Update copyright headers * Remove ADIOS_utils.cpp * Correct the global topology computation * Rename vertices to nodes
Add Append adios mode Add complete set of basix enum-string maps
cpp/demo/checkpointing/main.cpp
Outdated
for (std::size_t i = 0; i < x.size(); ++i) | ||
{ | ||
x[i] *= 4; | ||
} |
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.
We could use std::for_each
to illustrate good coding practices, see:
https://godbolt.org/z/97osavhb6
Co-authored-by: Jørgen Schartum Dokken <[email protected]>
This PR introduces module for native checkpointing using ADIOS2.
For the python APIs, we cannot use the ADIOS2 python bindings which are based on pybinds, hence a wrapper to ADIOS2 is created.
The ADIOS2 BeginStep() and EndStep() collectives are designed per write function. However, for the reader, we have that the BeginStep is external to function to first query the types and then call the reader with the correct type.
This PR has mesh writer/reader.
For time dependent mesh, the topology is written once and and only geometry is written with time dependency.
Therefore for reading, we have two separate functions
read_mesh
which reads the topology and geometry and constructs a mesh and thenupdate_mesh
which takes this mesh and updates the associated geometry at a later time.TODO: