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

Feature/higher order mesh particle interface #265

Open
wants to merge 71 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
6df80c3
extended the geometry transport to cover curved edge and faces case
will-saunders-ukaea Nov 7, 2023
6ad1a54
reimplementation of Bary interpolation in 2D and 3D plus 2D and 3D tests
will-saunders-ukaea Nov 20, 2023
6cd1f3d
simplified Bary interpolation evaluation loops to allow the compiler …
will-saunders-ukaea Nov 20, 2023
378c6da
stray comment
will-saunders-ukaea Nov 20, 2023
b09df36
Bary interpolation of forward X maps passing initial tests
will-saunders-ukaea Nov 21, 2023
89bf4d4
interlaced bary evaluation for simultanious evaluation of multiple fu…
will-saunders-ukaea Nov 21, 2023
9bfcf45
bary interpolation X inverse giving sensible values for initial imple…
will-saunders-ukaea Nov 21, 2023
3b2354a
coordinate mapping for nektar curved elements refactor
will-saunders-ukaea Nov 22, 2023
a8542d2
higher order x map test refactoring
will-saunders-ukaea Jan 8, 2024
6955e26
attempted merge in of main
will-saunders-ukaea Oct 14, 2024
ca14108
updated some of the Newton interfaces which need updating for local m…
will-saunders-ukaea Oct 21, 2024
5b1031a
progress updating curved mesh branch to work after mergin in main
will-saunders-ukaea Oct 22, 2024
3c11b24
fixed merge conflixt
will-saunders-ukaea Oct 22, 2024
2e84e59
branch compiles again after merging in main
will-saunders-ukaea Oct 23, 2024
85548b6
updated NP submodule
will-saunders-ukaea Oct 23, 2024
0278678
added reference grid to the X map inverse host helper class
will-saunders-ukaea Oct 23, 2024
04c28dc
updated curved X map inverse test to only pass if the inverse finds t…
will-saunders-ukaea Oct 23, 2024
7ccf426
added more explicit test for 3D coordinate mapping functions
will-saunders-ukaea Oct 29, 2024
9bac47b
added explicit test for 2D coordinate mapping
will-saunders-ukaea Oct 29, 2024
c41f27b
NESO tests now expose incorrect Tet coordinate mapping
will-saunders-ukaea Oct 29, 2024
923f107
updated Tetrahedron collapsed to local coordinate mapping
will-saunders-ukaea Oct 29, 2024
1fa7488
updated some function names to name a correct namespace
will-saunders-ukaea Oct 29, 2024
39999da
cleanup of test for curved cell binning
will-saunders-ukaea Oct 29, 2024
09df508
cleanup of newton iterations, XMapNewton test passing with curved cells
will-saunders-ukaea Oct 29, 2024
6dcc679
removed redundant code from test
will-saunders-ukaea Oct 29, 2024
89829a0
local memory bug fixes and deprecation warnings
will-saunders-ukaea Oct 30, 2024
b571bf2
loosened regular mapper default tolerance
will-saunders-ukaea Oct 31, 2024
edbad59
cleanup some TODOs
will-saunders-ukaea Oct 31, 2024
b2e4f03
moved exising bary interpolation to better particle looping method
will-saunders-ukaea Nov 1, 2024
9feb336
added a stride to the local memory part of bary interpolation
will-saunders-ukaea Nov 1, 2024
88cf46c
added stride to function bary evaluation
will-saunders-ukaea Nov 1, 2024
c5b0857
reimplemented Bary evaluation to be extendable to 3D/variable p more …
will-saunders-ukaea Nov 1, 2024
07b5439
added profiling information to bary evaluate in 2D
will-saunders-ukaea Nov 1, 2024
f172875
added low level bary evaluation implementations for runtime numbers o…
will-saunders-ukaea Nov 7, 2024
f8a3a75
initial implementation of bary evaluation for a generic number of fun…
will-saunders-ukaea Nov 7, 2024
a14a6d8
multiple function Bary evaluation passes existing derivative test
will-saunders-ukaea Nov 7, 2024
c6c95b4
fixed bad test (calling wrong function) and replaced bad nektar call …
will-saunders-ukaea Nov 7, 2024
cd5cf72
Derivatives in 3D passing evaluation tests
will-saunders-ukaea Nov 8, 2024
7ac6703
updated NP submodule commit
will-saunders-ukaea Nov 11, 2024
70a25fa
added 3D test mesh of order 2
will-saunders-ukaea Nov 11, 2024
109ccbb
added curved 3d particle mapper and integration test
will-saunders-ukaea Nov 12, 2024
3588903
added initial implementation of sycl bounding box estimator
will-saunders-ukaea Nov 13, 2024
6836d0f
added utility function to create curved HexGeoms on the fly for testing
will-saunders-ukaea Nov 15, 2024
1bee74c
moved hex creation function into neso library
will-saunders-ukaea Nov 15, 2024
f2821d0
blocked Bary cpu evaluation progress
will-saunders-ukaea Nov 19, 2024
77f07c3
fixed indexing bugs in blocked bary cpu evaluation
will-saunders-ukaea Nov 20, 2024
a794dd8
moved 3D bary eval CPU variant to all cells loop construct
will-saunders-ukaea Nov 20, 2024
9099088
updated flop estimation
will-saunders-ukaea Nov 20, 2024
a2decff
added missing number of bins argument to get_all_cells
will-saunders-ukaea Nov 21, 2024
6dae47e
removed always gpu for intel backends as it is not benefitial
will-saunders-ukaea Nov 21, 2024
736a218
merged in main and formatting
will-saunders-ukaea Dec 9, 2024
f80caeb
MeshGraph::Read -> MeshGraphIO::Read
will-saunders-ukaea Dec 9, 2024
47c69d7
added bounding box wrapper function for xmap variant
will-saunders-ukaea Dec 9, 2024
9c54c97
fixed local memory type issue
will-saunders-ukaea Dec 9, 2024
f65918a
added linear tests for bounding box computation
will-saunders-ukaea Dec 10, 2024
bdd4f91
added a set of quadratic xmaps for bounding box computation tests
will-saunders-ukaea Dec 10, 2024
8a9e808
made utility bounding box function accept 2D geoms such that it can b…
will-saunders-ukaea Dec 10, 2024
b0e52c2
reordered head files to make slightly more sense
will-saunders-ukaea Dec 10, 2024
a7c725d
helper interfaces for BoundingBox::get_bounding_box
will-saunders-ukaea Dec 16, 2024
87d9c60
removed some dead code marked as to-remove
will-saunders-ukaea Dec 16, 2024
d6d62aa
populated some API docstrings which were TODOs
will-saunders-ukaea Dec 16, 2024
fd18d3a
Added more robust self checking for new Bary interpolation.
will-saunders-ukaea Dec 17, 2024
d72602a
removed bad test mesh and added an initial torus mesh in its place
will-saunders-ukaea Dec 17, 2024
f8fc3cb
use generic 3D mapper for non-regular mesh in integration test
will-saunders-ukaea Dec 17, 2024
4d652a0
made Generic3D mapper robust to unaligned memory
will-saunders-ukaea Dec 17, 2024
134d31b
made mallocs for newton interfaces robust by using aligned mallocs
will-saunders-ukaea Dec 18, 2024
6d8110e
merged in main
will-saunders-ukaea Dec 18, 2024
a873d72
fixed uninitialised memory usage in Generic3D geometry mapper
will-saunders-ukaea Dec 18, 2024
3d40aaa
added integration test for particle advection on second order mesh
will-saunders-ukaea Jan 6, 2025
fe4052f
updated NP submodule
will-saunders-ukaea Jan 7, 2025
9c15f5d
updated NP submodule commit
will-saunders-ukaea Jan 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})

