Skip to content

Commit ff16820

Browse files
Adjusted for all Jonathans suggestions, added pumping pressure output as additional table but only for when overpressure and split reservoirs are in use. Added output code to maintain backwards compatibility
1 parent ac08741 commit ff16820

File tree

1 file changed

+22
-16
lines changed

1 file changed

+22
-16
lines changed

src/geophires_x/Outputs.py

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1720,7 +1720,12 @@ def PrintOutputs(self, model: Model):
17201720
if model.wellbores.impedancemodelused.value:
17211721
f.write(f' Reservoir impedance: {model.wellbores.impedance.value/1000:10.2f} ' + model.wellbores.impedance.CurrentUnits.value + NL)
17221722
else:
1723-
f.write(f' Average reservoir pressure: {model.wellbores.average_production_reservoir_pressure.value:10.2f} ' + model.wellbores.average_production_reservoir_pressure.CurrentUnits.value + NL)
1723+
if model.wellbores.overpressure_percentage.Provided:
1724+
# write the reservoir pressure as an average in the overpressure case
1725+
f.write(f' Average reservoir pressure: {model.wellbores.average_production_reservoir_pressure.value:10.2f} ' + model.wellbores.average_production_reservoir_pressure.CurrentUnits.value + NL)
1726+
else:
1727+
# write the reservoir pressure as a single value
1728+
f.write(f' Reservoir hydrostatic pressure: {model.wellbores.production_reservoir_pressure.value[0]:10.2f} ' + model.wellbores.production_reservoir_pressure.CurrentUnits.value + NL)
17241729
f.write(f' Plant outlet pressure: {model.surfaceplant.plant_outlet_pressure.value:10.2f} ' + model.surfaceplant.plant_outlet_pressure.CurrentUnits.value + NL)
17251730
if model.wellbores.productionwellpumping.value:
17261731
f.write(f' Production wellhead pressure: {model.wellbores.Pprodwellhead.value:10.2f} ' + model.wellbores.Pprodwellhead.CurrentUnits.value + NL)
@@ -2067,21 +2072,22 @@ def o(output_param: OutputParameter):
20672072
f'{ii + 1:3.0f} {o(econ.ElecPrice).value[ii]:5.2f} {o(econ.ElecRevenue).value[ii]:5.2f} {o(econ.ElecCummRevenue).value[ii]:5.2f} | {o(econ.HeatPrice).value[ii]:5.2f} {o(econ.HeatRevenue).value[ii]:5.2f} {o(econ.HeatCummRevenue).value[ii]:5.2f} | {o(econ.CoolingPrice).value[ii]:5.2f} {o(econ.CoolingRevenue).value[ii]:5.2f} {o(econ.CoolingCummRevenue).value[ii]:5.2f} | {o(econ.CarbonPrice).value[ii]:5.2f} {o(econ.CarbonRevenue).value[ii]:5.2f} {o(econ.CarbonCummCashFlow).value[ii]:5.2f} | {opex:5.2f} {o(econ.TotalRevenue).value[ii]:5.2f} {o(econ.TotalCummRevenue).value[ii]:5.2f}\n')
20682073
f.write(NL)
20692074

2070-
# if we are dealing with overpressure and two different reservoirs, show a table reporting the values
2071-
if model.wellbores.overpressure_percentage.Provided and model.wellbores.injection_reservoir_depth.Provided:
2072-
f.write(NL)
2073-
f.write(' ***************************************\n')
2074-
f.write(' * RESERVOIR POWER REQUIRED PROFILES *\n')
2075-
f.write(' ***************************************\n')
2076-
f.write(' YEAR PROD PUMP INJECT PUMP TOTAL PUMP\n')
2077-
f.write(' POWER POWER POWER\n')
2078-
f.write(' (' + model.wellbores.ProducedTemperature.CurrentUnits.value+') (' + model.wellbores.PumpingPower.CurrentUnits.value + ') (' + model.surfaceplant.NetElectricityProduced.CurrentUnits.value + ') (%)\n')
2079-
for i in range(0, model.surfaceplant.plant_lifetime.value):
2080-
f.write(' {0:2.0f} {1:8.4f} {2:8.4f} {3:8.4f}'.format(i+1,
2081-
model.wellbores.PumpingPowerProd.value[i*model.economics.timestepsperyear.value],
2082-
model.wellbores.PumpingPowerInj.value[i*model.economics.timestepsperyear.value],
2083-
model.wellbores.PumpingPower.value[i*model.economics.timestepsperyear.value]))
2084-
f.write(NL)
2075+
# if we are dealing with overpressure and two different reservoirs, show a table reporting the values
2076+
if model.wellbores.overpressure_percentage.Provided and model.wellbores.injection_reservoir_depth.Provided:
2077+
f.write(NL)
2078+
f.write(' ***************************************\n')
2079+
f.write(' * RESERVOIR POWER REQUIRED PROFILES *\n')
2080+
f.write(' ***************************************\n')
2081+
f.write(' YEAR PROD PUMP INJECT PUMP TOTAL PUMP\n')
2082+
f.write(' POWER POWER POWER\n')
2083+
f.write(' (' + model.wellbores.PumpingPowerProd.CurrentUnits.value+') (' + model.wellbores.PumpingPowerInj.CurrentUnits.value + ') (' + model.surfaceplant.NetElectricityProduced.CurrentUnits.value + ') \n')
2084+
for i in range(0, model.surfaceplant.plant_lifetime.value):
2085+
f.write(' {0:2.0f} {1:8.4f} {2:8.4f} {3:8.4f}'.format(i+1,
2086+
model.wellbores.PumpingPowerProd.value[i*model.economics.timestepsperyear.value],
2087+
model.wellbores.PumpingPowerInj.value[i*model.economics.timestepsperyear.value],
2088+
model.wellbores.PumpingPower.value[i*model.economics.timestepsperyear.value]))
2089+
f.write(NL)
2090+
f.write(NL)
20852091

20862092
if model.economics.DoAddOnCalculations.value:
20872093
addon_df, addon_results = model.addoutputs.PrintOutputs(model)

0 commit comments

Comments
 (0)