From 4f3b67fa7784a4f40f11ad2bd579080081a5f458 Mon Sep 17 00:00:00 2001 From: Tor Harald Sandve Date: Thu, 4 May 2023 09:48:03 +0200 Subject: [PATCH] use 58.44 as molar mass of salt --- examples/co2brinepvt.cpp | 2 +- opm/material/binarycoefficients/Brine_CO2.hpp | 2 +- opm/material/components/BrineDynamic.hpp | 7 +++++-- src/opm/material/fluidsystems/BlackOilFluidSystem.cpp | 2 +- src/opm/material/fluidsystems/blackoilpvt/BrineCo2Pvt.cpp | 2 +- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/examples/co2brinepvt.cpp b/examples/co2brinepvt.cpp index 2a53d791a..5f35f1113 100644 --- a/examples/co2brinepvt.cpp +++ b/examples/co2brinepvt.cpp @@ -93,7 +93,7 @@ int main(int argc, char **argv) if (argc > 6) rs = atof(argv[6]); - const double MmNaCl = 58e-3; // molar mass of NaCl [kg/mol] + const double MmNaCl = 58.44e-3; // molar mass of NaCl [kg/mol] // convert to mass fraction std::vector salinity = {0.0}; if (molality > 0.0) diff --git a/opm/material/binarycoefficients/Brine_CO2.hpp b/opm/material/binarycoefficients/Brine_CO2.hpp index a02d5b938..e470a26ab 100644 --- a/opm/material/binarycoefficients/Brine_CO2.hpp +++ b/opm/material/binarycoefficients/Brine_CO2.hpp @@ -216,7 +216,7 @@ private: static Evaluation salinityToMolFrac_(const Evaluation& salinity) { const Scalar Mw = H2O::molarMass(); /* molecular weight of water [kg/mol] */ - const Scalar Ms = 58.8e-3; /* molecular weight of NaCl [kg/mol] */ + const Scalar Ms = 58.44e-3; /* molecular weight of NaCl [kg/mol] */ const Evaluation X_NaCl = salinity; /* salinity: conversion from mass fraction to mol fraction */ diff --git a/opm/material/components/BrineDynamic.hpp b/opm/material/components/BrineDynamic.hpp index 50c7e829e..a222f16dd 100644 --- a/opm/material/components/BrineDynamic.hpp +++ b/opm/material/components/BrineDynamic.hpp @@ -79,9 +79,8 @@ public: static Evaluation molarMass(const Evaluation& salinity) { const Scalar M1 = H2O::molarMass(); - constexpr Scalar M2 = 58e-3; // molar mass of NaCl [kg/mol] const Evaluation X2 = salinity; // mass fraction of salt in brine - return M1*M2/(M2 + X2*(M1 - M2)); + return M1*mM_salt/(mM_salt + X2*(M1 - mM_salt)); } /*! @@ -347,6 +346,10 @@ public: return mu_brine/1000.0; // convert to [Pa s] (todo: check if correct cP->Pa s is times 10...) } + + //Molar mass salt (assumes pure NaCl) [kg/mol] + static constexpr Scalar mM_salt = 58.44e-3; + }; } // namespace Opm diff --git a/src/opm/material/fluidsystems/BlackOilFluidSystem.cpp b/src/opm/material/fluidsystems/BlackOilFluidSystem.cpp index e17430510..d2887bdcd 100644 --- a/src/opm/material/fluidsystems/BlackOilFluidSystem.cpp +++ b/src/opm/material/fluidsystems/BlackOilFluidSystem.cpp @@ -119,7 +119,7 @@ initFromState(const EclipseState& eclState, const Schedule& schedule) // when we are using the the CO2STORE option if (eclState.runspec().co2Storage()) { const Scalar molality = eclState.getTableManager().salinity(); // mol/kg - const Scalar MmNaCl = 58e-3; // molar mass of NaCl [kg/mol] + const Scalar MmNaCl = 58.44e-3; // molar mass of NaCl [kg/mol] // convert to mass fraction const Scalar salinity = 1 / ( 1 + 1 / (molality*MmNaCl)); for (unsigned regionIdx = 0; regionIdx < numRegions; ++regionIdx) { diff --git a/src/opm/material/fluidsystems/blackoilpvt/BrineCo2Pvt.cpp b/src/opm/material/fluidsystems/blackoilpvt/BrineCo2Pvt.cpp index d923ce9b4..840d5d586 100644 --- a/src/opm/material/fluidsystems/blackoilpvt/BrineCo2Pvt.cpp +++ b/src/opm/material/fluidsystems/blackoilpvt/BrineCo2Pvt.cpp @@ -56,7 +56,7 @@ initFromState(const EclipseState& eclState, const Schedule&) size_t regionIdx = 0; // Currently we only support constant salinity const Scalar molality = eclState.getTableManager().salinity(); // mol/kg - const Scalar MmNaCl = 58e-3; // molar mass of NaCl [kg/mol] + const Scalar MmNaCl = 58.44e-3; // molar mass of NaCl [kg/mol] // convert to mass fraction salinity_[regionIdx] = 1 / ( 1 + 1 / (molality*MmNaCl)); // set the surface conditions using the STCOND keyword