option(ENABLE_NESO_TESTS
"Build unit tests for this project and register with ctest" ON)
option(ENABLE_NESO_PROFILING "Enable built in profiling" OFF)

# Various sanitizers, including coverage and address sanitizer
include(cmake/Sanitizers.cmake)
Expand Down Expand Up @@ -91,6 +92,8 @@ elseif(BUILD_TYPE STREQUAL "RELEASE")
set(BUILD_TYPE_LINK_FLAGS "")
set(TEST_LIBRARIES "")
endif()
message(STATUS BUILD_TYPE_COMPILE_FLAGS: ${BUILD_TYPE_COMPILE_FLAGS})
message(STATUS BUILD_TYPE_LINK_FLAGS: ${BUILD_TYPE_LINK_FLAGS})

# ##############################################################################
# Set up targets
Expand Down Expand Up @@ -118,6 +121,7 @@ set(LIB_SRC_FILES
${SRC_DIR}/nektar_interface/particle_cell_mapping/map_particles_common.cpp
${SRC_DIR}/nektar_interface/particle_cell_mapping/map_particles_host.cpp
${SRC_DIR}/nektar_interface/particle_cell_mapping/nektar_graph_local_mapper.cpp
${SRC_DIR}/nektar_interface/particle_cell_mapping/x_map_bounding_box.cpp
${SRC_DIR}/nektar_interface/utilities.cpp
${SRC_DIR}/nektar_interface/solver_base/partsys_base.cpp)

