Skip to content

Commit 9caaccc

Browse files
committed
adding simple_mapper example to libtokamap
1 parent 2905f81 commit 9caaccc

31 files changed

+847
-177
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ cmake_minimum_required( VERSION 3.15 )
33
# Project details
44
project(
55
JSONMappingPlugin
6-
VERSION 0.2.0
6+
VERSION 0.2.0.0
77
LANGUAGES CXX
88
)
99

libtokamap/CMakeLists.txt

Lines changed: 63 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
find_package( Boost REQUIRED )
99

1010
# Specify C++ standard for all targets
11-
#set( CMAKE_CXX_STANDARD 17 )
12-
#set( CMAKE_CXX_STANDARD_REQUIRED ON )
13-
#set( CMAKE_CXX_EXTENSIONS OFF )
11+
set( CMAKE_CXX_STANDARD 20 )
12+
set( CMAKE_CXX_STANDARD_REQUIRED ON )
13+
set( CMAKE_CXX_EXTENSIONS OFF )
1414

1515
# Group source files by functionality for better organization
1616
set( UTIL_SOURCES
@@ -66,23 +66,77 @@ set( HEADERS
6666
${HANDLER_HEADERS}
6767
)
6868

69-
add_library( tokamap ${SOURCES} )
70-
target_link_libraries( tokamap PRIVATE Boost::boost )
71-
target_include_directories( tokamap PRIVATE
72-
${CMAKE_CURRENT_SOURCE_DIR}/src
73-
${CMAKE_CURRENT_SOURCE_DIR}/ext_include
69+
configure_file(
70+
${CMAKE_CURRENT_LIST_DIR}/include/version.hpp.in
71+
${CMAKE_CURRENT_BINARY_DIR}/include/version.hpp
72+
@ONLY
7473
)
75-
target_compile_options( tokamap PRIVATE
74+
75+
add_library( libtokamap ${SOURCES} )
76+
target_link_libraries( libtokamap PUBLIC Boost::boost )
77+
target_include_directories( libtokamap
78+
PRIVATE
79+
${CMAKE_CURRENT_SOURCE_DIR}/src
80+
${CMAKE_CURRENT_SOURCE_DIR}/ext_include
81+
INTERFACE
82+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
83+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
84+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
85+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/ext_include>
86+
$<INSTALL_INTERFACE:include/libtokamap>
87+
)
88+
target_compile_options( libtokamap PRIVATE
7689
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>:-Wall -Werror -Wpedantic>
7790
$<$<CXX_COMPILER_ID:GNU>:-Wall -Werror -Wpedantic>
7891
)
92+
set( PUBLIC_HEADERS
93+
${CMAKE_CURRENT_SOURCE_DIR}/include/libtokamap.hpp
94+
${CMAKE_CURRENT_BINARY_DIR}/include/version.hpp
95+
)
96+
set_target_properties( libtokamap PROPERTIES
97+
OUTPUT_NAME tokamap
98+
PUBLIC_HEADER "${PUBLIC_HEADERS}"
99+
)
100+
101+
add_library( LibTokaMap::libtokamap ALIAS libtokamap )
102+
103+
install( TARGETS libtokamap
104+
EXPORT tokamapTargets
105+
DESTINATION lib
106+
INCLUDES DESTINATION include
107+
PUBLIC_HEADER DESTINATION include
108+
)
109+
110+
install( EXPORT tokamapTargets
111+
FILE LibTokaMapTargets.cmake
112+
NAMESPACE LibTokaMap::
113+
DESTINATION lib/cmake/libtokamap
114+
)
115+
116+
include( CMakePackageConfigHelpers )
117+
118+
configure_package_config_file(
119+
cmake/LibTokaMapConfig.cmake.in
120+
${CMAKE_CURRENT_BINARY_DIR}/LibTokaMapConfig.cmake
121+
INSTALL_DESTINATION lib/cmake/libtokamap
122+
)
123+
124+
install( FILES
125+
${CMAKE_CURRENT_BINARY_DIR}/LibTokaMapConfig.cmake
126+
DESTINATION lib/cmake/libtokamap
127+
)
79128

80129
# Unit testing setup
81130
if( ENABLE_TESTING )
82131
add_subdirectory( test )
83132
endif()
84133

134+
if( ENABLE_EXAMPLES )
135+
add_subdirectory( examples/simple_mapper )
136+
endif()
137+
85138
list( TRANSFORM SOURCES PREPEND ${CMAKE_CURRENT_LIST_DIR}/ )
86139
list( TRANSFORM HEADERS PREPEND ${CMAKE_CURRENT_LIST_DIR}/ )
87140

88141
set_property( TARGET clang-format APPEND PROPERTY SOURCES ${SOURCES} ${HEADERS} )
142+
set_property( TARGET clang-format APPEND PROPERTY SOURCES ${SOURCES} ${HEADERS} )

libtokamap/TODO.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
- [ ] Make mapping values case insensitive
2+
- [ ] Remove references to IDSs
3+
- [ ] Replace reinterpret_cast with bit_cast
4+
- [ ] Replace boost::split with std::views::split
5+
- [ ] Switch from using std::type_index to DataType enum?
6+
- [ ] Add exception types
7+
- [ ] Add README and docs for library
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@PACKAGE_INIT@
2+
3+
include("${CMAKE_CURRENT_LIST_DIR}/LibTokaMapTargets.cmake")
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
cmake_minimum_required( VERSION 3.15 )
2+
3+
project( simple_mapper )
4+
5+
set( SOURCES
6+
src/json_data_source.cpp
7+
src/simple_mapper.cpp
8+
)
9+
10+
add_executable( simple_mapper ${SOURCES} )
11+
target_link_libraries( simple_mapper PRIVATE LibTokaMap::libtokamap )
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
{
2+
"coils": [
3+
{
4+
"name": "coil1",
5+
"position": [
6+
[0.0, 1.0471975511965976],
7+
[1.0, 1.0471975511965976]
8+
],
9+
"flux": {
10+
"time": [
11+
0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11,
12+
0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23,
13+
0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35,
14+
0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47,
15+
0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59,
16+
0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71,
17+
0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83,
18+
0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95,
19+
0.96, 0.97, 0.98, 0.99
20+
],
21+
"data": [
22+
0.0, 0.00999983, 0.01999867, 0.0299955, 0.03998933, 0.04997917,
23+
0.05996401, 0.06994285, 0.07991469, 0.08987855, 0.09983342, 0.1097783,
24+
0.11971221, 0.12963414, 0.13954311, 0.14943813, 0.15931821,
25+
0.16918235, 0.17902957, 0.18885889, 0.19866933, 0.2084599, 0.21822962,
26+
0.22797752, 0.23770263, 0.24740396, 0.25708055, 0.26673144,
27+
0.27635565, 0.28595223, 0.29552021, 0.30505864, 0.31456656,
28+
0.32404303, 0.33348709, 0.34289781, 0.35227423, 0.36161543,
29+
0.37092047, 0.38018842, 0.38941834, 0.39860933, 0.40776045, 0.4168708,
30+
0.42593947, 0.43496553, 0.44394811, 0.45288629, 0.46177918,
31+
0.47062589, 0.47942554, 0.48817725, 0.49688014, 0.50553334,
32+
0.51413599, 0.52268723, 0.5311862, 0.53963205, 0.54802394, 0.55636102,
33+
0.56464247, 0.57286746, 0.58103516, 0.58914476, 0.59719544,
34+
0.60518641, 0.61311685, 0.62098599, 0.62879302, 0.63653718,
35+
0.64421769, 0.65183377, 0.65938467, 0.66686964, 0.67428791,
36+
0.68163876, 0.68892145, 0.69613524, 0.70327942, 0.71035327,
37+
0.71735609, 0.72428717, 0.73114583, 0.73793137, 0.74464312,
38+
0.75128041, 0.75784256, 0.76432894, 0.77073888, 0.77707175,
39+
0.78332691, 0.78950374, 0.79560162, 0.80161994, 0.8075581, 0.8134155,
40+
0.81919157, 0.82488571, 0.83049737, 0.83602598
41+
]
42+
}
43+
},
44+
{
45+
"name": "coil2",
46+
"position": [
47+
[0.0, 2.0943951023931953],
48+
[1.0, 2.0943951023931953]
49+
],
50+
"flux": {
51+
"time": [
52+
0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11,
53+
0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23,
54+
0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35,
55+
0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47,
56+
0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59,
57+
0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71,
58+
0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83,
59+
0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95,
60+
0.96, 0.97, 0.98, 0.99
61+
],
62+
"data": [
63+
1.0, 0.99995, 0.99980001, 0.99955003, 0.99920011, 0.99875026,
64+
0.99820054, 0.997551, 0.99680171, 0.99595273, 0.99500417, 0.9939561,
65+
0.99280864, 0.99156189, 0.990216, 0.98877108, 0.98722728, 0.98558477,
66+
0.98384369, 0.98200424, 0.98006658, 0.97803091, 0.97589745, 0.9736664,
67+
0.97133797, 0.96891242, 0.96638998, 0.9637709, 0.96105544, 0.95824388,
68+
0.95533649, 0.95233357, 0.94923542, 0.94604234, 0.94275467,
69+
0.93937271, 0.93589682, 0.93232735, 0.92866464, 0.92490906,
70+
0.92106099, 0.91712082, 0.91308894, 0.90896575, 0.90475166, 0.9004471,
71+
0.8960525, 0.89156829, 0.88699492, 0.88233286, 0.87758256, 0.87274451,
72+
0.86781918, 0.86280707, 0.85770868, 0.85252452, 0.84725511,
73+
0.84190098, 0.83646265, 0.83094068, 0.82533561, 0.81964802,
74+
0.81387846, 0.80802751, 0.80209576, 0.7960838, 0.78999223, 0.78382167,
75+
0.77757272, 0.77124601, 0.76484219, 0.75836188, 0.75180573, 0.7451744,
76+
0.73846856, 0.73168887, 0.72483601, 0.71791067, 0.71091354,
77+
0.70384532, 0.69670671, 0.68949843, 0.68222121, 0.67487576,
78+
0.66746283, 0.65998315, 0.65243747, 0.64482655, 0.63715114,
79+
0.62941203, 0.62160997, 0.61374575, 0.60582016, 0.59783398,
80+
0.58978803, 0.58168309, 0.57351999, 0.56529953, 0.55702255, 0.54868986
81+
]
82+
}
83+
},
84+
{
85+
"name": "coil3",
86+
"position": [
87+
[0.0, 3.141592653589793],
88+
[1.0, 3.141592653589793]
89+
],
90+
"flux": {
91+
"time": [
92+
0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11,
93+
0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23,
94+
0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3, 0.31, 0.32, 0.33, 0.34, 0.35,
95+
0.36, 0.37, 0.38, 0.39, 0.4, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47,
96+
0.48, 0.49, 0.5, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59,
97+
0.6, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.7, 0.71,
98+
0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.8, 0.81, 0.82, 0.83,
99+
0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.9, 0.91, 0.92, 0.93, 0.94, 0.95,
100+
0.96, 0.97, 0.98, 0.99
101+
],
102+
"data": [
103+
0.0, 0.01000033, 0.02000267, 0.030009, 0.04002135, 0.05004171,
104+
0.0600721, 0.07011456, 0.0801711, 0.09024379, 0.10033467, 0.11044582,
105+
0.12057934, 0.13073732, 0.14092189, 0.15113522, 0.16137946,
106+
0.17165682, 0.18196953, 0.19231984, 0.20271004, 0.21314244,
107+
0.22361942, 0.23414336, 0.2447167, 0.25534192, 0.26602154, 0.27675814,
108+
0.28755433, 0.29841279, 0.30933625, 0.32032751, 0.33138941,
109+
0.34252487, 0.35373688, 0.36502849, 0.37640285, 0.38786316,
110+
0.39941272, 0.41105492, 0.42279322, 0.4346312, 0.44657255, 0.45862102,
111+
0.47078053, 0.48305507, 0.49544877, 0.5079659, 0.52061084, 0.53338815,
112+
0.54630249, 0.55935872, 0.57256183, 0.58591701, 0.59942962,
113+
0.61310521, 0.62694954, 0.64096855, 0.65516845, 0.66955565,
114+
0.68413681, 0.69891886, 0.71390901, 0.72911473, 0.74454382, 0.7602044,
115+
0.77610491, 0.79225417, 0.80866138, 0.82533611, 0.84228838,
116+
0.85952867, 0.8770679, 0.89491753, 0.91308953, 0.93159646, 0.95045146,
117+
0.96966833, 0.98926154, 1.00924629, 1.02963856, 1.05045514,
118+
1.07171372, 1.09343292, 1.11563235, 1.13833271, 1.16155586,
119+
1.18532486, 1.20966412, 1.23459946, 1.26015822, 1.28636938, 1.3132637,
120+
1.34087383, 1.36923448, 1.39838259, 1.42835749, 1.45920113,
121+
1.49095827, 1.52367674
122+
]
123+
}
124+
}
125+
]
126+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"DATA_SOURCE_CONFIG": {
3+
"JSON": {
4+
"ARGS": {
5+
"file_name": "data_{{ shot }}.json"
6+
}
7+
}
8+
}
9+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"version": "1.0.0",
3+
"coil": {
4+
"MAP_TYPE": "DIMENSION",
5+
"DIM_PROBE": "_coils"
6+
},
7+
"_coils": {
8+
"MAP_TYPE": "DATA_SOURCE",
9+
"DATA_SOURCE": "JSON",
10+
"ARGS": {
11+
"signal": "coils"
12+
}
13+
},
14+
"coil[#]/name": {
15+
"MAP_TYPE": "DATA_SOURCE",
16+
"DATA_SOURCE": "JSON",
17+
"ARGS": {
18+
"signal": "coils/{{ #0 }}/name"
19+
}
20+
},
21+
"coil[#]/position": {
22+
"MAP_TYPE": "DIMENSION",
23+
"DIM_PROBE": "_coil[#]/position"
24+
},
25+
"_coil[#]/position": {
26+
"MAP_TYPE": "DATA_SOURCE",
27+
"DATA_SOURCE": "JSON",
28+
"ARGS": {
29+
"signal": "coils/{{ #0 }}/position"
30+
}
31+
},
32+
"coil[#]/position[#]/r": {
33+
"MAP_TYPE": "DATA_SOURCE",
34+
"DATA_SOURCE": "JSON",
35+
"ARGS": {
36+
"signal": "coils/{{ #0 }}/position/{{ #1 }}/0"
37+
}
38+
},
39+
"coil[#]/position[#]/z": {
40+
"MAP_TYPE": "DATA_SOURCE",
41+
"DATA_SOURCE": "JSON",
42+
"ARGS": {
43+
"signal": "coils/{{ #0 }}/position/{{ #1 }}/1"
44+
}
45+
},
46+
"coil[#]/flux/time": {
47+
"MAP_TYPE": "DATA_SOURCE",
48+
"DATA_SOURCE": "JSON",
49+
"ARGS": {
50+
"signal": "coils/{{ #0 }}/flux/time"
51+
}
52+
},
53+
"coil[#]/flux/data": {
54+
"MAP_TYPE": "DATA_SOURCE",
55+
"DATA_SOURCE": "JSON",
56+
"ARGS": {
57+
"signal": "coils/{{ #0 }}/flux/data"
58+
}
59+
}
60+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"3.39.0": ["magnetics"]
3+
}

0 commit comments

Comments
 (0)