-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
188 lines (155 loc) · 8.08 KB
/
CMakeLists.txt
File metadata and controls
188 lines (155 loc) · 8.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# This is the top level CMake file for the SCOREC build
cmake_minimum_required(VERSION 3.10)
project(simLandIceMeshGen VERSION 0.0.1 LANGUAGES CXX C)
enable_testing()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
option(USE_SIMMODSUITE "Enable SimModSuite support" ON)
if(USE_SIMMODSUITE)
find_package(SimModSuite MODULE REQUIRED)
message(STATUS "Building with SimModSuite support")
else()
message(STATUS "Building without SimModSuite support")
endif()
find_package(BLAS REQUIRED)
find_package(Omega_h REQUIRED)
if(USE_SIMMODSUITE)
find_package(netCDF CONFIG REQUIRED)
endif()
add_library(splineInterp splineInterpolation.cc BSpline.cc BSpline2d.cc Expression.cc PolyNomial.cc)
target_link_libraries(splineInterp PRIVATE BLAS::BLAS Omega_h::omega_h)
add_library(modelGen2d modelGen2d.cc geomReaders.cc)
target_include_directories(modelGen2d PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(modelGen2d PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Quadtree/include)
target_link_libraries(modelGen2d PRIVATE splineInterp Omega_h::omega_h)
set(testDataDir ${CMAKE_CURRENT_SOURCE_DIR}/contour_test_data)
if(USE_SIMMODSUITE)
add_library(simModelGen2d simModelGen2d.cc netcdfWriter.cc)
target_include_directories(simModelGen2d PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(simModelGen2d PUBLIC ${SIMMODSUITE_INCLUDE_DIR})
target_link_libraries(simModelGen2d PRIVATE ${SIMMODSUITE_LIBS})
target_link_libraries(simModelGen2d PRIVATE splineInterp modelGen2d)
target_link_libraries(simModelGen2d PRIVATE netCDF::netcdf)
target_compile_definitions(simModelGen2d PRIVATE USE_SIMMODSUITE)
function(addExe name)
add_executable(${name} ${name}.cc)
target_link_libraries(${name} PRIVATE simModelGen2d Omega_h::omega_h)
endfunction()
addExe(generate2dModel)
addExe(generate2dModelFromMesh)
add_test(NAME simModelGen2dFromMesh_thwaites
COMMAND ./generate2dModelFromMesh ${testDataDir}/thwaites_basal_effectiveStrain.osh thwaites 1 100 100 "km")
set_tests_properties(simModelGen2dFromMesh_thwaites PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 26")
add_test(NAME simModelGen2d_gis
COMMAND ./generate2dModel ${testDataDir}/gis.msh gis 1 100 100 1 "m")
set_tests_properties(simModelGen2d_gis PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 925")
set_tests_properties(simModelGen2d_gis PROPERTIES
PASS_REGULAR_EXPRESSION "mesh faces in surface: 68495")
add_test(NAME simModelGen2d_ais
COMMAND ./generate2dModel ${testDataDir}/ais.vtk ais 1 100 100 1 "m")
set_tests_properties(simModelGen2d_ais PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 571")
set_tests_properties(simModelGen2d_ais PROPERTIES
PASS_REGULAR_EXPRESSION "mesh faces in surface: 60870")
add_test(NAME simModelGen2d_oneSquare_jig
COMMAND ./generate2dModel ${testDataDir}/oneSquare.msh one_jig 1e-6 100 100 1 "km")
set_tests_properties(simModelGen2d_oneSquare_jig PROPERTIES
PASS_REGULAR_EXPRESSION "mesh faces in surface: 1122")
set_tests_properties(simModelGen2d_oneSquare_jig PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 4")
add_test(NAME simModelGen2d_twoSquares_jig
COMMAND ./generate2dModel ${testDataDir}/twoSquares.msh two_jig 1e-6 100 100 1 "km")
set_tests_properties(simModelGen2d_twoSquares_jig PROPERTIES
PASS_REGULAR_EXPRESSION "mesh faces in surface: 1176")
set_tests_properties(simModelGen2d_twoSquares_jig PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 8")
add_test(NAME simModelGen2d_oneSquare_vtk
COMMAND ./generate2dModel ${testDataDir}/oneSquare.vtk one_vtk 1e-6 120 30 1 "km")
set_tests_properties(simModelGen2d_oneSquare_vtk PROPERTIES
PASS_REGULAR_EXPRESSION "mesh faces in surface: 1122")
set_tests_properties(simModelGen2d_oneSquare_vtk PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 4")
add_test(NAME simModelGen2d_twoSquares_vtk
COMMAND ./generate2dModel ${testDataDir}/twoSquares.vtk two_vtk 1e-6 120 30 1 "km")
set_tests_properties(simModelGen2d_twoSquares_vtk PROPERTIES
PASS_REGULAR_EXPRESSION "mesh faces in surface: 1176")
set_tests_properties(simModelGen2d_twoSquares_vtk PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 8")
add_test(NAME simModelGen2d_oval_vtk
COMMAND ./generate2dModel ${testDataDir}/oval_wBbox.vtk oval 1e-8 120 120 1 "km")
set_tests_properties(simModelGen2d_oval_vtk PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 6")
endif()
add_library(curveReader curveReader.cc)
target_include_directories(curveReader PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
if(USE_SIMMODSUITE)
addExe(testCreateEdges)
target_link_libraries(testCreateEdges PRIVATE curveReader)
add_test(NAME curve4277
COMMAND ./testCreateEdges ${testDataDir}/testCurve4277.csv curve4277)
set_tests_properties(curve4277 PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 3")
set_tests_properties(curve4277 PROPERTIES
PASS_REGULAR_EXPRESSION "Number of edges in model: 3")
add_test(NAME curve1293
COMMAND ./testCreateEdges ${testDataDir}/testCurve1293.csv curve1293)
set_tests_properties(curve1293 PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 2")
set_tests_properties(curve1293 PROPERTIES
PASS_REGULAR_EXPRESSION "Number of edges in model: 2")
add_test(NAME curve1655
COMMAND ./testCreateEdges ${testDataDir}/testCurve1655.csv curve1655)
set_tests_properties(curve1655 PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 2")
set_tests_properties(curve1655 PROPERTIES
PASS_REGULAR_EXPRESSION "Number of edges in model: 2")
add_test(NAME intersection2339_2344
COMMAND ./testCreateEdges
${testDataDir}/testIntersectionEdge2339Edge2344.csv
intersection2339_2344)
add_test(NAME edge522
COMMAND ./testCreateEdges ${testDataDir}/testEdge522.csv edge522)
set_tests_properties(edge522 PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 4")
set_tests_properties(edge522 PROPERTIES
PASS_REGULAR_EXPRESSION "Number of edges in model: 4")
add_test(NAME dblMdlVtx
COMMAND ./testCreateEdges ${testDataDir}/testDoubleMdlVtx.csv dblMdlVtx)
set_tests_properties(dblMdlVtx PROPERTIES
PASS_REGULAR_EXPRESSION "Number of vertices in model: 3")
set_tests_properties(dblMdlVtx PROPERTIES
PASS_REGULAR_EXPRESSION "Number of edges in model: 3")
add_test(NAME fjord
COMMAND ./testCreateEdges ${testDataDir}/fjord.csv fjord)
addExe(testSplineFitting)
target_link_libraries(testSplineFitting PRIVATE curveReader splineInterp)
add_test(NAME testSplineFitting_straight_edge
COMMAND ./testSplineFitting ${testDataDir}/testCurveStraightLine.csv 9)
add_test(NAME testSplineFitting_edge_2pts
COMMAND ./testSplineFitting ${testDataDir}/testCurve2pts.csv 1)
add_test(NAME testSplineFitting_single_edge
COMMAND ./testSplineFitting ${testDataDir}/testCurveSplineFitting.csv 12.2685)
add_test(NAME testSplineFitting_sine_edge
COMMAND ./testSplineFitting ${testDataDir}/testCurveSineSegment.csv 10.24227846)
add_test(NAME testSplineFitting_gisCurve1_edge
COMMAND ./testSplineFitting ${testDataDir}/gisCurve1.csv 22.8891)
add_test(NAME testSplineFitting_gisCurve3_edge
COMMAND ./testSplineFitting ${testDataDir}/gisCurve3.csv 20.669088)
endif()
# Create function for executables that only use curveReader and modelGen2d (no SimModSuite)
function(addCurveExe name)
add_executable(${name} ${name}.cc)
target_link_libraries(${name} PRIVATE curveReader modelGen2d)
endfunction()
# Build curve-only executables when SimModSuite is disabled
addCurveExe(testOnCurve)
add_test(NAME onCurve_edge522
COMMAND ./testOnCurve ${testDataDir}/testEdge522.csv 4 0 150)
addCurveExe(testDiscoverTopo)
add_test(NAME testDiscoverTopo_dblMdlVtx
COMMAND ./testDiscoverTopo ${testDataDir}/testDoubleMdlVtxWBbox.csv)
add_test(NAME testDiscoverTopo_L11pts
COMMAND ./testDiscoverTopo ${testDataDir}/L_11pts.csv)
set_tests_properties(testDiscoverTopo_L11pts PROPERTIES
PASS_REGULAR_EXPRESSION "number of model vertices: 3")