-
Notifications
You must be signed in to change notification settings - Fork 16
Mesh intersection routines #209
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
base: develop
Are you sure you want to change the base?
Changes from all commits
96012d6
1f7cc8c
3a14936
088e322
9e92528
219c35e
e3e7fc1
53b6498
3dea928
6b5c25e
2ef3545
bdf44eb
93a08d5
aabe402
a3330ef
7ab665b
7a7ea7b
7cce586
9984c7b
e67922e
a9a2c57
1da8be9
7c0fa98
e72a6aa
f90f795
cba1703
7bfe489
dd105ff
92dd379
e0cf357
ba5d9ab
f48c2f9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| file(GLOB_RECURSE MESH_INTERSECTION_HEADERS | ||
| "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp") | ||
|
|
||
| file(GLOB_RECURSE MESH_INTERSECTION_SOURCES | ||
| "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp") | ||
|
|
||
| add_library(pcms_mesh_intersection | ||
| ${MESH_INTERSECTION_HEADERS} | ||
| ${MESH_INTERSECTION_SOURCES} | ||
| ) | ||
|
|
||
| target_include_directories(pcms_mesh_intersection PUBLIC | ||
| $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> | ||
| $<INSTALL_INTERFACE:include/pcms/interpolator/mesh_intersection> | ||
| ) | ||
|
|
||
| target_link_libraries(pcms_mesh_intersection PUBLIC | ||
| pcms::core | ||
| Omega_h::omega_h | ||
| ) | ||
|
|
||
| if (PCMS_ENABLE_MESHFIELDS) | ||
| target_link_libraries(pcms_mesh_intersection PUBLIC meshfields::meshfields) | ||
| endif() | ||
|
|
||
| if (PCMS_ENABLE_PETSC) | ||
| target_include_directories(pcms_mesh_intersection PUBLIC ${PCMS_PETSC_INCLUDES}) | ||
| target_link_libraries(pcms_mesh_intersection PUBLIC ${PCMS_PETSC_LIBRARIES}) | ||
| endif() | ||
|
|
||
| target_compile_definitions(pcms_mesh_intersection PUBLIC R3D_USE_CUDA) | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there any behavior that depends specifically on the CUDA-only backend in Omega_h? If so, it may be removed in the future. |
||
|
|
||
| install(FILES ${MESH_INTERSECTION_HEADERS} | ||
| DESTINATION include/pcms/interpolator/mesh_intersection) | ||
|
|
||
| install(TARGETS pcms_mesh_intersection | ||
| EXPORT meshIntersectionTargets | ||
| INCLUDES DESTINATION include/pcms/interpolator/mesh_intersection | ||
| LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||
|
|
||
| install(EXPORT meshIntersectionTargets | ||
| FILE pcms_mesh_intersection-targets.cmake | ||
| NAMESPACE pcms:: | ||
| DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pcms) | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,129 @@ | ||||||
| /** | ||||||
| * @file calculate_load_vector.hpp | ||||||
| * @brief Routines for assembling global load vector in conservative field | ||||||
| * projection. | ||||||
| * | ||||||
| * Provides functionality to compute and assemble the global load vector | ||||||
| * used in Galerkin-based conservative field transfer between non-conforming | ||||||
| * meshes. | ||||||
| * | ||||||
| * @created by Abhiyan Paudel | ||||||
| * @date August 2025 | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would take out |
||||||
| */ | ||||||
|
|
||||||
| #ifndef PCMS_INTERPOLATOR_CALCULATE_LOAD_VECTOR_HPP | ||||||
| #define PCMS_INTERPOLATOR_CALCULATE_LOAD_VECTOR_HPP | ||||||
| #include <Omega_h_adapt.hpp> | ||||||
| #include <Omega_h_array_ops.hpp> | ||||||
| #include <Omega_h_atomics.hpp> //Omega_h::atomic_fetch_add | ||||||
| #include <Omega_h_build.hpp> | ||||||
| #include <Omega_h_class.hpp> | ||||||
| #include <Omega_h_compare.hpp> | ||||||
| #include <Omega_h_dbg.hpp> | ||||||
| #include <Omega_h_file.hpp> //Omega_h::binary | ||||||
| #include <Omega_h_for.hpp> | ||||||
| #include <Omega_h_recover.hpp> //project_by_fit | ||||||
| #include <Omega_h_shape.hpp> | ||||||
| #include <Omega_h_timer.hpp> | ||||||
| #include <iomanip> //precision | ||||||
| #include <iostream> | ||||||
| #include <petscvec_kokkos.hpp> | ||||||
| #include <sstream> //ostringstream | ||||||
|
|
||||||
| #include <pcms/interpolator/mesh_interscetion/load_vector_integrator.hpp> | ||||||
|
||||||
| #include <pcms/interpolator/mesh_interscetion/load_vector_integrator.hpp> | |
| #include <pcms/interpolator/mesh_intersection/load_vector_integrator.hpp> |
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.
Correct me if I'm wrong, but from the CMakeLists it looks like the mesh_intersection source and headers will always be compiled, but the petsc library can be disabled. I'm wondering do these headers still exist if we disable the petsc library?
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.
Corrected spacing: 'Couldnot' should be 'Could not'.