From 56e81968e3965ee8a7828b0faea799f664df22a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atgeirr=20Fl=C3=B8=20Rasmussen?= Date: Mon, 24 Sep 2012 16:43:00 +0200 Subject: [PATCH] Add support for new three-phase relperm option to BlackoilPropertiesFromDeck. New parameter option added: 'threephase_model' can now be 'gwseg'. --- opm/core/fluid/BlackoilPropertiesFromDeck.cpp | 23 +++++++++++++------ opm/core/fluid/SaturationPropsFromDeck.hpp | 1 + 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/opm/core/fluid/BlackoilPropertiesFromDeck.cpp b/opm/core/fluid/BlackoilPropertiesFromDeck.cpp index e2457f39b..78e3c5db2 100644 --- a/opm/core/fluid/BlackoilPropertiesFromDeck.cpp +++ b/opm/core/fluid/BlackoilPropertiesFromDeck.cpp @@ -28,8 +28,8 @@ namespace Opm { rock_.init(deck, grid); pvt_.init(deck, 200); - SaturationPropsFromDeck* ptr - = new SaturationPropsFromDeck(); + SaturationPropsFromDeck* ptr + = new SaturationPropsFromDeck(); satprops_.reset(ptr); ptr->init(deck, grid, 200); @@ -50,30 +50,39 @@ namespace Opm // Unfortunate lack of pointer smartness here... const int sat_samples = param.getDefault("sat_tab_size", 200); std::string threephase_model = param.getDefault("threephase_model", "simple"); - bool use_stone2 = (threephase_model == "stone2"); if (sat_samples > 1) { - if (use_stone2) { + if (threephase_model == "stone2") { SaturationPropsFromDeck* ptr = new SaturationPropsFromDeck(); satprops_.reset(ptr); ptr->init(deck, grid, sat_samples); - } else { + } else if (threephase_model == "simple") { SaturationPropsFromDeck* ptr = new SaturationPropsFromDeck(); satprops_.reset(ptr); ptr->init(deck, grid, sat_samples); + } else if (threephase_model == "gwseg") { + SaturationPropsFromDeck* ptr + = new SaturationPropsFromDeck(); + satprops_.reset(ptr); + ptr->init(deck, grid, sat_samples); } } else { - if (use_stone2) { + if (threephase_model == "stone2") { SaturationPropsFromDeck* ptr = new SaturationPropsFromDeck(); satprops_.reset(ptr); ptr->init(deck, grid, sat_samples); - } else { + } else if (threephase_model == "simple") { SaturationPropsFromDeck* ptr = new SaturationPropsFromDeck(); satprops_.reset(ptr); ptr->init(deck, grid, sat_samples); + } else if (threephase_model == "gwseg") { + SaturationPropsFromDeck* ptr + = new SaturationPropsFromDeck(); + satprops_.reset(ptr); + ptr->init(deck, grid, sat_samples); } } diff --git a/opm/core/fluid/SaturationPropsFromDeck.hpp b/opm/core/fluid/SaturationPropsFromDeck.hpp index 0a0599ec8..ea2acb342 100644 --- a/opm/core/fluid/SaturationPropsFromDeck.hpp +++ b/opm/core/fluid/SaturationPropsFromDeck.hpp @@ -26,6 +26,7 @@ #include #include #include +#include #include struct UnstructuredGrid;