Skip to content

Commit 786125f

Browse files
committed
add imported opm-models code to buildsystem
1 parent f95ce7d commit 786125f

File tree

8 files changed

+271
-13
lines changed

8 files changed

+271
-13
lines changed

CMakeLists.txt

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,12 +246,15 @@ endif()
246246

247247

248248
macro (config_hook)
249-
opm_need_version_of ("dune-common")
250-
opm_need_version_of ("dune-istl")
249+
opm_need_version_of("dune-alugrid")
250+
opm_need_version_of("dune-common")
251+
opm_need_version_of("dune-geometry")
252+
opm_need_version_of("dune-grid")
253+
opm_need_version_of("dune-istl")
254+
opm_need_version_of("dune-localfunctions")
251255
if(dune-fem_FOUND)
252256
opm_need_version_of ("dune-fem")
253257
endif()
254-
opm_need_version_of ("opm-models")
255258

256259
if(NOT fmt_FOUND)
257260
add_definitions(-DFMT_HEADER_ONLY)
@@ -519,6 +522,8 @@ if(dune-alugrid_FOUND)
519522
target_compile_definitions(flow_alugrid PRIVATE USE_ALUGRID)
520523
endif()
521524

525+
include(modelTests.cmake)
526+
522527
if (BUILD_FLOW)
523528
install(TARGETS flow DESTINATION bin)
524529
opm_add_bash_completion(flow)
@@ -529,6 +534,20 @@ if (BUILD_FLOW)
529534
PASS_REGULAR_EXPRESSION "${${project}_LABEL}")
530535
endif()
531536

537+
if(QuadMath_FOUND)
538+
foreach(tapp co2injection_flash_ni_ecfv
539+
co2injection_flash_ni_vcfv
540+
co2injection_flash_ecfv
541+
co2injection_flash_vcfv)
542+
opm_add_test(${tapp}_quad
543+
ONLY_COMPILE
544+
EXE_NAME ${tapp}_quad
545+
SOURCES
546+
examples/${tapp}.cc)
547+
target_link_libraries(${tapp}_quad QuadMath::QuadMath)
548+
endforeach()
549+
endif()
550+
532551
if (OPM_ENABLE_PYTHON)
533552
add_subdirectory(python)
534553
endif()

