defined FoamDensity, added test
This commit is contained in:
committed by
Atgeirr Flø Rasmussen
parent
ecc653cce4
commit
31415679f7
@@ -269,6 +269,7 @@ namespace Opm {
|
||||
constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
|
||||
constexpr const double Density = kilogram/cubic(meter);
|
||||
constexpr const double PolymerDensity = kilogram/cubic(meter);
|
||||
constexpr const double FoamDensity = kilogram/cubic(meter);
|
||||
constexpr const double Salinity = kilogram/cubic(meter);
|
||||
constexpr const double Viscosity = centi*Poise;
|
||||
constexpr const double Timestep = day;
|
||||
@@ -296,6 +297,7 @@ namespace Opm {
|
||||
constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
|
||||
constexpr const double Density = pound/cubic(feet);
|
||||
constexpr const double PolymerDensity = pound/stb;
|
||||
constexpr const double FoamDensity = pound/GasSurfaceVolume;
|
||||
constexpr const double Salinity = pound/stb;
|
||||
constexpr const double Viscosity = centi*Poise;
|
||||
constexpr const double Timestep = day;
|
||||
@@ -323,6 +325,7 @@ namespace Opm {
|
||||
constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
|
||||
constexpr const double Density = gram/cubic(centi*meter);
|
||||
constexpr const double PolymerDensity = gram/cubic(centi*meter);
|
||||
constexpr const double FoamDensity = gram/cubic(centi*meter);
|
||||
constexpr const double Salinity = gram/cubic(centi*meter);
|
||||
constexpr const double Viscosity = centi*Poise;
|
||||
constexpr const double Timestep = hour;
|
||||
@@ -350,6 +353,7 @@ namespace Opm {
|
||||
constexpr const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
|
||||
constexpr const double Density = kilogram/cubic(meter);
|
||||
constexpr const double PolymerDensity = kilogram/cubic(meter);
|
||||
constexpr const double FoamDensity = kilogram/cubic(meter);
|
||||
constexpr const double Salinity = kilogram/cubic(meter);
|
||||
constexpr const double Viscosity = centi*Poise;
|
||||
constexpr const double Timestep = day;
|
||||
|
||||
@@ -983,6 +983,7 @@ namespace {
|
||||
system.addDimension("ReservoirVolume", Metric::ReservoirVolume );
|
||||
system.addDimension("Density" , Metric::Density );
|
||||
system.addDimension("PolymerDensity", Metric::PolymerDensity);
|
||||
system.addDimension("FoamDensity", Metric::FoamDensity);
|
||||
system.addDimension("Salinity", Metric::Salinity);
|
||||
system.addDimension("Viscosity" , Metric::Viscosity);
|
||||
system.addDimension("Timestep" , Metric::Timestep);
|
||||
@@ -1013,6 +1014,7 @@ namespace {
|
||||
system.addDimension("ReservoirVolume", Field::ReservoirVolume );
|
||||
system.addDimension("Density", Field::Density );
|
||||
system.addDimension("PolymerDensity", Field::PolymerDensity);
|
||||
system.addDimension("FoamDensity", Field::FoamDensity);
|
||||
system.addDimension("Salinity", Field::Salinity);
|
||||
system.addDimension("Viscosity", Field::Viscosity);
|
||||
system.addDimension("Timestep", Field::Timestep);
|
||||
@@ -1043,6 +1045,7 @@ namespace {
|
||||
system.addDimension("ReservoirVolume", Lab::ReservoirVolume );
|
||||
system.addDimension("Density", Lab::Density );
|
||||
system.addDimension("PolymerDensity", Lab::PolymerDensity);
|
||||
system.addDimension("FoamDensity", Lab::FoamDensity);
|
||||
system.addDimension("Salinity", Lab::Salinity);
|
||||
system.addDimension("Viscosity", Lab::Viscosity);
|
||||
system.addDimension("Timestep", Lab::Timestep);
|
||||
@@ -1072,6 +1075,7 @@ namespace {
|
||||
system.addDimension("ReservoirVolume", PVT_M::ReservoirVolume );
|
||||
system.addDimension("Density" , PVT_M::Density );
|
||||
system.addDimension("PolymerDensity", PVT_M::PolymerDensity);
|
||||
system.addDimension("FoamDensity", PVT_M::FoamDensity);
|
||||
system.addDimension("Salinity", PVT_M::Salinity);
|
||||
system.addDimension("Viscosity" , PVT_M::Viscosity);
|
||||
system.addDimension("Timestep" , PVT_M::Timestep);
|
||||
@@ -1100,6 +1104,7 @@ namespace {
|
||||
system.addDimension("ReservoirVolume", 1.0);
|
||||
system.addDimension("Density" , 1.0);
|
||||
system.addDimension("PolymerDensity", 1.0);
|
||||
system.addDimension("FoamDensity", 1.0);
|
||||
system.addDimension("Salinity", 1.0);
|
||||
system.addDimension("Viscosity" , 1.0);
|
||||
system.addDimension("Timestep" , 1.0);
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/Tabdims.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PlyadsTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PlymaxTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/FoamadsTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PbvdTable.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Tables/PdvdTable.hpp>
|
||||
|
||||
@@ -490,6 +491,82 @@ BOOST_AUTO_TEST_CASE(PlyadsTable_Tests) {
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(FoamadsTable_Tests) {
|
||||
{
|
||||
const char *correctDeckData =
|
||||
"TABDIMS\n"
|
||||
"/\n"
|
||||
"FOAMADS\n"
|
||||
"0.00 0.0 \n"
|
||||
"0.25 0.000010\n"
|
||||
"0.50 0.000018\n"
|
||||
"0.75 0.000023\n"
|
||||
"1.00 0.000027\n"
|
||||
"1.25 0.000030\n"
|
||||
"1.50 0.000030\n"
|
||||
"1.75 0.000030\n"
|
||||
"2.00 0.000030\n"
|
||||
"3.00 0.000030 /\n";
|
||||
Opm::Parser parser;
|
||||
auto deck = parser.parseString(correctDeckData);
|
||||
const auto& foamadsKeyword = deck.getKeyword("FOAMADS");
|
||||
Opm::FoamadsTable foamadsTable(foamadsKeyword.getRecord(0).getItem(0));
|
||||
|
||||
|
||||
BOOST_CHECK_CLOSE(foamadsTable.getFoamConcentrationColumn().front(), 0.0, 1e-6);
|
||||
BOOST_CHECK_CLOSE(foamadsTable.getFoamConcentrationColumn().back(), 3.0, 1e-6);
|
||||
|
||||
BOOST_CHECK_CLOSE(foamadsTable.getAdsorbedFoamColumn().front(), 0.0, 1e-6);
|
||||
BOOST_CHECK_CLOSE(foamadsTable.getAdsorbedFoamColumn().back(), 0.000030, 1e-6);
|
||||
}
|
||||
|
||||
{
|
||||
// first column not strictly monotonic
|
||||
const char *incorrectDeckData =
|
||||
"TABDIMS\n"
|
||||
"/\n"
|
||||
"FOAMADS\n"
|
||||
"0.00 0.0 \n"
|
||||
"0.00 0.000010\n"
|
||||
"0.50 0.000018\n"
|
||||
"0.75 0.000023\n"
|
||||
"1.00 0.000027\n"
|
||||
"1.25 0.000030\n"
|
||||
"1.50 0.000030\n"
|
||||
"1.75 0.000030\n"
|
||||
"2.00 0.000030\n"
|
||||
"3.00 0.000030 /\n";
|
||||
Opm::Parser parser;
|
||||
auto deck = parser.parseString(incorrectDeckData);
|
||||
const auto& foamadsKeyword = deck.getKeyword("FOAMADS");
|
||||
|
||||
BOOST_CHECK_THROW(Opm::FoamadsTable(foamadsKeyword.getRecord(0).getItem(0)), std::invalid_argument);
|
||||
}
|
||||
|
||||
{
|
||||
// second column not monotonic
|
||||
const char *incorrectDeckData =
|
||||
"TABDIMS\n"
|
||||
"/\n"
|
||||
"FOAMADS\n"
|
||||
"0.00 0.0 \n"
|
||||
"0.25 0.000010\n"
|
||||
"0.50 0.000018\n"
|
||||
"0.75 0.000023\n"
|
||||
"1.00 0.000027\n"
|
||||
"1.25 0.000030\n"
|
||||
"1.50 0.000030\n"
|
||||
"1.75 0.000030\n"
|
||||
"2.00 0.000030\n"
|
||||
"3.00 0.000029 /\n";
|
||||
Opm::Parser parser;
|
||||
auto deck = parser.parseString(incorrectDeckData);
|
||||
const auto& foamadsKeyword = deck.getKeyword("FOAMADS");
|
||||
|
||||
BOOST_CHECK_THROW(Opm::FoamadsTable(foamadsKeyword.getRecord(0).getItem(0)), std::invalid_argument);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user