Mixed mesh
This work is towards handling mixed meshes in Omega_h. The capabilities implemented are:
- Reading a mixed mesh from a simmetrix format to Omega_h in serial
- Derivation, storage and query of all possible first order adjacency information
- Writing a mixed mesh from Omega_h to a vtu file in serial
- Add, query and remove 'tags'
Some APIs focusing on writing 'tags' to vtu file, and transferring classification information from input mesh to Omega_h are included as work in progress.
/cc @ibaned Please let me know any comments or suggestions.
This is a lot of work! Do we expect every existing Omega_h use case to still work with these changes? If so I'm going to go ahead and verify that our simulation code still runs.
Just found the first issue: in general, we try not to require Kokkos in Omega_h (in the past Kokkos didn't build on Windows and Omega_h needed to). This line in Omega_h_vtk.cpp:
Kokkos::deep_copy(lastVal,Kokkos::subview(ends_t.view(),ends_t.size()-1));
Should be replaceable with this line:
lastVal = ends_t.last();
Assuming that lastVal is an output and not an input...
Could you please:
- Remove explicit use of Kokkos
- resolve the conflict GitHub is pointing out in
Omega_h_adj.cpp
Thank you for the comments. The Kokkos explicit use issue, the conflicts in 'Omega_h_adj.cpp' have been resolved, and all the existing Omega_h use cases are expected to work with these changes.
Thank you! The library compiles now, but the mixed_mesh test doesn't compile. Could you make sure that the mixed_mesh test is not compiled if Omega_h_USE_SimModSuite=OFF?
Done. Thank you!