mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Added support for water-only and water-only + thermal to flow.
Also run the onephase tests with flow now.
This commit is contained in:
@@ -35,6 +35,8 @@
|
||||
#include <flow/flow_ebos_brine.hpp>
|
||||
#include <flow/flow_ebos_brine_saltprecipitation.hpp>
|
||||
#include <flow/flow_ebos_gaswater_saltprec_vapwat.hpp>
|
||||
#include <flow/flow_ebos_onephase.hpp>
|
||||
#include <flow/flow_ebos_onephase_energy.hpp>
|
||||
#include <flow/flow_ebos_oilwater_brine.hpp>
|
||||
#include <flow/flow_ebos_gaswater_brine.hpp>
|
||||
#include <flow/flow_ebos_energy.hpp>
|
||||
@@ -290,6 +292,16 @@ private:
|
||||
return this->runMICP(phases);
|
||||
}
|
||||
|
||||
// water-only case
|
||||
else if(phases.size() == 1 && phases.active(Phase::WATER) && !eclipseState_->getSimulationConfig().isThermal()) {
|
||||
return this->runWaterOnly(phases);
|
||||
}
|
||||
|
||||
// water-only case with energy
|
||||
else if(phases.size() == 2 && phases.active(Phase::WATER) && eclipseState_->getSimulationConfig().isThermal()) {
|
||||
return this->runWaterOnlyEnergy(phases);
|
||||
}
|
||||
|
||||
// Twophase cases
|
||||
else if (phases.size() == 2 && !eclipseState_->getSimulationConfig().isThermal()) {
|
||||
return this->runTwoPhase(phases);
|
||||
@@ -652,6 +664,36 @@ private:
|
||||
return flowEbosFoamMain(argc_, argv_, outputCout_, outputFiles_);
|
||||
}
|
||||
|
||||
int runWaterOnly(const Phases& phases)
|
||||
{
|
||||
if (!phases.active(Phase::WATER) || phases.size() != 1) {
|
||||
if (outputCout_)
|
||||
std::cerr << "No valid configuration is found for water-only simulation, valid options include "
|
||||
<< "water, water + thermal" << std::endl;
|
||||
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
flowEbosWaterOnlySetDeck(
|
||||
setupTime_, deck_, eclipseState_, schedule_, summaryConfig_);
|
||||
|
||||
return flowEbosWaterOnlyMain(argc_, argv_, outputCout_, outputFiles_);
|
||||
}
|
||||
|
||||
int runWaterOnlyEnergy(const Phases& phases)
|
||||
{
|
||||
if (!phases.active(Phase::WATER) || phases.size() != 2) {
|
||||
if (outputCout_)
|
||||
std::cerr << "No valid configuration is found for water-only simulation, valid options include "
|
||||
<< "water, water + thermal" << std::endl;
|
||||
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
flowEbosWaterOnlyEnergySetDeck(
|
||||
setupTime_, deck_, eclipseState_, schedule_, summaryConfig_);
|
||||
|
||||
return flowEbosWaterOnlyEnergyMain(argc_, argv_, outputCout_, outputFiles_);
|
||||
}
|
||||
|
||||
int runBrine(const Phases& phases)
|
||||
{
|
||||
if (! phases.active(Phase::WATER) || phases.size() == 2) {
|
||||
|
||||
Reference in New Issue
Block a user