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

create a class for mixed mesh support #82

Merged
merged 35 commits into from
Feb 15, 2024
Merged

create a class for mixed mesh support #82

merged 35 commits into from
Feb 15, 2024

Conversation

cwsmith
Copy link

@cwsmith cwsmith commented Jan 25, 2024

This PR moves the support for mixed topology meshes (e.g.; a single mesh with tets + wedges) into a MixedMesh class. This will make merging changes from the sandialabs fork easier and will support upcoming work to add a 2d non-manifold model capability for simplex meshes (mono-topology).

The most significant changes, that aren't just conditionals or moving code to new files, are in Omega_h_meshsim.cpp and how we create mixed or mono-topology meshes from simmetrix meshes. I refactored this code to create functions and structs that can are used in both mixed and mono-topology creation and use less memory.

All tests are passing with MPI and Simmetrix SimModSuite enabled, and the Kokkos CUDA and Serial backends. Valgrind reports no errors or leaks in the tests (Kokkos Serial backend). Version details are below.

Note, the periodic_test was failing in master (#81) and the ctest was removed.

OS: RHEL9, checkers
GCC: 12.3.0
CUDA: 12.1.1
SimModSuite: 2023.1-230907dev

deleted trailing whitespace
lots of stuff commented out
building with simmetrix and mpi enabled,
ctest is failing the following tests:
- diff_tri_convert
- diff_tri_convert_numbering
- run_mixed_test
- periodic_test
- The diff was failing with this branch and master @ c5f1dc9.
- The mesh toplogy and coordinates are the same for both meshes,
  but the local and global ids for vertices (didn't check other ents)
  created by omegah differs. I'm not sure why it doesn't match or if
  it matters to downstream applications.
- For d3d-coreMesh-numbered-gold.osh, the numbering coming from
  simmetrix matches the prior 'gold' mesh.
fixed copy-paste error for pyramids
@cwsmith
Copy link
Author

cwsmith commented Feb 1, 2024

notes from offline discussion with @jacobmerson:

  • mark periodic test as skipped instead of removing it? tagged Aditya on the issue
  • add_tag (and friends) that take a TopoType are not compatible with the base Mesh classes equivalent function
  • try removing the inheritance - very little appears to be shared between Mesh and MixedMesh

Switching this back to draft while the above changes are made.

@cwsmith cwsmith marked this pull request as draft February 1, 2024 20:57
there is very little shared data between Mesh and MixedMesh as they have different storage and apis for tags and adjacency information
@cwsmith cwsmith changed the title create a drived class for mixed mesh support create a class for mixed mesh support Feb 2, 2024
@cwsmith cwsmith marked this pull request as ready for review February 2, 2024 20:24
@cwsmith
Copy link
Author

cwsmith commented Feb 2, 2024

In 2fd19f3 The MixedMesh class was modified to be independent of the Mesh class as discussed in #82 (comment). The PR description was modified accordingly.

the files are written without error, but paraview complains about incomplete class_id data
@cwsmith cwsmith merged commit 86243ef into master Feb 15, 2024
8 checks passed
@cwsmith cwsmith deleted the cws/meshRefactor branch February 15, 2024 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants