From 17d0ccee833228a4127e1d97ecb0b19dfc8e39e0 Mon Sep 17 00:00:00 2001 From: Tor Harald Sandve Date: Fri, 4 Nov 2022 12:10:06 +0100 Subject: [PATCH] use initial pressure and temperature as default in bc dirichlet --- .../EclipseState/SimulationConfig/BCConfig.hpp | 4 ++-- .../EclipseState/SimulationConfig/BCConfig.cpp | 18 +++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/opm/input/eclipse/EclipseState/SimulationConfig/BCConfig.hpp b/opm/input/eclipse/EclipseState/SimulationConfig/BCConfig.hpp index f2e8195d5..543508882 100644 --- a/opm/input/eclipse/EclipseState/SimulationConfig/BCConfig.hpp +++ b/opm/input/eclipse/EclipseState/SimulationConfig/BCConfig.hpp @@ -59,8 +59,8 @@ public: FaceDir::DirEnum dir; BCComponent component; double rate; - double pressure; - double temperature; + std::optional pressure; + std::optional temperature; BCFace() = default; explicit BCFace(const DeckRecord& record, const GridDims& grid); diff --git a/src/opm/input/eclipse/EclipseState/SimulationConfig/BCConfig.cpp b/src/opm/input/eclipse/EclipseState/SimulationConfig/BCConfig.cpp index bfd0be690..a14dac6ae 100644 --- a/src/opm/input/eclipse/EclipseState/SimulationConfig/BCConfig.cpp +++ b/src/opm/input/eclipse/EclipseState/SimulationConfig/BCConfig.cpp @@ -67,6 +67,7 @@ BCComponent component(const std::string& s) { } } +using BC = ParserKeywords::BC; BCConfig::BCFace::BCFace(const DeckRecord& record, const GridDims& grid) : i1(0), i2(grid.getNX() - 1), @@ -74,14 +75,17 @@ BCConfig::BCFace::BCFace(const DeckRecord& record, const GridDims& grid) : j2(grid.getNY() - 1), k1(0), k2(grid.getNZ() - 1), - bctype(fromstring::bctype(record.getItem("TYPE").get(0))), - dir(FaceDir::FromString(record.getItem("DIRECTION").get(0))), - component(fromstring::component(record.getItem("COMPONENT").get(0))), - rate(record.getItem("RATE").getSIDouble(0)), - pressure(record.getItem("PRESSURE").getSIDouble(0)), - temperature(record.getItem("TEMPERATURE").getSIDouble(0)) + bctype(fromstring::bctype(record.getItem().get(0))), + dir(FaceDir::FromString(record.getItem().get(0))), + component(fromstring::component(record.getItem().get(0))), + rate(record.getItem().getSIDouble(0)) { - using BC = ParserKeywords::BC; + if (const auto& P = record.getItem(); ! P.defaultApplied(0)) { + pressure = P.getSIDouble(0); + } + if (const auto& T = record.getItem(); ! T.defaultApplied(0)) { + temperature = T.getSIDouble(0); + } if (const auto& I1 = record.getItem(); ! I1.defaultApplied(0)) { this->i1 = I1.get(0) - 1; }