Skip to content

Commit a19895f

Browse files
committed
create a localization target
We create a library that performs localization tasks. At the moment, we only have one strategy, i.e., use a unform grid for localization. However, we anticipate adding additional backends for AroborX (#245), adjacency based, KD-Tree, etc. This library split helps to organize the code, move things out of pcms::core which initally had everything, and clarify dependencies.
1 parent 335c42f commit a19895f

19 files changed

Lines changed: 74 additions & 24 deletions

config.cmake.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ if(@PCMS_ENABLE_OMEGA_H@)
1717
endif()
1818

1919
include("${CMAKE_CURRENT_LIST_DIR}/pcms_utility-targets.cmake")
20+
include("${CMAKE_CURRENT_LIST_DIR}/pcms_localization-targets.cmake")
2021
include("${CMAKE_CURRENT_LIST_DIR}/pcms_core-targets.cmake")
2122
include("${CMAKE_CURRENT_LIST_DIR}/pcms_interpolator-targets.cmake")
2223

src/CMakeLists.txt

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
set(
33
PCMS_HEADERS
44
pcms.h
5-
pcms/bounding_box.h
65
pcms/coordinate.h
76
pcms/coordinate_systems.h
87
pcms/coordinate_transform.h
@@ -19,18 +18,17 @@ set(
1918
pcms/adapter/point_cloud/point_cloud.h
2019
pcms/adapter/omega_h/omega_h_field_layout.h
2120
pcms/adapter/omega_h/omega_h_field2.h
21+
pcms/adapter/xgc/xgc_field_adapter.h
2222
)
2323

2424
set(
2525
PCMS_SOURCES
2626
pcms.cpp
2727
pcms/create_field.cpp
28-
pcms/adapter/xgc/xgc_field_adapter.h
2928
pcms/adapter/point_cloud/point_cloud_layout.cpp
3029
pcms/adapter/point_cloud/point_cloud.cpp
3130
pcms/adapter/omega_h/omega_h_field_layout.cpp
3231
pcms/adapter/omega_h/omega_h_field2.cpp
33-
pcms/adapter/xgc/xgc_field_adapter.h
3432
)
3533

3634
configure_file(pcms/version.h.in pcms/version.h)
@@ -39,25 +37,24 @@ list(APPEND PCMS_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/pcms/version.h ${CMAKE_CURR
3937

4038
add_subdirectory(pcms/utility)
4139

40+
add_subdirectory(pcms/localization)
41+
4242

4343
if(PCMS_ENABLE_XGC)
4444
list(APPEND PCMS_SOURCES pcms/adapter/xgc/xgc_reverse_classification.cpp)
4545
list(APPEND PCMS_HEADERS pcms/adapter/xgc/xgc_reverse_classification.h)
4646
endif()
4747
if(PCMS_ENABLE_OMEGA_H)
48-
list(APPEND PCMS_SOURCES
49-
pcms/point_search.cpp
48+
list(APPEND PCMS_SOURCES
5049
pcms/adapter/uniform_grid/uniform_grid_field_layout.cpp
5150
pcms/adapter/uniform_grid/uniform_grid_field.cpp
5251
)
5352
list(
5453
APPEND
5554
PCMS_HEADERS
56-
pcms/adapter/omega_h/omega_h_field.h
5755
pcms/transfer_field.h
5856
pcms/transfer_field2.h
59-
pcms/uniform_grid.h
60-
pcms/point_search.h
57+
pcms/adapter/omega_h/omega_h_field.h
6158
pcms/adapter/uniform_grid/uniform_grid_field_layout.h
6259
pcms/adapter/uniform_grid/uniform_grid_field.h
6360
)
@@ -75,7 +72,7 @@ add_library(pcms::core ALIAS pcms_core)
7572
target_compile_features(pcms_core PUBLIC cxx_std_17)
7673
target_link_libraries(
7774
pcms_core PUBLIC meshfields::meshfields redev::redev
78-
MPI::MPI_CXX Kokkos::kokkos perfstubs pcms::utility
75+
MPI::MPI_CXX Kokkos::kokkos perfstubs pcms::utility pcms::localization
7976
)
8077
if(PCMS_ENABLE_OMEGA_H)
8178
target_link_libraries(pcms_core PUBLIC Omega_h::omega_h)

src/pcms/adapter/omega_h/omega_h_field.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#include <Omega_h_for.hpp>
1111
#include "pcms/utility/arrays.h"
1212
#include "pcms/utility/array_mask.h"
13-
#include "pcms/point_search.h"
13+
#include "pcms/localization/point_search.h"
1414
#include <redev_variant_tools.h>
1515
#include <type_traits>
1616
#include "pcms/transfer_field.h"

src/pcms/adapter/omega_h/omega_h_field2.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include "pcms/utility/types.h"
1010
#include "pcms/field.h"
1111
#include "pcms/coordinate_system.h"
12-
#include "pcms/point_search.h"
12+
#include "pcms/localization/point_search.h"
1313

1414
namespace pcms
1515
{

src/pcms/adapter/uniform_grid/uniform_grid_field.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "pcms/utility/types.h"
66
#include "pcms/field.h"
77
#include "pcms/coordinate_system.h"
8-
#include "pcms/uniform_grid.h"
8+
#include "pcms/utility/uniform_grid.h"
99
#include <memory>
1010

1111
namespace pcms

src/pcms/adapter/uniform_grid/uniform_grid_field_layout.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include "pcms/field_layout.h"
66
#include "pcms/coordinate_system.h"
77
#include "pcms/field.h"
8-
#include "pcms/uniform_grid.h"
8+
#include "pcms/utility/uniform_grid.h"
99

1010
#include <array>
1111

src/pcms/create_field.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
#include "adapter/omega_h/omega_h_field_layout.h"
44
#include "adapter/uniform_grid/uniform_grid_field.h"
55
#include "adapter/uniform_grid/uniform_grid_field_layout.h"
6-
#include "uniform_grid.h"
7-
#include "point_search.h"
6+
#include "utility/uniform_grid.h"
7+
#include "localization/point_search.h"
88

99
#include <Kokkos_Core.hpp>
1010
#include <utility>

src/pcms/create_field.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#include "field.h"
99
#include "coordinate_system.h"
1010
#include "utility/types.h"
11-
#include "uniform_grid.h"
11+
#include "utility/uniform_grid.h"
1212

1313
#include <Omega_h_mesh.hpp>
1414
#include <array>

src/pcms/interpolator/adj_search.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#ifndef ADJ_SEARCH_HPP
22
#define ADJ_SEARCH_HPP
33

4-
#include <pcms/point_search.h>
4+
#include <pcms/localization/point_search.h>
55
#include <pcms/utility/print.h>
66
#include "interpolation_helpers.h" // for helper functions
77

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
set(
2+
PCMS_LOCALIZATION_HEADERS
3+
point_search.h
4+
)
5+
6+
set(
7+
PCMS_LOCALIZATION_SOURCES
8+
point_search.cpp
9+
)
10+
add_library(pcms_localization ${PCMS_LOCALIZATION_SOURCES})
11+
add_library(pcms::localization ALIAS pcms_localization)
12+
target_include_directories(
13+
pcms_localization
14+
PUBLIC
15+
# include path should be pcms/localization/
16+
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>"
17+
# include path to search for pcms/config.h
18+
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../..>"
19+
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
20+
target_link_libraries(pcms_localization PUBLIC Kokkos::kokkos pcms::utility Omega_h::omega_h)
21+
target_compile_features(pcms_localization PUBLIC cxx_std_17)
22+
23+
set_target_properties(
24+
pcms_localization PROPERTIES OUTPUT_NAME pcmslocalization EXPORT_NAME
25+
localization
26+
)
27+
28+
if (PCMS_ENABLE_SPDLOG)
29+
target_link_libraries(pcms_localization PUBLIC spdlog::spdlog)
30+
endif ()
31+
32+
## export the library
33+
set_target_properties(pcms_localization PROPERTIES PUBLIC_HEADER "${PCMS_LOCALIZATION_HEADERS}")
34+
35+
install(
36+
TARGETS pcms_localization
37+
EXPORT pcms_localization-targets
38+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
39+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
40+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
41+
INCLUDES
42+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
43+
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/pcms/localization
44+
)
45+
46+
install(
47+
EXPORT pcms_localization-targets
48+
NAMESPACE pcms::
49+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pcms
50+
)

0 commit comments

Comments
 (0)