Skip to content

Commit 6d807d4

Browse files
Implementing a way to handle overpressure
environments; adding better defaults and new comments where I can.
1 parent 322b27a commit 6d807d4

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

src/geophires_x/WellBores.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -898,7 +898,7 @@ def __init__(self, model: Model):
898898
)
899899
self.injection_reservoir_pressure = self.OutputParameterDict[self.injection_reservoir_pressure.Name] = OutputParameter(
900900
Name="Calculated Injection Reservoir Pressure",
901-
value=self.Phydrostatic.value,
901+
value=-1,
902902
UnitType=Units.PRESSURE,
903903
PreferredUnits=PressureUnit.KPASCAL,
904904
CurrentUnits=PressureUnit.KPASCAL
@@ -1092,7 +1092,21 @@ def Calculate(self, model: Model) -> None:
10921092
self.overpressure_depletion_rate.value)
10931093

10941094
if self.overpressure_percentage.Provided:
1095-
# calculate the injection reservoir pressure as a function of time if overpressure is provided
1095+
# if we are doing an overpressure calculation, it is possible that the user has chosen to
1096+
# split the reservoir into two parts - the deeper, overpressured Production Reservoir,
1097+
# and a shallower, lower pressure Injection Reservoir.
1098+
# If so, calculate the injection reservoir pressure as a function of time if overpressure is provided.
1099+
# If the injection reservoir temperature or pressure are not provided, calculate a default for them.
1100+
if self.injection_reservoir_depth.Provided: #this means they must be doing a split reservoir
1101+
if not self.injection_reservoir_temperature.Provided:
1102+
self.injection_reservoir_temperature.value = (model.reserv.averagegradient.value * self.injection_reservoir_depth.value) + model.reserv.Tsurf.value
1103+
if self.injection_reservoir_pressure.value < 0:
1104+
self.injection_reservoir_pressure.value = get_hydrostatic_pressure_kPa(self.injection_reservoir_temperature.value,
1105+
model.reserv.Tsurf.value,
1106+
self.injection_reservoir_depth.value,
1107+
model.reserv.averagegradient.value * 1000.0,
1108+
model.reserv.lithostatic_pressure(model.reserv.rhorock.value,
1109+
self.injection_reservoir_depth.value))
10961110
self.injection_reservoir_initial_pressure.value = self.injection_reservoir_pressure.value = get_hydrostatic_pressure_kPa(self.injection_reservoir_temperature.value,
10971111
model.reserv.Tsurf.value,
10981112
self.injection_reservoir_depth.value,

tests/examples/example_overpressure.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ is used in for electricity application with a reinjection temperature of 50deg.C
1212
*************************************
1313
Overpressure Percentage, 155.0
1414
Overpressure Depletion Rate, 10.0
15-
Injection Reservoir Temperature, 101.1
16-
Injection Reservoir Depth, 1001.1
17-
Injection Reservoir Inflation Rate, 202.2
15+
Injection Reservoir Temperature, 101.1, degC
16+
Injection Reservoir Depth, 1001.1, meters
17+
Injection Reservoir Inflation Rate, 202.2, kPa/yr
1818
Reservoir Model,1, ---Multiple Fractures reservoir model
1919
Reservoir Depth,3, ---[km]
2020
Number of Segments,1, ---[-]
21-
Gradient 1,65, ---[deg.C/km]
21+
Gradient 1,50, ---[deg.C/km]
2222
Maximum Temperature,400, ---[deg.C]
2323
Number of Production Wells,2, ---[-]
2424
Number of Injection Wells,2, ---[-]
@@ -27,7 +27,7 @@ Injection Well Diameter,9, ---[inch]
2727
Ramey Production Wellbore Model,1, ---0 if disabled 1 if enabled
2828
Production Wellbore Temperature Drop,.5, ---[deg.C]
2929
Injection Wellbore Temperature Gain,0, ---[deg.C]
30-
Production Flow Rate per Well,80, ---[kg/s]
30+
Production Flow Rate per Well,70, ---[kg/s]
3131
Fracture Shape,3, ---[-] Should be 1 2 3 or 4. See manual for details
3232
Fracture Height,900, ---[m]
3333
Reservoir Volume Option,3, ---[-] Should be 1 2 3 or 4. See manual for details

0 commit comments

Comments
 (0)