Expand All @@ -129,6 +133,7 @@ set(HEADER_FILES
${INC_DIR}/io/generic_hdf5_writer.hpp
${INC_DIR}/nektar_interface/basis_evaluation.hpp
${INC_DIR}/nektar_interface/basis_reference.hpp
${INC_DIR}/nektar_interface/bary_interpolation/bary_evaluation.hpp
${INC_DIR}/nektar_interface/bounding_box_intersection.hpp
${INC_DIR}/nektar_interface/cell_id_translation.hpp
${INC_DIR}/nektar_interface/coordinate_mapping.hpp
Expand Down Expand Up @@ -164,6 +169,7 @@ set(HEADER_FILES
${INC_DIR}/nektar_interface/geometry_transport/geometry_transport_2d.hpp
${INC_DIR}/nektar_interface/geometry_transport/geometry_transport_3d.hpp
${INC_DIR}/nektar_interface/geometry_transport/geometry_types_3d.hpp
${INC_DIR}/nektar_interface/geometry_transport/utility_geometry.hpp
${INC_DIR}/nektar_interface/geometry_transport/halo_extension.hpp
${INC_DIR}/nektar_interface/geometry_transport/packed_geom_2d.hpp
${INC_DIR}/nektar_interface/geometry_transport/packed_geoms_2d.hpp
Expand Down Expand Up @@ -193,6 +199,7 @@ set(HEADER_FILES
${INC_DIR}/nektar_interface/particle_cell_mapping/mapping_newton_iteration_base.hpp
${INC_DIR}/nektar_interface/particle_cell_mapping/nektar_graph_local_mapper.hpp
${INC_DIR}/nektar_interface/particle_cell_mapping/newton_geom_interfaces.hpp
${INC_DIR}/nektar_interface/particle_cell_mapping/newton_generic_3d.hpp
${INC_DIR}/nektar_interface/particle_cell_mapping/newton_hex.hpp
${INC_DIR}/nektar_interface/particle_cell_mapping/newton_prism.hpp
${INC_DIR}/nektar_interface/particle_cell_mapping/newton_pyr.hpp
Expand All @@ -205,6 +212,7 @@ set(HEADER_FILES
${INC_DIR}/nektar_interface/particle_cell_mapping/particle_cell_mapping_3d.hpp
${INC_DIR}/nektar_interface/particle_cell_mapping/particle_cell_mapping_common.hpp
${INC_DIR}/nektar_interface/particle_cell_mapping/particle_cell_mapping_newton.hpp
${INC_DIR}/nektar_interface/particle_cell_mapping/x_map_bounding_box.hpp
${INC_DIR}/nektar_interface/particle_cell_mapping/x_map_newton.hpp
${INC_DIR}/nektar_interface/particle_cell_mapping/x_map_newton_kernel.hpp
${INC_DIR}/nektar_interface/particle_interface.hpp
Expand All @@ -213,6 +221,7 @@ set(HEADER_FILES
${INC_DIR}/nektar_interface/solver_base/time_evolved_eqnsys_base.hpp
${INC_DIR}/nektar_interface/typedefs.hpp
${INC_DIR}/nektar_interface/utilities.hpp
${INC_DIR}/nektar_interface/utility_mesh.hpp
${INC_DIR}/nektar_interface/utility_mesh_cartesian.hpp
${INC_DIR}/nektar_interface/utility_mesh_plotting.hpp
${INC_DIR}/nektar_interface/utility_sycl.hpp
Expand All @@ -239,6 +248,10 @@ target_link_libraries(
${NESO_LIBRARY_NAME}
PUBLIC Nektar++::nektar++ NESO-Particles::NESO-Particles
PRIVATE ${TEST_LIBRARIES})
if(ENABLE_NESO_PROFILING)
target_compile_definitions(${NESO_LIBRARY_NAME}
PUBLIC NESO_PARTICLES_PROFILING_REGION)
endif()
add_sycl_to_target(TARGET ${NESO_LIBRARY_NAME} SOURCES ${LIB_SRC_FILES})

# find MPI
Expand Down
Loading