CMakeLists_files.cmake

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,27 @@ list (APPEND TEST_DATA_FILES
280280
tests/options_flexiblesolver.json
281281
tests/options_flexiblesolver_simple.json
282282
tests/GLIFT1.DATA
283+
tests/data/co2injection.dgf
284+
tests/data/cuvette_11x4.dgf
285+
tests/data/cuvette_44x24.dgf
286+
tests/data/fracture.art.dgf
287+
tests/data/fracture-raw.art
288+
tests/data/groundwater_1d.dgf
289+
tests/data/groundwater_2d.dgf
290+
tests/data/groundwater_3d.dgf
291+
tests/data/infiltration_250x20.dgf
292+
tests/data/infiltration_50x3.dgf
293+
tests/data/obstacle_24x16.dgf
294+
tests/data/obstacle_48x32.dgf
295+
tests/data/outflow.dgf
296+
tests/data/reservoir.dgf
297+
tests/data/richardslens_24x16.dgf
298+
tests/data/richardslens_48x32.dgf
299+
tests/data/richardslens_96x64.dgf
300+
tests/data/test_stokes2c.dgf
301+
tests/data/test_stokes2cni.dgf
302+
tests/data/test_stokes.dgf
303+
tests/data/waterair.dgf
283304
tests/include/flowl_b_vfp.ecl
284305
tests/include/flowl_c_vfp.ecl
285306
tests/include/permx_model5.grdecl
@@ -459,10 +480,62 @@ if(HDF5_FOUND)
459480
endif()
460481

461482
list (APPEND EXAMPLE_SOURCE_FILES
483+
examples/art2dgf.cc
484+
examples/co2injection_flash_ni_vcfv.cc
485+
examples/co2injection_flash_ni_ecfv.cc
486+
examples/co2injection_flash_vcfv.cc
487+
examples/co2injection_flash_ecfv.cc
488+
examples/co2injection_ncp_ni_vcfv.cc
489+
examples/co2injection_pvs_ni_vcfv.cc
490+
examples/co2injection_ncp_vcfv.cc
491+
examples/co2injection_pvs_vcfv.cc
492+
examples/co2injection_immiscible_ni_vcfv.cc
493+
examples/co2injection_immiscible_vcfv.cc
494+
examples/co2injection_immiscible_ecfv.cc
495+
examples/co2injection_ncp_ecfv.cc
496+
examples/co2injection_pvs_ecfv.cc
497+
examples/co2injection_immiscible_ni_ecfv.cc
498+
examples/co2injection_ncp_ni_ecfv.cc
499+
examples/co2injection_pvs_ni_ecfv.cc
500+
examples/cuvette_pvs.cc
501+
examples/diffusion_flash.cc
502+
examples/diffusion_ncp.cc
503+
examples/diffusion_pvs.cc
504+
examples/groundwater_immiscible.cc
505+
examples/infiltration_pvs.cc
506+
examples/lens_immiscible_vcfv_ad.cc
507+
examples/lens_immiscible_vcfv_fd.cc
508+
examples/lens_immiscible_ecfv_ad.cc
509+
examples/lens_immiscible_ecfv_ad_23.cc
510+
examples/lens_immiscible_ecfv_ad_trans.cc
511+
examples/lens_richards_vcfv.cc
512+
examples/lens_richards_ecfv.cc
513+
examples/obstacle_immiscible.cc
514+
examples/obstacle_ncp.cc
515+
examples/obstacle_pvs.cc
516+
examples/outflow_pvs.cc
517+
examples/powerinjection_forchheimer_fd.cc
518+
examples/powerinjection_forchheimer_ad.cc
519+
examples/powerinjection_darcy_fd.cc
520+
examples/powerinjection_darcy_ad.cc
521+
examples/reservoir_blackoil_ecfv.cc
522+
examples/reservoir_blackoil_vcfv.cc
523+
examples/reservoir_ncp_ecfv.cc
524+
examples/reservoir_ncp_vcfv.cc
462525
examples/printvfp.cpp
526+
examples/tutorial1.cc
527+
examples/waterair_pvs_ni.cc
463528
)
464529
if(HDF5_FOUND)
465530
list (APPEND EXAMPLE_SOURCE_FILES
466531
examples/opmrst_inspect.cpp
467532
)
468533
endif()
534+
535+
if(DUNE_ALUGRID_FOUND)
536+
list(APPEND EXAMPLE_SOURCE_FILES
537+
examples/finger_immiscible_ecfv.cc
538+
examples/finger_immiscible_vcfv.cc
539+
examples/fracture_discretefracture.cc
540+
)
541+
endif()

dune.module

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ Label: 2023.10-pre
1010
Maintainer: [email protected]
1111
MaintainerName: Atgeirr F. Rasmussen
1212
Url: http://opm-project.org
13-
Depends: dune-istl (>= 2.7) opm-common opm-grid opm-models
13+
Depends: dune-istl (>= 2.7) opm-common opm-grid
14+
Suggests: dune-localfunctions (>= 2.7) dune-fem (>= 2.7) dune-alugrid (>= 2.7)

jenkins/build.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@
55

66
declare -a upstreams
77
upstreams=(opm-common
8-
opm-grid
9-
opm-models)
8+
opm-grid)
109

1110
declare -A upstreamRev
1211
upstreamRev[opm-common]=master
1312
upstreamRev[opm-grid]=master
14-
upstreamRev[opm-models]=master
1513

1614
if grep -q "opm-common=" <<< $ghprbCommentBody
1715
then

