introduce dimension "ReservoirVolume" and rename "*Volume" to "\1SurfaceVolume"

Also, I tried to convert all keywords that use reservoir volumes and
the associated code. Although I tried my best on that front, it might
not be enough. (in any case, I consider it very unlikely that there
are any regressions caused by this.)
This commit is contained in:
Andreas Lauser
2015-02-13 13:33:00 +01:00
parent 832475e8ac
commit 0d3659f111
11 changed files with 42 additions and 39 deletions

View File

@@ -523,8 +523,7 @@ namespace Opm {
// calculate SI injection rates for the group
double surfaceInjectionRate = record->getItem("SURFACE_TARGET")->getRawDouble(0);
surfaceInjectionRate = convertInjectionRateToSI(surfaceInjectionRate, wellPhase, *deck->getActiveUnitSystem());
double reservoirInjectionRate = record->getItem("RESV_TARGET")->getRawDouble(0);
reservoirInjectionRate = convertInjectionRateToSI(reservoirInjectionRate, wellPhase, *deck->getActiveUnitSystem());
double reservoirInjectionRate = record->getItem("RESV_TARGET")->getSIDouble(0);
group->setSurfaceMaxRate( currentStep , surfaceInjectionRate);
group->setReservoirMaxRate( currentStep , reservoirInjectionRate);
@@ -828,10 +827,10 @@ namespace Opm {
case WellInjector::OIL:
case WellInjector::WATER:
return rawRate * unitSystem.parse("LiquidVolume/Time")->getSIScaling();
return rawRate * unitSystem.parse("LiquidSurfaceVolume/Time")->getSIScaling();
case WellInjector::GAS:
return rawRate * unitSystem.parse("GasVolume/Time")->getSIScaling();
return rawRate * unitSystem.parse("GasSurfaceVolume/Time")->getSIScaling();
default:
throw std::logic_error("Unknown injector type");
@@ -842,10 +841,10 @@ namespace Opm {
switch (wellPhase) {
case Phase::OIL:
case Phase::WATER:
return rawRate * unitSystem.parse("LiquidVolume/Time")->getSIScaling();
return rawRate * unitSystem.parse("LiquidSurfaceVolume/Time")->getSIScaling();
case Phase::GAS:
return rawRate * unitSystem.parse("GasVolume/Time")->getSIScaling();
return rawRate * unitSystem.parse("GasSurfaceVolume/Time")->getSIScaling();
default:
throw std::logic_error("Unknown injection phase");

View File

@@ -199,10 +199,11 @@ namespace Opm {
const double Mass = kilogram;
const double Permeability = milli*darcy;
const double Transmissibility = centi*Poise*cubic(meter)/(day*barsa);
const double LiquidVolume = cubic(meter);
const double GasVolume = cubic(meter);
const double GasDissolutionFactor = GasVolume/LiquidVolume;
const double OilDissolutionFactor = LiquidVolume/GasVolume;
const double LiquidSurfaceVolume = cubic(meter);
const double GasSurfaceVolume = cubic(meter);
const double ReservoirVolume = cubic(meter);
const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
const double Density = kilogram/cubic(meter);
const double PolymerDensity = kilogram/cubic(meter);
const double Viscosity = centi*Poise;
@@ -221,10 +222,11 @@ namespace Opm {
const double Mass = pound;
const double Permeability = milli*darcy;
const double Transmissibility = centi*Poise*stb/(day*psia);
const double LiquidVolume = stb;
const double GasVolume = 1000*cubic(feet);
const double GasDissolutionFactor = GasVolume/LiquidVolume;
const double OilDissolutionFactor = LiquidVolume/GasVolume;
const double LiquidSurfaceVolume = stb;
const double GasSurfaceVolume = 1000*cubic(feet);
const double ReservoirVolume = stb;
const double GasDissolutionFactor = GasSurfaceVolume/LiquidSurfaceVolume;
const double OilDissolutionFactor = LiquidSurfaceVolume/GasSurfaceVolume;
const double Density = pound/cubic(feet);
const double PolymerDensity = pound/stb;
const double Viscosity = centi*Poise;

View File

@@ -157,8 +157,9 @@ namespace Opm {
system->addDimension("Transmissibility", Metric::Transmissibility );
system->addDimension("GasDissolutionFactor", Metric::GasDissolutionFactor);
system->addDimension("OilDissolutionFactor", Metric::OilDissolutionFactor);
system->addDimension("LiquidVolume", Metric::LiquidVolume );
system->addDimension("GasVolume" , Metric::GasVolume );
system->addDimension("LiquidSurfaceVolume", Metric::LiquidSurfaceVolume );
system->addDimension("GasSurfaceVolume" , Metric::GasSurfaceVolume );
system->addDimension("ReservoirVolume", Metric::ReservoirVolume );
system->addDimension("Density" , Metric::Density );
system->addDimension("PolymerDensity", Metric::PolymerDensity);
system->addDimension("Viscosity" , Metric::Viscosity);
@@ -182,8 +183,9 @@ namespace Opm {
system->addDimension("Transmissibility", Field::Transmissibility );
system->addDimension("GasDissolutionFactor" , Field::GasDissolutionFactor);
system->addDimension("OilDissolutionFactor", Field::OilDissolutionFactor);
system->addDimension("LiquidVolume", Field::LiquidVolume );
system->addDimension("GasVolume", Field::GasVolume );
system->addDimension("LiquidSurfaceVolume", Field::LiquidSurfaceVolume );
system->addDimension("GasSurfaceVolume", Field::GasSurfaceVolume );
system->addDimension("ReservoirVolume", Field::ReservoirVolume );
system->addDimension("Density", Field::Density );
system->addDimension("PolymerDensity", Field::PolymerDensity);
system->addDimension("Viscosity", Field::Viscosity);

View File

@@ -6,7 +6,7 @@
{"name" : "K2" , "value_type" : "INT" },
{"name" : "STATE" , "value_type" : "STRING" , "default" : "OPEN"},
{"name" : "SAT_TABLE" , "value_type" : "INT" , "default" : 0},
{"name" : "CONNECTION_TRANSMISSIBILITY_FACTOR" , "value_type" : "DOUBLE", "dimension" : "Viscosity*LiquidVolume/Time*Pressure"},
{"name" : "CONNECTION_TRANSMISSIBILITY_FACTOR" , "value_type" : "DOUBLE", "dimension" : "Viscosity*ReservoirVolume/Time*Pressure"},
{"name" : "DIAMETER" , "value_type" : "DOUBLE", "dimension" : "Length"},
{"name" : "Kh" , "value_type" : "DOUBLE", "dimension" : "Permeability*Length" , "default" : -1},
{"name" : "SKIN" , "value_type" : "DOUBLE", "dimension" : "1" , "default" : 0},

View File

@@ -3,7 +3,7 @@
{"name" : "PHASE" , "value_type" : "STRING"},
{"name" : "CONTROL_MODE" , "value_type" : "STRING" , "default" : "NONE"},
{"name" : "SURFACE_TARGET" , "value_type" : "DOUBLE" , "default" : 0 , "dimension" : "ContextDependent"},
{"name" : "RESV_TARGET" , "value_type" : "DOUBLE" , "default" : 0 , "dimension" : "ContextDependent"},
{"name" : "RESV_TARGET" , "value_type" : "DOUBLE" , "default" : 0 , "dimension" : "ReservoirVolume/Time"},
{"name" : "REINJ_TARGET" , "value_type" : "DOUBLE" , "default" : 0, "dimension":"1"},
{"name" : "VOIDAGE_TARGET" , "value_type" : "DOUBLE" , "default" : 0, "dimension":"1"},
{"name" : "FREE" , "value_type" : "STRING" , "default" : "YES"},
@@ -11,5 +11,5 @@
{"name" : "GUIDE_DEF" , "value_type" : "STRING"},
{"name" : "REINJECT_GROUP" , "value_type" : "STRING"},
{"name" : "VOIDAGE_GROUP" , "value_type" : "STRING"},
{"name" : "WETGAS_TARGET", "value_type" : "DOUBLE" , "dimension" : "GasVolume/Time"}
{"name" : "WETGAS_TARGET", "value_type" : "DOUBLE" , "dimension" : "GasSurfaceVolume/Time"}
]}

View File

@@ -1,10 +1,10 @@
{"name" : "GCONPROD" , "sections" : ["SCHEDULE"], "items" : [
{"name" : "GROUP" , "value_type" : "STRING" },
{"name" : "CONTROL_MODE" , "value_type" : "STRING" , "default" : "NONE"},
{"name" : "OIL_TARGET" , "value_type" : "DOUBLE" , "dimension" : "LiquidVolume/Time", "default" : 0},
{"name" : "WATER_TARGET" , "value_type" : "DOUBLE" , "dimension" : "LiquidVolume/Time", "default" : 0},
{"name" : "GAS_TARGET" , "value_type" : "DOUBLE" , "dimension" : "GasVolume/Time", "default" : 0},
{"name" : "LIQUID_TARGET" , "value_type" : "DOUBLE" , "dimension" : "LiquidVolume/Time", "default" : 0},
{"name" : "OIL_TARGET" , "value_type" : "DOUBLE" , "dimension" : "LiquidSurfaceVolume/Time", "default" : 0},
{"name" : "WATER_TARGET" , "value_type" : "DOUBLE" , "dimension" : "LiquidSurfaceVolume/Time", "default" : 0},
{"name" : "GAS_TARGET" , "value_type" : "DOUBLE" , "dimension" : "GasSurfaceVolume/Time", "default" : 0},
{"name" : "LIQUID_TARGET" , "value_type" : "DOUBLE" , "dimension" : "LiquidSurfaceVolume/Time", "default" : 0},
{"name" : "EXCEED_PROC" , "value_type" : "STRING" , "default" : "NONE"},
{"name" : "RESPOND_TO_PARENT" , "value_type" : "STRING" , "default" : "YES"},
{"name" : "GUIDE_RATE" , "value_type" : "DOUBLE"},
@@ -12,5 +12,5 @@
{"name" : "WATER_EXCEED_PROCEDURE" , "value_type" : "STRING"},
{"name" : "GAS_EXCEED_PROCEDURE" , "value_type" : "STRING"},
{"name" : "LIQUID_EXCEED_PROCEDURE" , "value_type" : "STRING"},
{"name" : "RESERVOIR_FLUID_TARGET" , "value_type" : "DOUBLE"},
{"name" : "RESERVOIR_VOLUME_BALANCE" , "value_type" : "DOUBLE"}]}
{"name" : "RESERVOIR_FLUID_TARGET" , "value_type" : "DOUBLE", "dimension" : "ReservoirVolume/Time"},
{"name" : "RESERVOIR_VOLUME_BALANCE" , "value_type" : "DOUBLE", "dimension" : "1"}]}

View File

@@ -1 +1 @@
{"name" : "MINPV" , "sections" : ["GRID"], "size" : 1 , "items" : [{"name" : "MINPV" , "value_type" : "DOUBLE" , "default" : 0.000001, "dimension" : "LiquidVolume"}]}
{"name" : "MINPV" , "sections" : ["GRID"], "size" : 1 , "items" : [{"name" : "MINPV" , "value_type" : "DOUBLE" , "default" : 0.000001, "dimension" : "ReservoirVolume"}]}

View File

@@ -2,11 +2,11 @@
[{"name" : "WELL" , "value_type" : "STRING"},
{"name" : "STATUS" , "value_type" : "STRING" , "default" : "OPEN"},
{"name" : "CMODE" , "value_type" : "STRING"},
{"name" : "ORAT" , "value_type" : "DOUBLE", "default" : 0.0, "dimension" : "LiquidVolume/Time"},
{"name" : "WRAT" , "value_type" : "DOUBLE" , "default" : 0.0, "dimension" : "LiquidVolume/Time"},
{"name" : "GRAT" , "value_type" : "DOUBLE" , "default" : 0.0, "dimension" : "GasVolume/Time"},
{"name" : "ORAT" , "value_type" : "DOUBLE", "default" : 0.0, "dimension" : "LiquidSurfaceVolume/Time"},
{"name" : "WRAT" , "value_type" : "DOUBLE" , "default" : 0.0, "dimension" : "LiquidSurfaceVolume/Time"},
{"name" : "GRAT" , "value_type" : "DOUBLE" , "default" : 0.0, "dimension" : "GasSurfaceVolume/Time"},
{"name" : "VFPTable" , "value_type" : "INT" , "default" : 0.0 , "comment":"The default is a state variable"},
{"name" : "Lift" , "value_type" : "DOUBLE" , "default" : 0.0 , "comment":"The default is a state variable"},
{"name" : "THP" , "value_type" : "DOUBLE" , "default" : 0.0 , "dimension" : "Pressure"},
{"name" : "BHP" , "value_type" : "DOUBLE" , "default" : 0.0 ,"dimension" : "Pressure"},
{"name" : "NGLRAT" , "value_type" : "DOUBLE" , "default" : 0.0 ,"dimension" : "LiquidVolume/Time"}]}
{"name" : "NGLRAT" , "value_type" : "DOUBLE" , "default" : 0.0 ,"dimension" : "LiquidSurfaceVolume/Time"}]}

View File

@@ -4,7 +4,7 @@
{"name" : "STATUS" , "value_type" : "STRING" , "default" : "OPEN"},
{"name" : "CMODE" , "value_type" : "STRING" },
{"name" : "RATE" , "value_type" : "DOUBLE" , "dimension" : "ContextDependent"},
{"name" : "RESV" , "value_type" : "DOUBLE" , "dimension" : "LiquidVolume/Time"},
{"name" : "RESV" , "value_type" : "DOUBLE" , "dimension" : "ReservoirVolume/Time"},
{"name" : "BHP" , "value_type" : "DOUBLE" , "dimension" : "Pressure" , "default" : 6891},
{"name" : "THP" , "value_type" : "DOUBLE" , "dimension" : "Pressure"},
{"name" : "VFP_TABLE" , "value_type" : "INT" , "default" : 0},

View File

@@ -2,11 +2,11 @@
[{"name" : "WELL" , "value_type" : "STRING"},
{"name" : "STATUS" , "value_type" : "STRING" , "default" : "OPEN"},
{"name" : "CMODE" , "value_type" : "STRING"},
{"name" : "ORAT" , "value_type" : "DOUBLE", "default" : 0.0 , "dimension" : "LiquidVolume/Time"},
{"name" : "WRAT" , "value_type" : "DOUBLE" , "default" : 0.0 , "dimension" : "LiquidVolume/Time"},
{"name" : "GRAT" , "value_type" : "DOUBLE" , "default" : 0.0 , "dimension" : "GasVolume/Time"},
{"name" : "LRAT" , "value_type" : "DOUBLE" , "default" : 0.0 , "dimension" : "LiquidVolume/Time"},
{"name" : "RESV" , "value_type" : "DOUBLE" , "default" : 0.0 , "dimension" : "LiquidVolume/Time"},
{"name" : "ORAT" , "value_type" : "DOUBLE", "default" : 0.0 , "dimension" : "LiquidSurfaceVolume/Time"},
{"name" : "WRAT" , "value_type" : "DOUBLE" , "default" : 0.0 , "dimension" : "LiquidSurfaceVolume/Time"},
{"name" : "GRAT" , "value_type" : "DOUBLE" , "default" : 0.0 , "dimension" : "GasSurfaceVolume/Time"},
{"name" : "LRAT" , "value_type" : "DOUBLE" , "default" : 0.0 , "dimension" : "LiquidSurfaceVolume/Time"},
{"name" : "RESV" , "value_type" : "DOUBLE" , "default" : 0.0 , "dimension" : "LiquidSurfaceVolume/Time"},
{"name" : "BHP" , "value_type" : "DOUBLE" , "default" : 0.0 , "dimension" : "Pressure"},
{"name" : "THP" , "value_type" : "DOUBLE" , "default" : 0.0 , "dimension" : "Pressure"},
{"name" : "VFPTable" , "value_type" : "INT" , "default" : 0.0 , "comment":"The default is a state variable"},

View File

@@ -1 +1 @@
{"name" : "MINPVFIL" , "sections" : ["GRID"], "size" : 1 , "items" : [{"name" : "MINPVFIL" , "value_type" : "DOUBLE" , "default" : 0.000001, "dimension" : "LiquidVolume"}]}
{"name" : "MINPVFIL" , "sections" : ["GRID"], "size" : 1 , "items" : [{"name" : "MINPVFIL" , "value_type" : "DOUBLE" , "default" : 0.000001, "dimension" : "LiquidSurfaceVolume"}]}