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:
@@ -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");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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"}
|
||||
]}
|
||||
|
||||
@@ -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"}]}
|
||||
|
||||
@@ -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"}]}
|
||||
|
||||
@@ -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"}]}
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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"},
|
||||
|
||||
@@ -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"}]}
|
||||
|
||||
Reference in New Issue
Block a user