modelTests.cmake

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
opm_set_test_driver(${CMAKE_CURRENT_SOURCE_DIR}/tests/run-vtu-test.sh --simulation)
2+
opm_set_test_default_working_directory(${PROJECT_BINARY_DIR}/tests)
3+
4+
opm_add_test(art2dgf
5+
NO_COMPILE
6+
DRIVER_ARGS --plain
7+
TEST_ARGS "data/fracture-raw.art")
8+
9+
opm_add_test(waterair_pvs_ni
10+
NO_COMPILE
11+
TEST_ARGS --grid-global-refinements=1)
12+
13+
opm_add_test(lens_immiscible_vcfv_ad
14+
NO_COMPILE
15+
TEST_ARGS --end-time=3000)
16+
17+
opm_add_test(lens_immiscible_vcfv_fd
18+
NO_COMPILE
19+
TEST_ARGS --end-time=3000)
20+
21+
opm_add_test(lens_immiscible_ecfv_ad
22+
NO_COMPILE
23+
TEST_ARGS --end-time=3000)
24+
25+
opm_add_test(lens_immiscible_ecfv_ad_23
26+
NO_COMPILE
27+
TEST_ARGS --end-time=3000)
28+
29+
opm_add_test(lens_immiscible_ecfv_ad_trans
30+
NO_COMPILE
31+
TEST_ARGS --end-time=3000)
32+
33+
# this test is identical to the simulation of the lens problem that
34+
# uses the element centered finite volume discretization in
35+
# conjunction with automatic differentiation
36+
# (lens_immiscible_ecfv_ad). The only difference is that it uses
37+
# multiple compile units in order to ensure that eWoms code can be
38+
# used within libraries that use the same type tag within multiple
39+
# compile units.
40+
opm_add_test(lens_immiscible_ecfv_ad_mcu
41+
ONLY_COMPILE
42+
SOURCES
43+
examples/lens_immiscible_ecfv_ad_cu1.cc
44+
examples/lens_immiscible_ecfv_ad_cu2.cc
45+
examples/lens_immiscible_ecfv_ad_main.cc
46+
LIBRARIES opmsimulators)
47+
48+
49+
opm_add_test(finger_immiscible_ecfv
50+
NO_COMPILE
51+
CONDITION ${DUNE_ALUGRID_FOUND})
52+
53+
opm_add_test(finger_immiscible_vcfv
54+
NO_COMPILE
55+
CONDITION ${DUNE_ALUGRID_FOUND})
56+
57+
opm_add_test(finger_immiscible_ecfv_adaptive
58+
EXE_NAME finger_immiscible_ecfv
59+
CONDITION ${DUNE_ALUGRID_FOUND} AND ${DUNE_FEM_FOUND}
60+
NO_COMPILE
61+
TEST_ARGS --enable-grid-adaptation=true --end-time=25e3)
62+
63+
opm_add_test(reservoir_blackoil_vcfv
64+
NO_COMPILE
65+
TEST_ARGS --end-time=8750000)
66+
opm_add_test(reservoir_blackoil_ecfv
67+
NO_COMPILE
68+
TEST_ARGS --end-time=8750000)
69+
opm_add_test(reservoir_ncp_vcfv
70+
NO_COMPILE
71+
TEST_ARGS --end-time=8750000)
72+
opm_add_test(reservoir_ncp_ecfv
73+
NO_COMPILE
74+
TEST_ARGS --end-time=8750000)
75+
76+
opm_add_test(fracture_discretefracture
77+
NO_COMPILE
78+
CONDITION ${DUNE_ALUGRID_FOUND}
79+
TEST_ARGS --end-time=400)
80+
81+
opm_add_test(test_propertysystem
82+
DRIVER_ARGS --plain)
83+
84+
opm_add_test(test_quadrature
85+
DRIVER_ARGS --plain)
86+
87+
# test for the parallelization of the element centered finite volume
88+
# discretization (using the non-isothermal NCP model and the parallel
89+
# AMG linear solver)
90+
opm_add_test(co2injection_ncp_ni_ecfv_parallel
91+
EXE_NAME co2injection_ncp_ni_ecfv
92+
NO_COMPILE
93+
PROCESSORS 4
94+
CONDITION ${MPI_FOUND}
95+
DRIVER_ARGS --parallel-simulation=4)
96+
97+
# test for the parallelization of the vertex centered finite volume
98+
# discretization (using BiCGSTAB + ILU0)
99+
opm_add_test(obstacle_immiscible_parallel
100+
EXE_NAME obstacle_immiscible
101+
NO_COMPILE
102+
PROCESSORS 4
103+
CONDITION ${MPI_FOUND}
104+
DRIVER_ARGS --parallel-simulation=4
105+
TEST_ARGS --end-time=1 --initial-time-step-size=1)
106+
107+
# test for the parallel AMG linear solver using the vertex centered
108+
# finite volume discretization
109+
opm_add_test(lens_immiscible_vcfv_fd_parallel
110+
EXE_NAME lens_immiscible_vcfv_fd
111+
NO_COMPILE
112+
PROCESSORS 4
113+
CONDITION ${MPI_FOUND}
114+
DRIVER_ARGS --parallel-simulation=4
115+
TEST_ARGS --end-time=250 --initial-time-step-size=250)
116+
117+
opm_add_test(lens_immiscible_vcfv_ad_parallel
118+
EXE_NAME lens_immiscible_vcfv_ad
119+
NO_COMPILE
120+
PROCESSORS 4
121+
CONDITION ${MPI_FOUND}
122+
DRIVER_ARGS --parallel-simulation=4
123+
TEST_ARGS --end-time=250 --initial-time-step-size=250)
124+
125+
opm_add_test(lens_immiscible_ecfv_ad_parallel
126+
EXE_NAME lens_immiscible_ecfv_ad
127+
NO_COMPILE
128+
PROCESSORS 4
129+
CONDITION ${MPI_FOUND}
130+
DRIVER_ARGS --parallel-simulation=4
131+
TEST_ARGS --end-time=250 --initial-time-step-size=250)
132+
133+
opm_add_test(obstacle_immiscible_parameters
134+
EXE_NAME obstacle_immiscible
135+
NO_COMPILE
136+
DEPENDS obstacle_immiscible
137+
DRIVER_ARGS --parameters)
138+
139+
opm_add_test(obstacle_pvs_restart
140+
EXE_NAME obstacle_pvs
141+
NO_COMPILE
142+
DEPENDS obstacle_pvs
143+
DRIVER_ARGS --restart
144+
TEST_ARGS --pvs-verbosity=2 --end-time=30000)
145+
146+
opm_add_test(test_tasklets
147+
DRIVER_ARGS --plain)
148+
149+
opm_add_test(test_mpiutil
150+
PROCESSORS 4
151+
CONDITION ${MPI_FOUND} AND Boost_UNIT_TEST_FRAMEWORK_FOUND
152+
DRIVER_ARGS --parallel-program=4)

