diff --git a/CMakeLists.txt b/CMakeLists.txt index de5126e2c..0c0f29153 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,6 +29,7 @@ endif() option(SIBLING_SEARCH "Search for other modules in sibling directories?" ON) set( USE_OPENMP_DEFAULT OFF ) # Use of OpenMP is considered experimental option(BUILD_FLOW "Build the production oriented flow simulator?" ON) +option(BUILD_FLOW_BLACKOIL_ONLY "Build the production oriented flow simulator only supporting the blackoil model?" OFF) option(BUILD_FLOW_VARIANTS "Build the variants for flow by default?" OFF) option(BUILD_EBOS "Build the research oriented ebos simulator?" ON) option(BUILD_EBOS_EXTENSIONS "Build the variants for various extensions of ebos by default?" OFF) @@ -175,6 +176,24 @@ opm_add_test(flow flow/flow_ebos_oilwater_polymer.cpp flow/flow_ebos_oilwater_polymer_injectivity.cpp) +if (NOT BUILD_FLOW_BLACKOIL_ONLY) + set(FLOW_BLACKOIL_ONLY_DEFAULT_ENABLE_IF "FALSE") +else() + set(FLOW_BLACKOIL_ONLY_DEFAULT_ENABLE_IF "TRUE") +endif() + +# the production oriented general-purpose ECL simulator +opm_add_test(flow_blackoil + ONLY_COMPILE + ALWAYS_ENABLE + DEFAULT_ENABLE_IF ${FLOW_BLACKOIL_ONLY_DEFAULT_ENABLE_IF} + DEPENDS "opmsimulators" + LIBRARIES "opmsimulators" + SOURCES + flow/flow.cpp + flow/flow_ebos_blackoil.cpp) +target_compile_definitions(flow_blackoil PRIVATE "FLOW_BLACKOIL_ONLY") + if (NOT BUILD_FLOW_VARIANTS) set(FLOW_VARIANTS_DEFAULT_ENABLE_IF "FALSE") else() diff --git a/flow/flow.cpp b/flow/flow.cpp index f671cd826..a2f1b613e 100644 --- a/flow/flow.cpp +++ b/flow/flow.cpp @@ -20,7 +20,10 @@ */ #include "config.h" + #include + +#ifndef FLOW_BLACKOIL_ONLY #include #include #include @@ -30,6 +33,7 @@ #include #include #include +#endif #include #include @@ -381,8 +385,10 @@ int main(int argc, char** argv) // TODO: make sure that no illegal combinations like thermal and twophase are // requested. + if ( false ) {} +#ifndef FLOW_BLACKOIL_ONLY // Twophase cases - if( phases.size() == 2 ) { + else if( phases.size() == 2 ) { // oil-gas if (phases.active( Opm::Phase::GAS )) { @@ -447,6 +453,7 @@ int main(int argc, char** argv) Opm::flowEbosEnergySetDeck(externalSetupTimer.elapsed(), *deck, *eclipseState, *schedule, *summaryConfig); return Opm::flowEbosEnergyMain(argc, argv, outputCout, outputFiles); } +#endif // FLOW_BLACKOIL_ONLY // Blackoil case else if( phases.size() == 3 ) { Opm::flowEbosBlackoilSetDeck(externalSetupTimer.elapsed(), *deck, *eclipseState, *schedule, *summaryConfig);