opm-simulators-prereqs.cmake

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
set (opm-simulators_CONFIG_VAR
33
HAVE_OPM_GRID
44
HAVE_PTHREAD
5-
HAVE_EWOMS
65
HAVE_MPI
76
HAVE_PETSC
87
COMPILE_BDA_BRIDGE
@@ -14,6 +13,12 @@ set (opm-simulators_CONFIG_VAR
1413
HAVE_ROCALUTION
1514
HAVE_ROCSPARSE
1615
HAVE_SUITESPARSE_UMFPACK_H
16+
HAVE_ECL_INPUT
17+
HAVE_ECL_OUTPUT
18+
HAVE_DUNE_ALUGRID
19+
HAVE_DUNE_COMMON
20+
HAVE_DUNE_GEOMETRY
21+
HAVE_DUNE_GRID
1722
HAVE_DUNE_ISTL
1823
DUNE_ISTL_WITH_CHECKING
1924
DUNE_ISTL_VERSION_MAJOR
@@ -22,6 +27,7 @@ set (opm-simulators_CONFIG_VAR
2227
HAVE_SUITESPARSE_UMFPACK
2328
HAVE_DAMARIS
2429
HAVE_HDF5
30+
HAVE_VALGRIND
2531
)
2632

2733
# dependencies
@@ -32,8 +38,13 @@ set (opm-simulators_DEPS
3238
"Boost 1.44.0
3339
COMPONENTS date_time system unit_test_framework REQUIRED"
3440
# DUNE prerequisites
41+
"dune-alugrid"
3542
"dune-common REQUIRED"
43+
"dune-fem"
44+
"dune-geometry REQUIRED"
45+
"dune-grid REQUIRED"
3646
"dune-istl REQUIRED"
47+
"dune-localfunctions"
3748
# matrix library
3849
"BLAS REQUIRED"
3950
"LAPACK REQUIRED"
@@ -51,9 +62,12 @@ set (opm-simulators_DEPS
5162
# OPM dependency
5263
"opm-common REQUIRED"
5364
"opm-grid REQUIRED"
54-
"opm-models REQUIRED"
5565
"Damaris 1.7"
5666
"HDF5"
67+
# valgrind client requests
68+
"Valgrind"
69+
# quadruple precision floating point calculations
70+
"Quadmath"
5771
)
5872

5973
find_package_deps(opm-simulators)

opm/models/parallel/mpibuffer.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public:
118118
0, // tag
119119
MPI_COMM_WORLD,
120120
&mpiStatus_);
121-
assert(!mpiStatus_.MPI_ERROR);
121+
//assert(!mpiStatus_.MPI_ERROR);
122122
#endif // HAVE_MPI
123123
}
124124

0 commit comments

Comments
 (0)