diff --git a/.bumpversion.cfg b/.bumpversion.cfg index a018e799..a5fc9a14 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 3.4.0 +current_version = 3.4.1 commit = True tag = True diff --git a/.cookiecutterrc b/.cookiecutterrc index c7a22552..8f6c3eba 100644 --- a/.cookiecutterrc +++ b/.cookiecutterrc @@ -54,7 +54,7 @@ default_context: sphinx_doctest: "no" sphinx_theme: "sphinx-py3doc-enhanced-theme" test_matrix_separate_coverage: "no" - version: 3.4.0 + version: 3.4.1 version_manager: "bump2version" website: "https://github.com/NREL" year_from: "2023" diff --git a/README.rst b/README.rst index 26195fa8..c441d42b 100644 --- a/README.rst +++ b/README.rst @@ -47,9 +47,9 @@ Free software: `MIT license `__ :alt: Supported implementations :target: https://pypi.org/project/geophires-x -.. |commits-since| image:: https://img.shields.io/github/commits-since/NREL/GEOPHIRES-X/v3.4.0.svg +.. |commits-since| image:: https://img.shields.io/github/commits-since/NREL/GEOPHIRES-X/v3.4.1.svg :alt: Commits since latest release - :target: https://github.com/NREL/GEOPHIRES-X/compare/v3.4.0...main + :target: https://github.com/NREL/GEOPHIRES-X/compare/v3.4.1...main .. |docs| image:: https://readthedocs.org/projects/GEOPHIRES-X/badge/?style=flat :target: https://nrel.github.io/GEOPHIRES-X diff --git a/docs/conf.py b/docs/conf.py index 5f91586c..0296a64a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,7 +18,7 @@ year = '2023' author = 'NREL' copyright = f'{year}, {author}' -version = release = '3.4.0' +version = release = '3.4.1' pygments_style = 'trac' templates_path = ['./templates'] diff --git a/setup.py b/setup.py index a75c03bf..2c242fac 100755 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ def read(*names, **kwargs): setup( name='geophires-x', - version='3.4.0', + version='3.4.1', license='MIT', description='GEOPHIRES is a free and open-source geothermal techno-economic simulator.', long_description='{}\n{}'.format( @@ -76,6 +76,7 @@ def read(*names, **kwargs): 'h5py', 'scipy', 'iapws', + 'coolprop', ], extras_require={ # eg: diff --git a/src/geophires_x/AGSWellBores.py b/src/geophires_x/AGSWellBores.py index 18d34208..8c6c69d9 100644 --- a/src/geophires_x/AGSWellBores.py +++ b/src/geophires_x/AGSWellBores.py @@ -11,9 +11,12 @@ import os import math import numpy as np +from pint.facets.plain import PlainQuantity + import geophires_x.Model as Model from .Parameter import floatParameter, intParameter, boolParameter, OutputParameter -from .Reservoir import densitywater, heatcapacitywater +from geophires_x.GeoPHIRESUtils import density_water_kg_per_m3 +from geophires_x.GeoPHIRESUtils import heat_capacity_water_J_per_kg_per_K from .Units import * from .OptionList import WorkingFluid, Configuration @@ -26,7 +29,7 @@ from .WellBores import WellBores, RameyCalc, ProdPressureDropAndPumpingPowerUsingIndexes, WellPressureDrop, \ ProdPressureDropsAndPumpingPowerUsingImpedenceModel -from geophires_x.GeoPHIRESUtils import ViscosityWater as viscositywater +from geophires_x.GeoPHIRESUtils import viscosity_water_Pa_sec esp2 = 10.0e-10 @@ -162,7 +165,6 @@ def interp_kWt_avg(self, point): return self.GWhr * interpn(ivars, self.Wt, point) / (1000. * self.time[-1] * 86400. * 365.) -# #############################point source/sink solution functions################################ def pointsource(self, yy, zz, yt, zt, ye, ze, alpha, sp, t): """ @@ -200,7 +202,6 @@ def pointsource(self, yy, zz, yt, zt, ye, ze, alpha, sp, t): return z -# #####Chebyshev approximation for numerical Laplace transformation integration from 1e-8 to 1e30################### def chebeve_pointsource(self, yy, zz, yt, zt, ye, ze, alpha, sp) -> float: """ @@ -237,29 +238,29 @@ def chebeve_pointsource(self, yy, zz, yt, zt, ye, ze, alpha, sp) -> float: return temp + (1 / sp * (math.exp(-sp * 1.0e5) - math.exp(-sp * 1.0e30))) / (ye * ze) / self.rhorock / self.cprock -# ############################Duhamerl convolution method for closed-loop system###################################### -def laplace_solution(self, sp) -> float: + +def laplace_solution(cls:WellBores, sp, pressure:PlainQuantity) -> float: """ Duhamel convolution method for closed-loop system :param sp: Laplace variable (1/s) :type sp: float :return: Toutletl :rtype: float + :param pressure: Lithostatic pressure, per https://github.com/NREL/GEOPHIRES-X/issues/113#issuecomment-1941951134 """ Toutletl = 0.0 - ss = 1.0 / sp / chebeve_pointsource(self, self.y_well, self.z_well, self.y_well, self.z_well - 0.078, - self.y_boundary, self.z_boundary, self.alpha_rock, sp) + ss = 1.0 / sp / chebeve_pointsource(cls, cls.y_well, cls.z_well, cls.y_well, cls.z_well - 0.078, + cls.y_boundary, cls.z_boundary, cls.alpha_rock, sp) - Toutletl = (self.Tini - self.Tinj.value) / sp * np.exp( - -sp * ss / self.q_circulation / 24.0 / densitywater( - self.Tini) / heatcapacitywater( - self.Tini) * self.Nonvertical_length.value - sp / self.velocity * self.Nonvertical_length.value) + Toutletl = (cls.Tini - cls.Tinj.value) / sp * np.exp( + -sp * ss / cls.q_circulation / 24.0 / density_water_kg_per_m3( + cls.Tini, pressure=pressure) / heat_capacity_water_J_per_kg_per_K( + cls.Tini, pressure=pressure) * cls.Nonvertical_length.value - sp / cls.velocity * cls.Nonvertical_length.value) return Toutletl -# ###############################Numerical Laplace transformation algorithm######################### -def inverselaplace(self, NL, MM): +def inverselaplace(cls:WellBores, NL, MM, pressure:PlainQuantity): """ Numerical Laplace transformation algorithm :param NL: NL @@ -303,13 +304,13 @@ def inverselaplace(self, NL, MM): MM = NL FI = 0.0 - Az = DLN2 / self.time_operation.value + Az = DLN2 / cls.time_operation.value Toutlet = 0.0 for k in range(1, NL + 1): Z = Az * k - Toutletl = laplace_solution(self, Z) + Toutletl = laplace_solution(cls, Z, pressure) Toutlet += Toutletl * V[k] - Toutlet = self.Tini - Az * Toutlet + Toutlet = cls.Tini - Az * Toutlet return Toutlet @@ -449,7 +450,7 @@ def __init__(self, model: Model): :type model: :class:`~geophires_x.Model.Model` :return: Nothing, and is used to initialize the class """ - model.logger.info("Init " + str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f'Init {__class__!s}: {sys._getframe().f_code.co_name}') # Initialize the superclass first to gain access to those variables super().__init__(model) @@ -856,7 +857,7 @@ def on_invalid_parameter_value(err_msg): # Multilateral code - def CalculateNonverticalPressureDrop(self, model, time_operation: float, time_max: float, al: float): + def CalculateNonverticalPressureDrop(self, model:Model, time_operation: float, time_max: float, al: float): """ Calculate nonvertical pressure drops - it will vary as the temperature varies :param model: The container class of the application, giving access to everything else, including the logger @@ -876,8 +877,15 @@ def CalculateNonverticalPressureDrop(self, model, time_operation: float, time_ma year = math.trunc(time_operation / al) # nonvertical wellbore fluid conditions based on current temperature - rhowater = densitywater(self.NonverticalProducedTemperature.value[year]) - muwater = viscositywater(self.NonverticalProducedTemperature.value[year]) + rhowater = density_water_kg_per_m3( + self.NonverticalProducedTemperature.value[year], + pressure=model.reserv.lithostatic_pressure() + ) + + muwater = viscosity_water_Pa_sec( + self.NonverticalProducedTemperature.value[year], + pressure=model.reserv.lithostatic_pressure() + ) vhoriz = self.q_circulation / rhowater / (math.pi / 4. * self.nonverticalwellborediameter.value ** 2) # assume turbulent flow. @@ -955,13 +963,19 @@ def Calculate(self, model: Model) -> None: t = self.time_operation.value while self.time_operation.value <= self.time_max: - # MIR figure out how to calculate year ands extract Tini from reserv Tresoutput array + # MIR figure out how to calculate year and extract Tini from reserv Tresoutput array year = math.trunc(self.time_operation.value / self.al) - self.NonverticalProducedTemperature.value[year] = inverselaplace(self, 16, 0) + self.NonverticalProducedTemperature.value[year] = inverselaplace( + self, 16, 0, model.reserv.lithostatic_pressure()) # update alpha_fluid value based on next temperature of reservoir - self.alpha_fluid = self.WaterThermalConductivity.value / densitywater( - self.NonverticalProducedTemperature.value[year]) / heatcapacitywater( - self.NonverticalProducedTemperature.value[year]) * 24.0 * 3600.0 + + self.alpha_fluid = self.WaterThermalConductivity.value / density_water_kg_per_m3( + self.NonverticalProducedTemperature.value[year], + pressure=model.reserv.lithostatic_pressure() + ) / heat_capacity_water_J_per_kg_per_K( + self.NonverticalProducedTemperature.value[year], + pressure=model.reserv.lithostatic_pressure() + ) * 24.0 * 3600.0 self.time_operation.value += self.al self.time_operation.value = t # set it back for use in later loop @@ -972,7 +986,10 @@ def Calculate(self, model: Model) -> None: # Calculate the temperature drop as the fluid makes it way to the surface (or use a constant value) # if not Ramey, hard code a user-supplied temperature drop. self.ProdTempDrop.value = self.tempdropprod.value - model.reserv.cpwater.value = heatcapacitywater(self.NonverticalProducedTemperature.value[0]) + model.reserv.cpwater.value = heat_capacity_water_J_per_kg_per_K( + self.NonverticalProducedTemperature.value[0], + pressure=model.reserv.lithostatic_pressure() + ) if self.rameyoptionprod.value: self.ProdTempDrop.value = RameyCalc(model.reserv.krock.value, model.reserv.rhorock.value, @@ -992,10 +1009,17 @@ def Calculate(self, model: Model) -> None: # Now use the parent's calculation to calculate the upgoing and downgoing pressure drops and pumping power self.PumpingPower.value = [0.0] * len(self.ProducedTemperature.value) # initialize the array if self.productionwellpumping.value: - self.rhowaterinj = densitywater(model.reserv.Tsurf.value) * np.linspace(1, 1, - len(self.ProducedTemperature.value)) - self.rhowaterprod = densitywater(model.reserv.Trock.value) * np.linspace(1, 1, - len(self.ProducedTemperature.value)) + self.rhowaterinj = density_water_kg_per_m3( + model.reserv.Tsurf.value, + pressure=model.reserv.lithostatic_pressure() + ) * np.linspace(1, 1, + len(self.ProducedTemperature.value)) + + self.rhowaterprod = density_water_kg_per_m3( + model.reserv.Trock.value, + pressure=model.reserv.lithostatic_pressure() + ) * np.linspace(1, 1, len(self.ProducedTemperature.value)) + self.DPProdWell.value, f3, vprod, self.rhowaterprod = WellPressureDrop(model, model.reserv.Tresoutput.value - self.ProdTempDrop.value / 4.0, self.prodwellflowrate.value, @@ -1089,12 +1113,23 @@ def Calculate(self, model: Model) -> None: # calculate water values based on initial temperature - # FIXME TODO - get rid of fallback calculations https://github.com/NREL/GEOPHIRES-X/issues/110 - rho_water = densitywater(self.Tout[0], enable_fallback_calculation=True) + rho_water = density_water_kg_per_m3( + self.Tout[0], + pressure = model.reserv.lithostatic_pressure(), + + # FIXME TODO - get rid of fallback calculations https://github.com/NREL/GEOPHIRES-X/issues/110 + enable_fallback_calculation=True + ) + + + model.reserv.cpwater.value = heat_capacity_water_J_per_kg_per_K( + self.Tout[0], + + pressure=model.reserv.lithostatic_pressure(), - # FIXME TODO - get rid of fallback calculations https://github.com/NREL/GEOPHIRES-X/issues/110 - model.reserv.cpwater.value = heatcapacitywater( - self.Tout[0], enable_fallback_calculation=True) # Need this for surface plant output calculation + # FIXME TODO - get rid of fallback calculations https://github.com/NREL/GEOPHIRES-X/issues/110 + enable_fallback_calculation=True + ) # Need this for surface plant output calculation # set pumping power to zero for all times, assuming that the thermosphere wil always # make pumping of working fluid unnecessary diff --git a/src/geophires_x/CylindricalReservoir.py b/src/geophires_x/CylindricalReservoir.py index 807136d0..3eb910b7 100644 --- a/src/geophires_x/CylindricalReservoir.py +++ b/src/geophires_x/CylindricalReservoir.py @@ -1,4 +1,17 @@ -from .Reservoir import * +import math +import os +import sys +from functools import lru_cache + +import numpy as np + +from geophires_x.GeoPHIRESUtils import density_water_kg_per_m3 + +from geophires_x.GeoPHIRESUtils import heat_capacity_water_J_per_kg_per_K +import geophires_x.Model as Model +from geophires_x.Parameter import floatParameter, OutputParameter +from geophires_x.Reservoir import Reservoir +from geophires_x.Units import Units, PercentUnit, AreaUnit, TemperatureUnit, LengthUnit class CylindricalReservoir(Reservoir): @@ -78,7 +91,7 @@ def __init__(self, model: Model): CurrentUnits=LengthUnit.METERS, ErrMessage="assume default cylindrical reservoir radius of effect (30 m)", ToolTipText="The radius of effect - the distance into the rock from the center of the cylinder that will" - + " be perturbed by at least 1 C", + + " be perturbed by at least 1 C", ) self.RadiusOfEffectFactor = self.ParameterDict[self.RadiusOfEffectFactor.Name] = floatParameter( "Cylindrical Reservoir Radius of Effect Factor", @@ -91,7 +104,7 @@ def __init__(self, model: Model): CurrentUnits=PercentUnit.TENTH, ErrMessage="assume default cyclindrical reservoir radius of effect reduction factor (0.1)", ToolTipText="The radius of effect reduction factor - to account for the fact that we cannot extract 100%" - + " of the heat in the cylinder.", + + " of the heat in the cylinder.", ) sclass = str(__class__).replace(" None: :type model: :class:`~geophires_x.Model.Model` :return: Nothing, but it does make calculations and set values in the model """ - model.logger.info(f"Init {str(__class__)}: {sys._getframe().f_code.co_name}") + model.logger.info(f'Init {str(__class__)}: {sys._getframe().f_code.co_name}') # specify time-stepping vectors self.timevector.value = np.linspace( @@ -227,17 +240,19 @@ def Calculate(self, model: Model) -> None: 2.0 * math.pi * pow(self.RadiusOfEffect.value, 2) ) # m3 self.InitialReservoirHeatContent.value = ( - self.RadiusOfEffectFactor.value - * self.resvolcalc.value - * self.rhorock.value - * self.cprock.value - * (self.Trock.value - model.wellbores.Tinj.value) - ) / 1e15 # 10^15 J - self.cpwater.value = heatcapacitywater( - model.wellbores.Tinj.value * 0.5 + (self.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5 + self.RadiusOfEffectFactor.value + * self.resvolcalc.value + * self.rhorock.value + * self.cprock.value + * (self.Trock.value - model.wellbores.Tinj.value) + ) / 1e15 # 10^15 J + self.cpwater.value = heat_capacity_water_J_per_kg_per_K( + model.wellbores.Tinj.value * 0.5 + (self.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5, + pressure=model.reserv.lithostatic_pressure() ) - self.rhowater.value = densitywater( - model.wellbores.Tinj.value * 0.5 + (self.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5 + self.rhowater.value = density_water_kg_per_m3( + model.wellbores.Tinj.value * 0.5 + (self.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5, + pressure=model.reserv.lithostatic_pressure() ) - model.logger.info(f"complete {str(__class__)}: {sys._getframe().f_code.co_name}") + model.logger.info(f'complete {str(__class__)}: {sys._getframe().f_code.co_name}') diff --git a/src/geophires_x/GeoPHIRESUtils.py b/src/geophires_x/GeoPHIRESUtils.py index 4bbcce5d..e4cf8ca7 100644 --- a/src/geophires_x/GeoPHIRESUtils.py +++ b/src/geophires_x/GeoPHIRESUtils.py @@ -1,20 +1,26 @@ from __future__ import annotations import logging +import os +import sys from os.path import exists import dataclasses import json import numbers from functools import lru_cache +from typing import Optional +import pint +import scipy +from pint.facets.plain import PlainQuantity from scipy.interpolate import interp1d import numpy as np -from geophires_x.Parameter import * +import CoolProp.CoolProp as CP -from iapws.iapws97 import IAPWS97 +from geophires_x.Parameter import ParameterEntry -_logger = logging.getLogger('root') +_logger = logging.getLogger('root') # TODO use __name__ instead of root _T = np.array( [ @@ -83,14 +89,30 @@ _interp_util_eff_func = interp1d(_T, _UtilEff) +_ureg = pint.get_application_registry() +_ureg.load_definitions(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'GEOPHIRES3_newunits.txt')) -@lru_cache(maxsize=None) -def DensityWater(Twater_degC: float, enable_fallback_calculation=False) -> float: + +def quantity(value: float, unit: str) -> PlainQuantity: + """ + :rtype: pint.registry.Quantity - note type annotation uses PlainQuantity due to issues with python 3.8 failing + to import the Quantity TypeAlias + """ + return _ureg.Quantity(value, unit) + + +@lru_cache +def density_water_kg_per_m3( + Twater_degC: float, + pressure: Optional[PlainQuantity] = None, + enable_fallback_calculation=False) -> float: """ Calculate the density of water as a function of temperature. Args: Twater_degC: The temperature of water in degrees C. + pressure: Pressure - should be provided + enable_fallback_calculation: deprecation shim, do not use, see https://github.com/NREL/GEOPHIRES-X/issues/110 Returns: The density of water in kg/m³. Raises: @@ -100,20 +122,24 @@ def DensityWater(Twater_degC: float, enable_fallback_calculation=False) -> float raise ValueError(f'Twater_degC ({Twater_degC}) must be a float or convertible to float.') try: - return IAPWS97(T=celsius_to_kelvin(Twater_degC), x=0).rho - except NotImplementedError as nie: + if pressure is not None: + return CP.PropsSI('D', 'T', celsius_to_kelvin(Twater_degC), 'P', pressure.to('Pa').magnitude, 'Water') + else: + _logger.warning(f'density_water: No pressure provided, using vapor quality=0 instead') + return CP.PropsSI('D', 'T', celsius_to_kelvin(Twater_degC), 'Q', 0, 'Water') + + except (NotImplementedError, ValueError) as e: if enable_fallback_calculation: - _logger.warning(f'DensityWater: Fallback calculation triggered for {Twater_degC}C') + _logger.warning(f'density_water: Fallback calculation triggered for {Twater_degC}C') Twater_K = celsius_to_kelvin(Twater_degC) # water density correlation as used in Geophires v1.2 [kg/m3] rho_water = (.7983223 + (1.50896E-3 - 2.9104E-6 * Twater_K) * Twater_K) * 1E3 return rho_water - raise ValueError(f'Input temperature {Twater_degC} is out of range or otherwise not implemented') from nie + raise ValueError(f'Input temperature {Twater_degC} is out of range or otherwise not implemented') from e -@lru_cache(maxsize=None) def celsius_to_kelvin(celsius: float) -> float: """ Convert temperature from Celsius to Kelvin. @@ -126,14 +152,17 @@ def celsius_to_kelvin(celsius: float) -> float: ValueError: If celsius is not a float or convertible to float. """ if not isinstance(celsius, (int, float)): - raise ValueError("Invalid input for celsius. celsius must be a number.") + raise ValueError(f"Invalid input for celsius ({celsius}). celsius must be a number.") CELSIUS_TO_KELVIN_CONSTANT = 273.15 return celsius + CELSIUS_TO_KELVIN_CONSTANT -@lru_cache(maxsize=None) -def ViscosityWater(Twater_degC: float, enable_fallback_calculation=False) -> float: +@lru_cache +def viscosity_water_Pa_sec( + Twater_degC: float, + pressure: Optional[PlainQuantity] = None, + enable_fallback_calculation=False) -> float: """ The ViscosityWater function is used to calculate the dynamic viscosity of water as a function of temperature. Args: @@ -145,25 +174,36 @@ def ViscosityWater(Twater_degC: float, enable_fallback_calculation=False) -> flo """ try: - return IAPWS97(T=celsius_to_kelvin(Twater_degC), x=0).mu - except NotImplementedError as nie: + if pressure is not None: + return CP.PropsSI('V', 'T', celsius_to_kelvin(Twater_degC), 'P', pressure.to('Pa').magnitude, 'Water') + else: + _logger.warning(f'viscosity_water: No pressure provided, using vapor quality=0 instead') + return CP.PropsSI('V', 'T', celsius_to_kelvin(Twater_degC), 'Q', 0, 'Water') + + except (NotImplementedError, ValueError) as e: if enable_fallback_calculation: - _logger.warning(f'ViscosityWater: Fallback calculation triggered for {Twater_degC}C') + _logger.warning(f'viscosity_water: Fallback calculation triggered for {Twater_degC}C') # accurate to within 2.5% from 0 to 370 degrees C [Ns/m2] muwater = 2.414E-5 * np.power(10, 247.8 / (Twater_degC + 273.15 - 140)) return muwater - raise ValueError(f'Input temperature {Twater_degC} is out of range or otherwise not implemented') from nie + raise ValueError(f'Input temperature {Twater_degC} is out of range or otherwise not implemented') from e -@lru_cache(maxsize=None) -def HeatCapacityWater(Twater_degC: float, enable_fallback_calculation=False) -> float: +@lru_cache +def heat_capacity_water_J_per_kg_per_K( + Twater_degC: float, + pressure: Optional[PlainQuantity] = None, + enable_fallback_calculation=False +) -> float: """ Calculate the isobaric specific heat capacity (c_p) of water as a function of temperature. Args: Twater_degC: The temperature of water in degrees C. + pressure: Pressure - should be provided + enable_fallback_calculation: deprecation shim, do not use, see https://github.com/NREL/GEOPHIRES-X/issues/110 Returns: The isobaric specific heat capacity of water as a function of temperature in J/(kg·K). Raises: @@ -177,10 +217,15 @@ def HeatCapacityWater(Twater_degC: float, enable_fallback_calculation=False) -> ) try: - return IAPWS97(T=celsius_to_kelvin(Twater_degC), x=0).cp * 1e3 - except NotImplementedError as nie: + if pressure is not None: + return CP.PropsSI('C', 'T', celsius_to_kelvin(Twater_degC), 'P', pressure.to('Pa').magnitude, 'Water') + else: + _logger.warning(f'heat_capacity_water: No pressure provided, using vapor quality=0 instead') + return CP.PropsSI('C', 'T', celsius_to_kelvin(Twater_degC), 'Q', 0, 'Water') + + except (NotImplementedError, ValueError) as e: if enable_fallback_calculation: - _logger.warning(f'HeatCapacityWater: Fallback calculation triggered for {Twater_degC}C') + _logger.warning(f'heat_capacity_water: Fallback calculation triggered for {Twater_degC}C') Twater = (Twater_degC + 273.15) / 1000 A = -203.6060 @@ -193,10 +238,10 @@ def HeatCapacityWater(Twater_degC: float, enable_fallback_calculation=False) -> return cpwater - raise ValueError(f'Input temperature {Twater_degC} is out of range or otherwise not implemented') from nie + raise ValueError(f'Input temperature {Twater_degC} is out of range or otherwise not implemented') from e -@lru_cache(maxsize=None) +@lru_cache def RecoverableHeat(Twater_degC: float) -> float: """ the RecoverableHeat function is used to calculate the recoverable heat fraction as a function of temperature @@ -227,13 +272,16 @@ def RecoverableHeat(Twater_degC: float) -> float: return recoverable_heat -@lru_cache(maxsize=None) -def VaporPressureWater(Twater_degC: float, enable_fallback_calculation=False) -> float: +@lru_cache +def vapor_pressure_water_kPa(Twater_degC: float, enable_fallback_calculation=False) -> float: """ - The VaporPressureWater function is used to calculate the vapor pressure of water as a function of temperature. + Calculate the vapor pressure of water as a function of temperature. + + TODO accept pressure as parameter https://github.com/NREL/GEOPHIRES-X/issues/118 Args: Twater_degC: the temperature of water in degrees C + enable_fallback_calculation: deprecation shim, do not use, see https://github.com/NREL/GEOPHIRES-X/issues/110 Returns: The vapor pressure of water as a function of temperature in kPa Raises: @@ -247,29 +295,40 @@ def VaporPressureWater(Twater_degC: float, enable_fallback_calculation=False) -> raise ValueError(f'Twater_degC ({Twater_degC}) must be greater than or equal to 0') try: - return IAPWS97(T=celsius_to_kelvin(Twater_degC), x=0).P * 1e3 - except NotImplementedError as nie: + return (quantity(CP.PropsSI('P', 'T', celsius_to_kelvin(Twater_degC), 'Q', 0, 'Water'), 'Pa') + .to('kPa').magnitude) + except (NotImplementedError, ValueError) as e: if enable_fallback_calculation: - _logger.warning(f'VaporPressureWater: Fallback calculation triggered for {Twater_degC}C') + _logger.warning(f'vapor_pressure_water: Fallback calculation triggered for {Twater_degC}C') + return _vapor_pressure_antoine_equation_kPa(Twater_degC) + + + raise ValueError(f'Input temperature {Twater_degC} is out of range or otherwise not implemented') from e - if Twater_degC < 100: - A = 8.07131 - B = 1730.63 - C = 233.426 - else: - A = 8.14019 - B = 1810.94 - C = 244.485 - vp = 133.322 * (10 ** (A - B / (C + Twater_degC))) / 1000 # water vapor pressure in kPa using Antione Equation - return vp +def _vapor_pressure_antoine_equation_kPa(Twater_degC: float) -> float: + """ + water vapor pressure in kPa using Antione Equation + Do not add additional consumers, use geophires_x.GeoPHIRESUtils.vapor_pressure_water_kPa instead. + """ - raise ValueError(f'Input temperature {Twater_degC} is out of range or otherwise not implemented') from nie + if Twater_degC < 100: + A = 8.07131 + B = 1730.63 + C = 233.426 + else: + A = 8.14019 + B = 1810.94 + C = 244.485 + vp = 133.322 * ( + 10 ** (A - B / (C + Twater_degC))) / 1000 + return vp -@lru_cache(maxsize=None) -def EntropyH20_func(temperature_degC: float) -> float: +@lru_cache +def entropy_water_kJ_per_kg_per_K(temperature_degC: float) -> float: """ - the EntropyH20_func function is used to calculate the entropy of water as a function of temperature + Calculate the entropy of water as a function of temperature + TODO take pressure as a parameter https://github.com/NREL/GEOPHIRES-X/issues/119 Args: temperature_degC: the temperature of water in degrees C @@ -284,15 +343,16 @@ def EntropyH20_func(temperature_degC: float) -> float: raise TypeError(f'Input temperature ({temperature_degC}) must be a float') try: - return IAPWS97(T=celsius_to_kelvin(temperature_degC), x=0).s - except NotImplementedError as nie: - raise ValueError(f'Input temperature {temperature_degC} is out of range or otherwise not implemented') from nie + return CP.PropsSI('S', 'T', celsius_to_kelvin(temperature_degC), 'Q', 0, 'Water') * 1e-3 + except (NotImplementedError, ValueError) as e: + raise ValueError(f'Input temperature {temperature_degC} is out of range or otherwise not implemented') from e -@lru_cache(maxsize=None) -def EnthalpyH20_func(temperature_degC: float) -> float: +@lru_cache +def enthalpy_water_kJ_per_kg(temperature_degC: float) -> float: """ - the EnthalpyH20_func function is used to calculate the enthalpy of water as a function of temperature + Calculate the enthalpy of water as a function of temperature + TODO take pressure as a parameter https://github.com/NREL/GEOPHIRES-X/issues/119 Args: temperature_degC: the temperature of water in degrees C (float) @@ -308,12 +368,12 @@ def EnthalpyH20_func(temperature_degC: float) -> float: raise TypeError(f'Input temperature ({temperature_degC}) must be a float') try: - return IAPWS97(T=celsius_to_kelvin(temperature_degC), x=0).h - except NotImplementedError as nie: - raise ValueError(f'Input temperature {temperature_degC} is out of range or otherwise not implemented') from nie + return CP.PropsSI('H', 'T', celsius_to_kelvin(temperature_degC), 'Q', 0, 'Water') * 1e-3 + except (NotImplementedError, ValueError) as e: + raise ValueError(f'Input temperature {temperature_degC} is out of range or otherwise not implemented') from e -@lru_cache(maxsize=None) +@lru_cache def UtilEff_func(temperature_degC: float) -> float: """ the UtilEff_func function is used to calculate the utilization efficiency of the system as a function of temperature @@ -438,3 +498,24 @@ def default(self, o): def json_dumpse(obj) -> str: return json.dumps(obj, cls=_EnhancedJSONEncoder) + + +def lithostatic_pressure_MPa(rho_kg_per_m3: float, depth_m: float) -> float: + """ + Calculate lithostatic pressure in a reservoir. + + Args: + rho_kg_per_m3 (float): Density of the fluid in kg/m^3. + depth_m (float): Depth of the reservoir in meters. + Returns: + float: Lithostatic pressure in megapascals (MPa). + """ + + g = scipy.constants.g # Acceleration due to gravity (m/s^2) + + # Calculate lithostatic pressure + pressure_Pa = rho_kg_per_m3 * g * depth_m + + pressure_mpa = quantity(pressure_Pa, 'Pa').to('MPa').magnitude + + return pressure_mpa diff --git a/src/geophires_x/Model.py b/src/geophires_x/Model.py index ebf34ab2..e2734e4d 100644 --- a/src/geophires_x/Model.py +++ b/src/geophires_x/Model.py @@ -4,6 +4,7 @@ import time import logging.config +from geophires_x.Reservoir import Reservoir from geophires_x.EconomicsCCUS import EconomicsCCUS from geophires_x.EconomicsS_DAC_GT import EconomicsS_DAC_GT from geophires_x.GeoPHIRESUtils import read_input_file @@ -85,22 +86,22 @@ def __init__(self, enable_geophires_logging_config=True, input_file=None): # we need to decide which reservoir to instantiate based on the user input (InputParameters), # which we just read above for the first time # Default is Thermal drawdown percentage model (GETEM) - self.reserv = TDPReservoir(self) + self.reserv: Reservoir = TDPReservoir(self) if 'Reservoir Model' in self.InputParameters: if self.InputParameters['Reservoir Model'].sValue == '0': - self.reserv = CylindricalReservoir(self) # Simple Cylindrical Reservoir + self.reserv: Reservoir = CylindricalReservoir(self) # Simple Cylindrical Reservoir elif self.InputParameters['Reservoir Model'].sValue == '1': - self.reserv = MPFReservoir(self) # Multiple parallel fractures model (LANL) + self.reserv: Reservoir = MPFReservoir(self) # Multiple parallel fractures model (LANL) elif self.InputParameters['Reservoir Model'].sValue == '2': - self.reserv = LHSReservoir(self) # Multiple parallel fractures model (LANL) + self.reserv: Reservoir = LHSReservoir(self) # Multiple parallel fractures model (LANL) elif self.InputParameters['Reservoir Model'].sValue == '3': - self.reserv = SFReservoir(self) # Drawdown parameter model (Tester) + self.reserv: Reservoir = SFReservoir(self) # Drawdown parameter model (Tester) elif self.InputParameters['Reservoir Model'].sValue == '5': - self.reserv = UPPReservoir(self) # Generic user-provided temperature profile + self.reserv: Reservoir = UPPReservoir(self) # Generic user-provided temperature profile elif self.InputParameters['Reservoir Model'].sValue == '6': - self.reserv = TOUGH2Reservoir(self) # Tough2 is called + self.reserv: Reservoir = TOUGH2Reservoir(self) # Tough2 is called elif self.InputParameters['Reservoir Model'].sValue == '7': - self.reserv = SUTRAReservoir(self) # SUTRA output is created + self.reserv: Reservoir = SUTRAReservoir(self) # SUTRA output is created # initialize the default objects self.wellbores = WellBores(self) @@ -128,7 +129,7 @@ def __init__(self, enable_geophires_logging_config=True, input_file=None): # that have AGS functionality. # that means importing them, initializing them, then reading their parameters # use the simple cylindrical reservoir for all AGS systems. - self.reserv = CylindricalReservoir(self) + self.reserv: Reservoir = CylindricalReservoir(self) self.wellbores = AGSWellBores(self) self.surfaceplant = SurfacePlantAGS(self) self.economics = AGSEconomics(self) diff --git a/src/geophires_x/Parameter.py b/src/geophires_x/Parameter.py index 3a518ae7..610b3028 100644 --- a/src/geophires_x/Parameter.py +++ b/src/geophires_x/Parameter.py @@ -11,6 +11,8 @@ from abc import ABC +from pint.facets.plain import PlainQuantity + from geophires_x.Units import * ureg = pint.get_application_registry() @@ -19,11 +21,10 @@ class HasQuantity(ABC): - def quantity(self) -> Any: + def quantity(self) -> PlainQuantity: """ - :rtype: pint.registry.Quantity; TODO - importing this type appears to be incompatible with python 3.8 - due to pint's use of a TypeAlias to declare it, hence why we declare return type as Any and use this - documentation to specify rtype for now. + :rtype: pint.registry.Quantity - note type annotation uses PlainQuantity due to issues with python 3.8 failing + to import the Quantity TypeAlias """ return ureg.Quantity(self.value, str(self.CurrentUnits.value)) diff --git a/src/geophires_x/Reservoir.py b/src/geophires_x/Reservoir.py index a2e0cad3..7742f0c6 100644 --- a/src/geophires_x/Reservoir.py +++ b/src/geophires_x/Reservoir.py @@ -3,13 +3,15 @@ import math from functools import lru_cache import numpy as np +from pint.facets.plain import PlainQuantity + from .OptionList import ReservoirModel, FractureShape, ReservoirVolume from .Parameter import intParameter, floatParameter, listParameter, OutputParameter, ReadParameter from .Units import * import geophires_x.Model as Model -from geophires_x.GeoPHIRESUtils import HeatCapacityWater as heatcapacitywater -from geophires_x.GeoPHIRESUtils import DensityWater as densitywater +from geophires_x.GeoPHIRESUtils import heat_capacity_water_J_per_kg_per_K, quantity, lithostatic_pressure_MPa +from geophires_x.GeoPHIRESUtils import density_water_kg_per_m3 class Reservoir: """ @@ -774,10 +776,15 @@ def Calculate(self, model: Model) -> None: if self.resoption.value != ReservoirModel.SUTRA: # calculate reservoir water properties - self.cpwater.value = heatcapacitywater( - model.wellbores.Tinj.value * 0.5 + (self.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5) - self.rhowater.value = densitywater( - model.wellbores.Tinj.value * 0.5 + (self.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5) + self.cpwater.value = heat_capacity_water_J_per_kg_per_K( + model.wellbores.Tinj.value * 0.5 + (self.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5, + pressure=self.lithostatic_pressure() + ) + + self.rhowater.value = density_water_kg_per_m3( + model.wellbores.Tinj.value * 0.5 + (self.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5, + pressure=self.lithostatic_pressure() + ) # temperature gain in injection wells model.wellbores.Tinj.value = model.wellbores.Tinj.value + model.wellbores.tempgaininj.value @@ -787,3 +794,9 @@ def Calculate(self, model: Model) -> None: self.Trock.value - model.wellbores.Tinj.value) / 1E15 # 10^15 J model.logger.info(f'complete {str(__class__)}: {sys._getframe().f_code.co_name}') + + def lithostatic_pressure(self) -> PlainQuantity: + return quantity(lithostatic_pressure_MPa(self.rhorock.quantity().to('kg/m**3').magnitude, + self.depth.quantity().to('m').magnitude), 'MPa') + + diff --git a/src/geophires_x/WellBores.py b/src/geophires_x/WellBores.py index 1d36496e..e5aee7ee 100644 --- a/src/geophires_x/WellBores.py +++ b/src/geophires_x/WellBores.py @@ -1,9 +1,9 @@ import math import numpy as np from .Parameter import floatParameter, intParameter, boolParameter, OutputParameter, ReadParameter -from geophires_x.GeoPHIRESUtils import VaporPressureWater as vaporpressurewater -from geophires_x.GeoPHIRESUtils import DensityWater as densitywater -from geophires_x.GeoPHIRESUtils import ViscosityWater as viscositywater +from geophires_x.GeoPHIRESUtils import vapor_pressure_water_kPa +from geophires_x.GeoPHIRESUtils import density_water_kg_per_m3 +from geophires_x.GeoPHIRESUtils import viscosity_water_Pa_sec from .Units import * import geophires_x.Model as Model from .OptionList import ReservoirModel @@ -83,12 +83,27 @@ def WellPressureDrop(model: Model, Taverage: float, wellflowrate: float, welldia # start by calculating wellbore fluid conditions [kPa], noting that most temperature drop happens # in upper section (because surrounding rock temperature is lowest in upper section) - # FIXME TODO - get rid of fallback calculations https://github.com/NREL/GEOPHIRES-X/issues/110 - rhowater = np.array([densitywater(t, enable_fallback_calculation=True) for t in - Taverage]) # replace with correlation based on Tprodaverage + rhowater = np.array([ + density_water_kg_per_m3( + t, + pressure=model.reserv.lithostatic_pressure(), - # FIXME TODO - get rid of fallback calculations https://github.com/NREL/GEOPHIRES-X/issues/110 - muwater = np.array([viscositywater(t, enable_fallback_calculation=True) for t in Taverage]) # replace with correlation based on Tprodaverage + # FIXME TODO - get rid of fallback calculations https://github.com/NREL/GEOPHIRES-X/issues/110 + enable_fallback_calculation=True, + ) + for t in Taverage + ]) # replace with correlation based on Tprodaverage + + muwater = np.array([ + viscosity_water_Pa_sec( + t, + pressure=model.reserv.lithostatic_pressure(), + + # FIXME TODO - get rid of fallback calculations https://github.com/NREL/GEOPHIRES-X/issues/110 + enable_fallback_calculation=True + ) + for t in Taverage + ]) # replace with correlation based on Tprodaverage v = wellflowrate / rhowater / (math.pi / 4. * welldiam ** 2) Rewater = 4.0 * wellflowrate / (muwater * math.pi * welldiam) # laminar or turbulent flow? @@ -141,9 +156,11 @@ def InjectionWellPressureDrop(model: Model, Taverage: float, wellflowrate: float """ # start by calculating wellbore fluid conditions [kPa], noting that most temperature drop happens in # upper section (because surrounding rock temperature is lowest in upper section) - rhowater = densitywater(Taverage) * np.linspace(1, 1, len(model.wellbores.ProducedTemperature.value)) + rhowater = (density_water_kg_per_m3(Taverage, pressure=model.reserv.lithostatic_pressure()) + * np.linspace(1, 1, len(model.wellbores.ProducedTemperature.value))) + # replace with correlation based on Tinjaverage - muwater = viscositywater(Taverage) * np.linspace(1, 1, len(model.wellbores.ProducedTemperature.value)) + muwater = viscosity_water_Pa_sec(Taverage, pressure=model.reserv.lithostatic_pressure()) * np.linspace(1, 1, len(model.wellbores.ProducedTemperature.value)) v = nprod / ninj * wellflowrate * (1.0 + waterloss) / rhowater / (math.pi / 4. * welldiam ** 2) Rewater = 4. * nprod / ninj * wellflowrate * (1.0 + waterloss) / ( muwater * math.pi * welldiam) # laminar or turbulent flow? @@ -321,7 +338,7 @@ def ProdPressureDropAndPumpingPowerUsingIndexes(model: Model, usebuiltinhydrosta CP = 4.64E-7 CT = 9E-4 / (30.796 * Trock ** (-0.552)) Phydrostaticcalc = 0 + 1. / CP * ( - math.exp(densitywater(Tsurf) * 9.81 * CP / 1000 * (depth - CT / 2 * gradient * depth ** 2)) - 1) + math.exp(density_water_kg_per_m3(Tsurf, pressure=model.reserv.lithostatic_pressure()) * 9.81 * CP / 1000 * (depth - CT / 2 * gradient * depth ** 2)) - 1) if productionwellpumping: # [kPa] = 50 psi. Excess pressure covers non-condensable gas pressure and net positive suction head for the pump @@ -329,7 +346,7 @@ def ProdPressureDropAndPumpingPowerUsingIndexes(model: Model, usebuiltinhydrosta # [kPa] is minimum production pump inlet pressure and minimum wellhead pressure # FIXME TODO - get rid of fallback calculations https://github.com/NREL/GEOPHIRES-X/issues/110 - Pminimum = vaporpressurewater(Trock, enable_fallback_calculation=True) + Pexcess + Pminimum = vapor_pressure_water_kPa(Trock, enable_fallback_calculation=True) + Pexcess if usebuiltinppwellheadcorrelation: Pprodwellhead = Pminimum # production wellhead pressure [kPa] @@ -337,10 +354,11 @@ def ProdPressureDropAndPumpingPowerUsingIndexes(model: Model, usebuiltinhydrosta Pprodwellhead = ppwellhead if Pprodwellhead < Pminimum: Pprodwellhead = Pminimum - print("Warning: provided production wellhead pressure under minimum pressure. \ - GEOPHIRES will assume minimum wellhead pressure") - model.logger.warning("Provided production wellhead pressure under minimum pressure. \ - GEOPHIRES will assume minimum wellhead pressure") + msg = ('Provided production wellhead pressure under minimum pressure. ' + 'GEOPHIRES will assume minimum wellhead pressure') + + print(f'Warning: {msg}') + model.logger.warning(msg) PIkPa = PI / 100.0 # convert PI from kg/s/bar to kg/s/kPa @@ -350,16 +368,15 @@ def ProdPressureDropAndPumpingPowerUsingIndexes(model: Model, usebuiltinhydrosta pumpdepthfinal = np.max(pumpdepth) if pumpdepthfinal < 0.0: pumpdepthfinal = 0.0 - print("Warning: GEOPHIRES calculates negative production well pumping depth. \ - No production well pumps will be assumed") - model.logger.warning( - "GEOPHIRES calculates negative production well pumping depth. \ - No production well pumps will be assumed") + msg = ('GEOPHIRES calculates negative production well pumping depth. ' + 'No production well pumps will be assumed') + print(f'Warning: {msg}') + model.logger.warning(msg) elif pumpdepthfinal > 600.0: - print("Warning: GEOPHIRES calculates production pump depth to be deeper than 600 m. \ - Verify reservoir pressure, production well flow rate and production well dimensions") - model.logger.warning("GEOPHIRES calculates production pump depth to be deeper than 600 m. \ - Verify reservoir pressure, production well flow rate and production well dimensions") + msg = ('GEOPHIRES calculates production pump depth to be deeper than 600 m. ' + 'Verify reservoir pressure, production well flow rate and production well dimensions') + print(f'Warning: {msg}') + model.logger.warning(msg) # calculate production well pumping pressure [kPa] DPProdWell = Pprodwellhead - (Phydrostaticcalc - wellflowrate / PIkPa - rhowaterprod * 9.81 * depth / 1E3 - f3 * @@ -441,7 +458,7 @@ def InjPressureDropAndPumpingPowerUsingIndexes(model: Model, usebuiltinhydrostat CP = 4.64E-7 CT = 9E-4 / (30.796 * Trock ** (-0.552)) Phydrostaticcalc = 0 + 1. / CP * ( - math.exp(densitywater(Tsurf) * 9.81 * CP / 1000 * (depth - CT / 2 * gradient * depth ** 2)) - 1) + math.exp(density_water_kg_per_m3(Tsurf, pressure=model.reserv.lithostatic_pressure()) * 9.81 * CP / 1000 * (depth - CT / 2 * gradient * depth ** 2)) - 1) if productionwellpumping: # [kPa] = 50 psi. Excess pressure covers non-condensable gas pressure and net positive suction head for the pump @@ -449,7 +466,7 @@ def InjPressureDropAndPumpingPowerUsingIndexes(model: Model, usebuiltinhydrostat # [kPa] is minimum production pump inlet pressure and minimum wellhead pressure # FIXME TODO - get rid of fallback calculations https://github.com/NREL/GEOPHIRES-X/issues/110 - Pminimum = vaporpressurewater(Trock, enable_fallback_calculation=True) + Pexcess + Pminimum = vapor_pressure_water_kPa(Trock, enable_fallback_calculation=True) + Pexcess if usebuiltinppwellheadcorrelation: Pprodwellhead = Pminimum # production wellhead pressure [kPa] @@ -457,10 +474,10 @@ def InjPressureDropAndPumpingPowerUsingIndexes(model: Model, usebuiltinhydrostat Pprodwellhead = ppwellhead if Pprodwellhead < Pminimum: Pprodwellhead = Pminimum - print("Warning: provided production wellhead pressure under minimum pressure. \ - GEOPHIRES will assume minimum wellhead pressure") - model.logger.warning("Provided production wellhead pressure under minimum pressure. \ - GEOPHIRES will assume minimum wellhead pressure") + msg = (f'Provided production wellhead pressure ({Pprodwellhead}) under minimum pressure ({Pminimum}). ' + f'GEOPHIRES will assume minimum wellhead pressure') + print(f'Warning: {msg}') + model.logger.warning(msg) IIkPa = II / 100.0 # convert II from kg/s/bar to kg/s/kPa diff --git a/src/geophires_x/__init__.py b/src/geophires_x/__init__.py index f6310076..da4564dd 100644 --- a/src/geophires_x/__init__.py +++ b/src/geophires_x/__init__.py @@ -1 +1 @@ -__version__ = '3.4.0' +__version__ = '3.4.1' diff --git a/src/hip_ra/HIP_RA.py b/src/hip_ra/HIP_RA.py index bf8a16d3..d8b4db7a 100755 --- a/src/hip_ra/HIP_RA.py +++ b/src/hip_ra/HIP_RA.py @@ -51,8 +51,7 @@ def _DensityWater(Twater: float) -> float: the DensityWater function is used to calculate the density of water as a function of temperature Args: - Twater: the temperature of water in degrees C - + Twater: the temperature of water in degrees C Returns: density of water in kg/m3 """ diff --git a/src/hip_ra_x/hip_ra_x.py b/src/hip_ra_x/hip_ra_x.py index 8f45deb5..bbf3c50a 100644 --- a/src/hip_ra_x/hip_ra_x.py +++ b/src/hip_ra_x/hip_ra_x.py @@ -9,13 +9,13 @@ import pint -from geophires_x.GeoPHIRESUtils import DensityWater -from geophires_x.GeoPHIRESUtils import EnthalpyH20_func -from geophires_x.GeoPHIRESUtils import EntropyH20_func -from geophires_x.GeoPHIRESUtils import HeatCapacityWater from geophires_x.GeoPHIRESUtils import RecoverableHeat from geophires_x.GeoPHIRESUtils import UtilEff_func from geophires_x.GeoPHIRESUtils import celsius_to_kelvin +from geophires_x.GeoPHIRESUtils import density_water_kg_per_m3 +from geophires_x.GeoPHIRESUtils import enthalpy_water_kJ_per_kg +from geophires_x.GeoPHIRESUtils import entropy_water_kJ_per_kg_per_K +from geophires_x.GeoPHIRESUtils import heat_capacity_water_J_per_kg_per_K from geophires_x.GeoPHIRESUtils import read_input_file from geophires_x.Parameter import ConvertOutputUnits from geophires_x.Parameter import ConvertUnitsBack @@ -595,9 +595,9 @@ def Calculate(self): f'({self.fluid_density.value}) was less than min ({self.fluid_density.Min})' ) - density_water_kg_per_m3 = DensityWater(self.reservoir_temperature.value) + density_h20_kg_per_m3 = density_water_kg_per_m3(self.reservoir_temperature.value) - self.fluid_density.value = density_water_kg_per_m3 * 1_000_000_000.0 # converted to kg/km3 + self.fluid_density.value = density_h20_kg_per_m3 * 1_000_000_000.0 # converted to kg/km3 self.mass_rock.value = self.volume_rock.value * self.rock_density.value self.mass_recoverable_fluid.value = self.volume_recoverable_fluid.value * self.fluid_density.value @@ -610,7 +610,7 @@ def Calculate(self): ) self.fluid_heat_capacity.value = ( - HeatCapacityWater(self.reservoir_temperature.value) + heat_capacity_water_J_per_kg_per_K(self.reservoir_temperature.value) / 1000.0 # converted to kJ/(kg·K) ) @@ -618,12 +618,12 @@ def Calculate(self): rejection_temperature_k = celsius_to_kelvin(self.rejection_temperature.value) reservoir_temperature_k = celsius_to_kelvin(self.reservoir_temperature.value) delta_temperature_k = reservoir_temperature_k - rejection_temperature_k - fluid_net_enthalpy = fluid_net_enthalpy = EnthalpyH20_func( + fluid_net_enthalpy = fluid_net_enthalpy = enthalpy_water_kJ_per_kg( self.reservoir_temperature.value - ) - EnthalpyH20_func(self.rejection_temperature.value) - fluid_net_entropy = EntropyH20_func(self.reservoir_temperature.value) - EntropyH20_func( - self.rejection_temperature.value - ) + ) - enthalpy_water_kJ_per_kg(self.rejection_temperature.value) + fluid_net_entropy = entropy_water_kJ_per_kg_per_K( + self.reservoir_temperature.value + ) - entropy_water_kJ_per_kg_per_K(self.rejection_temperature.value) # fmt: off self.enthalpy_rock.value = ( diff --git a/tests/base_test_case.py b/tests/base_test_case.py index 4100d732..dfaf5235 100644 --- a/tests/base_test_case.py +++ b/tests/base_test_case.py @@ -1,4 +1,5 @@ import inspect +import numbers import os.path import unittest @@ -16,11 +17,20 @@ def _get_test_file_content(self, test_file_name): def _list_test_files_dir(self, test_files_dir: str): return os.listdir(self._get_test_file_path(test_files_dir)) - def assertDictAlmostEqual(self, expected, actual, msg=None, places=7): + def assertAlmostEqualWithinPercentage(self, expected, actual, msg=None, percent=5): + if isinstance(expected, numbers.Real): + self.assertAlmostEqual(expected, actual, msg=msg, delta=abs(percent / 100.0 * expected)) + else: + self.assertEqual(expected, actual, msg) + + def assertDictAlmostEqual(self, expected, actual, msg=None, places=7, percent=None): """ https://stackoverflow.com/a/53081544/21380804 """ + if percent is not None: + places = None + # check if both inputs are dicts self.assertIsInstance(expected, dict, 'First argument is not a dictionary') self.assertIsInstance(actual, dict, 'Second argument is not a dictionary') @@ -31,13 +41,19 @@ def assertDictAlmostEqual(self, expected, actual, msg=None, places=7): # check each key for key, value in expected.items(): if isinstance(value, dict): - self.assertDictAlmostEqual(expected[key], actual[key], msg=msg, places=places) + self.assertDictAlmostEqual(expected[key], actual[key], msg=msg, places=places, percent=percent) elif isinstance(value, list): - self.assertListAlmostEqual(expected[key], actual[key], msg=msg, places=places) + self.assertListAlmostEqual(expected[key], actual[key], msg=msg, places=places, percent=percent) else: - self.assertAlmostEqual(expected[key], actual[key], places=places, msg=msg) + if places is not None: + self.assertAlmostEqual(expected[key], actual[key], places=places, msg=msg) + else: + self.assertAlmostEqualWithinPercentage(expected[key], actual[key], percent=percent, msg=msg) + + def assertListAlmostEqual(self, expected, actual, msg=None, places=7, percent=None): + if percent is not None: + places = None - def assertListAlmostEqual(self, expected, actual, msg=None, places=7): # check if both inputs are dicts self.assertIsInstance(expected, list, 'First argument is not a list') self.assertIsInstance(actual, list, 'Second argument is not a list') @@ -50,11 +66,14 @@ def assertListAlmostEqual(self, expected, actual, msg=None, places=7): v1 = expected[i] v2 = actual[i] if isinstance(v1, dict): - self.assertDictAlmostEqual(v1, v2, msg=msg, places=places) + self.assertDictAlmostEqual(v1, v2, msg=msg, places=places, percent=percent) elif isinstance(v1, list): - self.assertListAlmostEqual(v1, v2, msg=msg, places=places) + self.assertListAlmostEqual(v1, v2, msg=msg, places=places, percent=percent) else: - self.assertAlmostEqual(v1, v2, places=places, msg=msg) + if places is not None: + self.assertAlmostEqual(v1, v2, places=places, msg=msg) + else: + self.assertAlmostEqualWithinPercentage(v1, v2, percent=percent, msg=msg) def assertFileContentsEqual(self, expected, actual): with open( diff --git a/tests/example1_addons.csv b/tests/example1_addons.csv index c318c909..a34896fe 100644 --- a/tests/example1_addons.csv +++ b/tests/example1_addons.csv @@ -1,7 +1,7 @@ Category,Field,Year,Value,Units SUMMARY OF RESULTS,End-Use Option,,Electricity, -SUMMARY OF RESULTS,Average Net Electricity Production,,5.41,MW -SUMMARY OF RESULTS,Electricity breakeven price,,1.74,cents/kWh +SUMMARY OF RESULTS,Average Net Electricity Production,,5.37,MW +SUMMARY OF RESULTS,Electricity breakeven price,,1.75,cents/kWh SUMMARY OF RESULTS,Number of production wells,,2,count SUMMARY OF RESULTS,Number of injection wells,,2,count SUMMARY OF RESULTS,Flowrate per production well,,55.0,kg/sec @@ -10,39 +10,39 @@ ECONOMIC PARAMETERS,Economic Model,,Fixed Charge Rate (FCR), ECONOMIC PARAMETERS,Accrued financing during construction,,0.0, ECONOMIC PARAMETERS,Project lifetime,,30,yr ECONOMIC PARAMETERS,Capacity factor,,90.0,% -ECONOMIC PARAMETERS,Project NPV,,49.71,MUSD +ECONOMIC PARAMETERS,Project NPV,,49.23,MUSD ECONOMIC PARAMETERS,Project IRR,,0.17,% -ECONOMIC PARAMETERS,Project VIR=PI=PIR,,2.6, -ECONOMIC PARAMETERS,Project MOIC,,24.83, +ECONOMIC PARAMETERS,Project VIR=PI=PIR,,2.58, +ECONOMIC PARAMETERS,Project MOIC,,24.84, ECONOMIC PARAMETERS,Fixed Charge Rate (FCR),,5.0, -EXTENDED ECONOMICS,"Adjusted Project LCOE (after incentives\, grants\, AddOns\,etc)",,1.74,cents/kWh +EXTENDED ECONOMICS,"Adjusted Project LCOE (after incentives\, grants\, AddOns\,etc)",,1.75,cents/kWh EXTENDED ECONOMICS,"Adjusted Project LCOH (after incentives\, grants\, AddOns\,etc)",,0.0,USD/MMBTU -EXTENDED ECONOMICS,"Adjusted Project CAPEX (after incentives\, grants\, AddOns\, etc)",,101.07,MUSD +EXTENDED ECONOMICS,"Adjusted Project CAPEX (after incentives\, grants\, AddOns\, etc)",,101.06,MUSD EXTENDED ECONOMICS,"Adjusted Project OPEX (after incentives\, grants\, AddOns\, etc)",,0.88,MUSD -EXTENDED ECONOMICS,Project NPV (including AddOns),,-4.98,MUSD +EXTENDED ECONOMICS,Project NPV (including AddOns),,-5.46,MUSD EXTENDED ECONOMICS,Project IRR (including AddOns),,0.06,% EXTENDED ECONOMICS,Project VIR=PI=PIR (including AddOns),,0.95, EXTENDED ECONOMICS,Project MOIC (including AddOns),,1.0, -EXTENDED ECONOMICS,Project Payback Period (including AddOns),,15.57,yr +EXTENDED ECONOMICS,Project Payback Period (including AddOns),,15.63,yr EXTENDED ECONOMICS,Total Add-on CAPEX,,70.0,MUSD EXTENDED ECONOMICS,Total Add-on OPEX,,1.7,MUSD/yr EXTENDED ECONOMICS,Total Add-on Net Elec,,25900.0,kW/yr EXTENDED ECONOMICS,Total Add-on Net Heat,,0.0,kW/yr EXTENDED ECONOMICS,Total Add-on Profit,,2.84,MUSD/yr EXTENDED ECONOMICS,AddOns Payback Period,,0.0,yr -CCUS ECONOMICS,Total Avoided Carbon Production,,1043982040.96,pound -CCUS ECONOMICS,Project NPV (including carbon credit),,75.62,MUSD +CCUS ECONOMICS,Total Avoided Carbon Production,,1036537184.08,pound +CCUS ECONOMICS,Project NPV (including carbon credit),,74.96,MUSD CCUS ECONOMICS,Project IRR (including carbon credit),,0.2,% -CCUS ECONOMICS,Project VIR=IR=PIR (including carbon credit),,3.43, -CCUS ECONOMICS,Project MOIC (including carbon credit),,36.28, -CCUS ECONOMICS,Project Payback Period (including carbon credit),,7.04,yr +CCUS ECONOMICS,Project VIR=IR=PIR (including carbon credit),,3.41, +CCUS ECONOMICS,Project MOIC (including carbon credit),,36.3, +CCUS ECONOMICS,Project Payback Period (including carbon credit),,7.07,yr ENGINEERING PARAMETERS,Number of Production Wells,,2,count ENGINEERING PARAMETERS,Number of Injection Wells,,2,count ENGINEERING PARAMETERS,"Well depth (or total length\, if not vertical)",,3.0,kilometer ENGINEERING PARAMETERS,Water loss rate,,2.0, ENGINEERING PARAMETERS,Pump efficiency,,80.0, ENGINEERING PARAMETERS,Injection temperature,,50.0,degC -ENGINEERING PARAMETERS,Average production well temperature drop,,2.9,degC +ENGINEERING PARAMETERS,Average production well temperature drop,,3.0,degC ENGINEERING PARAMETERS,Flowrate per production well,,55.0,kg/sec ENGINEERING PARAMETERS,Injection well casing ID,,7.0,in ENGINEERING PARAMETERS,Production well casing ID,,7.0,in @@ -58,317 +58,317 @@ RESERVOIR PARAMETERS,Well seperation: fracture height,,900.0,meter RESERVOIR PARAMETERS,Fracture area,,810000.0,m**2 RESERVOIR PARAMETERS,Reservoir volume,,1000000000,m**3 RESERVOIR PARAMETERS,Reservoir hydrostatic pressure,,100.0,kPa -RESERVOIR PARAMETERS,Plant outlet pressure,,1067.8,kPa -RESERVOIR PARAMETERS,Production wellhead pressure,,1136.75,kPa +RESERVOIR PARAMETERS,Plant outlet pressure,,1067.94,kPa +RESERVOIR PARAMETERS,Production wellhead pressure,,1136.89,kPa RESERVOIR PARAMETERS,Productivity Index,,5.0,kg/sec/bar RESERVOIR PARAMETERS,Injectivity Index,,5.0,kg/sec/bar RESERVOIR PARAMETERS,Reservoir density,,2700.0,kg/m**3 RESERVOIR PARAMETERS,Reservoir thermal conductivity,,2.7,watt/m/kelvin RESERVOIR PARAMETERS,Reservoir heat capacity,,1000.0,J/kg/kelvin -RESERVOIR SIMULATION RESULTS,Maximum Production Temperature,,167.3,degC -RESERVOIR SIMULATION RESULTS,Average Production Temperature,,167.1,degC -RESERVOIR SIMULATION RESULTS,Minimum Production Temperature,,165.4,degC -RESERVOIR SIMULATION RESULTS,Initial Production Temperature,,165.4,degC -RESERVOIR SIMULATION RESULTS,Average Reservoir Heat Extraction,,54.37,MW +RESERVOIR SIMULATION RESULTS,Maximum Production Temperature,,167.2,degC +RESERVOIR SIMULATION RESULTS,Average Production Temperature,,167.0,degC +RESERVOIR SIMULATION RESULTS,Minimum Production Temperature,,165.2,degC +RESERVOIR SIMULATION RESULTS,Initial Production Temperature,,165.2,degC +RESERVOIR SIMULATION RESULTS,Average Reservoir Heat Extraction,,52.38,MW RESERVOIR SIMULATION RESULTS,Production Wellbore Heat Transmission Model,,Ramey Model, -RESERVOIR SIMULATION RESULTS,Average Production Well Temperature Drop,,2.9,degC -RESERVOIR SIMULATION RESULTS,Average Injection Well Pump Pressure Drop,,217.6,kPa -RESERVOIR SIMULATION RESULTS,Average Production Well Pump Pressure Drop,,1004.5,kPa -RESERVOIR SIMULATION RESULTS,Average Net Electricity Production,,5.41,MW +RESERVOIR SIMULATION RESULTS,Average Production Well Temperature Drop,,3.0,degC +RESERVOIR SIMULATION RESULTS,Average Injection Well Pump Pressure Drop,,219.1,kPa +RESERVOIR SIMULATION RESULTS,Average Production Well Pump Pressure Drop,,1248.2,kPa +RESERVOIR SIMULATION RESULTS,Average Net Electricity Production,,5.37,MW CAPITAL COSTS (M$),Drilling and completion costs,,21.95,MUSD CAPITAL COSTS (M$),Drilling and completion costs per well,,5.49,MUSD CAPITAL COSTS (M$),Stimulation costs,,3.02,MUSD -CAPITAL COSTS (M$),Surface power plant costs,,20.81,MUSD -CAPITAL COSTS (M$),Field gathering system costs,,2.29,MUSD +CAPITAL COSTS (M$),Surface power plant costs,,20.78,MUSD +CAPITAL COSTS (M$),Field gathering system costs,,2.32,MUSD CAPITAL COSTS (M$),Total surface equipment costs,,23.1,MUSD CAPITAL COSTS (M$),Exploration costs,,5.33,MUSD -CAPITAL COSTS (M$),Total capital costs,,31.07,MUSD +CAPITAL COSTS (M$),Total capital costs,,31.06,MUSD OPERATING AND MAINTENANCE COSTS (M$/yr),Wellfield maintenance costs,,0.44,MUSD/yr OPERATING AND MAINTENANCE COSTS (M$/yr),Power plant maintenance costs,,0.9,MUSD/yr OPERATING AND MAINTENANCE COSTS (M$/yr),Water costs,,0.06,MUSD/yr OPERATING AND MAINTENANCE COSTS (M$/yr),Total operating and maintenance costs,,-0.82,MUSD/yr SURFACE EQUIPMENT SIMULATION RESULTS,Initial geofluid availability,,0.11,MW/(kg/s) -SURFACE EQUIPMENT SIMULATION RESULTS,Maximum Total Electricity Generation,,5.62,MW -SURFACE EQUIPMENT SIMULATION RESULTS,Average Total Electricity Generation,,5.59,MW -SURFACE EQUIPMENT SIMULATION RESULTS,Minimum Total Electricity Generation,,5.43,MW -SURFACE EQUIPMENT SIMULATION RESULTS,Initial Total Electricity Generation,,5.43,MW -SURFACE EQUIPMENT SIMULATION RESULTS,Maximum Net Electricity Generation,,5.44,MW -SURFACE EQUIPMENT SIMULATION RESULTS,Average Net Electricity Generation,,5.41,MW -SURFACE EQUIPMENT SIMULATION RESULTS,Minimum Net Electricity Generation,,5.24,MW -SURFACE EQUIPMENT SIMULATION RESULTS,Initial Net Electricity Generation,,5.24,MW -SURFACE EQUIPMENT SIMULATION RESULTS,Average Annual Total Electricity Generation,,43.89,GWh -SURFACE EQUIPMENT SIMULATION RESULTS,Average Annual Net Electricity Generation,,42.44,GWh -SURFACE EQUIPMENT SIMULATION RESULTS,Average Pumping Power,,0.18,MW +SURFACE EQUIPMENT SIMULATION RESULTS,Maximum Total Electricity Generation,,5.61,MW +SURFACE EQUIPMENT SIMULATION RESULTS,Average Total Electricity Generation,,5.58,MW +SURFACE EQUIPMENT SIMULATION RESULTS,Minimum Total Electricity Generation,,5.41,MW +SURFACE EQUIPMENT SIMULATION RESULTS,Initial Total Electricity Generation,,5.41,MW +SURFACE EQUIPMENT SIMULATION RESULTS,Maximum Net Electricity Generation,,5.4,MW +SURFACE EQUIPMENT SIMULATION RESULTS,Average Net Electricity Generation,,5.37,MW +SURFACE EQUIPMENT SIMULATION RESULTS,Minimum Net Electricity Generation,,5.2,MW +SURFACE EQUIPMENT SIMULATION RESULTS,Initial Net Electricity Generation,,5.2,MW +SURFACE EQUIPMENT SIMULATION RESULTS,Average Annual Total Electricity Generation,,43.8,GWh +SURFACE EQUIPMENT SIMULATION RESULTS,Average Annual Net Electricity Generation,,42.14,GWh +SURFACE EQUIPMENT SIMULATION RESULTS,Average Pumping Power,,0.21,MW POWER GENERATION PROFILE,THERMAL DRAWDOWN,1,1.0, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,2,1.0056, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,3,1.0071, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,4,1.008, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,5,1.0085, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,6,1.0089, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,7,1.0093, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,8,1.0095, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,9,1.0097, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,10,1.0099, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,11,1.0101, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,12,1.0102, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,13,1.0104, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,14,1.0105, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,15,1.0106, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,16,1.0107, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,17,1.0108, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,18,1.0109, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,19,1.011, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,20,1.011, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,21,1.0111, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,22,1.0112, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,23,1.0112, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,24,1.0113, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,25,1.0114, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,26,1.0114, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,27,1.0115, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,28,1.0115, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,29,1.0116, -POWER GENERATION PROFILE,THERMAL DRAWDOWN,30,1.0116, -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,1,165.41,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,2,166.33,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,3,166.59,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,4,166.73,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,5,166.82,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,6,166.89,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,7,166.94,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,8,166.98,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,9,167.02,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,10,167.05,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,11,167.08,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,12,167.1,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,13,167.13,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,14,167.15,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,15,167.16,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,16,167.18,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,17,167.2,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,18,167.21,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,19,167.22,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,20,167.24,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,21,167.25,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,22,167.26,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,23,167.27,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,24,167.28,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,25,167.29,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,26,167.3,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,27,167.31,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,28,167.32,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,29,167.32,degC -POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,30,167.33,degC -POWER GENERATION PROFILE,PUMP POWER,1,0.1864,MW -POWER GENERATION PROFILE,PUMP POWER,2,0.1855,MW -POWER GENERATION PROFILE,PUMP POWER,3,0.1852,MW -POWER GENERATION PROFILE,PUMP POWER,4,0.185,MW -POWER GENERATION PROFILE,PUMP POWER,5,0.1849,MW -POWER GENERATION PROFILE,PUMP POWER,6,0.1849,MW -POWER GENERATION PROFILE,PUMP POWER,7,0.1848,MW -POWER GENERATION PROFILE,PUMP POWER,8,0.1848,MW -POWER GENERATION PROFILE,PUMP POWER,9,0.1847,MW -POWER GENERATION PROFILE,PUMP POWER,10,0.1847,MW -POWER GENERATION PROFILE,PUMP POWER,11,0.1847,MW -POWER GENERATION PROFILE,PUMP POWER,12,0.1846,MW -POWER GENERATION PROFILE,PUMP POWER,13,0.1846,MW -POWER GENERATION PROFILE,PUMP POWER,14,0.1846,MW -POWER GENERATION PROFILE,PUMP POWER,15,0.1846,MW -POWER GENERATION PROFILE,PUMP POWER,16,0.1845,MW -POWER GENERATION PROFILE,PUMP POWER,17,0.1845,MW -POWER GENERATION PROFILE,PUMP POWER,18,0.1845,MW -POWER GENERATION PROFILE,PUMP POWER,19,0.1845,MW -POWER GENERATION PROFILE,PUMP POWER,20,0.1845,MW -POWER GENERATION PROFILE,PUMP POWER,21,0.1845,MW -POWER GENERATION PROFILE,PUMP POWER,22,0.1845,MW -POWER GENERATION PROFILE,PUMP POWER,23,0.1845,MW -POWER GENERATION PROFILE,PUMP POWER,24,0.1844,MW -POWER GENERATION PROFILE,PUMP POWER,25,0.1844,MW -POWER GENERATION PROFILE,PUMP POWER,26,0.1844,MW -POWER GENERATION PROFILE,PUMP POWER,27,0.1844,MW -POWER GENERATION PROFILE,PUMP POWER,28,0.1844,MW -POWER GENERATION PROFILE,PUMP POWER,29,0.1844,MW -POWER GENERATION PROFILE,PUMP POWER,30,0.1844,MW -POWER GENERATION PROFILE,NET POWER,1,5.2427,MW -POWER GENERATION PROFILE,NET POWER,2,5.3343,MW -POWER GENERATION PROFILE,NET POWER,3,5.3607,MW -POWER GENERATION PROFILE,NET POWER,4,5.3745,MW -POWER GENERATION PROFILE,NET POWER,5,5.3836,MW -POWER GENERATION PROFILE,NET POWER,6,5.3904,MW -POWER GENERATION PROFILE,NET POWER,7,5.3957,MW -POWER GENERATION PROFILE,NET POWER,8,5.4,MW -POWER GENERATION PROFILE,NET POWER,9,5.4037,MW -POWER GENERATION PROFILE,NET POWER,10,5.4069,MW -POWER GENERATION PROFILE,NET POWER,11,5.4096,MW -POWER GENERATION PROFILE,NET POWER,12,5.4121,MW -POWER GENERATION PROFILE,NET POWER,13,5.4143,MW -POWER GENERATION PROFILE,NET POWER,14,5.4163,MW -POWER GENERATION PROFILE,NET POWER,15,5.4182,MW -POWER GENERATION PROFILE,NET POWER,16,5.4199,MW -POWER GENERATION PROFILE,NET POWER,17,5.4214,MW -POWER GENERATION PROFILE,NET POWER,18,5.4229,MW -POWER GENERATION PROFILE,NET POWER,19,5.4242,MW -POWER GENERATION PROFILE,NET POWER,20,5.4255,MW -POWER GENERATION PROFILE,NET POWER,21,5.4267,MW -POWER GENERATION PROFILE,NET POWER,22,5.4278,MW -POWER GENERATION PROFILE,NET POWER,23,5.4289,MW -POWER GENERATION PROFILE,NET POWER,24,5.4299,MW -POWER GENERATION PROFILE,NET POWER,25,5.4308,MW -POWER GENERATION PROFILE,NET POWER,26,5.4318,MW -POWER GENERATION PROFILE,NET POWER,27,5.4326,MW -POWER GENERATION PROFILE,NET POWER,28,5.4334,MW -POWER GENERATION PROFILE,NET POWER,29,5.4342,MW -POWER GENERATION PROFILE,NET POWER,30,5.4349,MW -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,1,9.7817,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,2,9.874,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,3,9.9004,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,4,9.9142,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,5,9.9233,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,6,9.9301,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,7,9.9353,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,8,9.9397,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,9,9.9433,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,10,9.9465,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,11,9.9493,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,12,9.9517,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,13,9.9539,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,14,9.9559,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,15,9.9577,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,16,9.9594,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,17,9.961,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,18,9.9624,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,19,9.9638,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,20,9.965,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,21,9.9662,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,22,9.9673,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,23,9.9684,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,24,9.9694,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,25,9.9703,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,26,9.9712,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,27,9.9721,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,28,9.9729,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,29,9.9737,% -POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,30,9.9744,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,1,41.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,2,42.2,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,3,42.3,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,4,42.4,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,5,42.5,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,6,42.5,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,7,42.6,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,8,42.6,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,9,42.6,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,10,42.7,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,11,42.7,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,12,42.7,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,13,42.7,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,14,42.7,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,15,42.7,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,16,42.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,17,42.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,18,42.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,19,42.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,20,42.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,21,42.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,22,42.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,23,42.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,24,42.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,25,42.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,26,42.9,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,27,42.9,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,28,42.9,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,29,42.9,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,30,35.7,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,1,424.4,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,2,426.5,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,3,427.2,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,4,427.6,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,5,427.9,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,6,428.1,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,7,428.2,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,8,428.4,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,9,428.5,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,10,428.6,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,11,428.7,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,12,428.8,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,13,428.9,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,14,428.9,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,15,429.0,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,16,429.1,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,17,429.1,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,18,429.2,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,19,429.2,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,20,429.3,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,21,429.3,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,22,429.4,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,23,429.4,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,24,429.4,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,25,429.5,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,26,429.5,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,27,429.5,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,28,429.5,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,29,429.6,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,30,358.0,GWh/year -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,1,322.47,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,2,320.94,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,3,319.4,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,4,317.86,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,5,316.32,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,6,314.78,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,7,313.24,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,8,311.69,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,9,310.15,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,10,308.61,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,11,307.07,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,12,305.52,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,13,303.98,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,14,302.43,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,15,300.89,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,16,299.34,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,17,297.8,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,18,296.25,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,19,294.71,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,20,293.16,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,21,291.62,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,22,290.07,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,23,288.53,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,24,286.98,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,25,285.44,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,26,283.89,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,27,282.34,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,28,280.8,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,29,279.25,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,30,277.96,10^15 J -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,1,0.47,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,2,0.95,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,3,1.42,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,4,1.9,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,5,2.37,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,6,2.85,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,7,3.32,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,8,3.8,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,9,4.27,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,10,4.75,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,11,5.23,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,12,5.7,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,13,6.18,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,14,6.66,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,15,7.13,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,16,7.61,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,17,8.09,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,18,8.56,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,19,9.04,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,20,9.52,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,21,9.99,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,22,10.47,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,23,10.95,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,24,11.43,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,25,11.9,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,26,12.38,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,27,12.86,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,28,13.33,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,29,13.81,% -HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,30,14.21,% +POWER GENERATION PROFILE,THERMAL DRAWDOWN,2,1.0058, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,3,1.0074, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,4,1.0083, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,5,1.0088, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,6,1.0093, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,7,1.0096, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,8,1.0099, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,9,1.0101, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,10,1.0103, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,11,1.0105, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,12,1.0106, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,13,1.0108, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,14,1.0109, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,15,1.011, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,16,1.0111, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,17,1.0112, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,18,1.0113, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,19,1.0114, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,20,1.0115, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,21,1.0115, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,22,1.0116, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,23,1.0117, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,24,1.0117, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,25,1.0118, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,26,1.0118, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,27,1.0119, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,28,1.0119, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,29,1.012, +POWER GENERATION PROFILE,THERMAL DRAWDOWN,30,1.012, +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,1,165.24,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,2,166.19,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,3,166.47,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,4,166.61,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,5,166.7,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,6,166.77,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,7,166.83,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,8,166.87,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,9,166.91,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,10,166.94,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,11,166.97,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,12,167.0,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,13,167.02,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,14,167.04,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,15,167.06,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,16,167.08,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,17,167.09,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,18,167.11,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,19,167.12,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,20,167.14,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,21,167.15,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,22,167.16,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,23,167.17,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,24,167.18,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,25,167.19,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,26,167.2,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,27,167.21,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,28,167.22,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,29,167.23,degC +POWER GENERATION PROFILE,GEOFLUID TEMPERATURE,30,167.23,degC +POWER GENERATION PROFILE,PUMP POWER,1,0.2141,MW +POWER GENERATION PROFILE,PUMP POWER,2,0.2133,MW +POWER GENERATION PROFILE,PUMP POWER,3,0.213,MW +POWER GENERATION PROFILE,PUMP POWER,4,0.2129,MW +POWER GENERATION PROFILE,PUMP POWER,5,0.2128,MW +POWER GENERATION PROFILE,PUMP POWER,6,0.2128,MW +POWER GENERATION PROFILE,PUMP POWER,7,0.2127,MW +POWER GENERATION PROFILE,PUMP POWER,8,0.2127,MW +POWER GENERATION PROFILE,PUMP POWER,9,0.2127,MW +POWER GENERATION PROFILE,PUMP POWER,10,0.2126,MW +POWER GENERATION PROFILE,PUMP POWER,11,0.2126,MW +POWER GENERATION PROFILE,PUMP POWER,12,0.2126,MW +POWER GENERATION PROFILE,PUMP POWER,13,0.2126,MW +POWER GENERATION PROFILE,PUMP POWER,14,0.2126,MW +POWER GENERATION PROFILE,PUMP POWER,15,0.2125,MW +POWER GENERATION PROFILE,PUMP POWER,16,0.2125,MW +POWER GENERATION PROFILE,PUMP POWER,17,0.2125,MW +POWER GENERATION PROFILE,PUMP POWER,18,0.2125,MW +POWER GENERATION PROFILE,PUMP POWER,19,0.2125,MW +POWER GENERATION PROFILE,PUMP POWER,20,0.2125,MW +POWER GENERATION PROFILE,PUMP POWER,21,0.2125,MW +POWER GENERATION PROFILE,PUMP POWER,22,0.2125,MW +POWER GENERATION PROFILE,PUMP POWER,23,0.2125,MW +POWER GENERATION PROFILE,PUMP POWER,24,0.2124,MW +POWER GENERATION PROFILE,PUMP POWER,25,0.2124,MW +POWER GENERATION PROFILE,PUMP POWER,26,0.2124,MW +POWER GENERATION PROFILE,PUMP POWER,27,0.2124,MW +POWER GENERATION PROFILE,PUMP POWER,28,0.2124,MW +POWER GENERATION PROFILE,PUMP POWER,29,0.2124,MW +POWER GENERATION PROFILE,PUMP POWER,30,0.2124,MW +POWER GENERATION PROFILE,NET POWER,1,5.1987,MW +POWER GENERATION PROFILE,NET POWER,2,5.2932,MW +POWER GENERATION PROFILE,NET POWER,3,5.3205,MW +POWER GENERATION PROFILE,NET POWER,4,5.3347,MW +POWER GENERATION PROFILE,NET POWER,5,5.3441,MW +POWER GENERATION PROFILE,NET POWER,6,5.3511,MW +POWER GENERATION PROFILE,NET POWER,7,5.3566,MW +POWER GENERATION PROFILE,NET POWER,8,5.3611,MW +POWER GENERATION PROFILE,NET POWER,9,5.3649,MW +POWER GENERATION PROFILE,NET POWER,10,5.3682,MW +POWER GENERATION PROFILE,NET POWER,11,5.371,MW +POWER GENERATION PROFILE,NET POWER,12,5.3736,MW +POWER GENERATION PROFILE,NET POWER,13,5.3759,MW +POWER GENERATION PROFILE,NET POWER,14,5.3779,MW +POWER GENERATION PROFILE,NET POWER,15,5.3798,MW +POWER GENERATION PROFILE,NET POWER,16,5.3816,MW +POWER GENERATION PROFILE,NET POWER,17,5.3832,MW +POWER GENERATION PROFILE,NET POWER,18,5.3847,MW +POWER GENERATION PROFILE,NET POWER,19,5.3861,MW +POWER GENERATION PROFILE,NET POWER,20,5.3874,MW +POWER GENERATION PROFILE,NET POWER,21,5.3886,MW +POWER GENERATION PROFILE,NET POWER,22,5.3898,MW +POWER GENERATION PROFILE,NET POWER,23,5.3909,MW +POWER GENERATION PROFILE,NET POWER,24,5.392,MW +POWER GENERATION PROFILE,NET POWER,25,5.3929,MW +POWER GENERATION PROFILE,NET POWER,26,5.3939,MW +POWER GENERATION PROFILE,NET POWER,27,5.3948,MW +POWER GENERATION PROFILE,NET POWER,28,5.3956,MW +POWER GENERATION PROFILE,NET POWER,29,5.3965,MW +POWER GENERATION PROFILE,NET POWER,30,5.3972,MW +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,1,10.0742,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,2,10.1734,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,3,10.2019,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,4,10.2167,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,5,10.2265,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,6,10.2337,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,7,10.2394,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,8,10.2441,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,9,10.248,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,10,10.2514,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,11,10.2543,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,12,10.257,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,13,10.2594,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,14,10.2615,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,15,10.2635,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,16,10.2653,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,17,10.2669,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,18,10.2685,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,19,10.2699,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,20,10.2713,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,21,10.2726,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,22,10.2738,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,23,10.2749,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,24,10.276,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,25,10.277,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,26,10.278,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,27,10.2789,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,28,10.2798,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,29,10.2806,% +POWER GENERATION PROFILE,FIRST LAW EFFICIENCY,30,10.2814,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,1,41.4,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,2,41.9,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,3,42.0,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,4,42.1,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,5,42.2,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,6,42.2,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,7,42.3,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,8,42.3,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,9,42.3,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,10,42.4,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,11,42.4,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,12,42.4,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,13,42.4,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,14,42.4,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,15,42.4,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,16,42.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,17,42.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,18,42.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,19,42.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,20,42.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,21,42.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,22,42.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,23,42.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,24,42.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,25,42.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,26,42.6,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,27,42.6,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,28,42.6,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,29,42.6,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,ELECTRICITY PROVIDED,30,35.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,1,408.7,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,2,410.7,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,3,411.4,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,4,411.8,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,5,412.1,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,6,412.3,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,7,412.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,8,412.7,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,9,412.8,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,10,412.9,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,11,413.0,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,12,413.1,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,13,413.2,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,14,413.2,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,15,413.3,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,16,413.3,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,17,413.4,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,18,413.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,19,413.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,20,413.5,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,21,413.6,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,22,413.6,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,23,413.7,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,24,413.7,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,25,413.7,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,26,413.8,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,27,413.8,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,28,413.8,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,29,413.9,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,HEAT EXTRACTED,30,344.9,GWh/year +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,1,322.53,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,2,321.05,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,3,319.57,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,4,318.09,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,5,316.6,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,6,315.12,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,7,313.63,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,8,312.15,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,9,310.66,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,10,309.17,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,11,307.69,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,12,306.2,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,13,304.71,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,14,303.23,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,15,301.74,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,16,300.25,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,17,298.76,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,18,297.27,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,19,295.78,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,20,294.3,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,21,292.81,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,22,291.32,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,23,289.83,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,24,288.34,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,25,286.85,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,26,285.36,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,27,283.87,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,28,282.38,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,29,280.89,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,RESERVOIR HEAT CONTENT,30,279.65,10^15 J +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,1,0.45,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,2,0.91,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,3,1.37,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,4,1.83,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,5,2.28,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,6,2.74,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,7,3.2,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,8,3.66,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,9,4.12,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,10,4.58,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,11,5.03,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,12,5.49,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,13,5.95,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,14,6.41,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,15,6.87,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,16,7.33,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,17,7.79,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,18,8.25,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,19,8.71,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,20,9.17,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,21,9.63,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,22,10.09,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,23,10.55,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,24,11.01,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,25,11.47,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,26,11.93,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,27,12.39,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,28,12.85,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,29,13.31,% +HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE,PERCENTAGE OF TOTAL HEAT MINED,30,13.69,% EXTENDED ECONOMIC PROFILE,Electricity Price,1,0.09,cents/kWh EXTENDED ECONOMIC PROFILE,Electricity Price,2,0.09,cents/kWh EXTENDED ECONOMIC PROFILE,Electricity Price,3,0.09,cents/kWh @@ -579,97 +579,97 @@ EXTENDED ECONOMIC PROFILE,Cumm. AddOn Cash Flow,27,-40.38,MUSD EXTENDED ECONOMIC PROFILE,Cumm. AddOn Cash Flow,28,-39.24,MUSD EXTENDED ECONOMIC PROFILE,Cumm. AddOn Cash Flow,29,-38.1,MUSD EXTENDED ECONOMIC PROFILE,Cumm. AddOn Cash Flow,30,-36.96,MUSD -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,1,-101.07,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,2,5.71,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,3,5.75,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,4,5.77,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,5,5.77,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,6,5.78,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,7,5.78,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,8,6.3,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,9,6.81,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,10,7.33,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,11,7.84,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,12,8.36,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,13,8.36,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,14,8.36,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,15,8.37,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,16,8.37,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,17,8.37,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,18,8.37,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,19,8.37,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,20,8.37,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,21,8.38,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,22,8.38,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,23,8.38,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,24,8.38,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,25,8.38,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,26,8.38,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,27,8.38,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,28,8.38,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,29,8.39,MUSD/yr -EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,30,8.39,MUSD/yr -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,1,-101.07,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,2,-95.36,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,3,-89.61,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,4,-83.84,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,5,-78.07,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,6,-72.29,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,7,-66.51,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,8,-60.21,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,9,-53.4,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,10,-46.07,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,11,-38.23,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,12,-29.87,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,13,-21.51,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,14,-13.14,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,15,-4.78,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,16,3.59,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,17,11.96,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,18,20.33,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,19,28.71,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,20,37.08,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,21,45.46,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,22,53.84,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,23,62.21,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,24,70.59,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,25,78.98,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,26,87.36,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,27,95.74,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,28,104.13,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,29,112.51,MUSD -EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,30,120.9,MUSD +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,1,-101.06,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,2,5.68,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,3,5.72,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,4,5.74,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,5,5.75,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,6,5.75,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,7,5.76,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,8,6.27,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,9,6.78,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,10,7.29,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,11,7.8,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,12,8.31,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,13,8.32,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,14,8.32,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,15,8.32,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,16,8.32,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,17,8.33,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,18,8.33,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,19,8.33,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,20,8.33,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,21,8.33,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,22,8.33,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,23,8.34,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,24,8.34,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,25,8.34,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,26,8.34,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,27,8.34,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,28,8.34,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,29,8.34,MUSD/yr +EXTENDED ECONOMIC PROFILE,Annual Project Cash Flow,30,8.34,MUSD/yr +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,1,-101.06,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,2,-95.38,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,3,-89.65,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,4,-83.91,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,5,-78.17,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,6,-72.42,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,7,-66.66,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,8,-60.39,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,9,-53.61,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,10,-46.32,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,11,-38.52,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,12,-30.21,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,13,-21.89,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,14,-13.57,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,15,-5.25,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,16,3.08,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,17,11.4,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,18,19.73,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,19,28.06,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,20,36.39,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,21,44.72,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,22,53.06,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,23,61.39,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,24,69.73,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,25,78.07,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,26,86.41,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,27,94.75,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,28,103.09,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,29,111.43,MUSD +EXTENDED ECONOMIC PROFILE,Cumm. Project Cash Flow,30,119.77,MUSD CCUS PROFILE,Carbon Avoided,1,,pound -CCUS PROFILE,Carbon Avoided,2,34243168.39,pound -CCUS PROFILE,Carbon Avoided,3,34603550.499,pound -CCUS PROFILE,Carbon Avoided,4,34725533.076,pound -CCUS PROFILE,Carbon Avoided,5,34797775.757,pound -CCUS PROFILE,Carbon Avoided,6,34848415.605,pound -CCUS PROFILE,Carbon Avoided,7,34887048.22,pound -CCUS PROFILE,Carbon Avoided,8,34918083.373,pound -CCUS PROFILE,Carbon Avoided,9,34943902.716,pound -CCUS PROFILE,Carbon Avoided,10,34965933.269,pound -CCUS PROFILE,Carbon Avoided,11,34985094.866,pound -CCUS PROFILE,Carbon Avoided,12,35002013.597,pound -CCUS PROFILE,Carbon Avoided,13,35017134.004,pound -CCUS PROFILE,Carbon Avoided,14,35030782.57,pound -CCUS PROFILE,Carbon Avoided,15,35043205.792,pound -CCUS PROFILE,Carbon Avoided,16,35054594.111,pound -CCUS PROFILE,Carbon Avoided,17,35065097.538,pound -CCUS PROFILE,Carbon Avoided,18,35074836.181,pound -CCUS PROFILE,Carbon Avoided,19,35083907.517,pound -CCUS PROFILE,Carbon Avoided,20,35092391.514,pound -CCUS PROFILE,Carbon Avoided,21,35100354.281,pound -CCUS PROFILE,Carbon Avoided,22,35107850.702,pound -CCUS PROFILE,Carbon Avoided,23,35114926.339,pound -CCUS PROFILE,Carbon Avoided,24,35121618.815,pound -CCUS PROFILE,Carbon Avoided,25,35127958.824,pound -CCUS PROFILE,Carbon Avoided,26,35133970.861,pound -CCUS PROFILE,Carbon Avoided,27,35139673.772,pound -CCUS PROFILE,Carbon Avoided,28,35145081.156,pound -CCUS PROFILE,Carbon Avoided,29,35150201.668,pound -CCUS PROFILE,Carbon Avoided,30,35155039.259,pound -CCUS PROFILE,Carbon Avoided,31,29302896.694,pound +CCUS PROFILE,Carbon Avoided,2,33969152.766,pound +CCUS PROFILE,Carbon Avoided,3,34341162.882,pound +CCUS PROFILE,Carbon Avoided,4,34467117.964,pound +CCUS PROFILE,Carbon Avoided,5,34541720.779,pound +CCUS PROFILE,Carbon Avoided,6,34594018.221,pound +CCUS PROFILE,Carbon Avoided,7,34633917.159,pound +CCUS PROFILE,Carbon Avoided,8,34665970.699,pound +CCUS PROFILE,Carbon Avoided,9,34692638.021,pound +CCUS PROFILE,Carbon Avoided,10,34715392.651,pound +CCUS PROFILE,Carbon Avoided,11,34735184.429,pound +CCUS PROFILE,Carbon Avoided,12,34752659.886,pound +CCUS PROFILE,Carbon Avoided,13,34768278.088,pound +CCUS PROFILE,Carbon Avoided,14,34782376.191,pound +CCUS PROFILE,Carbon Avoided,15,34795208.759,pound +CCUS PROFILE,Carbon Avoided,16,34806972.481,pound +CCUS PROFILE,Carbon Avoided,17,34817822.318,pound +CCUS PROFILE,Carbon Avoided,18,34827882.405,pound +CCUS PROFILE,Carbon Avoided,19,34837253.604,pound +CCUS PROFILE,Carbon Avoided,20,34846018.858,pound +CCUS PROFILE,Carbon Avoided,21,34854247.043,pound +CCUS PROFILE,Carbon Avoided,22,34861995.782,pound +CCUS PROFILE,Carbon Avoided,23,34869313.518,pound +CCUS PROFILE,Carbon Avoided,24,34876241.046,pound +CCUS PROFILE,Carbon Avoided,25,34882812.647,pound +CCUS PROFILE,Carbon Avoided,26,34889056.938,pound +CCUS PROFILE,Carbon Avoided,27,34894997.5,pound +CCUS PROFILE,Carbon Avoided,28,34900653.351,pound +CCUS PROFILE,Carbon Avoided,29,34906039.293,pound +CCUS PROFILE,Carbon Avoided,30,34911166.179,pound +CCUS PROFILE,Carbon Avoided,31,29099912.619,pound CCUS PROFILE,CCUS Price,1,,USD/lb CCUS PROFILE,CCUS Price,2,0.015,USD/lb CCUS PROFILE,CCUS Price,3,0.015,USD/lb @@ -709,29 +709,29 @@ CCUS PROFILE,CCUS Revenue,5,0.52,MUSD/yr CCUS PROFILE,CCUS Revenue,6,0.52,MUSD/yr CCUS PROFILE,CCUS Revenue,7,0.52,MUSD/yr CCUS PROFILE,CCUS Revenue,8,0.87,MUSD/yr -CCUS PROFILE,CCUS Revenue,9,1.22,MUSD/yr -CCUS PROFILE,CCUS Revenue,10,1.57,MUSD/yr -CCUS PROFILE,CCUS Revenue,11,1.92,MUSD/yr -CCUS PROFILE,CCUS Revenue,12,2.28,MUSD/yr -CCUS PROFILE,CCUS Revenue,13,2.63,MUSD/yr -CCUS PROFILE,CCUS Revenue,14,2.98,MUSD/yr -CCUS PROFILE,CCUS Revenue,15,3.33,MUSD/yr -CCUS PROFILE,CCUS Revenue,16,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,17,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,18,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,19,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,20,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,21,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,22,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,23,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,24,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,25,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,26,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,27,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,28,3.51,MUSD/yr -CCUS PROFILE,CCUS Revenue,29,3.52,MUSD/yr -CCUS PROFILE,CCUS Revenue,30,3.52,MUSD/yr -CCUS PROFILE,CCUS Revenue,31,2.93,MUSD/yr +CCUS PROFILE,CCUS Revenue,9,1.21,MUSD/yr +CCUS PROFILE,CCUS Revenue,10,1.56,MUSD/yr +CCUS PROFILE,CCUS Revenue,11,1.91,MUSD/yr +CCUS PROFILE,CCUS Revenue,12,2.26,MUSD/yr +CCUS PROFILE,CCUS Revenue,13,2.61,MUSD/yr +CCUS PROFILE,CCUS Revenue,14,2.96,MUSD/yr +CCUS PROFILE,CCUS Revenue,15,3.31,MUSD/yr +CCUS PROFILE,CCUS Revenue,16,3.48,MUSD/yr +CCUS PROFILE,CCUS Revenue,17,3.48,MUSD/yr +CCUS PROFILE,CCUS Revenue,18,3.48,MUSD/yr +CCUS PROFILE,CCUS Revenue,19,3.48,MUSD/yr +CCUS PROFILE,CCUS Revenue,20,3.48,MUSD/yr +CCUS PROFILE,CCUS Revenue,21,3.49,MUSD/yr +CCUS PROFILE,CCUS Revenue,22,3.49,MUSD/yr +CCUS PROFILE,CCUS Revenue,23,3.49,MUSD/yr +CCUS PROFILE,CCUS Revenue,24,3.49,MUSD/yr +CCUS PROFILE,CCUS Revenue,25,3.49,MUSD/yr +CCUS PROFILE,CCUS Revenue,26,3.49,MUSD/yr +CCUS PROFILE,CCUS Revenue,27,3.49,MUSD/yr +CCUS PROFILE,CCUS Revenue,28,3.49,MUSD/yr +CCUS PROFILE,CCUS Revenue,29,3.49,MUSD/yr +CCUS PROFILE,CCUS Revenue,30,3.49,MUSD/yr +CCUS PROFILE,CCUS Revenue,31,2.91,MUSD/yr CCUS PROFILE,CCUS Annual Cash Flow,1,,MUSD/yr CCUS PROFILE,CCUS Annual Cash Flow,2,0.51,MUSD/yr CCUS PROFILE,CCUS Annual Cash Flow,3,0.52,MUSD/yr @@ -740,119 +740,119 @@ CCUS PROFILE,CCUS Annual Cash Flow,5,0.52,MUSD/yr CCUS PROFILE,CCUS Annual Cash Flow,6,0.52,MUSD/yr CCUS PROFILE,CCUS Annual Cash Flow,7,0.52,MUSD/yr CCUS PROFILE,CCUS Annual Cash Flow,8,0.87,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,9,1.22,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,10,1.57,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,11,1.92,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,12,2.28,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,13,2.63,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,14,2.98,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,15,3.33,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,16,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,17,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,18,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,19,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,20,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,21,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,22,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,23,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,24,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,25,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,26,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,27,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,28,3.51,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,29,3.52,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,30,3.52,MUSD/yr -CCUS PROFILE,CCUS Annual Cash Flow,31,2.93,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,9,1.21,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,10,1.56,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,11,1.91,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,12,2.26,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,13,2.61,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,14,2.96,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,15,3.31,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,16,3.48,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,17,3.48,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,18,3.48,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,19,3.48,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,20,3.48,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,21,3.49,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,22,3.49,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,23,3.49,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,24,3.49,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,25,3.49,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,26,3.49,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,27,3.49,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,28,3.49,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,29,3.49,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,30,3.49,MUSD/yr +CCUS PROFILE,CCUS Annual Cash Flow,31,2.91,MUSD/yr CCUS PROFILE,CCUS Cumm. Cash Flow,1,,MUSD CCUS PROFILE,CCUS Cumm. Cash Flow,2,0.51,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,3,1.03,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,4,1.55,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,5,2.08,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,6,2.6,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,7,3.12,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,8,3.99,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,9,5.22,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,10,6.79,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,11,8.72,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,12,10.99,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,13,13.62,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,14,16.59,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,15,19.92,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,16,23.43,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,17,26.94,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,18,30.44,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,19,33.95,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,20,37.46,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,21,40.97,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,22,44.48,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,23,47.99,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,24,51.5,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,25,55.02,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,26,58.53,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,27,62.05,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,28,65.56,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,29,69.07,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,30,72.59,MUSD -CCUS PROFILE,CCUS Cumm. Cash Flow,31,75.52,MUSD -CCUS PROFILE,Project Annual Cash Flow,1,-31.07,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,2,5.09,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,3,5.13,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,4,5.15,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,5,5.16,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,6,5.16,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,7,5.17,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,8,6.03,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,9,6.9,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,10,7.76,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,11,8.63,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,12,9.49,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,13,9.85,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,14,10.2,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,15,10.56,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,16,10.73,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,17,10.74,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,18,10.74,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,19,10.74,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,20,10.74,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,21,10.75,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,22,10.75,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,23,10.75,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,24,10.75,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,25,10.75,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,26,10.76,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,27,10.76,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,28,10.76,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,29,10.76,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,30,10.76,MUSD/yr -CCUS PROFILE,Project Annual Cash Flow,31,9.11,MUSD/yr -CCUS PROFILE,Project Cumm. Cash Flow,1,-31.07,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,2,-25.98,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,3,-20.85,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,4,-15.7,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,5,-10.55,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,6,-5.38,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,7,-0.21,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,8,5.82,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,9,12.71,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,10,20.48,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,11,29.1,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,12,38.6,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,13,48.44,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,14,58.65,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,15,69.2,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,16,79.93,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,17,90.67,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,18,101.41,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,19,112.15,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,20,122.9,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,21,133.64,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,22,144.39,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,23,155.14,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,24,165.89,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,25,176.65,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,26,187.4,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,27,198.16,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,28,208.92,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,29,219.68,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,30,230.44,MUSD -CCUS PROFILE,Project Cumm. Cash Flow,31,239.55,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,3,1.02,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,4,1.54,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,5,2.06,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,6,2.58,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,7,3.1,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,8,3.96,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,9,5.18,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,10,6.74,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,11,8.65,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,12,10.91,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,13,13.52,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,14,16.47,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,15,19.78,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,16,23.26,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,17,26.74,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,18,30.23,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,19,33.71,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,20,37.19,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,21,40.68,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,22,44.17,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,23,47.65,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,24,51.14,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,25,54.63,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,26,58.12,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,27,61.61,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,28,65.1,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,29,68.59,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,30,72.08,MUSD +CCUS PROFILE,CCUS Cumm. Cash Flow,31,74.99,MUSD +CCUS PROFILE,Project Annual Cash Flow,1,-31.06,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,2,5.05,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,3,5.1,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,4,5.12,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,5,5.13,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,6,5.13,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,7,5.14,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,8,6.0,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,9,6.85,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,10,7.71,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,11,8.57,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,12,9.43,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,13,9.78,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,14,10.14,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,15,10.49,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,16,10.66,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,17,10.67,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,18,10.67,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,19,10.67,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,20,10.68,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,21,10.68,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,22,10.68,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,23,10.68,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,24,10.68,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,25,10.69,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,26,10.69,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,27,10.69,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,28,10.69,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,29,10.69,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,30,10.69,MUSD/yr +CCUS PROFILE,Project Annual Cash Flow,31,9.05,MUSD/yr +CCUS PROFILE,Project Cumm. Cash Flow,1,-31.06,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,2,-26.01,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,3,-20.91,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,4,-15.79,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,5,-10.66,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,6,-5.53,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,7,-0.39,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,8,5.6,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,9,12.46,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,10,20.17,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,11,28.75,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,12,38.18,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,13,47.96,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,14,58.1,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,15,68.59,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,16,79.25,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,17,89.92,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,18,100.59,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,19,111.26,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,20,121.94,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,21,132.62,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,22,143.3,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,23,153.98,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,24,164.66,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,25,175.35,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,26,186.04,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,27,196.73,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,28,207.42,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,29,218.11,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,30,228.81,MUSD +CCUS PROFILE,Project Cumm. Cash Flow,31,237.86,MUSD diff --git a/tests/examples/Wanju_Yuan_Closed-Loop_Geothermal_Energy_Recovery.out b/tests/examples/Wanju_Yuan_Closed-Loop_Geothermal_Energy_Recovery.out index b0e73a2c..c9f561be 100644 --- a/tests/examples/Wanju_Yuan_Closed-Loop_Geothermal_Energy_Recovery.out +++ b/tests/examples/Wanju_Yuan_Closed-Loop_Geothermal_Energy_Recovery.out @@ -4,17 +4,17 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:31 - Calculation Time: 1.634 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:09 + Calculation Time: 1.635 sec ***SUMMARY OF RESULTS*** End-Use Option: Electricity Average Net Electricity Production: 1.10 MW - Electricity breakeven price: 37.41 cents/kWh + Electricity breakeven price: 37.54 cents/kWh Number of production wells: 1 Number of injection wells: 0 Flowrate per production well: 110.0 kg/sec @@ -28,7 +28,7 @@ Simulation Metadata Accrued financing during construction: 0.00 Project lifetime: 40 yr Capacity factor: 90.0 % - Project NPV: -37.27 MUSD + Project NPV: -37.29 MUSD Project IRR: 0.00 % Project VIR=PI=PIR: -0.01 Project MOIC: -0.67 @@ -65,8 +65,8 @@ The AGS models contain an intrinsic reservoir model that doesn't expose values t ***RESERVOIR SIMULATION RESULTS*** Maximum Production Temperature: 120.1 degC - Average Production Temperature: 106.7 degC - Minimum Production Temperature: 102.0 degC + Average Production Temperature: 106.6 degC + Minimum Production Temperature: 101.9 degC Initial Production Temperature: 120.0 degC The AGS models contain an intrinsic reservoir model that doesn't expose values that can be used in extensive reporting. @@ -76,8 +76,8 @@ The AGS models contain an intrinsic reservoir model that doesn't expose values t Drilling and completion costs: 16.28 MUSD Drilling and completion costs per well: 16.28 MUSD Stimulation costs: 0.00 MUSD - Surface power plant costs: 6.74 MUSD - Field gathering system costs: 0.51 MUSD + Surface power plant costs: 6.73 MUSD + Field gathering system costs: 0.50 MUSD Total surface equipment costs: 7.24 MUSD Exploration costs: 13.27 MUSD Total capital costs: 36.79 MUSD @@ -95,15 +95,15 @@ The AGS models contain an intrinsic reservoir model that doesn't expose values t Initial geofluid availability: 0.06 MW/(kg/s) Maximum Total Electricity Generation: 1.67 MW - Average Total Electricity Generation: 1.11 MW - Minimum Total Electricity Generation: 0.94 MW + Average Total Electricity Generation: 1.10 MW + Minimum Total Electricity Generation: 0.93 MW Initial Total Electricity Generation: 1.66 MW - Maximum Net Electricity Generation: 1.66 MW + Maximum Net Electricity Generation: 1.67 MW Average Net Electricity Generation: 1.10 MW - Minimum Net Electricity Generation: 0.94 MW + Minimum Net Electricity Generation: 0.93 MW Initial Net Electricity Generation: 1.66 MW - Average Annual Total Electricity Generation: 8.63 GWh - Average Annual Net Electricity Generation: 8.61 GWh + Average Annual Total Electricity Generation: 8.60 GWh + Average Annual Net Electricity Generation: 8.58 GWh Initial pumping power/net installed power: 100.00 % Average Pumping Power: 0.00 MW @@ -113,46 +113,46 @@ The AGS models contain an intrinsic reservoir model that doesn't expose values t YEAR THERMAL GEOFLUID PUMP NET FIRST LAW DRAWDOWN TEMPERATURE POWER POWER EFFICIENCY (degC) (MW) (MW) (%) - 1 1.0000 120.00 0.0031 1.6615 5.9284 - 2 0.9299 111.59 0.0031 1.2889 5.3486 - 3 0.9184 110.21 0.0031 1.2333 5.2587 - 4 0.9118 109.42 0.0031 1.2020 5.2077 - 5 0.9071 108.86 0.0031 1.1804 5.1723 - 6 0.9036 108.43 0.0031 1.1640 5.1453 - 7 0.9007 108.08 0.0031 1.1507 5.1236 - 8 0.8983 107.79 0.0031 1.1397 5.1054 - 9 0.8962 107.54 0.0031 1.1303 5.0898 - 10 0.8944 107.32 0.0031 1.1221 5.0762 - 11 0.8927 107.13 0.0031 1.1148 5.0641 - 12 0.8913 106.95 0.0031 1.1082 5.0533 - 13 0.8899 106.79 0.0031 1.1023 5.0434 - 14 0.8887 106.64 0.0031 1.0969 5.0344 - 15 0.8876 106.51 0.0031 1.0919 5.0262 - 16 0.8865 106.38 0.0031 1.0873 5.0185 - 17 0.8856 106.27 0.0031 1.0830 5.0114 - 18 0.8846 106.16 0.0031 1.0790 5.0047 - 19 0.8838 106.05 0.0031 1.0753 4.9985 - 20 0.8830 105.96 0.0031 1.0717 4.9926 - 21 0.8822 105.87 0.0031 1.0684 4.9870 - 22 0.8815 105.78 0.0031 1.0653 4.9818 - 23 0.8808 105.70 0.0031 1.0623 4.9768 - 24 0.8801 105.62 0.0031 1.0594 4.9720 - 25 0.8795 105.54 0.0031 1.0567 4.9674 - 26 0.8789 105.47 0.0031 1.0541 4.9631 - 27 0.8783 105.40 0.0031 1.0516 4.9589 - 28 0.8778 105.33 0.0031 1.0492 4.9550 - 29 0.8772 105.27 0.0031 1.0469 4.9511 - 30 0.8767 105.21 0.0031 1.0447 4.9474 - 31 0.8762 105.15 0.0031 1.0426 4.9439 - 32 0.8758 105.09 0.0031 1.0406 4.9405 - 33 0.8753 105.04 0.0031 1.0386 4.9371 - 34 0.8748 104.98 0.0031 1.0367 4.9339 - 35 0.8744 104.93 0.0031 1.0348 4.9308 - 36 0.8740 104.88 0.0031 1.0330 4.9278 - 37 0.8736 104.83 0.0031 1.0313 4.9249 - 38 0.8732 104.78 0.0031 1.0296 4.9221 - 39 0.8728 104.74 0.0031 1.0280 4.9194 - 40 0.8724 104.69 0.0031 1.0264 4.9167 + 1 1.0000 120.00 0.0027 1.6619 6.4570 + 2 0.9290 111.49 0.0027 1.2850 5.8184 + 3 0.9175 110.10 0.0027 1.2293 5.7202 + 4 0.9108 109.30 0.0027 1.1980 5.6646 + 5 0.9062 108.74 0.0027 1.1763 5.6260 + 6 0.9026 108.31 0.0027 1.1598 5.5965 + 7 0.8997 107.96 0.0027 1.1466 5.5728 + 8 0.8973 107.67 0.0027 1.1355 5.5530 + 9 0.8952 107.42 0.0027 1.1261 5.5360 + 10 0.8933 107.20 0.0027 1.1179 5.5212 + 11 0.8917 107.00 0.0027 1.1106 5.5080 + 12 0.8902 106.83 0.0027 1.1040 5.4962 + 13 0.8889 106.67 0.0027 1.0981 5.4855 + 14 0.8877 106.52 0.0027 1.0927 5.4757 + 15 0.8865 106.38 0.0027 1.0877 5.4667 + 16 0.8855 106.26 0.0027 1.0831 5.4583 + 17 0.8845 106.14 0.0027 1.0788 5.4506 + 18 0.8836 106.03 0.0027 1.0748 5.4433 + 19 0.8827 105.93 0.0027 1.0711 5.4365 + 20 0.8819 105.83 0.0027 1.0675 5.4301 + 21 0.8811 105.74 0.0027 1.0642 5.4241 + 22 0.8804 105.65 0.0027 1.0611 5.4183 + 23 0.8797 105.57 0.0027 1.0581 5.4129 + 24 0.8791 105.49 0.0027 1.0552 5.4077 + 25 0.8784 105.41 0.0027 1.0525 5.4028 + 26 0.8778 105.34 0.0027 1.0499 5.3980 + 27 0.8773 105.27 0.0027 1.0474 5.3935 + 28 0.8767 105.20 0.0027 1.0450 5.3892 + 29 0.8762 105.14 0.0027 1.0427 5.3850 + 30 0.8757 105.08 0.0027 1.0405 5.3810 + 31 0.8752 105.02 0.0027 1.0384 5.3771 + 32 0.8747 104.96 0.0027 1.0364 5.3734 + 33 0.8742 104.91 0.0027 1.0344 5.3698 + 34 0.8738 104.85 0.0027 1.0325 5.3663 + 35 0.8733 104.80 0.0027 1.0306 5.3629 + 36 0.8729 104.75 0.0027 1.0289 5.3597 + 37 0.8725 104.70 0.0027 1.0271 5.3565 + 38 0.8721 104.65 0.0027 1.0254 5.3534 + 39 0.8717 104.61 0.0027 1.0238 5.3504 + 40 0.8713 104.56 0.0027 1.0222 5.3476 ******************************************************************* @@ -161,43 +161,43 @@ The AGS models contain an intrinsic reservoir model that doesn't expose values t YEAR ELECTRICITY HEAT RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (10^15 J) (%) - 1 12.1 210.6 32.75 2.26 - 2 9.5 182.5 32.09 4.22 - 3 9.8 186.3 31.42 6.22 - 4 9.2 178.8 30.78 8.15 - 5 9.4 180.7 30.13 10.09 - 6 9.0 176.4 29.49 11.98 - 7 9.1 177.6 28.85 13.89 - 8 8.9 174.6 28.22 15.77 - 9 8.9 175.4 27.59 17.65 - 10 8.8 173.2 26.97 19.51 - 11 8.8 173.8 26.34 21.38 - 12 8.7 172.1 25.72 23.23 - 13 8.7 172.4 25.10 25.08 - 14 8.6 171.2 24.49 26.92 - 15 8.6 171.3 23.87 28.76 - 16 8.5 170.4 23.26 30.59 - 17 8.5 170.3 22.64 32.42 - 18 8.5 169.7 22.03 34.25 - 19 8.5 169.5 21.42 36.07 - 20 8.4 169.1 20.81 37.88 - 21 8.4 168.7 20.21 39.70 - 22 8.4 168.5 19.60 41.51 - 23 8.4 168.0 18.99 43.31 - 24 8.4 168.0 18.39 45.12 - 25 8.3 167.3 17.79 46.92 - 26 8.3 167.6 17.18 48.72 - 27 8.3 166.7 16.58 50.51 - 28 8.3 167.3 15.98 52.30 - 29 8.2 166.1 15.38 54.09 - 30 8.3 167.0 14.78 55.88 - 31 8.2 165.5 14.19 57.66 - 32 8.3 166.8 13.59 59.45 - 33 8.1 164.8 12.99 61.22 - 34 8.3 166.7 12.39 63.01 - 35 8.0 163.9 11.80 64.78 - 36 8.3 167.0 11.20 66.57 - 37 7.9 162.6 10.62 68.32 - 38 8.4 168.3 10.01 70.13 - 39 7.7 158.6 9.44 71.83 - 40 7.5 141.1 8.93 73.35 + 1 12.1 193.2 32.81 2.08 + 2 9.5 167.1 32.21 3.87 + 3 9.8 170.7 31.59 5.71 + 4 9.2 163.8 31.00 7.47 + 5 9.3 165.6 30.41 9.25 + 6 9.0 161.6 29.83 10.98 + 7 9.1 162.7 29.24 12.73 + 8 8.8 159.9 28.67 14.45 + 9 8.9 160.7 28.09 16.17 + 10 8.7 158.7 27.52 17.88 + 11 8.8 159.2 26.94 19.59 + 12 8.6 157.6 26.37 21.28 + 13 8.7 158.0 25.81 22.98 + 14 8.6 156.8 25.24 24.67 + 15 8.6 156.9 24.68 26.35 + 16 8.5 156.0 24.12 28.03 + 17 8.5 156.0 23.55 29.70 + 18 8.4 155.4 22.99 31.37 + 19 8.4 155.2 22.44 33.04 + 20 8.4 154.8 21.88 34.70 + 21 8.4 154.5 21.32 36.36 + 22 8.4 154.3 20.77 38.02 + 23 8.3 153.8 20.21 39.68 + 24 8.3 153.9 19.66 41.33 + 25 8.3 153.2 19.11 42.98 + 26 8.3 153.5 18.55 44.63 + 27 8.2 152.7 18.00 46.27 + 28 8.3 153.2 17.45 47.91 + 29 8.2 152.1 16.91 49.55 + 30 8.2 152.9 16.35 51.19 + 31 8.1 151.5 15.81 52.82 + 32 8.2 152.7 15.26 54.46 + 33 8.1 150.9 14.72 56.08 + 34 8.2 152.7 14.17 57.72 + 35 8.0 150.1 13.63 59.33 + 36 8.2 152.9 13.08 60.97 + 37 7.9 148.9 12.54 62.57 + 38 8.3 154.1 11.99 64.23 + 39 7.6 145.2 11.46 65.79 + 40 7.5 129.4 11.00 67.18 diff --git a/tests/examples/example1.out b/tests/examples/example1.out index e82b6197..fa4a52cc 100644 --- a/tests/examples/example1.out +++ b/tests/examples/example1.out @@ -4,17 +4,17 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:23 - Calculation Time: 0.698 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.607 sec ***SUMMARY OF RESULTS*** End-Use Option: Electricity - Average Net Electricity Production: 5.41 MW - Electricity breakeven price: 9.59 cents/kWh + Average Net Electricity Production: 5.37 MW + Electricity breakeven price: 9.65 cents/kWh Number of production wells: 2 Number of injection wells: 2 Flowrate per production well: 55.0 kg/sec @@ -29,9 +29,9 @@ Simulation Metadata Accrued financing during construction: 0.00 Project lifetime: 30 yr Capacity factor: 90.0 % - Project NPV: -40.81 MUSD + Project NPV: -41.01 MUSD Project IRR: -0.04 % - Project VIR=PI=PIR: 0.24 + Project VIR=PI=PIR: 0.23 Project MOIC: -0.27 ***ENGINEERING PARAMETERS*** @@ -43,7 +43,7 @@ Simulation Metadata Pump efficiency: 80.0 Injection temperature: 50.0 degC Production Wellbore heat transmission calculated with Ramey's model - Average production well temperature drop: 2.9 degC + Average production well temperature drop: 3.0 degC Flowrate per production well: 55.0 kg/sec Injection well casing ID: 7.000 in Production well casing ID: 7.000 in @@ -67,8 +67,8 @@ Simulation Metadata Fracture area: 810000.00 m**2 Reservoir volume: 1000000000 m**3 Reservoir hydrostatic pressure: 100.00 kPa - Plant outlet pressure: 1067.80 kPa - Production wellhead pressure: 1136.75 kPa + Plant outlet pressure: 1067.94 kPa + Production wellhead pressure: 1136.89 kPa Productivity Index: 5.00 kg/sec/bar Injectivity Index: 5.00 kg/sec/bar Reservoir density: 2700.00 kg/m**3 @@ -78,15 +78,15 @@ Simulation Metadata ***RESERVOIR SIMULATION RESULTS*** - Maximum Production Temperature: 167.3 degC - Average Production Temperature: 167.1 degC - Minimum Production Temperature: 165.4 degC - Initial Production Temperature: 165.4 degC - Average Reservoir Heat Extraction: 54.37 MW + Maximum Production Temperature: 167.2 degC + Average Production Temperature: 167.0 degC + Minimum Production Temperature: 165.2 degC + Initial Production Temperature: 165.2 degC + Average Reservoir Heat Extraction: 52.38 MW Production Wellbore Heat Transmission Model = Ramey Model - Average Production Well Temperature Drop: 2.9 degC - Average Injection Well Pump Pressure Drop: 217.6 kPa - Average Production Well Pump Pressure Drop: 1004.5 kPa + Average Production Well Temperature Drop: 3.0 degC + Average Injection Well Pump Pressure Drop: 219.1 kPa + Average Production Well Pump Pressure Drop: 1248.2 kPa ***CAPITAL COSTS (M$)*** @@ -94,8 +94,8 @@ Simulation Metadata Drilling and completion costs: 21.95 MUSD Drilling and completion costs per well: 5.49 MUSD Stimulation costs: 3.02 MUSD - Surface power plant costs: 20.81 MUSD - Field gathering system costs: 2.29 MUSD + Surface power plant costs: 20.78 MUSD + Field gathering system costs: 2.32 MUSD Total surface equipment costs: 23.10 MUSD Exploration costs: 5.33 MUSD Total capital costs: 53.39 MUSD @@ -113,18 +113,18 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** Initial geofluid availability: 0.11 MW/(kg/s) - Maximum Total Electricity Generation: 5.62 MW - Average Total Electricity Generation: 5.59 MW - Minimum Total Electricity Generation: 5.43 MW - Initial Total Electricity Generation: 5.43 MW - Maximum Net Electricity Generation: 5.44 MW - Average Net Electricity Generation: 5.41 MW - Minimum Net Electricity Generation: 5.24 MW - Initial Net Electricity Generation: 5.24 MW - Average Annual Total Electricity Generation: 43.86 GWh - Average Annual Net Electricity Generation: 42.41 GWh + Maximum Total Electricity Generation: 5.61 MW + Average Total Electricity Generation: 5.58 MW + Minimum Total Electricity Generation: 5.41 MW + Initial Total Electricity Generation: 5.41 MW + Maximum Net Electricity Generation: 5.40 MW + Average Net Electricity Generation: 5.37 MW + Minimum Net Electricity Generation: 5.20 MW + Initial Net Electricity Generation: 5.20 MW + Average Annual Total Electricity Generation: 43.78 GWh + Average Annual Net Electricity Generation: 42.11 GWh Initial pumping power/net installed power: 100.00 % - Average Pumping Power: 0.18 MW + Average Pumping Power: 0.21 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -132,36 +132,36 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET FIRST LAW DRAWDOWN TEMPERATURE POWER POWER EFFICIENCY (degC) (MW) (MW) (%) - 1 1.0000 165.41 0.1864 5.2427 9.7817 - 2 1.0056 166.33 0.1855 5.3343 9.8740 - 3 1.0071 166.59 0.1852 5.3607 9.9004 - 4 1.0080 166.73 0.1850 5.3745 9.9142 - 5 1.0085 166.82 0.1849 5.3836 9.9233 - 6 1.0089 166.89 0.1849 5.3904 9.9301 - 7 1.0093 166.94 0.1848 5.3957 9.9353 - 8 1.0095 166.98 0.1848 5.4000 9.9397 - 9 1.0097 167.02 0.1847 5.4037 9.9433 - 10 1.0099 167.05 0.1847 5.4069 9.9465 - 11 1.0101 167.08 0.1847 5.4096 9.9493 - 12 1.0102 167.10 0.1846 5.4121 9.9517 - 13 1.0104 167.13 0.1846 5.4143 9.9539 - 14 1.0105 167.15 0.1846 5.4163 9.9559 - 15 1.0106 167.16 0.1846 5.4182 9.9577 - 16 1.0107 167.18 0.1845 5.4199 9.9594 - 17 1.0108 167.20 0.1845 5.4214 9.9610 - 18 1.0109 167.21 0.1845 5.4229 9.9624 - 19 1.0110 167.22 0.1845 5.4242 9.9638 - 20 1.0110 167.24 0.1845 5.4255 9.9650 - 21 1.0111 167.25 0.1845 5.4267 9.9662 - 22 1.0112 167.26 0.1845 5.4278 9.9673 - 23 1.0112 167.27 0.1845 5.4289 9.9684 - 24 1.0113 167.28 0.1844 5.4299 9.9694 - 25 1.0114 167.29 0.1844 5.4308 9.9703 - 26 1.0114 167.30 0.1844 5.4318 9.9712 - 27 1.0115 167.31 0.1844 5.4326 9.9721 - 28 1.0115 167.32 0.1844 5.4334 9.9729 - 29 1.0116 167.32 0.1844 5.4342 9.9737 - 30 1.0116 167.33 0.1844 5.4349 9.9744 + 1 1.0000 165.24 0.2141 5.1987 10.0742 + 2 1.0058 166.19 0.2133 5.2932 10.1734 + 3 1.0074 166.47 0.2130 5.3205 10.2019 + 4 1.0083 166.61 0.2129 5.3347 10.2167 + 5 1.0088 166.70 0.2128 5.3441 10.2265 + 6 1.0093 166.77 0.2128 5.3511 10.2337 + 7 1.0096 166.83 0.2127 5.3566 10.2394 + 8 1.0099 166.87 0.2127 5.3611 10.2441 + 9 1.0101 166.91 0.2127 5.3649 10.2480 + 10 1.0103 166.94 0.2126 5.3682 10.2514 + 11 1.0105 166.97 0.2126 5.3710 10.2543 + 12 1.0106 167.00 0.2126 5.3736 10.2570 + 13 1.0108 167.02 0.2126 5.3759 10.2594 + 14 1.0109 167.04 0.2126 5.3779 10.2615 + 15 1.0110 167.06 0.2125 5.3798 10.2635 + 16 1.0111 167.08 0.2125 5.3816 10.2653 + 17 1.0112 167.09 0.2125 5.3832 10.2669 + 18 1.0113 167.11 0.2125 5.3847 10.2685 + 19 1.0114 167.12 0.2125 5.3861 10.2699 + 20 1.0115 167.14 0.2125 5.3874 10.2713 + 21 1.0115 167.15 0.2125 5.3886 10.2726 + 22 1.0116 167.16 0.2125 5.3898 10.2738 + 23 1.0117 167.17 0.2125 5.3909 10.2749 + 24 1.0117 167.18 0.2124 5.3920 10.2760 + 25 1.0118 167.19 0.2124 5.3929 10.2770 + 26 1.0118 167.20 0.2124 5.3939 10.2780 + 27 1.0119 167.21 0.2124 5.3948 10.2789 + 28 1.0119 167.22 0.2124 5.3956 10.2798 + 29 1.0120 167.23 0.2124 5.3965 10.2806 + 30 1.0120 167.23 0.2124 5.3972 10.2814 ******************************************************************* @@ -170,33 +170,33 @@ Simulation Metadata YEAR ELECTRICITY HEAT RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (10^15 J) (%) - 1 41.7 424.4 322.47 0.47 - 2 42.2 426.5 320.94 0.95 - 3 42.3 427.2 319.40 1.42 - 4 42.4 427.6 317.86 1.90 - 5 42.5 427.9 316.32 2.37 - 6 42.5 428.1 314.78 2.85 - 7 42.6 428.2 313.24 3.32 - 8 42.6 428.4 311.69 3.80 - 9 42.6 428.5 310.15 4.27 - 10 42.6 428.6 308.61 4.75 - 11 42.7 428.7 307.07 5.23 - 12 42.7 428.8 305.52 5.70 - 13 42.7 428.9 303.98 6.18 - 14 42.7 428.9 302.43 6.66 - 15 42.7 429.0 300.89 7.13 - 16 42.7 429.1 299.34 7.61 - 17 42.7 429.1 297.80 8.09 - 18 42.8 429.2 296.25 8.56 - 19 42.8 429.2 294.71 9.04 - 20 42.8 429.3 293.16 9.52 - 21 42.8 429.3 291.62 9.99 - 22 42.8 429.4 290.07 10.47 - 23 42.8 429.4 288.53 10.95 - 24 42.8 429.4 286.98 11.43 - 25 42.8 429.5 285.44 11.90 - 26 42.8 429.5 283.89 12.38 - 27 42.8 429.5 282.34 12.86 - 28 42.8 429.5 280.80 13.33 - 29 42.8 429.6 279.25 13.81 - 30 35.7 358.0 277.96 14.21 + 1 41.4 408.7 322.53 0.45 + 2 41.9 410.7 321.05 0.91 + 3 42.0 411.4 319.57 1.37 + 4 42.1 411.8 318.09 1.83 + 5 42.2 412.1 316.60 2.28 + 6 42.2 412.3 315.12 2.74 + 7 42.2 412.5 313.63 3.20 + 8 42.3 412.7 312.15 3.66 + 9 42.3 412.8 310.66 4.12 + 10 42.3 412.9 309.17 4.58 + 11 42.4 413.0 307.69 5.03 + 12 42.4 413.1 306.20 5.49 + 13 42.4 413.2 304.71 5.95 + 14 42.4 413.2 303.23 6.41 + 15 42.4 413.3 301.74 6.87 + 16 42.4 413.3 300.25 7.33 + 17 42.4 413.4 298.76 7.79 + 18 42.5 413.5 297.27 8.25 + 19 42.5 413.5 295.78 8.71 + 20 42.5 413.5 294.30 9.17 + 21 42.5 413.6 292.81 9.63 + 22 42.5 413.6 291.32 10.09 + 23 42.5 413.7 289.83 10.55 + 24 42.5 413.7 288.34 11.01 + 25 42.5 413.7 286.85 11.47 + 26 42.5 413.8 285.36 11.93 + 27 42.5 413.8 283.87 12.39 + 28 42.5 413.8 282.38 12.85 + 29 42.5 413.9 280.89 13.31 + 30 35.5 344.9 279.65 13.69 diff --git a/tests/examples/example10_HP.out b/tests/examples/example10_HP.out index b0fd281e..b4360086 100644 --- a/tests/examples/example10_HP.out +++ b/tests/examples/example10_HP.out @@ -4,17 +4,17 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:27 - Calculation Time: 0.092 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.142 sec ***SUMMARY OF RESULTS*** End-Use Option: Direct-Use Heat - Average Direct-Use Heat Production: 17.04 MW - Direct-Use heat breakeven price: 14.38 USD/MMBTU + Average Direct-Use Heat Production: 16.64 MW + Direct-Use heat breakeven price: 14.49 USD/MMBTU Number of production wells: 2 Number of injection wells: 2 Flowrate per production well: 70.0 kg/sec @@ -29,10 +29,10 @@ Simulation Metadata Accrued financing during construction: 5.00 Project lifetime: 30 yr Capacity factor: 90.0 % - Project NPV: 6.28 MUSD + Project NPV: 5.39 MUSD Project IRR: 0.08 % - Project VIR=PI=PIR: 1.20 - Project MOIC: 1.01 + Project VIR=PI=PIR: 1.17 + Project MOIC: 0.98 ***ENGINEERING PARAMETERS*** @@ -67,8 +67,8 @@ Simulation Metadata Fracture separation: 80.00 meter Reservoir volume: 176000000 m**3 Reservoir hydrostatic pressure: 100.00 kPa - Plant outlet pressure: 416.73 kPa - Production wellhead pressure: 485.68 kPa + Plant outlet pressure: 416.74 kPa + Production wellhead pressure: 485.69 kPa Productivity Index: 10.00 kg/sec/bar Injectivity Index: 5.00 kg/sec/bar Reservoir density: 3000.00 kg/m**3 @@ -79,13 +79,13 @@ Simulation Metadata ***RESERVOIR SIMULATION RESULTS*** Maximum Production Temperature: 104.5 degC - Average Production Temperature: 103.7 degC - Minimum Production Temperature: 101.8 degC + Average Production Temperature: 103.8 degC + Minimum Production Temperature: 102.1 degC Initial Production Temperature: 104.5 degC - Average Reservoir Heat Extraction: 12.17 MW + Average Reservoir Heat Extraction: 11.89 MW Wellbore Heat Transmission Model = Constant Temperature Drop: 5.0 degC - Average Injection Well Pump Pressure Drop: 1648.9 kPa - Average Production Well Pump Pressure Drop: 832.5 kPa + Average Injection Well Pump Pressure Drop: 1661.4 kPa + Average Production Well Pump Pressure Drop: 830.3 kPa ***CAPITAL COSTS (M$)*** @@ -93,33 +93,33 @@ Simulation Metadata Drilling and completion costs: 13.91 MUSD Drilling and completion costs per well: 3.48 MUSD Stimulation costs: 3.02 MUSD - Surface power plant costs: 7.82 MUSD + Surface power plant costs: 7.70 MUSD of which Heat Pump Cost: 3.74 MUSD - Field gathering system costs: 2.56 MUSD - Total surface equipment costs: 10.37 MUSD + Field gathering system costs: 2.55 MUSD + Total surface equipment costs: 10.25 MUSD Exploration costs: 3.85 MUSD - Total capital costs: 31.15 MUSD + Total capital costs: 31.03 MUSD ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** Wellfield maintenance costs: 0.23 MUSD/yr - Power plant maintenance costs: 0.32 MUSD/yr + Power plant maintenance costs: 0.31 MUSD/yr Water costs: 0.07 MUSD/yr Average Reservoir Pumping Cost: 0.25 MUSD/yr - Average Heat Pump Electricity Cost: 3.72 MUSD/yr - Total operating and maintenance costs: 4.59 MUSD/yr + Average Heat Pump Electricity Cost: 3.63 MUSD/yr + Total operating and maintenance costs: 4.49 MUSD/yr ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Maximum Net Heat Production: 17.74 MW - Average Net Heat Production: 17.04 MW - Minimum Net Heat Production: 15.52 MW - Initial Net Heat Production: 17.74 MW - Average Annual Heat Production: 133.90 GWh - Average Annual Heat Pump Electricity Use: 53.13 GWh/year - Average Pumping Power: 0.46 MW + Maximum Net Heat Production: 17.24 MW + Average Net Heat Production: 16.64 MW + Minimum Net Heat Production: 15.29 MW + Initial Net Heat Production: 17.24 MW + Average Annual Heat Production: 130.78 GWh + Average Annual Heat Pump Electricity Use: 51.90 GWh/year + Average Pumping Power: 0.45 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -127,36 +127,36 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET HEAT PUMP DRAWDOWN TEMPERATURE POWER HEAT ELECTRICITY USE (deg C) (MWe) (MWt) (MWe) - 0 1.0000 104.50 0.4541 17.7352 7.0378 - 1 1.0000 104.50 0.4541 17.7352 7.0378 - 2 1.0000 104.50 0.4541 17.7352 7.0378 - 3 1.0000 104.50 0.4541 17.7352 7.0378 - 4 1.0000 104.50 0.4541 17.7351 7.0377 - 5 1.0000 104.50 0.4541 17.7339 7.0373 - 6 0.9999 104.49 0.4541 17.7297 7.0356 - 7 0.9998 104.48 0.4541 17.7198 7.0317 - 8 0.9996 104.46 0.4542 17.7017 7.0245 - 9 0.9993 104.43 0.4543 17.6736 7.0133 - 10 0.9988 104.38 0.4544 17.6346 6.9979 - 11 0.9983 104.32 0.4546 17.5844 6.9779 - 12 0.9975 104.24 0.4548 17.5234 6.9537 - 13 0.9967 104.16 0.4550 17.4522 6.9255 - 14 0.9958 104.06 0.4553 17.3717 6.8935 - 15 0.9948 103.95 0.4556 17.2830 6.8583 - 16 0.9936 103.84 0.4559 17.1869 6.8202 - 17 0.9925 103.71 0.4562 17.0847 6.7796 - 18 0.9912 103.58 0.4566 16.9770 6.7369 - 19 0.9899 103.44 0.4569 16.8649 6.6924 - 20 0.9886 103.30 0.4573 16.7492 6.6465 - 21 0.9872 103.16 0.4577 16.6304 6.5994 - 22 0.9858 103.01 0.4581 16.5093 6.5513 - 23 0.9844 102.86 0.4585 16.3864 6.5025 - 24 0.9829 102.71 0.4589 16.2621 6.4532 - 25 0.9815 102.56 0.4593 16.1370 6.4036 - 26 0.9800 102.41 0.4597 16.0113 6.3537 - 27 0.9785 102.26 0.4601 15.8854 6.3037 - 28 0.9771 102.10 0.4605 15.7595 6.2538 - 29 0.9756 101.95 0.4609 15.6340 6.2040 + 0 1.0000 104.50 0.4443 17.2387 6.8408 + 1 1.0000 104.50 0.4443 17.2387 6.8408 + 2 1.0000 104.50 0.4443 17.2387 6.8408 + 3 1.0000 104.50 0.4443 17.2387 6.8408 + 4 1.0000 104.50 0.4443 17.2387 6.8407 + 5 1.0000 104.50 0.4443 17.2380 6.8405 + 6 1.0000 104.50 0.4443 17.2352 6.8394 + 7 0.9999 104.49 0.4444 17.2283 6.8366 + 8 0.9997 104.47 0.4444 17.2150 6.8314 + 9 0.9995 104.44 0.4445 17.1937 6.8229 + 10 0.9991 104.41 0.4446 17.1632 6.8108 + 11 0.9986 104.36 0.4447 17.1231 6.7949 + 12 0.9980 104.29 0.4448 17.0733 6.7751 + 13 0.9973 104.22 0.4450 17.0143 6.7517 + 14 0.9965 104.14 0.4452 16.9466 6.7249 + 15 0.9956 104.04 0.4454 16.8711 6.6949 + 16 0.9946 103.94 0.4457 16.7886 6.6621 + 17 0.9936 103.83 0.4459 16.6999 6.6269 + 18 0.9924 103.71 0.4462 16.6057 6.5896 + 19 0.9913 103.59 0.4465 16.5070 6.5504 + 20 0.9900 103.46 0.4468 16.4044 6.5097 + 21 0.9888 103.33 0.4471 16.2984 6.4676 + 22 0.9875 103.19 0.4474 16.1898 6.4245 + 23 0.9862 103.05 0.4478 16.0791 6.3806 + 24 0.9848 102.91 0.4481 15.9666 6.3360 + 25 0.9835 102.77 0.4484 15.8529 6.2908 + 26 0.9821 102.63 0.4488 15.7383 6.2453 + 27 0.9807 102.48 0.4491 15.6230 6.1996 + 28 0.9793 102.34 0.4495 15.5075 6.1538 + 29 0.9780 102.20 0.4498 15.3918 6.1079 ******************************************************************* @@ -165,33 +165,33 @@ Simulation Metadata YEAR HEATING RESERVOIR HEAT HEAT PUMP RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED ELECTRICITY USE HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%) - 1 139.8 99.9 55.49 13.63 2.57 - 2 139.8 99.9 55.49 13.27 5.14 - 3 139.8 99.9 55.49 12.91 7.71 - 4 139.8 99.9 55.49 12.55 10.28 - 5 139.8 99.9 55.48 12.19 12.85 - 6 139.8 99.9 55.48 11.83 15.42 - 7 139.7 99.8 55.45 11.48 17.99 - 8 139.6 99.7 55.41 11.12 20.55 - 9 139.5 99.6 55.34 10.76 23.11 - 10 139.2 99.4 55.23 10.40 25.67 - 11 138.8 99.2 55.10 10.04 28.22 - 12 138.4 98.9 54.92 9.69 30.77 - 13 137.9 98.5 54.71 9.33 33.30 - 14 137.3 98.1 54.48 8.98 35.82 - 15 136.6 97.6 54.21 8.63 38.34 - 16 135.9 97.1 53.92 8.28 40.83 - 17 135.1 96.5 53.61 7.93 43.32 - 18 134.3 95.9 53.28 7.59 45.78 - 19 133.4 95.3 52.94 7.24 48.24 - 20 132.5 94.6 52.58 6.90 50.67 - 21 131.6 94.0 52.22 6.56 53.09 - 22 130.6 93.3 51.84 6.23 55.49 - 23 129.7 92.6 51.46 5.89 57.87 - 24 128.7 91.9 51.07 5.56 60.24 - 25 127.7 91.2 50.68 5.24 62.59 - 26 126.7 90.5 50.29 4.91 64.91 - 27 125.7 89.8 49.90 4.59 67.22 - 28 124.7 89.1 49.50 4.27 69.52 - 29 123.8 88.4 49.11 3.95 71.79 - 30 110.5 79.0 43.86 3.66 73.82 + 1 135.9 97.1 53.93 13.64 2.50 + 2 135.9 97.1 53.93 13.29 5.00 + 3 135.9 97.1 53.93 12.94 7.49 + 4 135.9 97.1 53.93 12.59 9.99 + 5 135.9 97.1 53.93 12.24 12.49 + 6 135.9 97.1 53.93 11.90 14.99 + 7 135.9 97.0 53.91 11.55 17.48 + 8 135.8 97.0 53.88 11.20 19.98 + 9 135.6 96.9 53.83 10.85 22.47 + 10 135.4 96.7 53.75 10.50 24.96 + 11 135.2 96.5 53.64 10.15 27.44 + 12 134.8 96.3 53.50 9.81 29.92 + 13 134.4 96.0 53.33 9.46 32.39 + 14 133.9 95.6 53.13 9.12 34.85 + 15 133.3 95.2 52.90 8.77 37.30 + 16 132.7 94.8 52.66 8.43 39.74 + 17 132.0 94.3 52.39 8.09 42.17 + 18 131.3 93.8 52.10 7.75 44.58 + 19 130.5 93.2 51.80 7.42 46.98 + 20 129.7 92.7 51.48 7.09 49.36 + 21 128.9 92.1 51.16 6.75 51.73 + 22 128.1 91.5 50.82 6.42 54.09 + 23 127.2 90.9 50.48 6.10 56.42 + 24 126.3 90.2 50.13 5.77 58.74 + 25 125.4 89.6 49.78 5.45 61.05 + 26 124.5 89.0 49.42 5.13 63.34 + 27 123.6 88.3 49.06 4.81 65.61 + 28 122.7 87.7 48.70 4.50 67.87 + 29 121.8 87.0 48.34 4.18 70.10 + 30 108.8 77.7 43.19 3.90 72.10 diff --git a/tests/examples/example11_AC.out b/tests/examples/example11_AC.out index 589de089..fb8dd88f 100644 --- a/tests/examples/example11_AC.out +++ b/tests/examples/example11_AC.out @@ -4,18 +4,18 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:25 - Calculation Time: 0.090 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.143 sec ***SUMMARY OF RESULTS*** End-Use Option: Direct-Use Heat - Average Direct-Use Heat Production: 8.69 MW - Average Cooling Production: 5.63 MW - Direct-Use Cooling Breakeven Price: 17.14 USD/MMBTU + Average Direct-Use Heat Production: 8.49 MW + Average Cooling Production: 5.50 MW + Direct-Use Cooling Breakeven Price: 17.52 USD/MMBTU Number of production wells: 2 Number of injection wells: 2 Flowrate per production well: 50.0 kg/sec @@ -30,10 +30,10 @@ Simulation Metadata Accrued financing during construction: 5.00 Project lifetime: 30 yr Capacity factor: 90.0 % - Project NPV: -14.23 MUSD + Project NPV: -14.71 MUSD Project IRR: 0.01 % - Project VIR=PI=PIR: 0.52 - Project MOIC: 0.08 + Project VIR=PI=PIR: 0.50 + Project MOIC: 0.06 ***ENGINEERING PARAMETERS*** @@ -68,8 +68,8 @@ Simulation Metadata Fracture separation: 80.00 meter Reservoir volume: 176000000 m**3 Reservoir hydrostatic pressure: 100.00 kPa - Plant outlet pressure: 416.73 kPa - Production wellhead pressure: 485.68 kPa + Plant outlet pressure: 416.74 kPa + Production wellhead pressure: 485.69 kPa Productivity Index: 10.00 kg/sec/bar Injectivity Index: 5.00 kg/sec/bar Reservoir density: 3000.00 kg/m**3 @@ -80,13 +80,13 @@ Simulation Metadata ***RESERVOIR SIMULATION RESULTS*** Maximum Production Temperature: 104.5 degC - Average Production Temperature: 103.7 degC - Minimum Production Temperature: 101.8 degC + Average Production Temperature: 103.8 degC + Minimum Production Temperature: 102.1 degC Initial Production Temperature: 104.5 degC - Average Reservoir Heat Extraction: 8.69 MW + Average Reservoir Heat Extraction: 8.49 MW Wellbore Heat Transmission Model = Constant Temperature Drop: 5.0 degC - Average Injection Well Pump Pressure Drop: 1085.1 kPa - Average Production Well Pump Pressure Drop: 480.6 kPa + Average Injection Well Pump Pressure Drop: 1101.4 kPa + Average Production Well Pump Pressure Drop: 482.5 kPa ***CAPITAL COSTS (M$)*** @@ -94,12 +94,12 @@ Simulation Metadata Drilling and completion costs: 13.91 MUSD Drilling and completion costs per well: 3.48 MUSD Stimulation costs: 3.02 MUSD - Surface power plant costs: 6.65 MUSD + Surface power plant costs: 6.57 MUSD of which Absorption Chiller Cost: 3.74 MUSD Field gathering system costs: 2.34 MUSD - Total surface equipment costs: 8.99 MUSD + Total surface equipment costs: 8.91 MUSD Exploration costs: 3.85 MUSD - Total capital costs: 29.77 MUSD + Total capital costs: 29.68 MUSD ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** @@ -109,22 +109,22 @@ Simulation Metadata Water costs: 0.05 MUSD/yr Average Reservoir Pumping Cost: 0.11 MUSD/yr Absorption Chiller O&M Cost: 0.07 MUSD/yr - Total operating and maintenance costs: 0.70 MUSD/yr + Total operating and maintenance costs: 0.69 MUSD/yr ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Maximum Net Heat Production: 9.05 MW - Average Net Heat Production: 8.69 MW - Minimum Net Heat Production: 7.92 MW - Initial Net Heat Production: 9.05 MW - Average Annual Heat Production: 68.32 GWh - Maximum Cooling Production: 5.86 MW - Average Cooling Production: 5.63 MW - Minimum Cooling Production: 5.13 MW - Initial Cooling Production: 5.86 MW - Average Annual Cooling Production: 44.27 GWh/year - Average Pumping Power: 0.21 MW + Maximum Net Heat Production: 8.80 MW + Average Net Heat Production: 8.49 MW + Minimum Net Heat Production: 7.80 MW + Initial Net Heat Production: 8.80 MW + Average Annual Heat Production: 66.73 GWh + Maximum Cooling Production: 5.70 MW + Average Cooling Production: 5.50 MW + Minimum Cooling Production: 5.05 MW + Initial Cooling Production: 5.70 MW + Average Annual Cooling Production: 43.24 GWh/year + Average Pumping Power: 0.20 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -132,36 +132,36 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET NET DRAWDOWN TEMPERATURE POWER HEAT COOLING (deg C) (MWe) (MWt) (MWt) - 0 1.0000 104.50 0.2040 9.0486 5.8635 - 1 1.0000 104.50 0.2040 9.0486 5.8635 - 2 1.0000 104.50 0.2040 9.0486 5.8635 - 3 1.0000 104.50 0.2040 9.0486 5.8635 - 4 1.0000 104.50 0.2040 9.0485 5.8634 - 5 1.0000 104.50 0.2040 9.0479 5.8630 - 6 0.9999 104.49 0.2040 9.0457 5.8616 - 7 0.9998 104.48 0.2041 9.0407 5.8584 - 8 0.9996 104.46 0.2041 9.0315 5.8524 - 9 0.9993 104.43 0.2042 9.0171 5.8431 - 10 0.9988 104.38 0.2043 8.9972 5.8302 - 11 0.9983 104.32 0.2044 8.9716 5.8136 - 12 0.9975 104.24 0.2045 8.9405 5.7934 - 13 0.9967 104.16 0.2047 8.9042 5.7699 - 14 0.9958 104.06 0.2049 8.8631 5.7433 - 15 0.9948 103.95 0.2051 8.8178 5.7140 - 16 0.9936 103.84 0.2053 8.7688 5.6822 - 17 0.9925 103.71 0.2056 8.7167 5.6484 - 18 0.9912 103.58 0.2058 8.6618 5.6128 - 19 0.9899 103.44 0.2061 8.6046 5.5758 - 20 0.9886 103.30 0.2064 8.5455 5.5375 - 21 0.9872 103.16 0.2067 8.4849 5.4982 - 22 0.9858 103.01 0.2070 8.4231 5.4582 - 23 0.9844 102.86 0.2072 8.3604 5.4175 - 24 0.9829 102.71 0.2075 8.2970 5.3765 - 25 0.9815 102.56 0.2078 8.2331 5.3351 - 26 0.9800 102.41 0.2081 8.1690 5.2935 - 27 0.9785 102.26 0.2084 8.1048 5.2519 - 28 0.9771 102.10 0.2087 8.0406 5.2103 - 29 0.9756 101.95 0.2090 7.9765 5.1688 + 0 1.0000 104.50 0.2013 8.7953 5.6993 + 1 1.0000 104.50 0.2013 8.7953 5.6993 + 2 1.0000 104.50 0.2013 8.7953 5.6993 + 3 1.0000 104.50 0.2013 8.7953 5.6993 + 4 1.0000 104.50 0.2013 8.7952 5.6993 + 5 1.0000 104.50 0.2013 8.7949 5.6991 + 6 1.0000 104.50 0.2013 8.7935 5.6982 + 7 0.9999 104.49 0.2013 8.7899 5.6959 + 8 0.9997 104.47 0.2013 8.7832 5.6915 + 9 0.9995 104.44 0.2014 8.7723 5.6844 + 10 0.9991 104.41 0.2014 8.7567 5.6744 + 11 0.9986 104.36 0.2015 8.7363 5.6611 + 12 0.9980 104.29 0.2016 8.7109 5.6446 + 13 0.9973 104.22 0.2018 8.6808 5.6251 + 14 0.9965 104.14 0.2019 8.6462 5.6028 + 15 0.9956 104.04 0.2021 8.6077 5.5778 + 16 0.9946 103.94 0.2023 8.5656 5.5505 + 17 0.9936 103.83 0.2025 8.5203 5.5212 + 18 0.9924 103.71 0.2027 8.4723 5.4901 + 19 0.9913 103.59 0.2029 8.4219 5.4574 + 20 0.9900 103.46 0.2031 8.3696 5.4235 + 21 0.9888 103.33 0.2033 8.3155 5.3885 + 22 0.9875 103.19 0.2036 8.2601 5.3526 + 23 0.9862 103.05 0.2038 8.2036 5.3159 + 24 0.9848 102.91 0.2040 8.1462 5.2788 + 25 0.9835 102.77 0.2043 8.0882 5.2412 + 26 0.9821 102.63 0.2045 8.0297 5.2033 + 27 0.9807 102.48 0.2048 7.9709 5.1652 + 28 0.9793 102.34 0.2050 7.9120 5.1270 + 29 0.9780 102.20 0.2053 7.8530 5.0887 ******************************************************************* @@ -170,33 +170,33 @@ Simulation Metadata YEAR COOLING HEAT RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (10^15 J) (%) - 1 46.2 71.3 13.74 1.84 - 2 46.2 71.3 13.48 3.67 - 3 46.2 71.3 13.22 5.51 - 4 46.2 71.3 12.96 7.34 - 5 46.2 71.3 12.71 9.18 - 6 46.2 71.3 12.45 11.01 - 7 46.2 71.3 12.19 12.85 - 8 46.2 71.2 11.94 14.68 - 9 46.1 71.2 11.68 16.51 - 10 46.0 71.0 11.43 18.34 - 11 45.9 70.8 11.17 20.16 - 12 45.8 70.6 10.92 21.98 - 13 45.6 70.3 10.66 23.79 - 14 45.4 70.0 10.41 25.59 - 15 45.2 69.7 10.16 27.38 - 16 44.9 69.3 9.91 29.17 - 17 44.7 68.9 9.66 30.94 - 18 44.4 68.5 9.42 32.70 - 19 44.1 68.1 9.17 34.45 - 20 43.8 67.6 8.93 36.19 - 21 43.5 67.1 8.69 37.92 - 22 43.2 66.7 8.45 39.64 - 23 42.9 66.2 8.21 41.34 - 24 42.6 65.7 7.97 43.03 - 25 42.2 65.2 7.74 44.70 - 26 41.9 64.7 7.50 46.37 - 27 41.6 64.2 7.27 48.02 - 28 41.2 63.6 7.04 49.66 - 29 40.9 63.1 6.82 51.28 - 30 36.5 56.4 6.61 52.73 + 1 44.9 69.3 13.74 1.78 + 2 44.9 69.3 13.49 3.57 + 3 44.9 69.3 13.24 5.35 + 4 44.9 69.3 12.99 7.14 + 5 44.9 69.3 12.74 8.92 + 6 44.9 69.3 12.49 10.70 + 7 44.9 69.3 12.24 12.49 + 8 44.9 69.3 12.00 14.27 + 9 44.8 69.2 11.75 16.05 + 10 44.8 69.1 11.50 17.83 + 11 44.7 69.0 11.25 19.60 + 12 44.6 68.8 11.00 21.37 + 13 44.4 68.6 10.75 23.14 + 14 44.3 68.3 10.51 24.89 + 15 44.1 68.0 10.26 26.64 + 16 43.9 67.7 10.02 28.39 + 17 43.6 67.4 9.78 30.12 + 18 43.4 67.0 9.54 31.84 + 19 43.2 66.6 9.30 33.56 + 20 42.9 66.2 9.06 35.26 + 21 42.6 65.8 8.82 36.95 + 22 42.3 65.3 8.59 38.63 + 23 42.1 64.9 8.35 40.30 + 24 41.8 64.5 8.12 41.96 + 25 41.5 64.0 7.89 43.61 + 26 41.2 63.5 7.66 45.24 + 27 40.9 63.1 7.43 46.86 + 28 40.6 62.6 7.21 48.48 + 29 40.3 62.1 6.99 50.07 + 30 36.0 55.5 6.79 51.50 diff --git a/tests/examples/example12_DH.out b/tests/examples/example12_DH.out index df833d4c..1c9a83fb 100644 --- a/tests/examples/example12_DH.out +++ b/tests/examples/example12_DH.out @@ -4,20 +4,20 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:32 - Calculation Time: 0.082 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.126 sec ***SUMMARY OF RESULTS*** End-Use Option: Direct-Use Heat Annual District Heating Demand: 242.90 GWh/year - Average Annual Geothermal Heat Production: 148.43 GWh/year - Average Annual Peaking Fuel Heat Production: 94.46 GWh/year - Average Direct-Use Heat Production: 19.91 MW - Direct-Use heat breakeven price: 8.66 USD/MMBTU + Average Annual Geothermal Heat Production: 144.70 GWh/year + Average Annual Peaking Fuel Heat Production: 98.20 GWh/year + Average Direct-Use Heat Production: 19.15 MW + Direct-Use heat breakeven price: 8.72 USD/MMBTU Number of production wells: 2 Number of injection wells: 2 Flowrate per production well: 50.0 kg/sec @@ -31,11 +31,11 @@ Simulation Metadata Interest Rate: 5.00 Accrued financing during construction: 0.00 Project lifetime: 30 yr - Capacity factor: 85.2 % - Project NPV: -17.18 MUSD + Capacity factor: 86.3 % + Project NPV: -17.76 MUSD Project IRR: 0.02 % - Project VIR=PI=PIR: 0.63 - Project MOIC: 0.18 + Project VIR=PI=PIR: 0.61 + Project MOIC: 0.16 ***ENGINEERING PARAMETERS*** @@ -71,8 +71,8 @@ Simulation Metadata Reservoir volume provided as input Reservoir volume: 125000000 m**3 Reservoir hydrostatic pressure: 100.00 kPa - Plant outlet pressure: 446.31 kPa - Production wellhead pressure: 515.26 kPa + Plant outlet pressure: 446.32 kPa + Production wellhead pressure: 515.27 kPa Productivity Index: 10.00 kg/sec/bar Injectivity Index: 10.00 kg/sec/bar Reservoir density: 2700.00 kg/m**3 @@ -85,10 +85,10 @@ Simulation Metadata Average Production Temperature: 109.3 degC Minimum Production Temperature: 106.4 degC Initial Production Temperature: 112.2 degC - Average Reservoir Heat Extraction: 24.88 MW + Average Reservoir Heat Extraction: 23.94 MW Wellbore Heat Transmission Model = Constant Temperature Drop: 3.0 degC - Average Injection Well Pump Pressure Drop: 1597.0 kPa - Average Production Well Pump Pressure Drop: 1393.7 kPa + Average Injection Well Pump Pressure Drop: 1640.8 kPa + Average Production Well Pump Pressure Drop: 1332.3 kPa ***CAPITAL COSTS (M$)*** @@ -96,44 +96,44 @@ Simulation Metadata Drilling and completion costs: 27.30 MUSD Drilling and completion costs per well: 6.82 MUSD Stimulation costs: 1.00 MUSD - Surface power plant costs: 12.40 MUSD - of which Peaking Boiler Cost: 3.99 MUSD - Field gathering system costs: 2.51 MUSD + Surface power plant costs: 12.14 MUSD + of which Peaking Boiler Cost: 4.05 MUSD + Field gathering system costs: 2.49 MUSD District Heating System Cost: 2.70 MUSD - Total surface equipment costs: 14.91 MUSD + Total surface equipment costs: 14.64 MUSD Exploration costs: 0.00 MUSD - Total capital costs: 45.91 MUSD + Total capital costs: 45.63 MUSD ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** Wellfield maintenance costs: 0.48 MUSD/yr - Power plant maintenance costs: 0.74 MUSD/yr + Power plant maintenance costs: 0.72 MUSD/yr Water costs: 0.00 MUSD/yr - Average Reservoir Pumping Cost: 0.20 MUSD/yr + Average Reservoir Pumping Cost: 0.19 MUSD/yr Annual District Heating O&M Cost: 0.37 MUSD/yr - Average Annual Peaking Fuel Cost: 3.03 MUSD/yr - Total operating and maintenance costs: 1.79 MUSD/yr + Average Annual Peaking Fuel Cost: 3.15 MUSD/yr + Total operating and maintenance costs: 1.75 MUSD/yr ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Maximum Net Heat Production: 20.89 MW - Average Net Heat Production: 19.91 MW - Minimum Net Heat Production: 18.92 MW - Initial Net Heat Production: 20.89 MW - Average Annual Heat Production: 146.84 GWh + Maximum Net Heat Production: 20.10 MW + Average Net Heat Production: 19.15 MW + Minimum Net Heat Production: 18.21 MW + Initial Net Heat Production: 20.10 MW + Average Annual Heat Production: 143.14 GWh Annual District Heating Demand: 242.90 GWh/year Maximum Daily District Heating Demand: 1683.32 MWh/day Average Daily District Heating Demand: 665.47 MWh/day Minimum Daily District Heating Demand: 216.86 MWh/day - Maximum Geothermal Heating Production: 20.87 MW - Average Geothermal Heating Production: 16.94 MW + Maximum Geothermal Heating Production: 20.08 MW + Average Geothermal Heating Production: 16.52 MW Minimum Geothermal Heating Production: 9.04 MW - Maximum Peaking Boiler Heat Production: 51.21 MW - Average Peaking Boiler Heat Production: 10.78 MW + Maximum Peaking Boiler Heat Production: 51.93 MW + Average Peaking Boiler Heat Production: 11.21 MW Minimum Peaking Boiler Heat Production: 0.00 MW - Average Pumping Power: 0.39 MW + Average Pumping Power: 0.37 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -141,36 +141,36 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP GEOTHERMAL DRAWDOWN TEMPERATURE POWER HEAT OUTPUT (deg C) (MWe) (MWt) - 0 1.0000 112.25 0.3761 20.8916 - 1 0.9982 112.05 0.3767 20.8252 - 2 0.9965 111.85 0.3774 20.7587 - 3 0.9947 111.66 0.3780 20.6923 - 4 0.9929 111.46 0.3786 20.6259 - 5 0.9912 111.26 0.3793 20.5594 - 6 0.9894 111.06 0.3799 20.4930 - 7 0.9877 110.86 0.3805 20.4266 - 8 0.9859 110.67 0.3812 20.3601 - 9 0.9841 110.47 0.3818 20.2937 - 10 0.9824 110.27 0.3825 20.2273 - 11 0.9806 110.07 0.3831 20.1608 - 12 0.9788 109.87 0.3837 20.0944 - 13 0.9771 109.68 0.3844 20.0280 - 14 0.9753 109.48 0.3850 19.9615 - 15 0.9735 109.28 0.3856 19.8951 - 16 0.9718 109.08 0.3862 19.8287 - 17 0.9700 108.88 0.3869 19.7622 - 18 0.9683 108.69 0.3875 19.6958 - 19 0.9665 108.49 0.3881 19.6294 - 20 0.9647 108.29 0.3888 19.5629 - 21 0.9630 108.09 0.3894 19.4965 - 22 0.9612 107.90 0.3900 19.4301 - 23 0.9594 107.70 0.3906 19.3636 - 24 0.9577 107.50 0.3912 19.2972 - 25 0.9559 107.30 0.3919 19.2308 - 26 0.9541 107.10 0.3925 19.1643 - 27 0.9524 106.91 0.3931 19.0979 - 28 0.9506 106.71 0.3937 19.0315 - 29 0.9489 106.51 0.3943 18.9650 + 0 1.0000 112.25 0.3605 20.1017 + 1 0.9982 112.05 0.3611 20.0378 + 2 0.9965 111.85 0.3616 19.9739 + 3 0.9947 111.66 0.3621 19.9099 + 4 0.9929 111.46 0.3627 19.8460 + 5 0.9912 111.26 0.3632 19.7821 + 6 0.9894 111.06 0.3637 19.7182 + 7 0.9877 110.86 0.3643 19.6543 + 8 0.9859 110.67 0.3648 19.5903 + 9 0.9841 110.47 0.3654 19.5264 + 10 0.9824 110.27 0.3659 19.4625 + 11 0.9806 110.07 0.3664 19.3986 + 12 0.9788 109.87 0.3670 19.3347 + 13 0.9771 109.68 0.3675 19.2707 + 14 0.9753 109.48 0.3680 19.2068 + 15 0.9735 109.28 0.3685 19.1429 + 16 0.9718 109.08 0.3691 19.0790 + 17 0.9700 108.88 0.3696 19.0150 + 18 0.9683 108.69 0.3701 18.9511 + 19 0.9665 108.49 0.3707 18.8872 + 20 0.9647 108.29 0.3712 18.8233 + 21 0.9630 108.09 0.3717 18.7594 + 22 0.9612 107.90 0.3722 18.6954 + 23 0.9594 107.70 0.3728 18.6315 + 24 0.9577 107.50 0.3733 18.5676 + 25 0.9559 107.30 0.3738 18.5037 + 26 0.9541 107.10 0.3743 18.4397 + 27 0.9524 106.91 0.3749 18.3758 + 28 0.9506 106.71 0.3754 18.3119 + 29 0.9489 106.51 0.3759 18.2480 ******************************************************************* @@ -179,33 +179,33 @@ Simulation Metadata YEAR GEOTHERMAL PEAKING BOILER RESERVOIR HEAT RESERVOIR PERCENTAGE OF HEATING PROVIDED HEATING PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%) - 1 153.1 89.8 191.38 21.33 3.13 - 2 152.8 90.1 190.99 20.65 6.25 - 3 152.5 90.4 190.60 19.96 9.37 - 4 152.2 90.7 190.21 19.27 12.48 - 5 151.8 91.0 189.81 18.59 15.58 - 6 151.5 91.4 189.42 17.91 18.68 - 7 151.2 91.7 189.02 17.23 21.77 - 8 150.9 92.0 188.62 16.55 24.85 - 9 150.6 92.3 188.22 15.87 27.93 - 10 150.3 92.6 187.81 15.20 31.00 - 11 149.9 93.0 187.41 14.52 34.06 - 12 149.6 93.3 187.00 13.85 37.12 - 13 149.3 93.6 186.60 13.18 40.17 - 14 149.0 93.9 186.19 12.51 43.21 - 15 148.6 94.3 185.79 11.84 46.25 - 16 148.3 94.6 185.38 11.17 49.28 - 17 148.0 94.9 184.97 10.50 52.30 - 18 147.6 95.3 184.55 9.84 55.32 - 19 147.3 95.6 184.14 9.18 58.33 - 20 147.0 95.9 183.72 8.52 61.33 - 21 146.6 96.3 183.31 7.86 64.33 - 22 146.3 96.6 182.89 7.20 67.32 - 23 146.0 96.9 182.48 6.54 70.30 - 24 145.6 97.2 182.06 5.88 73.28 - 25 145.3 97.6 181.64 5.23 76.25 - 26 145.0 97.9 181.23 4.58 79.21 - 27 144.6 98.2 180.81 3.93 82.17 - 28 144.3 98.6 180.40 3.28 85.12 - 29 144.0 98.9 179.98 2.63 88.06 - 30 95.8 99.2 119.77 2.20 90.02 + 1 149.3 93.6 186.65 21.35 3.05 + 2 149.0 93.9 186.26 20.68 6.10 + 3 148.7 94.2 185.87 20.01 9.13 + 4 148.4 94.5 185.48 19.34 12.17 + 5 148.1 94.8 185.08 18.68 15.19 + 6 147.7 95.1 184.69 18.01 18.21 + 7 147.4 95.5 184.29 17.35 21.22 + 8 147.1 95.8 183.89 16.69 24.23 + 9 146.8 96.1 183.49 16.03 27.23 + 10 146.5 96.4 183.09 15.37 30.22 + 11 146.2 96.7 182.69 14.71 33.21 + 12 145.8 97.1 182.29 14.05 36.19 + 13 145.5 97.4 181.89 13.40 39.16 + 14 145.2 97.7 181.49 12.74 42.13 + 15 144.9 98.0 181.09 12.09 45.09 + 16 144.5 98.3 180.69 11.44 48.04 + 17 144.2 98.7 180.29 10.79 50.99 + 18 143.9 99.0 179.89 10.15 53.93 + 19 143.6 99.3 179.48 9.50 56.87 + 20 143.3 99.6 179.08 8.85 59.79 + 21 142.9 100.0 178.68 8.21 62.71 + 22 142.6 100.3 178.28 7.57 65.63 + 23 142.3 100.6 177.87 6.93 68.54 + 24 142.0 100.9 177.46 6.29 71.44 + 25 141.6 101.3 177.06 5.65 74.33 + 26 141.3 101.6 176.65 5.02 77.22 + 27 141.0 101.9 176.24 4.38 80.10 + 28 140.7 102.2 175.83 3.75 82.97 + 29 140.3 102.6 175.42 3.12 85.84 + 30 93.4 102.9 116.73 2.70 87.75 diff --git a/tests/examples/example13.out b/tests/examples/example13.out index 0887fe8b..0c046524 100644 --- a/tests/examples/example13.out +++ b/tests/examples/example13.out @@ -4,18 +4,18 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:19 - Calculation Time: 0.023 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.044 sec ***SUMMARY OF RESULTS*** End-Use Option: Cogeneration Bottoming Cycle, Electricity sales considered as extra income - Average Net Electricity Production: 3.19 MW - Average Direct-Use Heat Production: 15.98 MW - Direct-Use heat breakeven price: 13.06 USD/MMBTU + Average Net Electricity Production: 3.12 MW + Average Direct-Use Heat Production: 15.20 MW + Direct-Use heat breakeven price: 13.65 USD/MMBTU Number of production wells: 2 Number of injection wells: 2 Flowrate per production well: 50.0 kg/sec @@ -30,10 +30,10 @@ Simulation Metadata Accrued financing during construction: 0.00 Project lifetime: 30 yr Capacity factor: 80.0 % - Project NPV: -43.77 MUSD - Project IRR: -0.06 % - Project VIR=PI=PIR: 0.23 - Project MOIC: -0.21 + Project NPV: -45.14 MUSD + Project IRR: -0.07 % + Project VIR=PI=PIR: 0.20 + Project MOIC: -0.23 ***ENGINEERING PARAMETERS*** @@ -70,8 +70,8 @@ Simulation Metadata Reservoir volume provided as input Reservoir volume: 125000000 m**3 Reservoir hydrostatic pressure: 100.00 kPa - Plant outlet pressure: 2260.58 kPa - Production wellhead pressure: 2329.53 kPa + Plant outlet pressure: 2260.87 kPa + Production wellhead pressure: 2329.82 kPa Productivity Index: 10.00 kg/sec/bar Injectivity Index: 10.00 kg/sec/bar Reservoir density: 2700.00 kg/m**3 @@ -84,10 +84,10 @@ Simulation Metadata Average Production Temperature: 197.0 degC Minimum Production Temperature: 184.4 degC Initial Production Temperature: 209.0 degC - Average Reservoir Heat Extraction: 62.49 MW + Average Reservoir Heat Extraction: 59.46 MW Wellbore Heat Transmission Model = Constant Temperature Drop: 3.0 degC - Average Injection Well Pump Pressure Drop: -1369.9 kPa - Average Production Well Pump Pressure Drop: 1496.0 kPa + Average Injection Well Pump Pressure Drop: -1375.4 kPa + Average Production Well Pump Pressure Drop: 2091.5 kPa ***CAPITAL COSTS (M$)*** @@ -95,19 +95,19 @@ Simulation Metadata Drilling and completion costs: 33.28 MUSD Drilling and completion costs per well: 8.32 MUSD Stimulation costs: 1.00 MUSD - Surface power plant costs: 20.07 MUSD - Field gathering system costs: 2.30 MUSD - Total surface equipment costs: 22.37 MUSD + Surface power plant costs: 19.67 MUSD + Field gathering system costs: 2.33 MUSD + Total surface equipment costs: 22.01 MUSD Exploration costs: 0.00 MUSD - Total capital costs: 56.65 MUSD + Total capital costs: 56.29 MUSD ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** Wellfield maintenance costs: 0.69 MUSD/yr - Power plant maintenance costs: 1.32 MUSD/yr + Power plant maintenance costs: 1.29 MUSD/yr Water costs: 0.00 MUSD/yr - Total operating and maintenance costs: 3.15 MUSD/yr + Total operating and maintenance costs: 3.11 MUSD/yr ***SURFACE EQUIPMENT SIMULATION RESULTS*** @@ -117,19 +117,19 @@ Simulation Metadata Average Total Electricity Generation: 3.40 MW Minimum Total Electricity Generation: 3.40 MW Initial Total Electricity Generation: 3.40 MW - Maximum Net Electricity Generation: 3.26 MW - Average Net Electricity Generation: 3.19 MW - Minimum Net Electricity Generation: 3.11 MW - Initial Net Electricity Generation: 3.26 MW + Maximum Net Electricity Generation: 3.17 MW + Average Net Electricity Generation: 3.12 MW + Minimum Net Electricity Generation: 3.07 MW + Initial Net Electricity Generation: 3.17 MW Average Annual Total Electricity Generation: 23.57 GWh - Average Annual Net Electricity Generation: 22.08 GWh + Average Annual Net Electricity Generation: 21.62 GWh Initial pumping power/net installed power: 100.00 % - Maximum Net Heat Production: 20.07 MW - Average Net Heat Production: 15.98 MW - Minimum Net Heat Production: 11.71 MW - Initial Net Heat Production: 20.07 MW - Average Annual Heat Production: 110.73 GWh - Average Pumping Power: 0.22 MW + Maximum Net Heat Production: 19.09 MW + Average Net Heat Production: 15.20 MW + Minimum Net Heat Production: 11.14 MW + Initial Net Heat Production: 19.09 MW + Average Annual Heat Production: 105.36 GWh + Average Pumping Power: 0.28 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -137,36 +137,36 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET NET FIRST LAW DRAWDOWN TEMPERATURE POWER POWER HEAT EFFICIENCY (deg C) (MW) (MW) (MW) (%) - 0 1.0000 209.00 0.1425 3.2593 20.0669 7.6662 - 1 0.9922 207.36 0.1530 3.2488 19.5097 7.6415 - 2 0.9843 205.72 0.1634 3.2384 18.9526 7.6171 - 3 0.9765 204.09 0.1736 3.2281 18.3954 7.5930 - 4 0.9686 202.45 0.1837 3.2180 17.8382 7.5692 - 5 0.9608 200.81 0.1938 3.2080 17.2810 7.5456 - 6 0.9530 199.17 0.2037 3.1981 16.7238 7.5223 - 7 0.9451 197.53 0.2134 3.1883 16.1666 7.4993 - 8 0.9373 195.89 0.2231 3.1786 15.6095 7.4765 - 9 0.9295 194.26 0.2327 3.1691 15.0523 7.4540 - 10 0.9216 192.62 0.2421 3.1596 14.4951 7.4318 - 11 0.9138 190.98 0.2515 3.1502 13.9379 7.4098 - 12 0.9059 189.34 0.2607 3.1410 13.3807 7.3880 - 13 0.8981 187.70 0.2699 3.1319 12.8236 7.3665 - 14 0.8903 186.07 0.2789 3.1228 12.2664 7.3453 - 15 0.8824 184.43 0.2879 3.1139 11.7092 7.3242 - 16 0.9948 207.91 0.1495 3.2522 19.6955 7.6497 - 17 0.9869 206.27 0.1599 3.2418 19.1383 7.6252 - 18 0.9791 204.63 0.1702 3.2315 18.5811 7.6010 - 19 0.9713 202.99 0.1804 3.2214 18.0239 7.5771 - 20 0.9634 201.36 0.1904 3.2113 17.4667 7.5534 - 21 0.9556 199.72 0.2004 3.2014 16.9096 7.5301 - 22 0.9477 198.08 0.2102 3.1916 16.3524 7.5069 - 23 0.9399 196.44 0.2199 3.1818 15.7952 7.4841 - 24 0.9321 194.80 0.2295 3.1722 15.2380 7.4615 - 25 0.9242 193.16 0.2390 3.1627 14.6808 7.4392 - 26 0.9164 191.53 0.2484 3.1534 14.1237 7.4171 - 27 0.9086 189.89 0.2577 3.1441 13.5665 7.3953 - 28 0.9007 188.25 0.2668 3.1349 13.0093 7.3737 - 29 0.8929 186.61 0.2759 3.1258 12.4521 7.3523 + 0 1.0000 209.00 0.2316 3.1701 19.0936 7.8367 + 1 0.9922 207.36 0.2387 3.1631 18.5634 7.8192 + 2 0.9843 205.72 0.2457 3.1561 18.0333 7.8019 + 3 0.9765 204.09 0.2526 3.1491 17.5031 7.7847 + 4 0.9686 202.45 0.2595 3.1422 16.9730 7.7677 + 5 0.9608 200.81 0.2664 3.1354 16.4428 7.7507 + 6 0.9530 199.17 0.2732 3.1286 15.9127 7.7339 + 7 0.9451 197.53 0.2799 3.1218 15.3825 7.7172 + 8 0.9373 195.89 0.2867 3.1151 14.8524 7.7006 + 9 0.9295 194.26 0.2933 3.1084 14.3222 7.6841 + 10 0.9216 192.62 0.2999 3.1018 13.7920 7.6677 + 11 0.9138 190.98 0.3065 3.0952 13.2619 7.6515 + 12 0.9059 189.34 0.3130 3.0887 12.7317 7.6354 + 13 0.8981 187.70 0.3195 3.0822 12.2016 7.6194 + 14 0.8903 186.07 0.3259 3.0758 11.6714 7.6035 + 15 0.8824 184.43 0.3323 3.0694 11.1413 7.5877 + 16 0.9948 207.91 0.2363 3.1654 18.7402 7.8250 + 17 0.9869 206.27 0.2433 3.1584 18.2100 7.8077 + 18 0.9791 204.63 0.2503 3.1514 17.6798 7.7904 + 19 0.9713 202.99 0.2572 3.1445 17.1497 7.7733 + 20 0.9634 201.36 0.2641 3.1376 16.6195 7.7563 + 21 0.9556 199.72 0.2709 3.1308 16.0894 7.7395 + 22 0.9477 198.08 0.2777 3.1240 15.5592 7.7227 + 23 0.9399 196.44 0.2844 3.1173 15.0291 7.7061 + 24 0.9321 194.80 0.2911 3.1106 14.4989 7.6896 + 25 0.9242 193.16 0.2977 3.1040 13.9688 7.6732 + 26 0.9164 191.53 0.3043 3.0974 13.4386 7.6569 + 27 0.9086 189.89 0.3109 3.0909 12.9084 7.6407 + 28 0.9007 188.25 0.3174 3.0844 12.3783 7.6247 + 29 0.8929 186.61 0.3238 3.0779 11.8481 7.6088 ******************************************************************* @@ -175,33 +175,33 @@ Simulation Metadata YEAR HEAT ELECTRICITY HEAT RESERVOIR PERCENTAGE OF PROVIDED PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%) - 1 138.7 22.8 471.29 52.98 3.10 - 2 134.8 22.7 466.41 51.30 6.17 - 3 130.9 22.7 461.53 49.64 9.21 - 4 127.0 22.6 456.65 47.99 12.22 - 5 123.1 22.5 451.76 46.37 15.19 - 6 119.2 22.4 446.88 44.76 18.14 - 7 115.2 22.4 442.00 43.17 21.05 - 8 111.3 22.3 437.12 41.59 23.93 - 9 107.4 22.2 432.24 40.04 26.77 - 10 103.5 22.2 427.36 38.50 29.59 - 11 99.6 22.1 422.48 36.98 32.37 - 12 95.7 22.0 417.60 35.48 35.12 - 13 91.8 22.0 412.72 33.99 37.83 - 14 87.9 21.9 407.84 32.52 40.52 - 15 84.0 21.9 402.96 31.07 43.17 - 16 130.0 22.7 460.44 29.41 46.20 - 17 136.1 22.8 468.03 27.73 49.29 - 18 132.2 22.7 463.15 26.06 52.34 - 19 128.3 22.6 458.27 24.41 55.35 - 20 124.4 22.5 453.39 22.78 58.34 - 21 120.5 22.5 448.51 21.16 61.29 - 22 116.5 22.4 443.63 19.57 64.21 - 23 112.6 22.3 438.75 17.99 67.10 - 24 108.7 22.3 433.87 16.43 69.96 - 25 104.8 22.2 428.99 14.88 72.78 - 26 100.9 22.1 424.11 13.35 75.58 - 27 97.0 22.1 419.23 11.85 78.34 - 28 93.1 22.0 414.34 10.35 81.06 - 29 89.2 21.9 409.46 8.88 83.76 - 30 57.3 14.6 270.26 7.91 85.54 + 1 132.0 22.2 448.43 53.06 2.95 + 2 128.2 22.1 443.78 51.46 5.87 + 3 124.5 22.1 439.14 49.88 8.77 + 4 120.8 22.0 434.50 48.32 11.63 + 5 117.1 22.0 429.85 46.77 14.46 + 6 113.4 21.9 425.21 45.24 17.26 + 7 109.7 21.9 420.56 43.73 20.03 + 8 105.9 21.9 415.92 42.23 22.76 + 9 102.2 21.8 411.28 40.75 25.47 + 10 98.5 21.8 406.63 39.28 28.15 + 11 94.8 21.7 401.99 37.84 30.80 + 12 91.1 21.7 397.34 36.41 33.41 + 13 87.4 21.6 392.70 34.99 36.00 + 14 83.7 21.6 388.06 33.60 38.55 + 15 79.9 21.5 383.41 32.22 41.08 + 16 123.7 22.1 438.11 30.64 43.96 + 17 129.5 22.2 445.33 29.03 46.90 + 18 125.8 22.1 440.69 27.45 49.80 + 19 122.0 22.1 436.04 25.88 52.67 + 20 118.3 22.0 431.40 24.33 55.51 + 21 114.6 22.0 426.76 22.79 58.32 + 22 110.9 21.9 422.11 21.27 61.10 + 23 107.2 21.9 417.47 19.77 63.85 + 24 103.5 21.8 412.82 18.28 66.56 + 25 99.8 21.8 408.18 16.81 69.25 + 26 96.0 21.7 403.54 15.36 71.91 + 27 92.3 21.7 398.89 13.92 74.54 + 28 88.6 21.6 394.25 12.50 77.13 + 29 84.9 21.6 389.60 11.10 79.70 + 30 54.5 14.4 257.16 10.17 81.39 diff --git a/tests/examples/example1_addons.out b/tests/examples/example1_addons.out index 7994efdd..5a600776 100644 --- a/tests/examples/example1_addons.out +++ b/tests/examples/example1_addons.out @@ -4,17 +4,17 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:17 - Calculation Time: 0.683 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.629 sec ***SUMMARY OF RESULTS*** End-Use Option: Electricity - Average Net Electricity Production: 5.41 MW - Electricity breakeven price: 1.74 cents/kWh + Average Net Electricity Production: 5.37 MW + Electricity breakeven price: 1.75 cents/kWh Number of production wells: 2 Number of injection wells: 2 Flowrate per production well: 55.0 kg/sec @@ -29,10 +29,10 @@ Simulation Metadata Accrued financing during construction: 0.00 Project lifetime: 30 yr Capacity factor: 90.0 % - Project NPV: 49.71 MUSD + Project NPV: 49.23 MUSD Project IRR: 0.17 % - Project VIR=PI=PIR: 2.60 - Project MOIC: 24.83 + Project VIR=PI=PIR: 2.58 + Project MOIC: 24.84 ***ENGINEERING PARAMETERS*** @@ -43,7 +43,7 @@ Simulation Metadata Pump efficiency: 80.0 Injection temperature: 50.0 degC Production Wellbore heat transmission calculated with Ramey's model - Average production well temperature drop: 2.9 degC + Average production well temperature drop: 3.0 degC Flowrate per production well: 55.0 kg/sec Injection well casing ID: 7.000 in Production well casing ID: 7.000 in @@ -67,8 +67,8 @@ Simulation Metadata Fracture area: 810000.00 m**2 Reservoir volume: 1000000000 m**3 Reservoir hydrostatic pressure: 100.00 kPa - Plant outlet pressure: 1067.80 kPa - Production wellhead pressure: 1136.75 kPa + Plant outlet pressure: 1067.94 kPa + Production wellhead pressure: 1136.89 kPa Productivity Index: 5.00 kg/sec/bar Injectivity Index: 5.00 kg/sec/bar Reservoir density: 2700.00 kg/m**3 @@ -78,15 +78,15 @@ Simulation Metadata ***RESERVOIR SIMULATION RESULTS*** - Maximum Production Temperature: 167.3 degC - Average Production Temperature: 167.1 degC - Minimum Production Temperature: 165.4 degC - Initial Production Temperature: 165.4 degC - Average Reservoir Heat Extraction: 54.37 MW + Maximum Production Temperature: 167.2 degC + Average Production Temperature: 167.0 degC + Minimum Production Temperature: 165.2 degC + Initial Production Temperature: 165.2 degC + Average Reservoir Heat Extraction: 52.38 MW Production Wellbore Heat Transmission Model = Ramey Model - Average Production Well Temperature Drop: 2.9 degC - Average Injection Well Pump Pressure Drop: 217.6 kPa - Average Production Well Pump Pressure Drop: 1004.5 kPa + Average Production Well Temperature Drop: 3.0 degC + Average Injection Well Pump Pressure Drop: 219.1 kPa + Average Production Well Pump Pressure Drop: 1248.2 kPa ***CAPITAL COSTS (M$)*** @@ -94,11 +94,11 @@ Simulation Metadata Drilling and completion costs: 21.95 MUSD Drilling and completion costs per well: 5.49 MUSD Stimulation costs: 3.02 MUSD - Surface power plant costs: 20.81 MUSD - Field gathering system costs: 2.29 MUSD + Surface power plant costs: 20.78 MUSD + Field gathering system costs: 2.32 MUSD Total surface equipment costs: 23.10 MUSD Exploration costs: 5.33 MUSD - Total capital costs: 31.07 MUSD + Total capital costs: 31.06 MUSD Annualized capital costs: 1.55 MUSD @@ -113,18 +113,18 @@ Simulation Metadata ***SURFACE EQUIPMENT SIMULATION RESULTS*** Initial geofluid availability: 0.11 MW/(kg/s) - Maximum Total Electricity Generation: 5.62 MW - Average Total Electricity Generation: 5.59 MW - Minimum Total Electricity Generation: 5.43 MW - Initial Total Electricity Generation: 5.43 MW - Maximum Net Electricity Generation: 5.44 MW - Average Net Electricity Generation: 5.41 MW - Minimum Net Electricity Generation: 5.24 MW - Initial Net Electricity Generation: 5.24 MW - Average Annual Total Electricity Generation: 43.89 GWh - Average Annual Net Electricity Generation: 42.44 GWh + Maximum Total Electricity Generation: 5.61 MW + Average Total Electricity Generation: 5.58 MW + Minimum Total Electricity Generation: 5.41 MW + Initial Total Electricity Generation: 5.41 MW + Maximum Net Electricity Generation: 5.40 MW + Average Net Electricity Generation: 5.37 MW + Minimum Net Electricity Generation: 5.20 MW + Initial Net Electricity Generation: 5.20 MW + Average Annual Total Electricity Generation: 43.80 GWh + Average Annual Net Electricity Generation: 42.14 GWh Initial pumping power/net installed power: 100.00 % - Average Pumping Power: 0.18 MW + Average Pumping Power: 0.21 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -132,36 +132,36 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET FIRST LAW DRAWDOWN TEMPERATURE POWER POWER EFFICIENCY (degC) (MW) (MW) (%) - 1 1.0000 165.41 0.1864 5.2427 9.7817 - 2 1.0056 166.33 0.1855 5.3343 9.8740 - 3 1.0071 166.59 0.1852 5.3607 9.9004 - 4 1.0080 166.73 0.1850 5.3745 9.9142 - 5 1.0085 166.82 0.1849 5.3836 9.9233 - 6 1.0089 166.89 0.1849 5.3904 9.9301 - 7 1.0093 166.94 0.1848 5.3957 9.9353 - 8 1.0095 166.98 0.1848 5.4000 9.9397 - 9 1.0097 167.02 0.1847 5.4037 9.9433 - 10 1.0099 167.05 0.1847 5.4069 9.9465 - 11 1.0101 167.08 0.1847 5.4096 9.9493 - 12 1.0102 167.10 0.1846 5.4121 9.9517 - 13 1.0104 167.13 0.1846 5.4143 9.9539 - 14 1.0105 167.15 0.1846 5.4163 9.9559 - 15 1.0106 167.16 0.1846 5.4182 9.9577 - 16 1.0107 167.18 0.1845 5.4199 9.9594 - 17 1.0108 167.20 0.1845 5.4214 9.9610 - 18 1.0109 167.21 0.1845 5.4229 9.9624 - 19 1.0110 167.22 0.1845 5.4242 9.9638 - 20 1.0110 167.24 0.1845 5.4255 9.9650 - 21 1.0111 167.25 0.1845 5.4267 9.9662 - 22 1.0112 167.26 0.1845 5.4278 9.9673 - 23 1.0112 167.27 0.1845 5.4289 9.9684 - 24 1.0113 167.28 0.1844 5.4299 9.9694 - 25 1.0114 167.29 0.1844 5.4308 9.9703 - 26 1.0114 167.30 0.1844 5.4318 9.9712 - 27 1.0115 167.31 0.1844 5.4326 9.9721 - 28 1.0115 167.32 0.1844 5.4334 9.9729 - 29 1.0116 167.32 0.1844 5.4342 9.9737 - 30 1.0116 167.33 0.1844 5.4349 9.9744 + 1 1.0000 165.24 0.2141 5.1987 10.0742 + 2 1.0058 166.19 0.2133 5.2932 10.1734 + 3 1.0074 166.47 0.2130 5.3205 10.2019 + 4 1.0083 166.61 0.2129 5.3347 10.2167 + 5 1.0088 166.70 0.2128 5.3441 10.2265 + 6 1.0093 166.77 0.2128 5.3511 10.2337 + 7 1.0096 166.83 0.2127 5.3566 10.2394 + 8 1.0099 166.87 0.2127 5.3611 10.2441 + 9 1.0101 166.91 0.2127 5.3649 10.2480 + 10 1.0103 166.94 0.2126 5.3682 10.2514 + 11 1.0105 166.97 0.2126 5.3710 10.2543 + 12 1.0106 167.00 0.2126 5.3736 10.2570 + 13 1.0108 167.02 0.2126 5.3759 10.2594 + 14 1.0109 167.04 0.2126 5.3779 10.2615 + 15 1.0110 167.06 0.2125 5.3798 10.2635 + 16 1.0111 167.08 0.2125 5.3816 10.2653 + 17 1.0112 167.09 0.2125 5.3832 10.2669 + 18 1.0113 167.11 0.2125 5.3847 10.2685 + 19 1.0114 167.12 0.2125 5.3861 10.2699 + 20 1.0115 167.14 0.2125 5.3874 10.2713 + 21 1.0115 167.15 0.2125 5.3886 10.2726 + 22 1.0116 167.16 0.2125 5.3898 10.2738 + 23 1.0117 167.17 0.2125 5.3909 10.2749 + 24 1.0117 167.18 0.2124 5.3920 10.2760 + 25 1.0118 167.19 0.2124 5.3929 10.2770 + 26 1.0118 167.20 0.2124 5.3939 10.2780 + 27 1.0119 167.21 0.2124 5.3948 10.2789 + 28 1.0119 167.22 0.2124 5.3956 10.2798 + 29 1.0120 167.23 0.2124 5.3965 10.2806 + 30 1.0120 167.23 0.2124 5.3972 10.2814 ******************************************************************* @@ -170,50 +170,50 @@ Simulation Metadata YEAR ELECTRICITY HEAT RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (10^15 J) (%) - 1 41.8 424.4 322.47 0.47 - 2 42.2 426.5 320.94 0.95 - 3 42.3 427.2 319.40 1.42 - 4 42.4 427.6 317.86 1.90 - 5 42.5 427.9 316.32 2.37 - 6 42.5 428.1 314.78 2.85 - 7 42.6 428.2 313.24 3.32 - 8 42.6 428.4 311.69 3.80 - 9 42.6 428.5 310.15 4.27 - 10 42.7 428.6 308.61 4.75 - 11 42.7 428.7 307.07 5.23 - 12 42.7 428.8 305.52 5.70 - 13 42.7 428.9 303.98 6.18 - 14 42.7 428.9 302.43 6.66 - 15 42.7 429.0 300.89 7.13 - 16 42.8 429.1 299.34 7.61 - 17 42.8 429.1 297.80 8.09 - 18 42.8 429.2 296.25 8.56 - 19 42.8 429.2 294.71 9.04 - 20 42.8 429.3 293.16 9.52 - 21 42.8 429.3 291.62 9.99 - 22 42.8 429.4 290.07 10.47 - 23 42.8 429.4 288.53 10.95 - 24 42.8 429.4 286.98 11.43 - 25 42.8 429.5 285.44 11.90 - 26 42.9 429.5 283.89 12.38 - 27 42.9 429.5 282.34 12.86 - 28 42.9 429.5 280.80 13.33 - 29 42.9 429.6 279.25 13.81 - 30 35.7 358.0 277.96 14.21 + 1 41.4 408.7 322.53 0.45 + 2 41.9 410.7 321.05 0.91 + 3 42.0 411.4 319.57 1.37 + 4 42.1 411.8 318.09 1.83 + 5 42.2 412.1 316.60 2.28 + 6 42.2 412.3 315.12 2.74 + 7 42.3 412.5 313.63 3.20 + 8 42.3 412.7 312.15 3.66 + 9 42.3 412.8 310.66 4.12 + 10 42.4 412.9 309.17 4.58 + 11 42.4 413.0 307.69 5.03 + 12 42.4 413.1 306.20 5.49 + 13 42.4 413.2 304.71 5.95 + 14 42.4 413.2 303.23 6.41 + 15 42.4 413.3 301.74 6.87 + 16 42.5 413.3 300.25 7.33 + 17 42.5 413.4 298.76 7.79 + 18 42.5 413.5 297.27 8.25 + 19 42.5 413.5 295.78 8.71 + 20 42.5 413.5 294.30 9.17 + 21 42.5 413.6 292.81 9.63 + 22 42.5 413.6 291.32 10.09 + 23 42.5 413.7 289.83 10.55 + 24 42.5 413.7 288.34 11.01 + 25 42.5 413.7 286.85 11.47 + 26 42.6 413.8 285.36 11.93 + 27 42.6 413.8 283.87 12.39 + 28 42.6 413.8 282.38 12.85 + 29 42.6 413.9 280.89 13.31 + 30 35.5 344.9 279.65 13.69 ***EXTENDED ECONOMICS*** - Adjusted Project LCOE (after incentives, grants, AddOns,etc): 1.74 cents/kWh + Adjusted Project LCOE (after incentives, grants, AddOns,etc): 1.75 cents/kWh Adjusted Project LCOH (after incentives, grants, AddOns,etc): 0.00 USD/MMBTU - Adjusted Project CAPEX (after incentives, grants, AddOns, etc): 101.07 MUSD + Adjusted Project CAPEX (after incentives, grants, AddOns, etc): 101.06 MUSD Adjusted Project OPEX (after incentives, grants, AddOns, etc): 0.88 MUSD - Project NPV (including AddOns): -4.98 MUSD + Project NPV (including AddOns): -5.46 MUSD Project IRR (including AddOns): 0.06 % Project VIR=PI=PIR (including AddOns): 0.95 Project MOIC (including AddOns): 1.00 - Project Payback Period (including AddOns): 15.57 yr + Project Payback Period (including AddOns): 15.63 yr Total Add-on CAPEX: 70.00 MUSD Total Add-on OPEX: 1.70 MUSD/yr Total Add-on Net Elec: 25900.00 kW/yr @@ -228,47 +228,47 @@ Simulation Metadata Year Electricity Heat Add-on Annual AddOn Cumm. AddOn Annual Project Cumm. Project Since Price Revenue Price Revenue Revenue Cash Flow Cash Flow Cash Flow Cash Flow Start (cents/kWh)(MUSD/yr) (cents/kWh)(MUSD/yr) (MUSD/yr) (MUSD/yr) (MUSD) (MUSD/yr) (MUSD) - 1 0.090 0.0023 0.012 0.0000 1.14 -70.00 -70.00 -101.07 -101.07 - 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -68.86 5.71 -95.36 - 3 0.090 0.0023 0.012 0.0000 1.14 1.14 -67.72 5.75 -89.61 - 4 0.090 0.0023 0.012 0.0000 1.14 1.14 -66.59 5.77 -83.84 - 5 0.090 0.0023 0.012 0.0000 1.14 1.14 -65.45 5.77 -78.07 - 6 0.090 0.0023 0.012 0.0000 1.14 1.14 -64.31 5.78 -72.29 - 7 0.102 0.0026 0.012 0.0000 1.14 1.14 -63.17 5.78 -66.51 - 8 0.114 0.0030 0.012 0.0000 1.14 1.14 -62.03 6.30 -60.21 - 9 0.126 0.0033 0.022 0.0000 1.14 1.14 -60.89 6.81 -53.40 - 10 0.138 0.0036 0.032 0.0000 1.14 1.14 -59.75 7.33 -46.07 - 11 0.150 0.0039 0.036 0.0000 1.14 1.14 -58.61 7.84 -38.23 - 12 0.150 0.0039 0.036 0.0000 1.14 1.14 -57.47 8.36 -29.87 - 13 0.150 0.0039 0.036 0.0000 1.14 1.14 -56.33 8.36 -21.51 - 14 0.150 0.0039 0.036 0.0000 1.14 1.14 -55.19 8.36 -13.14 - 15 0.150 0.0039 0.036 0.0000 1.14 1.14 -54.05 8.37 -4.78 - 16 0.150 0.0039 0.036 0.0000 1.14 1.14 -52.91 8.37 3.59 - 17 0.150 0.0039 0.036 0.0000 1.14 1.14 -51.77 8.37 11.96 - 18 0.150 0.0039 0.036 0.0000 1.14 1.14 -50.63 8.37 20.33 - 19 0.150 0.0039 0.036 0.0000 1.14 1.14 -49.49 8.37 28.71 - 20 0.150 0.0039 0.036 0.0000 1.14 1.14 -48.35 8.37 37.08 - 21 0.150 0.0039 0.036 0.0000 1.14 1.14 -47.21 8.38 45.46 - 22 0.150 0.0039 0.036 0.0000 1.14 1.14 -46.07 8.38 53.84 - 23 0.150 0.0039 0.036 0.0000 1.14 1.14 -44.93 8.38 62.21 - 24 0.150 0.0039 0.036 0.0000 1.14 1.14 -43.80 8.38 70.59 - 25 0.150 0.0039 0.036 0.0000 1.14 1.14 -42.66 8.38 78.98 - 26 0.150 0.0039 0.036 0.0000 1.14 1.14 -41.52 8.38 87.36 - 27 0.150 0.0039 0.036 0.0000 1.14 1.14 -40.38 8.38 95.74 - 28 0.150 0.0039 0.036 0.0000 1.14 1.14 -39.24 8.38 104.13 - 29 0.150 0.0039 0.036 0.0000 1.14 1.14 -38.10 8.39 112.51 - 30 0.150 0.0039 0.036 0.0000 1.14 1.14 -36.96 8.39 120.90 + 1 0.090 0.0023 0.012 0.0000 1.14 -70.00 -70.00 -101.06 -101.06 + 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -68.86 5.68 -95.38 + 3 0.090 0.0023 0.012 0.0000 1.14 1.14 -67.72 5.72 -89.65 + 4 0.090 0.0023 0.012 0.0000 1.14 1.14 -66.59 5.74 -83.91 + 5 0.090 0.0023 0.012 0.0000 1.14 1.14 -65.45 5.75 -78.17 + 6 0.090 0.0023 0.012 0.0000 1.14 1.14 -64.31 5.75 -72.42 + 7 0.102 0.0026 0.012 0.0000 1.14 1.14 -63.17 5.76 -66.66 + 8 0.114 0.0030 0.012 0.0000 1.14 1.14 -62.03 6.27 -60.39 + 9 0.126 0.0033 0.022 0.0000 1.14 1.14 -60.89 6.78 -53.61 + 10 0.138 0.0036 0.032 0.0000 1.14 1.14 -59.75 7.29 -46.32 + 11 0.150 0.0039 0.036 0.0000 1.14 1.14 -58.61 7.80 -38.52 + 12 0.150 0.0039 0.036 0.0000 1.14 1.14 -57.47 8.31 -30.21 + 13 0.150 0.0039 0.036 0.0000 1.14 1.14 -56.33 8.32 -21.89 + 14 0.150 0.0039 0.036 0.0000 1.14 1.14 -55.19 8.32 -13.57 + 15 0.150 0.0039 0.036 0.0000 1.14 1.14 -54.05 8.32 -5.25 + 16 0.150 0.0039 0.036 0.0000 1.14 1.14 -52.91 8.32 3.08 + 17 0.150 0.0039 0.036 0.0000 1.14 1.14 -51.77 8.33 11.40 + 18 0.150 0.0039 0.036 0.0000 1.14 1.14 -50.63 8.33 19.73 + 19 0.150 0.0039 0.036 0.0000 1.14 1.14 -49.49 8.33 28.06 + 20 0.150 0.0039 0.036 0.0000 1.14 1.14 -48.35 8.33 36.39 + 21 0.150 0.0039 0.036 0.0000 1.14 1.14 -47.21 8.33 44.72 + 22 0.150 0.0039 0.036 0.0000 1.14 1.14 -46.07 8.33 53.06 + 23 0.150 0.0039 0.036 0.0000 1.14 1.14 -44.93 8.34 61.39 + 24 0.150 0.0039 0.036 0.0000 1.14 1.14 -43.80 8.34 69.73 + 25 0.150 0.0039 0.036 0.0000 1.14 1.14 -42.66 8.34 78.07 + 26 0.150 0.0039 0.036 0.0000 1.14 1.14 -41.52 8.34 86.41 + 27 0.150 0.0039 0.036 0.0000 1.14 1.14 -40.38 8.34 94.75 + 28 0.150 0.0039 0.036 0.0000 1.14 1.14 -39.24 8.34 103.09 + 29 0.150 0.0039 0.036 0.0000 1.14 1.14 -38.10 8.34 111.43 + 30 0.150 0.0039 0.036 0.0000 1.14 1.14 -36.96 8.34 119.77 ***CCUS ECONOMICS*** - Total Avoided Carbon Production: 1043982040.96 pound - Project NPV (including carbon credit): 75.62 MUSD + Total Avoided Carbon Production: 1036537184.08 pound + Project NPV (including carbon credit): 74.96 MUSD Project IRR (including carbon credit): 0.20 % - Project VIR=IR=PIR (including carbon credit): 3.43 - Project MOIC (including carbon credit): 36.28 - Project Payback Period (including carbon credit): 7.04 yr + Project VIR=IR=PIR (including carbon credit): 3.41 + Project MOIC (including carbon credit): 36.30 + Project Payback Period (including carbon credit): 7.07 yr ****************** @@ -277,34 +277,34 @@ Start (cents/kWh)(MUSD/yr) (cents/kWh)(MUSD/yr) (MUSD/yr) (MUSD/yr) (MUSD Year Carbon CCUS CCUS Annual CCUS Cumm. Project Annual Project Cumm. Since Avoided Price Revenue Cash Flow Cash Flow Cash Flow Cash Flow Start (pound) (USD/lb) (MUSD/yr) (MUSD/yr) (MUSD) (MUSD/yr) (MUSD) - 1 -31.07 -31.07 - 2 34243168.390 0.015 0.51 0.51 0.51 5.09 -25.98 - 3 34603550.499 0.015 0.52 0.52 1.03 5.13 -20.85 - 4 34725533.076 0.015 0.52 0.52 1.55 5.15 -15.70 - 5 34797775.757 0.015 0.52 0.52 2.08 5.16 -10.55 - 6 34848415.605 0.015 0.52 0.52 2.60 5.16 -5.38 - 7 34887048.220 0.015 0.52 0.52 3.12 5.17 -0.21 - 8 34918083.373 0.025 0.87 0.87 3.99 6.03 5.82 - 9 34943902.716 0.035 1.22 1.22 5.22 6.90 12.71 - 10 34965933.269 0.045 1.57 1.57 6.79 7.76 20.48 - 11 34985094.866 0.055 1.92 1.92 8.72 8.63 29.10 - 12 35002013.597 0.065 2.28 2.28 10.99 9.49 38.60 - 13 35017134.004 0.075 2.63 2.63 13.62 9.85 48.44 - 14 35030782.570 0.085 2.98 2.98 16.59 10.20 58.65 - 15 35043205.792 0.095 3.33 3.33 19.92 10.56 69.20 - 16 35054594.111 0.100 3.51 3.51 23.43 10.73 79.93 - 17 35065097.538 0.100 3.51 3.51 26.94 10.74 90.67 - 18 35074836.181 0.100 3.51 3.51 30.44 10.74 101.41 - 19 35083907.517 0.100 3.51 3.51 33.95 10.74 112.15 - 20 35092391.514 0.100 3.51 3.51 37.46 10.74 122.90 - 21 35100354.281 0.100 3.51 3.51 40.97 10.75 133.64 - 22 35107850.702 0.100 3.51 3.51 44.48 10.75 144.39 - 23 35114926.339 0.100 3.51 3.51 47.99 10.75 155.14 - 24 35121618.815 0.100 3.51 3.51 51.50 10.75 165.89 - 25 35127958.824 0.100 3.51 3.51 55.02 10.75 176.65 - 26 35133970.861 0.100 3.51 3.51 58.53 10.76 187.40 - 27 35139673.772 0.100 3.51 3.51 62.05 10.76 198.16 - 28 35145081.156 0.100 3.51 3.51 65.56 10.76 208.92 - 29 35150201.668 0.100 3.52 3.52 69.07 10.76 219.68 - 30 35155039.259 0.100 3.52 3.52 72.59 10.76 230.44 - 31 29302896.694 0.100 2.93 2.93 75.52 9.11 239.55 + 1 -31.06 -31.06 + 2 33969152.766 0.015 0.51 0.51 0.51 5.05 -26.01 + 3 34341162.882 0.015 0.52 0.52 1.02 5.10 -20.91 + 4 34467117.964 0.015 0.52 0.52 1.54 5.12 -15.79 + 5 34541720.779 0.015 0.52 0.52 2.06 5.13 -10.66 + 6 34594018.221 0.015 0.52 0.52 2.58 5.13 -5.53 + 7 34633917.159 0.015 0.52 0.52 3.10 5.14 -0.39 + 8 34665970.699 0.025 0.87 0.87 3.96 6.00 5.60 + 9 34692638.021 0.035 1.21 1.21 5.18 6.85 12.46 + 10 34715392.651 0.045 1.56 1.56 6.74 7.71 20.17 + 11 34735184.429 0.055 1.91 1.91 8.65 8.57 28.75 + 12 34752659.886 0.065 2.26 2.26 10.91 9.43 38.18 + 13 34768278.088 0.075 2.61 2.61 13.52 9.78 47.96 + 14 34782376.191 0.085 2.96 2.96 16.47 10.14 58.10 + 15 34795208.759 0.095 3.31 3.31 19.78 10.49 68.59 + 16 34806972.481 0.100 3.48 3.48 23.26 10.66 79.25 + 17 34817822.318 0.100 3.48 3.48 26.74 10.67 89.92 + 18 34827882.405 0.100 3.48 3.48 30.23 10.67 100.59 + 19 34837253.604 0.100 3.48 3.48 33.71 10.67 111.26 + 20 34846018.858 0.100 3.48 3.48 37.19 10.68 121.94 + 21 34854247.043 0.100 3.49 3.49 40.68 10.68 132.62 + 22 34861995.782 0.100 3.49 3.49 44.17 10.68 143.30 + 23 34869313.518 0.100 3.49 3.49 47.65 10.68 153.98 + 24 34876241.046 0.100 3.49 3.49 51.14 10.68 164.66 + 25 34882812.647 0.100 3.49 3.49 54.63 10.69 175.35 + 26 34889056.938 0.100 3.49 3.49 58.12 10.69 186.04 + 27 34894997.500 0.100 3.49 3.49 61.61 10.69 196.73 + 28 34900653.351 0.100 3.49 3.49 65.10 10.69 207.42 + 29 34906039.293 0.100 3.49 3.49 68.59 10.69 218.11 + 30 34911166.179 0.100 3.49 3.49 72.08 10.69 228.81 + 31 29099912.619 0.100 2.91 2.91 74.99 9.05 237.86 diff --git a/tests/examples/example2.out b/tests/examples/example2.out index 5a91008b..cf8df845 100644 --- a/tests/examples/example2.out +++ b/tests/examples/example2.out @@ -4,17 +4,17 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:24 - Calculation Time: 0.241 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.215 sec ***SUMMARY OF RESULTS*** End-Use Option: Direct-Use Heat - Average Direct-Use Heat Production: 21.77 MW - Direct-Use heat breakeven price: 7.10 USD/MMBTU + Average Direct-Use Heat Production: 21.03 MW + Direct-Use heat breakeven price: 7.23 USD/MMBTU Number of production wells: 2 Number of injection wells: 2 Flowrate per production well: 30.0 kg/sec @@ -29,10 +29,10 @@ Simulation Metadata Accrued financing during construction: 0.00 Project lifetime: 25 yr Capacity factor: 90.0 % - Project NPV: -0.52 MUSD + Project NPV: -1.73 MUSD Project IRR: 0.06 % - Project VIR=PI=PIR: 0.99 - Project MOIC: 0.53 + Project VIR=PI=PIR: 0.96 + Project MOIC: 0.51 ***ENGINEERING PARAMETERS*** @@ -43,7 +43,7 @@ Simulation Metadata Pump efficiency: 80.0 Injection temperature: 70.0 degC Production Wellbore heat transmission calculated with Ramey's model - Average production well temperature drop: 6.4 degC + Average production well temperature drop: 6.7 degC Flowrate per production well: 30.0 kg/sec Injection well casing ID: 8.000 in Production well casing ID: 8.000 in @@ -77,18 +77,18 @@ Simulation Metadata ***RESERVOIR SIMULATION RESULTS*** - Maximum Production Temperature: 172.9 degC - Average Production Temperature: 165.0 degC - Minimum Production Temperature: 153.1 degC - Initial Production Temperature: 170.1 degC - Average Reservoir Heat Extraction: 24.19 MW + Maximum Production Temperature: 172.6 degC + Average Production Temperature: 165.7 degC + Minimum Production Temperature: 154.8 degC + Initial Production Temperature: 169.6 degC + Average Reservoir Heat Extraction: 23.36 MW Production Wellbore Heat Transmission Model = Ramey Model - Average Production Well Temperature Drop: 6.4 degC - Total Average Pressure Drop: 10593.5 kPa - Average Injection Well Pressure Drop: 114.2 kPa - Average Reservoir Pressure Drop: 12718.5 kPa - Average Production Well Pressure Drop: 120.2 kPa - Average Buoyancy Pressure Drop: -2359.4 kPa + Average Production Well Temperature Drop: 6.7 degC + Total Average Pressure Drop: 10383.3 kPa + Average Injection Well Pressure Drop: 110.6 kPa + Average Reservoir Pressure Drop: 12215.4 kPa + Average Production Well Pressure Drop: 114.7 kPa + Average Buoyancy Pressure Drop: -2057.4 kPa ***CAPITAL COSTS (M$)*** @@ -96,30 +96,30 @@ Simulation Metadata Drilling and completion costs: 21.95 MUSD Drilling and completion costs per well: 5.49 MUSD Stimulation costs: 3.02 MUSD - Surface power plant costs: 8.44 MUSD - Field gathering system costs: 2.57 MUSD - Total surface equipment costs: 11.01 MUSD + Surface power plant costs: 8.07 MUSD + Field gathering system costs: 2.55 MUSD + Total surface equipment costs: 10.62 MUSD Exploration costs: 5.33 MUSD - Total capital costs: 41.30 MUSD + Total capital costs: 40.91 MUSD ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** - Wellfield maintenance costs: 0.43 MUSD/yr - Power plant maintenance costs: 0.68 MUSD/yr + Wellfield maintenance costs: 0.42 MUSD/yr + Power plant maintenance costs: 0.65 MUSD/yr Water costs: 0.00 MUSD/yr - Average Reservoir Pumping Cost: 0.32 MUSD/yr - Total operating and maintenance costs: 1.43 MUSD/yr + Average Reservoir Pumping Cost: 0.30 MUSD/yr + Total operating and maintenance costs: 1.37 MUSD/yr ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Maximum Net Heat Production: 23.59 MW - Average Net Heat Production: 21.77 MW - Minimum Net Heat Production: 19.04 MW - Initial Net Heat Production: 22.94 MW - Average Annual Heat Production: 169.46 GWh - Average Pumping Power: 0.81 MW + Maximum Net Heat Production: 22.55 MW + Average Net Heat Production: 21.03 MW + Minimum Net Heat Production: 18.64 MW + Initial Net Heat Production: 21.89 MW + Average Annual Heat Production: 163.65 GWh + Average Pumping Power: 0.77 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -127,31 +127,31 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET DRAWDOWN TEMPERATURE POWER HEAT (deg C) (MW) (MW) - 0 1.0000 170.06 0.7948 22.9387 - 1 1.0072 171.28 0.7940 23.2182 - 2 1.0109 171.90 0.7937 23.3618 - 3 1.0128 172.23 0.7935 23.4367 - 4 1.0140 172.44 0.7933 23.4862 - 5 1.0150 172.60 0.7932 23.5228 - 6 1.0157 172.73 0.7932 23.5516 - 7 1.0163 172.83 0.7931 23.5751 - 8 0.9944 169.10 0.8027 22.7185 - 9 0.9900 168.36 0.8047 22.5499 - 10 0.9855 167.58 0.8067 22.3719 - 11 0.9807 166.77 0.8088 22.1853 - 12 0.9757 165.92 0.8110 21.9907 - 13 0.9705 165.04 0.8133 21.7887 - 14 0.9651 164.13 0.8156 21.5799 - 15 0.9596 163.19 0.8179 21.3648 - 16 0.9540 162.23 0.8203 21.1438 - 17 0.9482 161.24 0.8227 20.9174 - 18 0.9422 160.23 0.8252 20.6860 - 19 0.9362 159.20 0.8277 20.4499 - 20 0.9300 158.15 0.8302 20.2097 - 21 0.9237 157.09 0.8327 19.9655 - 22 0.9174 156.01 0.8353 19.7179 - 23 0.9110 154.91 0.8379 19.4670 - 24 0.9044 153.81 0.8405 19.2133 + 0 1.0000 169.64 0.7567 21.8934 + 1 1.0075 170.91 0.7561 22.1720 + 2 1.0113 171.56 0.7558 22.3152 + 3 1.0133 171.90 0.7556 22.3898 + 4 1.0146 172.13 0.7555 22.4392 + 5 1.0156 172.29 0.7555 22.4757 + 6 1.0164 172.42 0.7554 22.5043 + 7 1.0170 172.53 0.7554 22.5278 + 8 1.0176 172.62 0.7553 22.5477 + 9 0.9956 168.90 0.7627 21.7304 + 10 0.9916 168.22 0.7642 21.5798 + 11 0.9873 167.49 0.7656 21.4207 + 12 0.9828 166.73 0.7672 21.2536 + 13 0.9782 165.94 0.7688 21.0793 + 14 0.9733 165.11 0.7704 20.8980 + 15 0.9683 164.26 0.7721 20.7103 + 16 0.9631 163.38 0.7739 20.5167 + 17 0.9577 162.47 0.7756 20.3174 + 18 0.9522 161.54 0.7774 20.1129 + 19 0.9466 160.59 0.7793 19.9035 + 20 0.9409 159.61 0.7812 19.6896 + 21 0.9350 158.62 0.7831 19.4715 + 22 0.9291 157.61 0.7850 19.2495 + 23 0.9230 156.58 0.7869 19.0239 + 24 0.9169 155.54 0.7889 18.7951 ******************************************************************* @@ -160,28 +160,28 @@ Simulation Metadata YEAR HEAT HEAT RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (10^15 J) (%) - 1 181.7 201.9 39.49 1.81 - 2 183.7 204.1 38.76 3.63 - 3 184.5 205.0 38.02 5.47 - 4 185.0 205.5 37.28 7.31 - 5 185.3 205.9 36.54 9.15 - 6 185.6 206.2 35.80 11.00 - 7 185.8 206.4 35.05 12.85 - 8 184.8 205.3 34.31 14.68 - 9 178.5 198.3 33.60 16.46 - 10 177.1 196.8 32.89 18.22 - 11 175.6 195.2 32.19 19.97 - 12 174.1 193.5 31.49 21.70 - 13 172.6 191.8 30.80 23.41 - 14 171.0 190.0 30.12 25.11 - 15 169.3 188.1 29.44 26.80 - 16 167.6 186.2 28.77 28.47 - 17 165.8 184.2 28.11 30.11 - 18 164.0 182.2 27.45 31.75 - 19 162.2 180.2 26.80 33.36 - 20 160.3 178.1 26.16 34.95 - 21 158.4 176.0 25.53 36.53 - 22 156.4 173.8 24.90 38.08 - 23 154.5 171.6 24.28 39.62 - 24 152.5 169.4 23.67 41.14 - 25 100.5 111.7 23.27 42.14 + 1 173.5 192.7 39.52 1.73 + 2 175.4 194.9 38.82 3.47 + 3 176.2 195.8 38.12 5.22 + 4 176.7 196.4 37.41 6.98 + 5 177.1 196.7 36.70 8.74 + 6 177.3 197.0 35.99 10.50 + 7 177.5 197.2 35.28 12.27 + 8 177.7 197.4 34.57 14.04 + 9 172.8 192.0 33.88 15.76 + 10 170.7 189.7 33.20 17.45 + 11 169.5 188.3 32.52 19.14 + 12 168.2 186.9 31.85 20.81 + 13 166.9 185.4 31.18 22.47 + 14 165.5 183.9 30.52 24.12 + 15 164.0 182.2 29.86 25.75 + 16 162.5 180.6 29.21 27.37 + 17 161.0 178.9 28.57 28.97 + 18 159.4 177.1 27.93 30.55 + 19 157.7 175.3 27.30 32.12 + 20 156.1 173.4 26.68 33.67 + 21 154.4 171.5 26.06 35.21 + 22 152.6 169.6 25.45 36.73 + 23 150.9 167.6 24.84 38.23 + 24 149.1 165.6 24.25 39.71 + 25 98.4 109.3 23.85 40.69 diff --git a/tests/examples/example3.out b/tests/examples/example3.out index 7055deae..aa999227 100644 --- a/tests/examples/example3.out +++ b/tests/examples/example3.out @@ -4,18 +4,18 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:25 - Calculation Time: 0.107 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.166 sec ***SUMMARY OF RESULTS*** End-Use Option: Cogeneration Topping Cycle, Heat sales considered as extra income - Average Net Electricity Production: 19.38 MW - Average Direct-Use Heat Production: 10.86 MW - Electricity breakeven price: 5.79 cents/kWh + Average Net Electricity Production: 19.66 MW + Average Direct-Use Heat Production: 10.52 MW + Electricity breakeven price: 5.74 cents/kWh Number of production wells: 3 Number of injection wells: 3 Flowrate per production well: 70.0 kg/sec @@ -29,10 +29,10 @@ Simulation Metadata Accrued financing during construction: 5.00 Project lifetime: 35 yr Capacity factor: 90.0 % - Project NPV: -3.35 MUSD + Project NPV: -2.89 MUSD Project IRR: 0.06 % Project VIR=PI=PIR: 0.97 - Project MOIC: 0.63 + Project MOIC: 0.65 ***ENGINEERING PARAMETERS*** @@ -78,12 +78,12 @@ Simulation Metadata ***RESERVOIR SIMULATION RESULTS*** Maximum Production Temperature: 227.0 degC - Average Production Temperature: 219.5 degC - Minimum Production Temperature: 205.2 degC + Average Production Temperature: 220.8 degC + Minimum Production Temperature: 208.2 degC Initial Production Temperature: 227.0 degC - Average Reservoir Heat Extraction: 132.05 MW + Average Reservoir Heat Extraction: 126.82 MW Wellbore Heat Transmission Model = Constant Temperature Drop: 5.0 degC - Average Injection Well Pump Pressure Drop: 742.5 kPa + Average Injection Well Pump Pressure Drop: 735.4 kPa ***CAPITAL COSTS (M$)*** @@ -91,41 +91,41 @@ Simulation Metadata Drilling and completion costs: 34.45 MUSD Drilling and completion costs per well: 5.74 MUSD Stimulation costs: 4.53 MUSD - Surface power plant costs: 64.13 MUSD - Field gathering system costs: 3.18 MUSD - Total surface equipment costs: 67.31 MUSD + Surface power plant costs: 63.92 MUSD + Field gathering system costs: 3.17 MUSD + Total surface equipment costs: 67.09 MUSD Exploration costs: 5.51 MUSD - Total capital costs: 111.79 MUSD + Total capital costs: 111.58 MUSD ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** - Wellfield maintenance costs: 0.83 MUSD/yr - Power plant maintenance costs: 2.33 MUSD/yr + Wellfield maintenance costs: 0.82 MUSD/yr + Power plant maintenance costs: 2.30 MUSD/yr Water costs: 0.11 MUSD/yr - Total operating and maintenance costs: 3.27 MUSD/yr + Total operating and maintenance costs: 3.23 MUSD/yr ***SURFACE EQUIPMENT SIMULATION RESULTS*** Initial geofluid availability: 0.23 MW/(kg/s) Maximum Total Electricity Generation: 21.16 MW - Average Total Electricity Generation: 19.58 MW - Minimum Total Electricity Generation: 16.69 MW + Average Total Electricity Generation: 19.85 MW + Minimum Total Electricity Generation: 17.27 MW Initial Total Electricity Generation: 21.16 MW - Maximum Net Electricity Generation: 20.96 MW - Average Net Electricity Generation: 19.38 MW - Minimum Net Electricity Generation: 16.49 MW - Initial Net Electricity Generation: 20.96 MW - Average Annual Total Electricity Generation: 153.96 GWh - Average Annual Net Electricity Generation: 152.36 GWh + Maximum Net Electricity Generation: 20.97 MW + Average Net Electricity Generation: 19.66 MW + Minimum Net Electricity Generation: 17.08 MW + Initial Net Electricity Generation: 20.97 MW + Average Annual Total Electricity Generation: 156.09 GWh + Average Annual Net Electricity Generation: 154.56 GWh Initial pumping power/net installed power: 100.00 % - Maximum Net Heat Production: 11.90 MW - Average Net Heat Production: 10.86 MW - Minimum Net Heat Production: 8.78 MW - Initial Net Heat Production: 11.90 MW - Average Annual Heat Production: 85.40 GWh - Average Pumping Power: 0.20 MW + Maximum Net Heat Production: 11.33 MW + Average Net Heat Production: 10.52 MW + Minimum Net Heat Production: 8.80 MW + Initial Net Heat Production: 11.33 MW + Average Annual Heat Production: 82.71 GWh + Average Pumping Power: 0.19 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -133,41 +133,41 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET NET FIRST LAW DRAWDOWN TEMPERATURE POWER POWER HEAT EFFICIENCY (deg C) (MW) (MW) (MW) (%) - 0 1.0000 227.00 0.2037 20.9570 11.9036 16.6854 - 1 1.0000 227.00 0.2037 20.9570 11.9036 16.6854 - 2 1.0000 227.00 0.2037 20.9570 11.9036 16.6854 - 3 1.0000 227.00 0.2037 20.9570 11.9036 16.6854 - 4 1.0000 227.00 0.2037 20.9567 11.9034 16.6853 - 5 0.9999 226.99 0.2037 20.9541 11.9019 16.6844 - 6 0.9998 226.95 0.2037 20.9454 11.8967 16.6815 - 7 0.9994 226.86 0.2037 20.9258 11.8851 16.6749 - 8 0.9987 226.70 0.2037 20.8911 11.8645 16.6631 - 9 0.9976 226.46 0.2037 20.8386 11.8333 16.6453 - 10 0.9962 226.13 0.2037 20.7671 11.7905 16.6211 - 11 0.9944 225.72 0.2037 20.6768 11.7361 16.5904 - 12 0.9922 225.22 0.2037 20.5686 11.6705 16.5535 - 13 0.9896 224.65 0.2037 20.4442 11.5945 16.5109 - 14 0.9868 224.00 0.2037 20.3053 11.5088 16.4632 - 15 0.9837 223.30 0.2037 20.1539 11.4144 16.4110 - 16 0.9804 222.54 0.2037 19.9921 11.3123 16.3548 - 17 0.9768 221.74 0.2037 19.8215 11.2034 16.2954 - 18 0.9731 220.90 0.2037 19.6439 11.0886 16.2332 - 19 0.9693 220.03 0.2037 19.4607 10.9687 16.1687 - 20 0.9654 219.14 0.2037 19.2734 10.8444 16.1024 - 21 0.9614 218.23 0.2037 19.0831 10.7163 16.0346 - 22 0.9573 217.30 0.2037 18.8907 10.5851 15.9656 - 23 0.9531 216.36 0.2037 18.6973 10.4512 15.8959 - 24 0.9490 215.41 0.2037 18.5035 10.3152 15.8256 - 25 0.9448 214.46 0.2037 18.3100 10.1774 15.7549 - 26 0.9406 213.51 0.2037 18.1173 10.0383 15.6841 - 27 0.9364 212.56 0.2037 17.9259 9.8981 15.6133 - 28 0.9322 211.61 0.2037 17.7362 9.7571 15.5427 - 29 0.9280 210.66 0.2037 17.5484 9.6156 15.4724 - 30 0.9239 209.73 0.2037 17.3628 9.4738 15.4024 - 31 0.9198 208.79 0.2037 17.1797 9.3320 15.3330 - 32 0.9157 207.87 0.2037 16.9991 9.1902 15.2640 - 33 0.9117 206.95 0.2037 16.8213 9.0486 15.1957 - 34 0.9077 206.04 0.2037 16.6463 8.9075 15.1280 + 0 1.0000 227.00 0.1945 20.9662 11.3288 17.5398 + 1 1.0000 227.00 0.1945 20.9662 11.3288 17.5398 + 2 1.0000 227.00 0.1945 20.9662 11.3288 17.5398 + 3 1.0000 227.00 0.1945 20.9662 11.3288 17.5398 + 4 1.0000 227.00 0.1945 20.9661 11.3287 17.5398 + 5 1.0000 226.99 0.1945 20.9650 11.3280 17.5394 + 6 0.9999 226.97 0.1945 20.9605 11.3255 17.5378 + 7 0.9997 226.92 0.1945 20.9494 11.3193 17.5339 + 8 0.9992 226.83 0.1945 20.9280 11.3072 17.5263 + 9 0.9985 226.67 0.1945 20.8935 11.2877 17.5140 + 10 0.9975 226.44 0.1945 20.8442 11.2597 17.4965 + 11 0.9962 226.15 0.1945 20.7793 11.2228 17.4734 + 12 0.9946 225.78 0.1945 20.6989 11.1767 17.4446 + 13 0.9927 225.34 0.1945 20.6037 11.1219 17.4106 + 14 0.9905 224.84 0.1945 20.4948 11.0587 17.3715 + 15 0.9880 224.28 0.1945 20.3736 10.9878 17.3278 + 16 0.9853 223.66 0.1945 20.2415 10.9097 17.2800 + 17 0.9824 223.00 0.1945 20.0999 10.8253 17.2287 + 18 0.9793 222.30 0.1945 19.9504 10.7352 17.1741 + 19 0.9761 221.57 0.1945 19.7941 10.6400 17.1169 + 20 0.9727 220.80 0.1945 19.6323 10.5402 17.0573 + 21 0.9692 220.02 0.1945 19.4661 10.4366 16.9958 + 22 0.9657 219.21 0.1945 19.2965 10.3295 16.9328 + 23 0.9620 218.38 0.1945 19.1244 10.2194 16.8684 + 24 0.9583 217.54 0.1945 18.9505 10.1069 16.8031 + 25 0.9546 216.70 0.1945 18.7755 9.9921 16.7370 + 26 0.9508 215.84 0.1945 18.6001 9.8756 16.6703 + 27 0.9471 214.98 0.1945 18.4246 9.7575 16.6032 + 28 0.9433 214.12 0.1945 18.2496 9.6382 16.5359 + 29 0.9395 213.26 0.1945 18.0754 9.5180 16.4686 + 30 0.9357 212.40 0.1945 17.9023 9.3970 16.4013 + 31 0.9319 211.54 0.1945 17.7307 9.2754 16.3342 + 32 0.9281 210.68 0.1945 17.5606 9.1534 16.2673 + 33 0.9244 209.83 0.1945 17.3924 9.0312 16.2007 + 34 0.9206 208.98 0.1945 17.2262 8.9089 16.1346 ******************************************************************* @@ -176,38 +176,38 @@ Simulation Metadata YEAR HEAT ELECTRICITY HEAT RESERVOIR PERCENTAGE OF PROVIDED PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (GWh/year) (10^15 J) (%) - 1 93.8 165.2 1094.51 80.01 4.69 - 2 93.8 165.2 1094.51 76.07 9.39 - 3 93.8 165.2 1094.51 72.13 14.08 - 4 93.8 165.2 1094.51 68.19 18.77 - 5 93.8 165.2 1094.47 64.25 23.47 - 6 93.8 165.2 1094.30 60.31 28.16 - 7 93.8 165.1 1093.85 56.37 32.85 - 8 93.6 164.9 1092.98 52.44 37.54 - 9 93.4 164.5 1091.57 48.51 42.22 - 10 93.1 164.0 1089.56 44.59 46.89 - 11 92.7 163.4 1086.92 40.67 51.55 - 12 92.3 162.6 1083.68 36.77 56.20 - 13 91.7 161.7 1079.87 32.89 60.83 - 14 91.1 160.6 1075.53 29.01 65.44 - 15 90.4 159.5 1070.74 25.16 70.03 - 16 89.6 158.3 1065.55 21.32 74.60 - 17 88.8 157.0 1060.01 17.51 79.15 - 18 87.9 155.6 1054.18 13.71 83.67 - 19 87.0 154.2 1048.11 9.94 88.16 - 20 86.0 152.7 1041.84 6.19 92.63 - 21 85.0 151.2 1035.42 2.46 97.07 - 22 84.0 149.7 1028.87 -1.24 101.48 - 23 82.9 148.2 1022.24 -4.92 105.87 - 24 81.9 146.6 1015.54 -8.58 110.22 - 25 80.8 145.1 1008.79 -12.21 114.55 - 26 79.7 143.6 1002.03 -15.82 118.84 - 27 78.6 142.1 995.26 -19.40 123.11 - 28 77.5 140.6 988.51 -22.96 127.35 - 29 76.4 139.1 981.77 -26.49 131.56 - 30 75.3 137.6 975.07 -30.01 135.74 - 31 74.1 136.2 968.42 -33.49 139.89 - 32 73.0 134.7 961.81 -36.95 144.02 - 33 71.9 133.3 955.26 -40.39 148.11 - 34 70.8 131.9 948.78 -43.81 152.18 - 35 62.8 117.6 848.41 -46.86 155.82 + 1 89.3 165.3 1041.65 80.20 4.47 + 2 89.3 165.3 1041.65 76.45 8.93 + 3 89.3 165.3 1041.65 72.70 13.40 + 4 89.3 165.3 1041.65 68.95 17.87 + 5 89.3 165.3 1041.64 65.20 22.33 + 6 89.3 165.3 1041.56 61.45 26.80 + 7 89.3 165.2 1041.33 57.70 31.27 + 8 89.2 165.1 1040.83 53.96 35.73 + 9 89.1 164.9 1039.98 50.21 40.19 + 10 88.9 164.5 1038.69 46.47 44.64 + 11 88.6 164.1 1036.92 42.74 49.09 + 12 88.3 163.5 1034.67 39.02 53.53 + 13 87.9 162.8 1031.94 35.30 57.95 + 14 87.4 162.0 1028.76 31.60 62.36 + 15 86.9 161.1 1025.16 27.91 66.76 + 16 86.3 160.1 1021.19 24.23 71.14 + 17 85.7 159.0 1016.88 20.57 75.50 + 18 85.0 157.9 1012.28 16.93 79.84 + 19 84.3 156.7 1007.42 13.30 84.16 + 20 83.5 155.4 1002.35 9.69 88.46 + 21 82.7 154.1 997.09 6.10 92.73 + 22 81.9 152.8 991.69 2.53 96.99 + 23 81.0 151.5 986.16 -1.02 101.21 + 24 80.1 150.1 980.53 -4.55 105.42 + 25 79.2 148.7 974.83 -8.06 109.60 + 26 78.3 147.3 969.07 -11.55 113.75 + 27 77.4 146.0 963.27 -15.02 117.89 + 28 76.5 144.6 957.45 -18.46 121.99 + 29 75.5 143.2 951.62 -21.89 126.07 + 30 74.6 141.8 945.78 -25.29 130.13 + 31 73.6 140.5 939.96 -28.68 134.16 + 32 72.6 139.1 934.16 -32.04 138.16 + 33 71.7 137.8 928.38 -35.38 142.14 + 34 70.7 136.5 922.64 -38.70 146.10 + 35 62.8 121.7 825.50 -41.67 149.64 diff --git a/tests/examples/example4.out b/tests/examples/example4.out index 30144c65..11d16a05 100644 --- a/tests/examples/example4.out +++ b/tests/examples/example4.out @@ -4,17 +4,17 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:21 - Calculation Time: 0.043 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.062 sec ***SUMMARY OF RESULTS*** End-Use Option: Electricity - Average Net Electricity Production: 6.99 MW - Electricity breakeven price: 11.28 cents/kWh + Average Net Electricity Production: 7.00 MW + Electricity breakeven price: 11.26 cents/kWh Number of production wells: 3 Number of injection wells: 2 Flowrate per production well: 110.0 kg/sec @@ -28,7 +28,7 @@ Simulation Metadata Accrued financing during construction: 0.00 Project lifetime: 30 yr Capacity factor: 90.0 % - Project NPV: -37.04 MUSD + Project NPV: -36.98 MUSD Project IRR: -0.03 % Project VIR=PI=PIR: 0.33 Project MOIC: -0.17 @@ -68,8 +68,8 @@ Simulation Metadata Reservoir volume provided as input Reservoir volume: 1000000000 m**3 Reservoir hydrostatic pressure: 100.00 kPa - Plant outlet pressure: 691.38 kPa - Production wellhead pressure: 760.33 kPa + Plant outlet pressure: 691.43 kPa + Production wellhead pressure: 760.38 kPa Productivity Index: 10.00 kg/sec/bar Injectivity Index: 10.00 kg/sec/bar Reservoir density: 2700.00 kg/m**3 @@ -82,10 +82,10 @@ Simulation Metadata Average Production Temperature: 139.4 degC Minimum Production Temperature: 133.8 degC Initial Production Temperature: 145.0 degC - Average Reservoir Heat Extraction: 96.65 MW + Average Reservoir Heat Extraction: 94.18 MW Wellbore Heat Transmission Model = Constant Temperature Drop: 0.0 degC - Average Injection Well Pump Pressure Drop: 1720.3 kPa - Average Production Well Pump Pressure Drop: 1328.9 kPa + Average Injection Well Pump Pressure Drop: 1720.6 kPa + Average Production Well Pump Pressure Drop: 1379.7 kPa ***CAPITAL COSTS (M$)*** @@ -94,8 +94,8 @@ Simulation Metadata Drilling and completion costs per well: 3.29 MUSD Stimulation costs: 0.00 MUSD Surface power plant costs: 31.58 MUSD - Field gathering system costs: 3.69 MUSD - Total surface equipment costs: 35.27 MUSD + Field gathering system costs: 3.68 MUSD + Total surface equipment costs: 35.26 MUSD Exploration costs: 3.71 MUSD Total capital costs: 55.40 MUSD @@ -116,13 +116,13 @@ Simulation Metadata Minimum Total Electricity Generation: 7.23 MW Initial Total Electricity Generation: 9.46 MW Maximum Net Electricity Generation: 8.18 MW - Average Net Electricity Generation: 6.99 MW - Minimum Net Electricity Generation: 5.87 MW + Average Net Electricity Generation: 7.00 MW + Minimum Net Electricity Generation: 5.88 MW Initial Net Electricity Generation: 8.18 MW Average Annual Total Electricity Generation: 64.97 GWh - Average Annual Net Electricity Generation: 54.67 GWh + Average Annual Net Electricity Generation: 54.75 GWh Initial pumping power/net installed power: 100.00 % - Average Pumping Power: 1.32 MW + Average Pumping Power: 1.31 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -130,36 +130,36 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET FIRST LAW DRAWDOWN TEMPERATURE POWER POWER EFFICIENCY (degC) (MW) (MW) (%) - 1 1.0000 145.00 1.2771 8.1801 7.8291 - 2 0.9974 144.62 1.2799 8.0960 7.7879 - 3 0.9948 144.24 1.2827 8.0124 7.7468 - 4 0.9922 143.87 1.2854 7.9293 7.7056 - 5 0.9896 143.49 1.2881 7.8466 7.6645 - 6 0.9870 143.11 1.2909 7.7643 7.6234 - 7 0.9844 142.73 1.2936 7.6825 7.5823 - 8 0.9817 142.35 1.2963 7.6012 7.5412 - 9 0.9791 141.97 1.2990 7.5203 7.5002 - 10 0.9765 141.60 1.3017 7.4398 7.4591 - 11 0.9739 141.22 1.3044 7.3598 7.4181 - 12 0.9713 140.84 1.3071 7.2803 7.3771 - 13 0.9687 140.46 1.3098 7.2012 7.3360 - 14 0.9661 140.08 1.3125 7.1225 7.2950 - 15 0.9635 139.71 1.3152 7.0442 7.2540 - 16 0.9609 139.33 1.3178 6.9664 7.2131 - 17 0.9583 138.95 1.3205 6.8891 7.1721 - 18 0.9557 138.57 1.3232 6.8121 7.1311 - 19 0.9531 138.19 1.3258 6.7357 7.0901 - 20 0.9504 137.82 1.3284 6.6596 7.0492 - 21 0.9478 137.44 1.3311 6.5840 7.0082 - 22 0.9452 137.06 1.3337 6.5088 6.9672 - 23 0.9426 136.68 1.3363 6.4340 6.9263 - 24 0.9400 136.30 1.3389 6.3597 6.8853 - 25 0.9374 135.92 1.3415 6.2858 6.8444 - 26 0.9348 135.55 1.3441 6.2124 6.8034 - 27 0.9322 135.17 1.3467 6.1393 6.7624 - 28 0.9296 134.79 1.3493 6.0667 6.7214 - 29 0.9270 134.41 1.3519 5.9945 6.6804 - 30 0.9244 134.03 1.3545 5.9227 6.6394 + 1 1.0000 145.00 1.2724 8.1848 8.0392 + 2 0.9974 144.62 1.2748 8.1011 7.9973 + 3 0.9948 144.24 1.2772 8.0179 7.9555 + 4 0.9922 143.87 1.2796 7.9351 7.9136 + 5 0.9896 143.49 1.2819 7.8528 7.8718 + 6 0.9870 143.11 1.2843 7.7709 7.8300 + 7 0.9844 142.73 1.2867 7.6895 7.7883 + 8 0.9817 142.35 1.2890 7.6085 7.7465 + 9 0.9791 141.97 1.2914 7.5279 7.7048 + 10 0.9765 141.60 1.2937 7.4478 7.6631 + 11 0.9739 141.22 1.2961 7.3682 7.6214 + 12 0.9713 140.84 1.2984 7.2890 7.5797 + 13 0.9687 140.46 1.3008 7.2102 7.5380 + 14 0.9661 140.08 1.3031 7.1319 7.4964 + 15 0.9635 139.71 1.3054 7.0540 7.4547 + 16 0.9609 139.33 1.3077 6.9765 7.4131 + 17 0.9583 138.95 1.3100 6.8995 7.3714 + 18 0.9557 138.57 1.3124 6.8229 7.3298 + 19 0.9531 138.19 1.3147 6.7468 7.2882 + 20 0.9504 137.82 1.3170 6.6711 7.2466 + 21 0.9478 137.44 1.3193 6.5958 7.2050 + 22 0.9452 137.06 1.3216 6.5209 7.1634 + 23 0.9426 136.68 1.3238 6.4465 7.1218 + 24 0.9400 136.30 1.3261 6.3725 7.0802 + 25 0.9374 135.92 1.3284 6.2990 7.0386 + 26 0.9348 135.55 1.3307 6.2258 6.9970 + 27 0.9322 135.17 1.3329 6.1531 6.9554 + 28 0.9296 134.79 1.3352 6.0808 6.9138 + 29 0.9270 134.41 1.3375 6.0090 6.8722 + 30 0.9244 134.03 1.3397 5.9375 6.8306 ******************************************************************* @@ -168,33 +168,33 @@ Simulation Metadata YEAR ELECTRICITY HEAT RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (10^15 J) (%) - 1 64.2 821.7 209.67 1.39 - 2 63.5 817.5 206.72 2.78 - 3 62.8 813.4 203.80 4.15 - 4 62.2 809.2 200.88 5.52 - 5 61.5 805.1 197.98 6.89 - 6 60.9 800.9 195.10 8.24 - 7 60.2 796.7 192.23 9.59 - 8 59.6 792.6 189.38 10.93 - 9 59.0 788.4 186.54 12.27 - 10 58.3 784.3 183.72 13.60 - 11 57.7 780.1 180.91 14.92 - 12 57.1 776.0 178.12 16.23 - 13 56.5 771.8 175.34 17.54 - 14 55.8 767.7 172.57 18.84 - 15 55.2 763.5 169.82 20.13 - 16 54.6 759.4 167.09 21.42 - 17 54.0 755.2 164.37 22.69 - 18 53.4 751.1 161.67 23.97 - 19 52.8 746.9 158.98 25.23 - 20 52.2 742.8 156.31 26.49 - 21 51.6 738.6 153.65 27.74 - 22 51.0 734.4 151.00 28.98 - 23 50.4 730.3 148.37 30.22 - 24 49.8 726.1 145.76 31.45 - 25 49.3 722.0 143.16 32.67 - 26 48.7 717.8 140.58 33.89 - 27 48.1 713.7 138.01 35.09 - 28 47.5 709.5 135.45 36.29 - 29 47.0 705.4 132.91 37.49 - 30 34.9 526.3 131.02 38.38 + 1 64.2 800.7 209.74 1.36 + 2 63.5 796.6 206.87 2.70 + 3 62.9 792.6 204.02 4.05 + 4 62.2 788.5 201.18 5.38 + 5 61.6 784.5 198.36 6.71 + 6 60.9 780.4 195.55 8.03 + 7 60.3 776.4 192.75 9.35 + 8 59.7 772.3 189.97 10.65 + 9 59.0 768.3 187.21 11.95 + 10 58.4 764.2 184.46 13.25 + 11 57.8 760.2 181.72 14.53 + 12 57.2 756.1 179.00 15.82 + 13 56.5 752.1 176.29 17.09 + 14 55.9 748.0 173.60 18.35 + 15 55.3 744.0 170.92 19.61 + 16 54.7 740.0 168.26 20.87 + 17 54.1 735.9 165.61 22.11 + 18 53.5 731.9 162.97 23.35 + 19 52.9 727.8 160.35 24.58 + 20 52.3 723.8 157.75 25.81 + 21 51.7 719.7 155.15 27.03 + 22 51.1 715.7 152.58 28.24 + 23 50.5 711.6 150.02 29.45 + 24 50.0 707.6 147.47 30.64 + 25 49.4 703.5 144.94 31.83 + 26 48.8 699.5 142.42 33.02 + 27 48.2 695.4 139.92 34.20 + 28 47.7 691.4 137.43 35.37 + 29 47.1 687.3 134.95 36.53 + 30 35.0 512.8 133.11 37.40 diff --git a/tests/examples/example5.out b/tests/examples/example5.out index 93b2c8d1..091f6068 100644 --- a/tests/examples/example5.out +++ b/tests/examples/example5.out @@ -4,17 +4,17 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:22 - Calculation Time: 0.042 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.064 sec ***SUMMARY OF RESULTS*** End-Use Option: Direct-Use Heat - Average Direct-Use Heat Production: 20.02 MW - Direct-Use heat breakeven price: 8.77 USD/MMBTU + Average Direct-Use Heat Production: 19.25 MW + Direct-Use heat breakeven price: 8.98 USD/MMBTU Number of production wells: 2 Number of injection wells: 2 Flowrate per production well: 50.0 kg/sec @@ -28,10 +28,10 @@ Simulation Metadata Accrued financing during construction: 0.00 Project lifetime: 30 yr Capacity factor: 90.0 % - Project NPV: -0.81 MUSD + Project NPV: -2.25 MUSD Project IRR: 0.06 % - Project VIR=PI=PIR: 0.98 - Project MOIC: 0.50 + Project VIR=PI=PIR: 0.95 + Project MOIC: 0.47 ***ENGINEERING PARAMETERS*** @@ -42,7 +42,7 @@ Simulation Metadata Pump efficiency: 80.0 Injection temperature: 80.0 degC Production Wellbore heat transmission calculated with Ramey's model - Average production well temperature drop: 2.7 degC + Average production well temperature drop: 2.8 degC Flowrate per production well: 50.0 kg/sec Injection well casing ID: 9.625 in Production well casing ID: 9.625 in @@ -73,18 +73,18 @@ Simulation Metadata ***RESERVOIR SIMULATION RESULTS*** - Maximum Production Temperature: 146.0 degC - Average Production Temperature: 132.6 degC + Maximum Production Temperature: 145.9 degC + Average Production Temperature: 132.5 degC Minimum Production Temperature: 119.1 degC - Initial Production Temperature: 144.9 degC - Average Reservoir Heat Extraction: 22.25 MW + Initial Production Temperature: 144.7 degC + Average Reservoir Heat Extraction: 21.39 MW Production Wellbore Heat Transmission Model = Ramey Model - Average Production Well Temperature Drop: 2.7 degC - Total Average Pressure Drop: 4303.2 kPa - Average Injection Well Pressure Drop: 124.7 kPa - Average Reservoir Pressure Drop: 5264.3 kPa - Average Production Well Pressure Drop: 123.0 kPa - Average Buoyancy Pressure Drop: -1208.8 kPa + Average Production Well Temperature Drop: 2.8 degC + Total Average Pressure Drop: 4247.3 kPa + Average Injection Well Pressure Drop: 121.0 kPa + Average Reservoir Pressure Drop: 5079.3 kPa + Average Production Well Pressure Drop: 118.6 kPa + Average Buoyancy Pressure Drop: -1071.5 kPa ***CAPITAL COSTS (M$)*** @@ -92,30 +92,30 @@ Simulation Metadata Drilling and completion costs: 21.95 MUSD Drilling and completion costs per well: 5.49 MUSD Stimulation costs: 3.02 MUSD - Surface power plant costs: 9.00 MUSD - Field gathering system costs: 2.46 MUSD - Total surface equipment costs: 11.46 MUSD + Surface power plant costs: 8.65 MUSD + Field gathering system costs: 2.45 MUSD + Total surface equipment costs: 11.09 MUSD Exploration costs: 5.33 MUSD - Total capital costs: 41.75 MUSD + Total capital costs: 41.38 MUSD ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** - Wellfield maintenance costs: 0.44 MUSD/yr - Power plant maintenance costs: 0.72 MUSD/yr + Wellfield maintenance costs: 0.43 MUSD/yr + Power plant maintenance costs: 0.70 MUSD/yr Water costs: 0.05 MUSD/yr - Average Reservoir Pumping Cost: 0.31 MUSD/yr - Total operating and maintenance costs: 1.52 MUSD/yr + Average Reservoir Pumping Cost: 0.30 MUSD/yr + Total operating and maintenance costs: 1.48 MUSD/yr ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Maximum Net Heat Production: 25.15 MW - Average Net Heat Production: 20.02 MW - Minimum Net Heat Production: 14.90 MW - Initial Net Heat Production: 24.71 MW - Average Annual Heat Production: 156.57 GWh - Average Pumping Power: 0.56 MW + Maximum Net Heat Production: 24.16 MW + Average Net Heat Production: 19.25 MW + Minimum Net Heat Production: 14.33 MW + Initial Net Heat Production: 23.73 MW + Average Annual Heat Production: 150.50 GWh + Average Pumping Power: 0.54 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -123,36 +123,36 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET DRAWDOWN TEMPERATURE POWER HEAT (deg C) (MW) (MW) - 0 1.0000 144.86 0.5165 24.7088 - 1 1.0058 145.71 0.5157 25.0313 - 2 1.0079 146.00 0.5156 25.1424 - 3 1.0070 145.88 0.5165 25.0974 - 4 1.0031 145.31 0.5189 24.8784 - 5 0.9966 144.36 0.5227 24.5187 - 6 0.9884 143.18 0.5272 24.0671 - 7 0.9793 141.86 0.5322 23.5639 - 8 0.9697 140.47 0.5373 23.0371 - 9 0.9601 139.08 0.5424 22.5048 - 10 0.9505 137.70 0.5474 21.9782 - 11 0.9412 136.35 0.5523 21.4644 - 12 0.9322 135.04 0.5569 20.9670 - 13 0.9235 133.78 0.5614 20.4883 - 14 0.9152 132.58 0.5656 20.0289 - 15 0.9072 131.42 0.5697 19.5890 - 16 0.8996 130.32 0.5735 19.1682 - 17 0.8923 129.26 0.5771 18.7660 - 18 0.8853 128.25 0.5806 18.3814 - 19 0.8787 127.29 0.5839 18.0137 - 20 0.8723 126.36 0.5870 17.6619 - 21 0.8662 125.48 0.5900 17.3252 - 22 0.8604 124.63 0.5928 17.0028 - 23 0.8548 123.82 0.5955 16.6937 - 24 0.8494 123.04 0.5981 16.3972 - 25 0.8442 122.30 0.6006 16.1125 - 26 0.8393 121.58 0.6029 15.8391 - 27 0.8345 120.89 0.6052 15.5761 - 28 0.8299 120.22 0.6074 15.3231 - 29 0.8255 119.59 0.6095 15.0794 + 0 1.0000 144.67 0.4995 23.7257 + 1 1.0061 145.55 0.4989 24.0476 + 2 1.0082 145.85 0.4987 24.1591 + 3 1.0074 145.74 0.4995 24.1182 + 4 1.0035 145.17 0.5015 23.9093 + 5 0.9970 144.23 0.5045 23.5648 + 6 0.9888 143.05 0.5082 23.1316 + 7 0.9797 141.74 0.5123 22.6487 + 8 0.9702 140.36 0.5165 22.1429 + 9 0.9605 138.96 0.5207 21.6318 + 10 0.9510 137.59 0.5249 21.1262 + 11 0.9417 136.24 0.5289 20.6326 + 12 0.9327 134.94 0.5328 20.1549 + 13 0.9241 133.68 0.5364 19.6950 + 14 0.9157 132.48 0.5400 19.2536 + 15 0.9078 131.33 0.5433 18.8310 + 16 0.9002 130.23 0.5465 18.4267 + 17 0.8929 129.17 0.5495 18.0402 + 18 0.8859 128.17 0.5524 17.6707 + 19 0.8793 127.20 0.5552 17.3174 + 20 0.8729 126.28 0.5578 16.9794 + 21 0.8668 125.40 0.5603 16.6559 + 22 0.8610 124.56 0.5627 16.3460 + 23 0.8554 123.75 0.5649 16.0490 + 24 0.8500 122.97 0.5671 15.7641 + 25 0.8448 122.22 0.5692 15.4905 + 26 0.8399 121.51 0.5712 15.2277 + 27 0.8351 120.82 0.5731 14.9750 + 28 0.8305 120.16 0.5749 14.7318 + 29 0.8261 119.52 0.5767 14.4976 ******************************************************************* @@ -161,33 +161,33 @@ Simulation Metadata YEAR HEAT HEAT RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (10^15 J) (%) - 1 196.0 217.8 197.67 0.40 - 2 197.9 219.9 196.87 0.79 - 3 198.2 220.2 196.08 1.19 - 4 197.1 219.0 195.29 1.59 - 5 194.8 216.4 194.51 1.98 - 6 191.6 212.9 193.75 2.37 - 7 187.8 208.6 193.00 2.75 - 8 183.7 204.1 192.26 3.12 - 9 179.5 199.5 191.54 3.48 - 10 175.3 194.8 190.84 3.83 - 11 171.2 190.3 190.16 4.18 - 12 167.3 185.8 189.49 4.52 - 13 163.4 181.6 188.83 4.85 - 14 159.7 177.5 188.20 5.17 - 15 156.2 173.5 187.57 5.48 - 16 152.8 169.7 186.96 5.79 - 17 149.5 166.1 186.36 6.09 - 18 146.4 162.7 185.78 6.39 - 19 143.5 159.4 185.20 6.68 - 20 140.6 156.2 184.64 6.96 - 21 137.9 153.2 184.09 7.24 - 22 135.3 150.3 183.55 7.51 - 23 132.8 147.6 183.02 7.78 - 24 130.4 144.9 182.49 8.04 - 25 128.1 142.4 181.98 8.30 - 26 125.9 139.9 181.48 8.55 - 27 123.8 137.6 180.98 8.80 - 28 121.8 135.3 180.50 9.05 - 29 119.8 133.2 180.02 9.29 - 30 88.6 98.5 179.66 9.47 + 1 188.2 209.2 197.70 0.38 + 2 190.1 211.2 196.94 0.76 + 3 190.4 211.6 196.17 1.15 + 4 189.4 210.5 195.42 1.53 + 5 187.2 208.0 194.67 1.91 + 6 184.1 204.6 193.93 2.28 + 7 180.5 200.5 193.21 2.64 + 8 176.6 196.2 192.50 3.00 + 9 172.6 191.7 191.81 3.34 + 10 168.5 187.3 191.14 3.68 + 11 164.6 182.9 190.48 4.02 + 12 160.8 178.6 189.84 4.34 + 13 157.1 174.5 189.21 4.66 + 14 153.5 170.6 188.60 4.97 + 15 150.1 166.8 187.99 5.27 + 16 146.9 163.2 187.41 5.56 + 17 143.7 159.7 186.83 5.85 + 18 140.8 156.4 186.27 6.14 + 19 137.9 153.2 185.72 6.42 + 20 135.2 150.2 185.18 6.69 + 21 132.6 147.3 184.65 6.96 + 22 130.1 144.5 184.13 7.22 + 23 127.7 141.9 183.62 7.48 + 24 125.4 139.3 183.11 7.73 + 25 123.2 136.9 182.62 7.98 + 26 121.1 134.5 182.14 8.22 + 27 119.1 132.3 181.66 8.46 + 28 117.1 130.1 181.19 8.70 + 29 115.2 128.0 180.73 8.93 + 30 85.2 94.7 180.39 9.10 diff --git a/tests/examples/example8.out b/tests/examples/example8.out index 0756e6c5..8d194283 100644 --- a/tests/examples/example8.out +++ b/tests/examples/example8.out @@ -4,17 +4,17 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:28 - Calculation Time: 0.729 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.615 sec ***SUMMARY OF RESULTS*** End-Use Option: Direct-Use Heat - Average Direct-Use Heat Production: 9.72 MW - Direct-Use heat breakeven price: 8.93 USD/MMBTU + Average Direct-Use Heat Production: 9.43 MW + Direct-Use heat breakeven price: 9.13 USD/MMBTU Number of production wells: 1 Number of injection wells: 1 Flowrate per production well: 40.0 kg/sec @@ -29,10 +29,10 @@ Simulation Metadata Accrued financing during construction: 0.00 Project lifetime: 30 yr Capacity factor: 60.0 % - Project NPV: -9.79 MUSD + Project NPV: -10.17 MUSD Project IRR: 0.01 % - Project VIR=PI=PIR: 0.54 - Project MOIC: 0.11 + Project VIR=PI=PIR: 0.52 + Project MOIC: 0.08 ***ENGINEERING PARAMETERS*** @@ -43,7 +43,7 @@ Simulation Metadata Pump efficiency: 80.0 Injection temperature: 30.0 degC Production Wellbore heat transmission calculated with Ramey's model - Average production well temperature drop: 2.0 degC + Average production well temperature drop: 2.1 degC Flowrate per production well: 40.0 kg/sec Injection well casing ID: 7.000 in Production well casing ID: 7.000 in @@ -76,18 +76,18 @@ Simulation Metadata ***RESERVOIR SIMULATION RESULTS*** - Maximum Production Temperature: 96.2 degC - Average Production Temperature: 94.5 degC - Minimum Production Temperature: 90.5 degC - Initial Production Temperature: 95.1 degC - Average Reservoir Heat Extraction: 10.80 MW + Maximum Production Temperature: 96.1 degC + Average Production Temperature: 94.7 degC + Minimum Production Temperature: 91.2 degC + Initial Production Temperature: 95.0 degC + Average Reservoir Heat Extraction: 10.48 MW Production Wellbore Heat Transmission Model = Ramey Model - Average Production Well Temperature Drop: 2.0 degC - Total Average Pressure Drop: 1855.1 kPa - Average Injection Well Pressure Drop: 391.4 kPa - Average Reservoir Pressure Drop: 2035.1 kPa - Average Production Well Pressure Drop: 374.8 kPa - Average Buoyancy Pressure Drop: -946.2 kPa + Average Production Well Temperature Drop: 2.1 degC + Total Average Pressure Drop: 1785.0 kPa + Average Injection Well Pressure Drop: 379.7 kPa + Average Reservoir Pressure Drop: 1974.3 kPa + Average Production Well Pressure Drop: 363.5 kPa + Average Buoyancy Pressure Drop: -932.5 kPa ***CAPITAL COSTS (M$)*** @@ -95,12 +95,12 @@ Simulation Metadata Drilling and completion costs: 9.99 MUSD Drilling and completion costs per well: 5.00 MUSD Stimulation costs: 1.51 MUSD - Surface power plant costs: 3.57 MUSD - Field gathering system costs: 1.15 MUSD - Total surface equipment costs: 4.71 MUSD + Surface power plant costs: 3.45 MUSD + Field gathering system costs: 1.14 MUSD + Total surface equipment costs: 4.59 MUSD Exploration costs: 4.96 MUSD - Total capital costs: 21.18 MUSD - Annualized capital costs: 1.06 MUSD + Total capital costs: 21.06 MUSD + Annualized capital costs: 1.05 MUSD ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** @@ -109,17 +109,17 @@ Simulation Metadata Power plant maintenance costs: 0.25 MUSD/yr Water costs: 0.01 MUSD/yr Average Reservoir Pumping Cost: 0.05 MUSD/yr - Total operating and maintenance costs: 0.49 MUSD/yr + Total operating and maintenance costs: 0.48 MUSD/yr ***SURFACE EQUIPMENT SIMULATION RESULTS*** - Maximum Net Heat Production: 9.97 MW - Average Net Heat Production: 9.72 MW - Minimum Net Heat Production: 9.12 MW - Initial Net Heat Production: 9.80 MW - Average Annual Heat Production: 50.80 GWh - Average Pumping Power: 0.10 MW + Maximum Net Heat Production: 9.64 MW + Average Net Heat Production: 9.43 MW + Minimum Net Heat Production: 8.92 MW + Initial Net Heat Production: 9.47 MW + Average Annual Heat Production: 49.32 GWh + Average Pumping Power: 0.09 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -127,36 +127,36 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET DRAWDOWN TEMPERATURE POWER HEAT (deg C) (MW) (MW) - 0 1.0000 95.09 0.0935 9.8018 - 1 1.0071 95.76 0.0934 9.9031 - 2 1.0091 95.95 0.0933 9.9320 - 3 1.0101 96.05 0.0933 9.9471 - 4 1.0108 96.12 0.0933 9.9570 - 5 1.0113 96.16 0.0933 9.9641 - 6 1.0117 96.19 0.0933 9.9687 - 7 1.0118 96.21 0.0933 9.9705 - 8 1.0117 96.19 0.0933 9.9688 - 9 1.0113 96.16 0.0934 9.9631 - 10 1.0105 96.09 0.0934 9.9529 - 11 1.0095 95.99 0.0936 9.9380 - 12 1.0081 95.86 0.0937 9.9185 - 13 1.0065 95.70 0.0939 9.8946 - 14 1.0045 95.52 0.0941 9.8666 - 15 1.0023 95.30 0.0943 9.8348 - 16 0.9998 95.07 0.0946 9.7996 - 17 0.9972 94.82 0.0948 9.7614 - 18 0.9943 94.55 0.0951 9.7204 - 19 0.9913 94.26 0.0954 9.6772 - 20 0.9881 93.96 0.0957 9.6319 - 21 0.9848 93.64 0.0960 9.5847 - 22 0.9814 93.32 0.0964 9.5360 - 23 0.9779 92.99 0.0967 9.4859 - 24 0.9744 92.65 0.0970 9.4345 - 25 0.9707 92.30 0.0974 9.3820 - 26 0.9669 91.94 0.0978 9.3285 - 27 0.9631 91.58 0.0981 9.2741 - 28 0.9593 91.21 0.0985 9.2188 - 29 0.9554 90.84 0.0989 9.1628 + 0 1.0000 94.98 0.0876 9.4733 + 1 1.0073 95.67 0.0874 9.5744 + 2 1.0094 95.87 0.0874 9.6033 + 3 1.0105 95.97 0.0874 9.6184 + 4 1.0112 96.04 0.0874 9.6283 + 5 1.0117 96.09 0.0873 9.6355 + 6 1.0121 96.13 0.0873 9.6406 + 7 1.0123 96.15 0.0873 9.6434 + 8 1.0123 96.15 0.0874 9.6436 + 9 1.0121 96.13 0.0874 9.6405 + 10 1.0116 96.08 0.0875 9.6337 + 11 1.0108 96.01 0.0875 9.6231 + 12 1.0098 95.91 0.0876 9.6085 + 13 1.0084 95.78 0.0878 9.5900 + 14 1.0068 95.63 0.0879 9.5678 + 15 1.0050 95.45 0.0881 9.5421 + 16 1.0029 95.25 0.0883 9.5133 + 17 1.0006 95.04 0.0885 9.4815 + 18 0.9981 94.80 0.0887 9.4471 + 19 0.9955 94.55 0.0889 9.4104 + 20 0.9927 94.28 0.0892 9.3716 + 21 0.9897 94.00 0.0894 9.3310 + 22 0.9867 93.71 0.0897 9.2887 + 23 0.9835 93.41 0.0899 9.2449 + 24 0.9802 93.10 0.0902 9.1998 + 25 0.9769 92.79 0.0905 9.1535 + 26 0.9735 92.46 0.0908 9.1061 + 27 0.9700 92.13 0.0911 9.0578 + 28 0.9664 91.79 0.0914 9.0085 + 29 0.9628 91.45 0.0917 8.9583 ******************************************************************* @@ -165,33 +165,33 @@ Simulation Metadata YEAR HEAT HEAT RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (10^15 J) (%) - 1 51.8 57.6 29.99 0.69 - 2 52.1 57.9 29.78 1.38 - 3 52.2 58.1 29.57 2.07 - 4 52.3 58.1 29.36 2.76 - 5 52.4 58.2 29.15 3.46 - 6 52.4 58.2 28.94 4.15 - 7 52.4 58.2 28.73 4.84 - 8 52.4 58.2 28.52 5.54 - 9 52.4 58.2 28.31 6.23 - 10 52.3 58.2 28.10 6.93 - 11 52.3 58.1 27.89 7.62 - 12 52.2 58.0 27.69 8.31 - 13 52.1 57.9 27.48 9.00 - 14 51.9 57.7 27.27 9.69 - 15 51.8 57.5 27.06 10.37 - 16 51.6 57.3 26.86 11.06 - 17 51.4 57.1 26.65 11.74 - 18 51.2 56.9 26.45 12.42 - 19 51.0 56.6 26.24 13.09 - 20 50.7 56.4 26.04 13.76 - 21 50.5 56.1 25.84 14.43 - 22 50.2 55.8 25.64 15.10 - 23 50.0 55.5 25.44 15.76 - 24 49.7 55.2 25.24 16.42 - 25 49.5 54.9 25.04 17.07 - 26 49.2 54.6 24.84 17.73 - 27 48.9 54.3 24.65 18.37 - 28 48.6 54.0 24.45 19.02 - 29 48.3 53.7 24.26 19.66 - 30 40.0 44.5 24.10 20.19 + 1 50.1 55.7 29.99 0.66 + 2 50.4 56.0 29.79 1.33 + 3 50.5 56.1 29.59 2.00 + 4 50.6 56.2 29.39 2.67 + 5 50.6 56.3 29.19 3.34 + 6 50.7 56.3 28.98 4.01 + 7 50.7 56.3 28.78 4.68 + 8 50.7 56.3 28.58 5.36 + 9 50.7 56.3 28.37 6.03 + 10 50.7 56.3 28.17 6.70 + 11 50.6 56.2 27.97 7.37 + 12 50.5 56.2 27.77 8.04 + 13 50.5 56.1 27.57 8.71 + 14 50.3 55.9 27.36 9.37 + 15 50.2 55.8 27.16 10.04 + 16 50.1 55.6 26.96 10.70 + 17 49.9 55.5 26.76 11.36 + 18 49.7 55.3 26.56 12.02 + 19 49.6 55.1 26.37 12.68 + 20 49.4 54.8 26.17 13.33 + 21 49.2 54.6 25.97 13.98 + 22 48.9 54.4 25.78 14.63 + 23 48.7 54.1 25.58 15.28 + 24 48.5 53.9 25.39 15.92 + 25 48.2 53.6 25.19 16.56 + 26 48.0 53.3 25.00 17.19 + 27 47.7 53.0 24.81 17.83 + 28 47.5 52.8 24.62 18.46 + 29 47.2 52.5 24.43 19.08 + 30 39.1 43.5 24.28 19.60 diff --git a/tests/examples/example9.out b/tests/examples/example9.out index 7e9f9a50..c6934b62 100644 --- a/tests/examples/example9.out +++ b/tests/examples/example9.out @@ -4,17 +4,17 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:29 - Calculation Time: 0.643 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:44 + Calculation Time: 0.614 sec ***SUMMARY OF RESULTS*** End-Use Option: Electricity Average Net Electricity Production: 0.47 MW - Electricity breakeven price: 50.60 cents/kWh + Electricity breakeven price: 50.18 cents/kWh Number of production wells: 1 Number of injection wells: 1 Flowrate per production well: 40.0 kg/sec @@ -29,10 +29,10 @@ Simulation Metadata Accrued financing during construction: 0.00 Project lifetime: 30 yr Capacity factor: 90.0 % - Project NPV: -31.12 MUSD + Project NPV: -31.10 MUSD Project IRR: 0.00 % Project VIR=PI=PIR: -0.13 - Project MOIC: -0.86 + Project MOIC: -0.85 ***ENGINEERING PARAMETERS*** @@ -43,7 +43,7 @@ Simulation Metadata Pump efficiency: 80.0 Injection temperature: 60.0 degC Production Wellbore heat transmission calculated with Ramey's model - Average production well temperature drop: 3.6 degC + Average production well temperature drop: 3.7 degC Flowrate per production well: 40.0 kg/sec Injection well casing ID: 7.000 in Production well casing ID: 7.000 in @@ -77,18 +77,18 @@ Simulation Metadata ***RESERVOIR SIMULATION RESULTS*** - Maximum Production Temperature: 122.6 degC - Average Production Temperature: 121.0 degC - Minimum Production Temperature: 117.2 degC - Initial Production Temperature: 120.7 degC - Average Reservoir Heat Extraction: 10.26 MW + Maximum Production Temperature: 122.4 degC + Average Production Temperature: 121.1 degC + Minimum Production Temperature: 117.9 degC + Initial Production Temperature: 120.5 degC + Average Reservoir Heat Extraction: 9.86 MW Production Wellbore Heat Transmission Model = Ramey Model - Average Production Well Temperature Drop: 3.6 degC - Total Average Pressure Drop: 1508.5 kPa - Average Injection Well Pressure Drop: 524.6 kPa - Average Reservoir Pressure Drop: 2071.7 kPa - Average Production Well Pressure Drop: 516.8 kPa - Average Buoyancy Pressure Drop: -1604.6 kPa + Average Production Well Temperature Drop: 3.7 degC + Total Average Pressure Drop: 1545.7 kPa + Average Injection Well Pressure Drop: 505.1 kPa + Average Reservoir Pressure Drop: 1986.8 kPa + Average Production Well Pressure Drop: 494.6 kPa + Average Buoyancy Pressure Drop: -1440.9 kPa ***CAPITAL COSTS (M$)*** @@ -96,11 +96,11 @@ Simulation Metadata Drilling and completion costs: 15.41 MUSD Drilling and completion costs per well: 7.70 MUSD Stimulation costs: 1.51 MUSD - Surface power plant costs: 2.43 MUSD + Surface power plant costs: 2.42 MUSD Field gathering system costs: 1.13 MUSD - Total surface equipment costs: 3.56 MUSD + Total surface equipment costs: 3.55 MUSD Exploration costs: 6.96 MUSD - Total capital costs: 27.43 MUSD + Total capital costs: 27.42 MUSD Annualized capital costs: 1.37 MUSD @@ -117,14 +117,14 @@ Simulation Metadata Initial geofluid availability: 0.06 MW/(kg/s) Maximum Total Electricity Generation: 0.57 MW Average Total Electricity Generation: 0.55 MW - Minimum Total Electricity Generation: 0.49 MW + Minimum Total Electricity Generation: 0.50 MW Initial Total Electricity Generation: 0.54 MW - Maximum Net Electricity Generation: 0.50 MW + Maximum Net Electricity Generation: 0.49 MW Average Net Electricity Generation: 0.47 MW - Minimum Net Electricity Generation: 0.40 MW + Minimum Net Electricity Generation: 0.42 MW Initial Net Electricity Generation: 0.46 MW - Average Annual Total Electricity Generation: 4.28 GWh - Average Annual Net Electricity Generation: 3.66 GWh + Average Annual Total Electricity Generation: 4.30 GWh + Average Annual Net Electricity Generation: 3.69 GWh Initial pumping power/net installed power: 100.00 % Average Pumping Power: 0.08 MW @@ -134,36 +134,36 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET FIRST LAW DRAWDOWN TEMPERATURE POWER POWER EFFICIENCY (degC) (MW) (MW) (%) - 1 1.0000 120.71 0.0762 0.4647 4.5507 - 2 1.0091 121.81 0.0757 0.4830 4.6457 - 3 1.0117 122.13 0.0756 0.4883 4.6733 - 4 1.0131 122.29 0.0755 0.4912 4.6878 - 5 1.0140 122.40 0.0755 0.4930 4.6974 - 6 1.0147 122.48 0.0755 0.4944 4.7043 - 7 1.0151 122.54 0.0755 0.4953 4.7091 - 8 1.0154 122.57 0.0755 0.4959 4.7118 - 9 1.0155 122.58 0.0755 0.4959 4.7119 - 10 1.0153 122.56 0.0756 0.4955 4.7092 - 11 1.0148 122.50 0.0757 0.4945 4.7034 - 12 1.0141 122.42 0.0759 0.4929 4.6946 - 13 1.0132 122.30 0.0761 0.4907 4.6827 - 14 1.0119 122.15 0.0764 0.4880 4.6679 - 15 1.0105 121.98 0.0767 0.4848 4.6505 - 16 1.0089 121.78 0.0771 0.4812 4.6305 - 17 1.0070 121.56 0.0775 0.4772 4.6084 - 18 1.0050 121.32 0.0779 0.4728 4.5843 - 19 1.0029 121.06 0.0783 0.4682 4.5585 - 20 1.0006 120.79 0.0788 0.4633 4.5312 - 21 0.9983 120.50 0.0793 0.4582 4.5025 - 22 0.9958 120.20 0.0798 0.4529 4.4727 - 23 0.9932 119.89 0.0803 0.4475 4.4418 - 24 0.9906 119.58 0.0809 0.4419 4.4100 - 25 0.9879 119.25 0.0814 0.4362 4.3774 - 26 0.9851 118.92 0.0820 0.4305 4.3440 - 27 0.9823 118.58 0.0825 0.4247 4.3100 - 28 0.9795 118.23 0.0831 0.4188 4.2754 - 29 0.9766 117.88 0.0837 0.4128 4.2401 - 30 0.9736 117.53 0.0843 0.4068 4.2044 + 1 1.0000 120.47 0.0758 0.4613 4.7312 + 2 1.0095 121.61 0.0754 0.4801 4.8333 + 3 1.0122 121.95 0.0753 0.4856 4.8630 + 4 1.0136 122.12 0.0753 0.4886 4.8786 + 5 1.0146 122.23 0.0752 0.4905 4.8889 + 6 1.0153 122.32 0.0752 0.4919 4.8965 + 7 1.0158 122.38 0.0752 0.4930 4.9021 + 8 1.0162 122.42 0.0752 0.4937 4.9059 + 9 1.0164 122.45 0.0752 0.4941 4.9077 + 10 1.0164 122.45 0.0752 0.4940 4.9072 + 11 1.0161 122.42 0.0753 0.4935 4.9042 + 12 1.0157 122.37 0.0754 0.4925 4.8986 + 13 1.0150 122.29 0.0756 0.4911 4.8903 + 14 1.0142 122.18 0.0757 0.4891 4.8795 + 15 1.0131 122.05 0.0759 0.4868 4.8661 + 16 1.0118 121.90 0.0762 0.4840 4.8505 + 17 1.0103 121.72 0.0764 0.4809 4.8327 + 18 1.0087 121.53 0.0767 0.4774 4.8129 + 19 1.0070 121.31 0.0770 0.4736 4.7914 + 20 1.0051 121.08 0.0773 0.4696 4.7683 + 21 1.0030 120.84 0.0777 0.4653 4.7438 + 22 1.0009 120.59 0.0780 0.4608 4.7180 + 23 0.9987 120.32 0.0784 0.4562 4.6911 + 24 0.9964 120.04 0.0788 0.4514 4.6632 + 25 0.9940 119.76 0.0792 0.4465 4.6343 + 26 0.9916 119.46 0.0796 0.4414 4.6046 + 27 0.9891 119.16 0.0800 0.4363 4.5742 + 28 0.9865 118.85 0.0804 0.4310 4.5431 + 29 0.9839 118.54 0.0808 0.4257 4.5113 + 30 0.9813 118.22 0.0813 0.4204 4.4788 ******************************************************************* @@ -172,33 +172,33 @@ Simulation Metadata YEAR ELECTRICITY HEAT RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (10^15 J) (%) - 1 3.7 81.3 29.02 1.00 - 2 3.8 82.2 28.72 2.01 - 3 3.9 82.5 28.43 3.02 - 4 3.9 82.7 28.13 4.04 - 5 3.9 82.8 27.83 5.05 - 6 3.9 82.9 27.53 6.07 - 7 3.9 83.0 27.23 7.09 - 8 3.9 83.0 26.93 8.11 - 9 3.9 83.0 26.64 9.13 - 10 3.9 82.9 26.34 10.15 - 11 3.9 82.8 26.04 11.16 - 12 3.9 82.7 25.74 12.18 - 13 3.9 82.5 25.44 13.19 - 14 3.8 82.3 25.15 14.20 - 15 3.8 82.1 24.85 15.21 - 16 3.8 81.8 24.56 16.22 - 17 3.7 81.5 24.26 17.22 - 18 3.7 81.1 23.97 18.21 - 19 3.7 80.8 23.68 19.21 - 20 3.6 80.4 23.39 20.19 - 21 3.6 80.0 23.10 21.18 - 22 3.5 79.6 22.82 22.16 - 23 3.5 79.2 22.53 23.13 - 24 3.5 78.8 22.25 24.10 - 25 3.4 78.4 21.97 25.06 - 26 3.4 77.9 21.69 26.02 - 27 3.3 77.5 21.41 26.97 - 28 3.3 77.0 21.13 27.91 - 29 3.2 76.5 20.85 28.85 - 30 2.7 63.4 20.63 29.63 + 1 3.7 77.7 29.03 0.95 + 2 3.8 78.6 28.75 1.92 + 3 3.8 78.9 28.47 2.89 + 4 3.9 79.0 28.18 3.86 + 5 3.9 79.2 27.90 4.83 + 6 3.9 79.2 27.61 5.80 + 7 3.9 79.3 27.33 6.78 + 8 3.9 79.4 27.04 7.75 + 9 3.9 79.4 26.75 8.73 + 10 3.9 79.4 26.47 9.70 + 11 3.9 79.3 26.18 10.68 + 12 3.9 79.2 25.90 11.65 + 13 3.9 79.1 25.61 12.62 + 14 3.8 79.0 25.33 13.59 + 15 3.8 78.8 25.04 14.56 + 16 3.8 78.6 24.76 15.52 + 17 3.8 78.3 24.48 16.48 + 18 3.7 78.1 24.20 17.44 + 19 3.7 77.8 23.92 18.40 + 20 3.7 77.5 23.64 19.35 + 21 3.7 77.2 23.36 20.30 + 22 3.6 76.8 23.09 21.24 + 23 3.6 76.5 22.81 22.18 + 24 3.5 76.1 22.54 23.12 + 25 3.5 75.8 22.26 24.05 + 26 3.5 75.4 21.99 24.97 + 27 3.4 75.0 21.72 25.89 + 28 3.4 74.6 21.45 26.81 + 29 3.3 74.2 21.19 27.72 + 30 2.7 61.5 20.96 28.48 diff --git a/tests/examples/example_multiple_gradients.out b/tests/examples/example_multiple_gradients.out index d570bae2..40ef8a2f 100644 --- a/tests/examples/example_multiple_gradients.out +++ b/tests/examples/example_multiple_gradients.out @@ -4,16 +4,16 @@ Simulation Metadata ---------------------- - GEOPHIRES Version: 3.3.3 + GEOPHIRES Version: 3.4.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2024-02-01 - Simulation Time: 11:30 - Calculation Time: 0.660 sec + Simulation Date: 2024-02-13 + Simulation Time: 09:45 + Calculation Time: 0.615 sec ***SUMMARY OF RESULTS*** End-Use Option: Electricity - Average Net Electricity Production: 8.00 MW + Average Net Electricity Production: 8.01 MW Electricity breakeven price: 9.15 cents/kWh Number of production wells: 2 Number of injection wells: 2 @@ -35,7 +35,7 @@ Simulation Metadata Accrued financing during construction: 0.00 Project lifetime: 30 yr Capacity factor: 90.0 % - Project NPV: -54.56 MUSD + Project NPV: -54.78 MUSD Project IRR: -0.03 % Project VIR=PI=PIR: 0.28 Project MOIC: -0.23 @@ -79,8 +79,8 @@ Simulation Metadata Fracture area: 360000.00 m**2 Reservoir volume: 1000000000 m**3 Reservoir hydrostatic pressure: 100.00 kPa - Plant outlet pressure: 1530.77 kPa - Production wellhead pressure: 1599.72 kPa + Plant outlet pressure: 1530.99 kPa + Production wellhead pressure: 1599.94 kPa Productivity Index: 5.00 kg/sec/bar Injectivity Index: 5.00 kg/sec/bar Reservoir density: 2700.00 kg/m**3 @@ -91,13 +91,13 @@ Simulation Metadata ***RESERVOIR SIMULATION RESULTS*** Maximum Production Temperature: 188.0 degC - Average Production Temperature: 184.8 degC - Minimum Production Temperature: 177.0 degC + Average Production Temperature: 185.5 degC + Minimum Production Temperature: 178.9 degC Initial Production Temperature: 188.0 degC - Average Reservoir Heat Extraction: 68.49 MW + Average Reservoir Heat Extraction: 65.65 MW Wellbore Heat Transmission Model = Constant Temperature Drop: 2.0 degC - Average Injection Well Pump Pressure Drop: -117.7 kPa - Average Production Well Pump Pressure Drop: 897.5 kPa + Average Injection Well Pump Pressure Drop: -129.0 kPa + Average Production Well Pump Pressure Drop: 1413.4 kPa ***CAPITAL COSTS (M$)*** @@ -106,10 +106,10 @@ Simulation Metadata Drilling and completion costs per well: 8.32 MUSD Stimulation costs: 3.02 MUSD Surface power plant costs: 30.27 MUSD - Field gathering system costs: 2.24 MUSD - Total surface equipment costs: 32.51 MUSD + Field gathering system costs: 2.28 MUSD + Total surface equipment costs: 32.55 MUSD Exploration costs: 7.41 MUSD - Total capital costs: 76.22 MUSD + Total capital costs: 76.26 MUSD Annualized capital costs: 3.81 MUSD @@ -125,17 +125,17 @@ Simulation Metadata Initial geofluid availability: 0.15 MW/(kg/s) Maximum Total Electricity Generation: 8.54 MW - Average Total Electricity Generation: 8.15 MW - Minimum Total Electricity Generation: 7.22 MW + Average Total Electricity Generation: 8.23 MW + Minimum Total Electricity Generation: 7.44 MW Initial Total Electricity Generation: 8.54 MW - Maximum Net Electricity Generation: 8.41 MW - Average Net Electricity Generation: 8.00 MW - Minimum Net Electricity Generation: 7.01 MW - Initial Net Electricity Generation: 8.41 MW - Average Annual Total Electricity Generation: 63.91 GWh - Average Annual Net Electricity Generation: 62.71 GWh + Maximum Net Electricity Generation: 8.33 MW + Average Net Electricity Generation: 8.01 MW + Minimum Net Electricity Generation: 7.18 MW + Initial Net Electricity Generation: 8.33 MW + Average Annual Total Electricity Generation: 64.55 GWh + Average Annual Net Electricity Generation: 62.78 GWh Initial pumping power/net installed power: 100.00 % - Average Pumping Power: 0.15 MW + Average Pumping Power: 0.23 MW ************************************************************ * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * @@ -143,36 +143,36 @@ Simulation Metadata YEAR THERMAL GEOFLUID PUMP NET FIRST LAW DRAWDOWN TEMPERATURE POWER POWER EFFICIENCY (degC) (MW) (MW) (%) - 1 1.0000 188.00 0.1307 8.4110 11.9934 - 2 1.0000 188.00 0.1307 8.4110 11.9934 - 3 1.0000 188.00 0.1307 8.4110 11.9934 - 4 1.0000 188.00 0.1307 8.4110 11.9934 - 5 1.0000 188.00 0.1307 8.4110 11.9933 - 6 1.0000 188.00 0.1307 8.4107 11.9931 - 7 0.9999 187.99 0.1308 8.4094 11.9921 - 8 0.9998 187.96 0.1309 8.4058 11.9894 - 9 0.9995 187.90 0.1313 8.3985 11.9838 - 10 0.9990 187.81 0.1320 8.3860 11.9743 - 11 0.9982 187.67 0.1330 8.3674 11.9601 - 12 0.9972 187.47 0.1344 8.3420 11.9406 - 13 0.9959 187.22 0.1361 8.3095 11.9158 - 14 0.9943 186.92 0.1382 8.2701 11.8855 - 15 0.9924 186.57 0.1407 8.2240 11.8499 - 16 0.9902 186.16 0.1435 8.1717 11.8094 - 17 0.9878 185.72 0.1466 8.1138 11.7643 - 18 0.9852 185.23 0.1500 8.0507 11.7151 - 19 0.9825 184.70 0.1536 7.9832 11.6620 - 20 0.9795 184.15 0.1575 7.9117 11.6056 - 21 0.9764 183.56 0.1615 7.8369 11.5462 - 22 0.9732 182.95 0.1656 7.7593 11.4841 - 23 0.9698 182.32 0.1699 7.6793 11.4198 - 24 0.9664 181.68 0.1743 7.5974 11.3535 - 25 0.9629 181.02 0.1787 7.5140 11.2855 - 26 0.9593 180.34 0.1832 7.4294 11.2161 - 27 0.9556 179.66 0.1878 7.3440 11.1455 - 28 0.9520 178.97 0.1923 7.2581 11.0739 - 29 0.9483 178.28 0.1969 7.1718 11.0016 - 30 0.9446 177.58 0.2015 7.0854 10.9286 + 1 1.0000 188.00 0.2136 8.3281 12.4529 + 2 1.0000 188.00 0.2136 8.3281 12.4529 + 3 1.0000 188.00 0.2136 8.3281 12.4529 + 4 1.0000 188.00 0.2136 8.3281 12.4529 + 5 1.0000 188.00 0.2136 8.3281 12.4529 + 6 1.0000 188.00 0.2136 8.3280 12.4528 + 7 1.0000 187.99 0.2136 8.3274 12.4523 + 8 0.9999 187.98 0.2137 8.3255 12.4509 + 9 0.9997 187.95 0.2138 8.3214 12.4476 + 10 0.9994 187.89 0.2141 8.3139 12.4416 + 11 0.9989 187.80 0.2146 8.3020 12.4322 + 12 0.9982 187.67 0.2152 8.2851 12.4187 + 13 0.9973 187.49 0.2161 8.2626 12.4007 + 14 0.9961 187.27 0.2172 8.2344 12.3782 + 15 0.9947 187.01 0.2185 8.2005 12.3510 + 16 0.9931 186.70 0.2200 8.1611 12.3193 + 17 0.9912 186.35 0.2217 8.1165 12.2833 + 18 0.9892 185.96 0.2237 8.0670 12.2433 + 19 0.9869 185.54 0.2257 8.0132 12.1995 + 20 0.9845 185.08 0.2280 7.9554 12.1523 + 21 0.9819 184.60 0.2303 7.8941 12.1020 + 22 0.9792 184.09 0.2328 7.8296 12.0489 + 23 0.9764 183.56 0.2354 7.7625 11.9932 + 24 0.9734 183.01 0.2381 7.6931 11.9353 + 25 0.9704 182.44 0.2409 7.6217 11.8755 + 26 0.9673 181.85 0.2437 7.5487 11.8139 + 27 0.9641 181.25 0.2466 7.4744 11.7508 + 28 0.9609 180.65 0.2495 7.3990 11.6865 + 29 0.9576 180.03 0.2525 7.3228 11.6210 + 30 0.9543 179.41 0.2555 7.2461 11.5546 ******************************************************************* @@ -181,33 +181,33 @@ Simulation Metadata YEAR ELECTRICITY HEAT RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (10^15 J) (%) - 1 66.3 552.9 376.01 0.53 - 2 66.3 552.9 374.02 1.05 - 3 66.3 552.9 372.03 1.58 - 4 66.3 552.9 370.04 2.11 - 5 66.3 552.9 368.05 2.63 - 6 66.3 552.9 366.06 3.16 - 7 66.3 552.8 364.07 3.69 - 8 66.2 552.6 362.08 4.21 - 9 66.2 552.3 360.09 4.74 - 10 66.0 551.9 358.10 5.26 - 11 65.9 551.2 356.12 5.79 - 12 65.6 550.3 354.14 6.31 - 13 65.4 549.2 352.16 6.84 - 14 65.0 547.9 350.19 7.36 - 15 64.6 546.4 348.22 7.88 - 16 64.2 544.7 346.26 8.40 - 17 63.7 542.8 344.31 8.91 - 18 63.2 540.8 342.36 9.43 - 19 62.7 538.6 340.42 9.94 - 20 62.1 536.3 338.49 10.45 - 21 61.5 533.9 336.57 10.96 - 22 60.9 531.4 334.65 11.47 - 23 60.2 528.9 332.75 11.97 - 24 59.6 526.3 330.86 12.47 - 25 58.9 523.6 328.97 12.97 - 26 58.2 520.9 327.10 13.47 - 27 57.6 518.1 325.23 13.96 - 28 56.9 515.3 323.38 14.45 - 29 56.2 512.6 321.53 14.94 - 30 46.3 425.0 320.00 15.34 + 1 65.7 527.3 376.10 0.50 + 2 65.7 527.3 374.20 1.00 + 3 65.7 527.3 372.31 1.51 + 4 65.7 527.3 370.41 2.01 + 5 65.7 527.3 368.51 2.51 + 6 65.7 527.2 366.61 3.01 + 7 65.6 527.2 364.71 3.51 + 8 65.6 527.1 362.82 4.02 + 9 65.6 527.0 360.92 4.52 + 10 65.5 526.7 359.02 5.02 + 11 65.4 526.2 357.13 5.52 + 12 65.2 525.7 355.24 6.02 + 13 65.0 524.9 353.35 6.52 + 14 64.8 524.0 351.46 7.02 + 15 64.5 522.9 349.58 7.52 + 16 64.2 521.6 347.70 8.02 + 17 63.8 520.2 345.83 8.51 + 18 63.4 518.7 343.96 9.01 + 19 63.0 517.0 342.10 9.50 + 20 62.5 515.2 340.24 9.99 + 21 62.0 513.3 338.40 10.48 + 22 61.5 511.3 336.55 10.96 + 23 60.9 509.2 334.72 11.45 + 24 60.4 507.1 332.90 11.93 + 25 59.8 504.9 331.08 12.41 + 26 59.2 502.6 329.27 12.89 + 27 58.6 500.3 327.47 13.37 + 28 58.0 498.0 325.68 13.84 + 29 57.4 495.6 323.89 14.31 + 30 47.4 411.2 322.41 14.71 diff --git a/tests/geophires_x_tests/__init__.py b/tests/geophires_x_tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/cylindrical_reservoir_input_depth_kilometers.txt b/tests/geophires_x_tests/cylindrical_reservoir_input_depth_kilometers.txt similarity index 100% rename from tests/cylindrical_reservoir_input_depth_kilometers.txt rename to tests/geophires_x_tests/cylindrical_reservoir_input_depth_kilometers.txt diff --git a/tests/cylindrical_reservoir_input_depth_meters.txt b/tests/geophires_x_tests/cylindrical_reservoir_input_depth_meters.txt similarity index 100% rename from tests/cylindrical_reservoir_input_depth_meters.txt rename to tests/geophires_x_tests/cylindrical_reservoir_input_depth_meters.txt diff --git a/tests/test_cylindrical_reservoir.py b/tests/geophires_x_tests/test_cylindrical_reservoir.py similarity index 87% rename from tests/test_cylindrical_reservoir.py rename to tests/geophires_x_tests/test_cylindrical_reservoir.py index 67fe9a91..d965156f 100644 --- a/tests/test_cylindrical_reservoir.py +++ b/tests/geophires_x_tests/test_cylindrical_reservoir.py @@ -9,11 +9,9 @@ from geophires_x.Model import Model from geophires_x.Parameter import ParameterEntry -# ruff: noqa: I001 -from geophires_x.Reservoir import densitywater +from geophires_x.GeoPHIRESUtils import density_water_kg_per_m3 -# ruff: noqa: I001 -from geophires_x.Reservoir import heatcapacitywater +from geophires_x.GeoPHIRESUtils import heat_capacity_water_J_per_kg_per_K as heatcapacitywater # ruff: noqa: I001 from geophires_x.CylindricalReservoir import CylindricalReservoir @@ -53,7 +51,9 @@ def _new_model_with_cylindrical_reservoir(self, input_file=None) -> Model: def test_read_inputs(self): model = self._new_model_with_cylindrical_reservoir( - input_file=self._get_test_file_path('examples/Beckers_et_al_2023_Tabulated_Database_Uloop_water_elec.txt') + input_file=self._get_test_file_path( + '../examples/Beckers_et_al_2023_Tabulated_Database_Uloop_water_elec.txt' + ) ) reservoir = model.reserv self.assertIsNotNone(reservoir.InputDepth) @@ -110,19 +110,21 @@ def test_calculate_heat_capacity_water(self): reservoir = model.reserv reservoir.Calculate(model) expected_heat_capacity = heatcapacitywater( - model.wellbores.Tinj.value * 0.5 + (reservoir.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5 + model.wellbores.Tinj.value * 0.5 + (reservoir.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5, + pressure=model.reserv.lithostatic_pressure(), ) assert reservoir.cpwater.value == expected_heat_capacity def test_calculate_density_water(self): - """Calculates the heat capacity of water""" + """Calculates the density of water""" model = self._new_model_with_cylindrical_reservoir() reservoir = model.reserv reservoir.Calculate(model) - expected_density = densitywater( - model.wellbores.Tinj.value * 0.5 + (reservoir.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5 + expected_density = density_water_kg_per_m3( + model.wellbores.Tinj.value * 0.5 + (reservoir.Trock.value * 0.9 + model.wellbores.Tinj.value * 0.1) * 0.5, + pressure=reservoir.lithostatic_pressure(), ) - assert reservoir.rhowater.value == expected_density + assert expected_density == reservoir.rhowater.value @unittest.skip('FIXME requires review of expected value') def test_calculate_temperature_outflow_end(self): @@ -139,8 +141,8 @@ def test_calculate_initial_heat_content_min_values(self): reservoir = model.reserv reservoir.RadiusOfEffectFactor.value = 0.0 reservoir.resvolcalc.value = 0.0 - reservoir.rhorock.value = 0.0 - reservoir.cprock.value = 0.0 + reservoir.rhorock.value = reservoir.rhorock.Min + reservoir.cprock.value = reservoir.cprock.Min reservoir.Trock.value = 0.0 model.wellbores.Tinj.value = 0.0 reservoir.Calculate(model) diff --git a/tests/geophires_x_tests/test_reservoir.py b/tests/geophires_x_tests/test_reservoir.py new file mode 100644 index 00000000..a5a837d4 --- /dev/null +++ b/tests/geophires_x_tests/test_reservoir.py @@ -0,0 +1,43 @@ +import os +import sys +from pathlib import Path + +from pint.facets.plain import PlainQuantity + +from base_test_case import BaseTestCase +from geophires_x.GeoPHIRESUtils import lithostatic_pressure_MPa +from geophires_x.Model import Model +from geophires_x.Reservoir import Reservoir + + +class ReservoirTestCase(BaseTestCase): + def test_lithostatic_pressure(self): + p = lithostatic_pressure_MPa(2700, 3000) + self.assertEqual(79.433865, p) + + def test_reservoir_lithostatic_pressure(self): + reservoir = Reservoir(self._new_model()) + p: PlainQuantity = reservoir.lithostatic_pressure() + + # Assumes Reservoir default values of rho=2700, depth=3km + self.assertAlmostEqual(79.433865, p.magnitude, places=3) + self.assertEqual('megapascal', p.units) + + def _new_model(self, input_file=None) -> Model: + stash_cwd = Path.cwd() + stash_sys_argv = sys.argv + + sys.argv = [''] + + if input_file is not None: + sys.argv.append(input_file) + + m = Model(enable_geophires_logging_config=False) + + if input_file is not None: + m.read_parameters() + + sys.argv = stash_sys_argv + os.chdir(stash_cwd) + + return m diff --git a/tests/hip_ra_x_tests/examples/HIP-RA-X_example1.out b/tests/hip_ra_x_tests/examples/HIP-RA-X_example1.out index 9aea3bac..2ee618ee 100644 --- a/tests/hip_ra_x_tests/examples/HIP-RA-X_example1.out +++ b/tests/hip_ra_x_tests/examples/HIP-RA-X_example1.out @@ -10,7 +10,7 @@ Reservoir Thickness: 0.25 kilometer Reservoir Life Cycle: 25.00 yr Rock Heat Capacity: 2.84e+12 kJ/km**3C - Fluid Specific Heat Capacity: 4.86 kJ/kgC + Fluid Specific Heat Capacity: 4.87 kJ/kgC Density Of Reservoir Fluid: 7.99e+11 kg/km**3 Density Of Reservoir Rock: 2.55e+12 kg/km**3 Recoverable Fluid Factor: 0.50 @@ -25,14 +25,14 @@ Stored Heat (fluid): 4.58e+14 kJ Mass of Reservoir (rock): 3.16e+13 kilogram Mass of Reservoir (fluid): 6.55e+12 kilogram - Specific Enthalpy (reservoir): 392.44 kJ/kg + Specific Enthalpy (reservoir): 392.48 kJ/kg Specific Enthalpy (rock): 211.61 kJ/kg - Specific Enthalpy (fluid): 180.84 kJ/kg + Specific Enthalpy (fluid): 180.87 kJ/kg Recovery Factor (reservoir): 14.30 % Available Heat (reservoir): 1.18e+15 kJ Producible Heat (reservoir): 7.82e+14 kJ Producible Heat/Unit Area (reservoir): 1.42e+13 kJ/km**2 Producible Heat/Unit Volume (reservoir): 5.69e+13 kJ/km**3 - Producible Electricity (reservoir): 500.82 MW + Producible Electricity (reservoir): 500.89 MW Producible Electricity/Unit Area (reservoir): 9.11 MW/km**2 - Producible Electricity/Unit Volume (reservoir): 36.42 MW/km**3 + Producible Electricity/Unit Volume (reservoir): 36.43 MW/km**3 diff --git a/tests/test_base_test_case.py b/tests/test_base_test_case.py new file mode 100644 index 00000000..77aaa1b4 --- /dev/null +++ b/tests/test_base_test_case.py @@ -0,0 +1,26 @@ +import unittest + +from base_test_case import BaseTestCase + + +class TestBaseTestCase(BaseTestCase): + def test_assertAlmostEqualWithinPercentage(self): + self.assertAlmostEqualWithinPercentage(100, 100, percent=5) + self.assertAlmostEqualWithinPercentage(100, 95, percent=5) + self.assertAlmostEqualWithinPercentage(100, 105, percent=5) + self.assertAlmostEqualWithinPercentage(-100, -95, percent=5) + self.assertAlmostEqualWithinPercentage(-100, -105, percent=5) + + with self.assertRaises(AssertionError): + self.assertAlmostEqualWithinPercentage(100, 0, percent=5) + self.assertAlmostEqualWithinPercentage(100, 94.5, percent=5) + self.assertAlmostEqualWithinPercentage(100, 105.5, percent=5) + + self.assertListAlmostEqual([1, 2, 3], [1.1, 2.2, 3.3], percent=10.5) + + with self.assertRaises(AssertionError): + self.assertListAlmostEqual([1, 2, 3], [1.1, 2.2, 3.3], percent=5) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_geophires_utils.py b/tests/test_geophires_utils.py index b787ace6..4b3c2318 100644 --- a/tests/test_geophires_utils.py +++ b/tests/test_geophires_utils.py @@ -1,16 +1,17 @@ import sys import unittest -from geophires_x.GeoPHIRESUtils import DensityWater -from geophires_x.GeoPHIRESUtils import EnthalpyH20_func -from geophires_x.GeoPHIRESUtils import EntropyH20_func -from geophires_x.GeoPHIRESUtils import HeatCapacityWater from geophires_x.GeoPHIRESUtils import RecoverableHeat from geophires_x.GeoPHIRESUtils import UtilEff_func -from geophires_x.GeoPHIRESUtils import VaporPressureWater -from geophires_x.GeoPHIRESUtils import ViscosityWater from geophires_x.GeoPHIRESUtils import _interp_util_eff_func from geophires_x.GeoPHIRESUtils import celsius_to_kelvin +from geophires_x.GeoPHIRESUtils import density_water_kg_per_m3 +from geophires_x.GeoPHIRESUtils import enthalpy_water_kJ_per_kg +from geophires_x.GeoPHIRESUtils import entropy_water_kJ_per_kg_per_K +from geophires_x.GeoPHIRESUtils import heat_capacity_water_J_per_kg_per_K +from geophires_x.GeoPHIRESUtils import quantity +from geophires_x.GeoPHIRESUtils import vapor_pressure_water_kPa +from geophires_x.GeoPHIRESUtils import viscosity_water_Pa_sec class TestCelsiusToKelvin(unittest.TestCase): @@ -206,64 +207,85 @@ def test_valid_input_temperature(self): ] for temp, expected_viscosity in temp_expected_viscosities: - self.assertAlmostEqual(ViscosityWater(temp), expected_viscosity, places=6) + with self.subTest(msg=f'temp={temp}C'): + result = viscosity_water_Pa_sec(temp) + self.assertAlmostEqual(expected_viscosity, result, places=6) + + def test_valid_input_temperature_with_pressure(self): + default_pressure = quantity(100, 'MPa') + temp_expected_viscosities = [ + (0, 0.0016605697996519605), + (20, 0.0009931446334997267), + (50, 0.0005700650220542674), + (100, 0.00030771769221054013), + (200, 0.00015651052722636592), + (300, 0.00010960513118375302), + (370, 9.119570911769341e-05), + ] + + for temp, expected_viscosity in temp_expected_viscosities: + with self.subTest(msg=f'temp={temp}C'): + result = viscosity_water_Pa_sec(temp, pressure=default_pressure) + self.assertAlmostEqual(expected_viscosity, result, places=6) def test_negative_input_temperature(self): """The function raises a ValueError if the input temperature is less than 0 degrees Celsius.""" with self.assertRaises(ValueError): - ViscosityWater(-10) + viscosity_water_Pa_sec(-10) def test_high_input_temperature(self): """The function raises a ValueError if the input temperature is greater than 370 degrees Celsius.""" with self.assertRaises(ValueError): - ViscosityWater(400) + viscosity_water_Pa_sec(400) def test_none_input_temperature(self): """The function raises a ValueError if the input temperature is None.""" with self.assertRaises(ValueError): - ViscosityWater(None) + viscosity_water_Pa_sec(None) def test_string_input_temperature(self): """The function raises a ValueError if the input temperature is a string.""" with self.assertRaises(ValueError): - ViscosityWater('water') + viscosity_water_Pa_sec('water') class TestDensityWater(unittest.TestCase): + """TODO add tests with pressure""" + def test_correct_density(self): """Returns the correct density of water for a given temperature.""" input_expected_val_pairs = [ (25, 997.0038346094865), - (25.5, 996.8746788233803), - (50, 988.0087757351533), - (50.5, 987.7821218479756), - (75, 974.8288462197903), - (75.5, 974.5296342180826), - (100, 958.3542772858901), - (100.5, 957.9946917721559), + (25.5, 996.8740021273935), + (50, 987.996210611189), + (50.5, 987.7693810541228), + (75, 974.8149605673345), + (75.5, 974.5158622099481), + (100, 958.3490516048568), + (100.5, 957.9896566787988), ] for pair in input_expected_val_pairs: t_water_deg_c = pair[0] - calc_density = DensityWater(t_water_deg_c) + calc_density = density_water_kg_per_m3(t_water_deg_c) expected_density = pair[1] self.assertAlmostEqual(calc_density, expected_density, places=3) def test_returns_density_in_kg_per_m3(self): """Returns the density in kg/m3.""" - assert isinstance(DensityWater(25), float) - assert isinstance(DensityWater(50), float) - assert isinstance(DensityWater(75), float) - assert isinstance(DensityWater(100), float) + assert isinstance(density_water_kg_per_m3(25), float) + assert isinstance(density_water_kg_per_m3(50), float) + assert isinstance(density_water_kg_per_m3(75), float) + assert isinstance(density_water_kg_per_m3(100), float) def test_small_temperature_values(self): - self.assertAlmostEqual(DensityWater(0.01), 999.7937454059017, places=3) - self.assertAlmostEqual(DensityWater(0.0), 999.793065506329, places=3) - self.assertIsNotNone(DensityWater(sys.float_info.min)) + self.assertAlmostEqual(density_water_kg_per_m3(0.01), 999.7925200315555, places=3) + self.assertAlmostEqual(density_water_kg_per_m3(0.0), 999.7918393845667, places=3) + self.assertIsNotNone(density_water_kg_per_m3(sys.float_info.min)) def test_handles_maximum_temperature_value(self): """Handles the maximum temperature value in T.""" - assert DensityWater(373.946) == 322 + self.assertAlmostEqual(density_water_kg_per_m3(373.946), 322, places=5) def test_raises_value_error_outside_valid_input_range(self): """Handles the minimum and maximum float values for Twater.""" @@ -274,75 +296,81 @@ def test_raises_value_error_outside_valid_input_range(self): for invalid_val in invalid_range_vals: with self.assertRaises(ValueError): - DensityWater(invalid_val) + density_water_kg_per_m3(invalid_val) class TestHeatCapacityWater(unittest.TestCase): + """TODO add tests with pressure""" + def test_valid_input_within_range(self): - result = HeatCapacityWater(100) - assert result == 4216.645118923585 + result = heat_capacity_water_J_per_kg_per_K(100) + self.assertAlmostEqual(4215.673616815784, result, places=3) def test_valid_input_minimum_range(self): - result = HeatCapacityWater(0.01) - assert result == 4219.897711106461 + result = heat_capacity_water_J_per_kg_per_K(0.01) + self.assertAlmostEqual(4219.911516371655, result, places=3) def test_valid_input_maximum_range(self): - result = HeatCapacityWater(370) - assert result == 47095.500723768 + result = heat_capacity_water_J_per_kg_per_K(370) + self.assertAlmostEqual(45155.17556557058, result, places=3) def test_valid_input_midpoint_range(self): - result = HeatCapacityWater(185) - assert result == 4425.471257522954 + result = heat_capacity_water_J_per_kg_per_K(185) + self.assertAlmostEqual(4425.481049192385, result, places=3) def test_valid_input_exact_match(self): - result = HeatCapacityWater(25) - assert result == 4182.179909825829 + result = heat_capacity_water_J_per_kg_per_K(25) + assert result == 4181.599569862515 def test_invalid_input_less_than_minimum(self): with self.assertRaises(ValueError): - HeatCapacityWater(-10) + heat_capacity_water_J_per_kg_per_K(-10) def test_invalid_input_not_number(self): with self.assertRaises(ValueError): - HeatCapacityWater('abc') + heat_capacity_water_J_per_kg_per_K('abc') def test_invalid_input_negative(self): with self.assertRaises(ValueError): - HeatCapacityWater(-50) + heat_capacity_water_J_per_kg_per_K(-50) def test_invalid_input_greater_than_500(self): with self.assertRaises(ValueError): - HeatCapacityWater(501) + heat_capacity_water_J_per_kg_per_K(501) -class TestEntropyh20Func(unittest.TestCase): +class TestEntropyWater(unittest.TestCase): def test_valid_temperature_within_range(self): """Returns the correct entropy value for a valid temperature input within the range of T[0] to T[-1]""" temperature = 50.0 - expected_entropy = 0.7037939046604744 - assert EntropyH20_func(temperature) == expected_entropy + expected_entropy = 0.7038086259330144 + result_entropy = entropy_water_kJ_per_kg_per_K(temperature) + self.assertAlmostEqual(expected_entropy, result_entropy, places=3) def test_minimum_temperature_input(self): """Returns the correct entropy value for the minimum temperature input (T[0])""" temperature = 0.01 - expected_entropy = -6.161029060094028e-08 - assert EntropyH20_func(temperature) == expected_entropy + expected_entropy = -1.4592809254309467e-13 + result_entropy = entropy_water_kJ_per_kg_per_K(temperature) + self.assertAlmostEqual(expected_entropy, result_entropy, places=3) def test_h20_critical_point_temperature_input(self): """Returns the correct entropy value for the maximum temperature input (T[-1])""" temperature = 373.946 - expected_entropy = 4.412021482236347 - assert EntropyH20_func(temperature) == expected_entropy + expected_entropy = 4.406961892363361 + result_entropy = entropy_water_kJ_per_kg_per_K(temperature) + self.assertAlmostEqual(expected_entropy, result_entropy, places=3) def test_temperature_input_25C(self): """Returns the correct entropy value for a temperature input that is an element of T""" temperature = 25.0 - expected_entropy = 0.3672563027910093 - assert EntropyH20_func(temperature) == expected_entropy + expected_entropy = 0.36722496627639006 + result_entropy = entropy_water_kJ_per_kg_per_K(temperature) + self.assertAlmostEqual(expected_entropy, result_entropy, places=3) def test_temperature_input_150C(self): """ @@ -351,22 +379,23 @@ def test_temperature_input_150C(self): """ temperature = 150.0 - expected_entropy = 1.8419520427817053 - assert EntropyH20_func(temperature) == expected_entropy + expected_entropy = 1.8418018983902633 + result_entropy = entropy_water_kJ_per_kg_per_K(temperature) + self.assertAlmostEqual(expected_entropy, result_entropy, places=3) def test_temperature_input_minus10C(self): """Raises a ValueError if the temperature input is less than T[0]""" temperature = -10.0 with self.assertRaises(ValueError): - EntropyH20_func(temperature) + entropy_water_kJ_per_kg_per_K(temperature) def test_temperature_input_greater_than_Tn(self): """Raises a ValueError if the temperature input is greater than T[-1]""" temperature = 400.0 with self.assertRaises(ValueError): - EntropyH20_func(temperature) + entropy_water_kJ_per_kg_per_K(temperature) class TestRecoverableHeat(unittest.TestCase): @@ -402,97 +431,97 @@ def test_non_numeric_value_for_twater(self): class TestVaporPressureWater(unittest.TestCase): def test_below_100_degrees(self): - result = VaporPressureWater(42) - self.assertAlmostEqual(result, 8.209010116448697, places=3) + result = vapor_pressure_water_kPa(42) + self.assertAlmostEqual(result, 8.209563332516748, places=3) def test_above_100_degrees(self): - result = VaporPressureWater(150) - self.assertAlmostEqual(result, 476.10138108149204, places=3) + result = vapor_pressure_water_kPa(150) + self.assertAlmostEqual(result, 476.16453796900316, places=3) def test_100_degrees(self): - result = VaporPressureWater(100) + result = vapor_pressure_water_kPa(100) self.assertAlmostEqual(result, 101.41797792131013, places=3) def test_0_degrees(self): - result = VaporPressureWater(0) + result = vapor_pressure_water_kPa(0) self.assertAlmostEqual(result, 0.6112126774443449, places=3) def test_25_degrees(self): - result = VaporPressureWater(25) + result = vapor_pressure_water_kPa(25) self.assertAlmostEqual(result, 3.1697468549523626, places=3) def test_value_error(self): with self.assertRaises(ValueError): - VaporPressureWater('abc') + vapor_pressure_water_kPa('abc') def test_minimum_temperature(self): with self.assertRaises(ValueError): - VaporPressureWater(-273.15) + vapor_pressure_water_kPa(-273.15) def test_maximum_temperature(self): with self.assertRaises(ValueError): - VaporPressureWater(float('inf')) + vapor_pressure_water_kPa(float('inf')) def test_50_degrees(self): - result = VaporPressureWater(50) - self.assertAlmostEqual(result, 12.351270434023352, places=3) + result = vapor_pressure_water_kPa(50) + self.assertAlmostEqual(result, 12.351945857074021, places=3) def test_75_degrees(self): - result = VaporPressureWater(75) + result = vapor_pressure_water_kPa(75) self.assertAlmostEqual(result, 38.59536268655676, places=3) -class TestEnthalpyh20Func(unittest.TestCase): +class TestEnthalpyWater(unittest.TestCase): def test_valid_temperature(self): temperature = 50.0 - result = EnthalpyH20_func(temperature) - self.assertAlmostEqual(result, 209.3362003948904, places=3) + result = enthalpy_water_kJ_per_kg(temperature) + self.assertAlmostEqual(result, 209.34176132671735, places=3) def test_minimum_temperature(self): temperature = 0.01 - result = EnthalpyH20_func(temperature) + result = enthalpy_water_kJ_per_kg(temperature) self.assertAlmostEqual(result, 0.0006117830490730841, places=5) def test_maximum_temperature(self): temperature = 373.946 - result = EnthalpyH20_func(temperature) - self.assertAlmostEqual(result, 2087.5468451171537, places=3) + result = enthalpy_water_kJ_per_kg(temperature) + self.assertAlmostEqual(result, 2084.256255907945, places=3) def test_same_temperature(self): temperature = 50.0 - enthalpy1 = EnthalpyH20_func(temperature) - enthalpy2 = EnthalpyH20_func(temperature) + enthalpy1 = enthalpy_water_kJ_per_kg(temperature) + enthalpy2 = enthalpy_water_kJ_per_kg(temperature) assert enthalpy1 == enthalpy2 def test_middle_temperature(self): temperature = 15.0 - result = EnthalpyH20_func(temperature) - self.assertAlmostEqual(result, 62.98365208053001, places=3) + result = enthalpy_water_kJ_per_kg(temperature) + self.assertAlmostEqual(result, 62.98145105731618, places=3) def test_non_float_temperature(self): temperature = 'abc123' with self.assertRaises(TypeError): - EnthalpyH20_func(temperature) + enthalpy_water_kJ_per_kg(temperature) def test_below_minimum_temperature(self): temperature = -10.0 with self.assertRaises(ValueError): - EnthalpyH20_func(temperature) + enthalpy_water_kJ_per_kg(temperature) def test_above_maximum_temperature(self): temperature = 400.0 with self.assertRaises(ValueError): - EnthalpyH20_func(temperature) + enthalpy_water_kJ_per_kg(temperature) def test_known_temperature(self): temperature = 100.0 - result = EnthalpyH20_func(temperature) - self.assertAlmostEqual(result, 419.09915499770307, places=3) + result = enthalpy_water_kJ_per_kg(temperature) + self.assertAlmostEqual(result, 419.1661628928869, places=3) def test_close_temperature(self): temperature = 100.001 - result = EnthalpyH20_func(temperature) - self.assertAlmostEqual(result, 419.1033743616401, places=3) + result = enthalpy_water_kJ_per_kg(temperature) + self.assertAlmostEqual(result, 419.1703812859442, places=3) if __name__ == '__main__': diff --git a/tests/test_geophires_x.py b/tests/test_geophires_x.py index f4a844a7..d36a3a4f 100644 --- a/tests/test_geophires_x.py +++ b/tests/test_geophires_x.py @@ -1,4 +1,5 @@ from pathlib import Path +from typing import Optional from geophires_x.OptionList import PlantType from geophires_x_client import GeophiresXClient @@ -192,7 +193,29 @@ def get_output_file_for_example(example_file: str): msg=f'Example test: {example_file_path}', ) else: - raise ae + msg = 'Results are not approximately equal within any percentage <100' + percent_diff = self._get_unequal_dicts_approximate_percent_difference( + expected_result.result, geophires_result.result + ) + + if percent_diff is not None: + msg = ( + f'Results are approximately equal within {percent_diff}%. ' + f'(Run `regenerate-example-result.sh {example_file_path.split(".")[0]}` ' + f'from tests/ if this difference is expected due to calculation updates)' + ) + + raise AssertionError(msg) from ae + + def _get_unequal_dicts_approximate_percent_difference(self, d1: dict, d2: dict) -> Optional[float]: + for i in range(99): + try: + self.assertDictAlmostEqual(d1, d2, percent=i) + return i + except AssertionError: + pass + + return None def test_runtime_error_with_error_code(self): client = GeophiresXClient() @@ -242,14 +265,18 @@ def test_input_unit_conversion(self): result_meters_input = client.get_geophires_result( GeophiresInputParameters( - from_file_path=self._get_test_file_path(Path('cylindrical_reservoir_input_depth_meters.txt')) + from_file_path=self._get_test_file_path( + Path('geophires_x_tests/cylindrical_reservoir_input_depth_meters.txt') + ) ) ) del result_meters_input.result['metadata'] result_kilometers_input = client.get_geophires_result( GeophiresInputParameters( - from_file_path=self._get_test_file_path(Path('cylindrical_reservoir_input_depth_kilometers.txt')) + from_file_path=self._get_test_file_path( + Path('geophires_x_tests/cylindrical_reservoir_input_depth_kilometers.txt') + ) ) ) del result_kilometers_input.result['metadata'] diff --git a/tests/test_geophires_x_client.py b/tests/test_geophires_x_client.py index ec123313..93c099fc 100644 --- a/tests/test_geophires_x_client.py +++ b/tests/test_geophires_x_client.py @@ -188,6 +188,11 @@ def test_ags_clgs_result_generation_profiles(self): self.assertListEqual(result.heat_electricity_extraction_generation_profile[-1], [40, 1.8, 22.7, 0.32, 91.57]) def test_extended_economic_profile(self): + """ + TODO make this less tedious to update when expected result values change + (https://github.com/NREL/GEOPHIRES-X/issues/107) + """ + test_result_path = self._get_test_file_path('examples/example1_addons.out') result = GeophiresXResult(test_result_path) eep = result.result['EXTENDED ECONOMIC PROFILE'] @@ -206,43 +211,49 @@ def test_extended_economic_profile(self): 'Annual Project Cash Flow (MUSD/yr)', 'Cumm. Project Cash Flow (MUSD)', ], - [1, 0.09, 0.0023, 0.012, 0.0, 1.14, -70.0, -70.0, -101.07, -101.07], - [2, 0.09, 0.0023, 0.012, 0.0, 1.14, 1.14, -68.86, 5.71, -95.36], - [3, 0.09, 0.0023, 0.012, 0.0, 1.14, 1.14, -67.72, 5.75, -89.61], - [4, 0.09, 0.0023, 0.012, 0.0, 1.14, 1.14, -66.59, 5.77, -83.84], - [5, 0.09, 0.0023, 0.012, 0.0, 1.14, 1.14, -65.45, 5.77, -78.07], - [6, 0.09, 0.0023, 0.012, 0.0, 1.14, 1.14, -64.31, 5.78, -72.29], - [7, 0.102, 0.0026, 0.012, 0.0, 1.14, 1.14, -63.17, 5.78, -66.51], - [8, 0.114, 0.003, 0.012, 0.0, 1.14, 1.14, -62.03, 6.3, -60.21], - [9, 0.126, 0.0033, 0.022, 0.0, 1.14, 1.14, -60.89, 6.81, -53.4], - [10, 0.138, 0.0036, 0.032, 0.0, 1.14, 1.14, -59.75, 7.33, -46.07], - [11, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -58.61, 7.84, -38.23], - [12, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -57.47, 8.36, -29.87], - [13, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -56.33, 8.36, -21.51], - [14, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -55.19, 8.36, -13.14], - [15, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -54.05, 8.37, -4.78], - [16, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -52.91, 8.37, 3.59], - [17, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -51.77, 8.37, 11.96], - [18, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -50.63, 8.37, 20.33], - [19, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -49.49, 8.37, 28.71], - [20, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -48.35, 8.37, 37.08], - [21, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -47.21, 8.38, 45.46], - [22, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -46.07, 8.38, 53.84], - [23, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -44.93, 8.38, 62.21], - [24, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -43.8, 8.38, 70.59], - [25, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -42.66, 8.38, 78.98], - [26, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -41.52, 8.38, 87.36], - [27, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -40.38, 8.38, 95.74], - [28, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -39.24, 8.38, 104.13], - [29, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -38.1, 8.39, 112.51], - [30, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -36.96, 8.39, 120.9], + [1, 0.09, 0.0023, 0.012, 0.0, 1.14, -70.0, -70.0, -101.06, -101.06], + [2, 0.09, 0.0023, 0.012, 0.0, 1.14, 1.14, -68.86, 5.68, -95.38], + [3, 0.09, 0.0023, 0.012, 0.0, 1.14, 1.14, -67.72, 5.72, -89.65], + [4, 0.09, 0.0023, 0.012, 0.0, 1.14, 1.14, -66.59, 5.74, -83.91], + [5, 0.09, 0.0023, 0.012, 0.0, 1.14, 1.14, -65.45, 5.75, -78.17], + [6, 0.09, 0.0023, 0.012, 0.0, 1.14, 1.14, -64.31, 5.75, -72.42], + [7, 0.102, 0.0026, 0.012, 0.0, 1.14, 1.14, -63.17, 5.76, -66.66], + [8, 0.114, 0.003, 0.012, 0.0, 1.14, 1.14, -62.03, 6.27, -60.39], + [9, 0.126, 0.0033, 0.022, 0.0, 1.14, 1.14, -60.89, 6.78, -53.61], + [10, 0.138, 0.0036, 0.032, 0.0, 1.14, 1.14, -59.75, 7.29, -46.32], + [11, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -58.61, 7.8, -38.52], + [12, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -57.47, 8.31, -30.21], + [13, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -56.33, 8.32, -21.89], + [14, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -55.19, 8.32, -13.57], + [15, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -54.05, 8.32, -5.25], + [16, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -52.91, 8.32, 3.08], + [17, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -51.77, 8.33, 11.4], + [18, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -50.63, 8.33, 19.73], + [19, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -49.49, 8.33, 28.06], + [20, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -48.35, 8.33, 36.39], + [21, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -47.21, 8.33, 44.72], + [22, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -46.07, 8.33, 53.06], + [23, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -44.93, 8.34, 61.39], + [24, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -43.8, 8.34, 69.73], + [25, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -42.66, 8.34, 78.07], + [26, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -41.52, 8.34, 86.41], + [27, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -40.38, 8.34, 94.75], + [28, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -39.24, 8.34, 103.09], + [29, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -38.1, 8.34, 111.43], + [30, 0.15, 0.0039, 0.036, 0.0, 1.14, 1.14, -36.96, 8.34, 119.77], ], eep, ) def test_ccus_profile(self): + """ + TODO make this less tedious to update when expected result values change + (https://github.com/NREL/GEOPHIRES-X/issues/107) + """ + test_result_path = self._get_test_file_path('examples/example1_addons.out') result = GeophiresXResult(test_result_path) + ccus_profile = result.result['CCUS PROFILE'] self.assertListEqual( [ @@ -256,39 +267,39 @@ def test_ccus_profile(self): 'Project Annual Cash Flow (MUSD/yr)', 'Project Cumm. Cash Flow (MUSD)', ], - [1, None, None, None, None, None, -31.07, -31.07], - [2, 34243168.39, 0.015, 0.51, 0.51, 0.51, 5.09, -25.98], - [3, 34603550.499, 0.015, 0.52, 0.52, 1.03, 5.13, -20.85], - [4, 34725533.076, 0.015, 0.52, 0.52, 1.55, 5.15, -15.7], - [5, 34797775.757, 0.015, 0.52, 0.52, 2.08, 5.16, -10.55], - [6, 34848415.605, 0.015, 0.52, 0.52, 2.6, 5.16, -5.38], - [7, 34887048.22, 0.015, 0.52, 0.52, 3.12, 5.17, -0.21], - [8, 34918083.373, 0.025, 0.87, 0.87, 3.99, 6.03, 5.82], - [9, 34943902.716, 0.035, 1.22, 1.22, 5.22, 6.9, 12.71], - [10, 34965933.269, 0.045, 1.57, 1.57, 6.79, 7.76, 20.48], - [11, 34985094.866, 0.055, 1.92, 1.92, 8.72, 8.63, 29.1], - [12, 35002013.597, 0.065, 2.28, 2.28, 10.99, 9.49, 38.6], - [13, 35017134.004, 0.075, 2.63, 2.63, 13.62, 9.85, 48.44], - [14, 35030782.57, 0.085, 2.98, 2.98, 16.59, 10.2, 58.65], - [15, 35043205.792, 0.095, 3.33, 3.33, 19.92, 10.56, 69.2], - [16, 35054594.111, 0.1, 3.51, 3.51, 23.43, 10.73, 79.93], - [17, 35065097.538, 0.1, 3.51, 3.51, 26.94, 10.74, 90.67], - [18, 35074836.181, 0.1, 3.51, 3.51, 30.44, 10.74, 101.41], - [19, 35083907.517, 0.1, 3.51, 3.51, 33.95, 10.74, 112.15], - [20, 35092391.514, 0.1, 3.51, 3.51, 37.46, 10.74, 122.9], - [21, 35100354.281, 0.1, 3.51, 3.51, 40.97, 10.75, 133.64], - [22, 35107850.702, 0.1, 3.51, 3.51, 44.48, 10.75, 144.39], - [23, 35114926.339, 0.1, 3.51, 3.51, 47.99, 10.75, 155.14], - [24, 35121618.815, 0.1, 3.51, 3.51, 51.5, 10.75, 165.89], - [25, 35127958.824, 0.1, 3.51, 3.51, 55.02, 10.75, 176.65], - [26, 35133970.861, 0.1, 3.51, 3.51, 58.53, 10.76, 187.4], - [27, 35139673.772, 0.1, 3.51, 3.51, 62.05, 10.76, 198.16], - [28, 35145081.156, 0.1, 3.51, 3.51, 65.56, 10.76, 208.92], - [29, 35150201.668, 0.1, 3.52, 3.52, 69.07, 10.76, 219.68], - [30, 35155039.259, 0.1, 3.52, 3.52, 72.59, 10.76, 230.44], - [31, 29302896.694, 0.1, 2.93, 2.93, 75.52, 9.11, 239.55], + [1, None, None, None, None, None, -31.06, -31.06], + [2, 33969152.766, 0.015, 0.51, 0.51, 0.51, 5.05, -26.01], + [3, 34341162.882, 0.015, 0.52, 0.52, 1.02, 5.1, -20.91], + [4, 34467117.964, 0.015, 0.52, 0.52, 1.54, 5.12, -15.79], + [5, 34541720.779, 0.015, 0.52, 0.52, 2.06, 5.13, -10.66], + [6, 34594018.221, 0.015, 0.52, 0.52, 2.58, 5.13, -5.53], + [7, 34633917.159, 0.015, 0.52, 0.52, 3.1, 5.14, -0.39], + [8, 34665970.699, 0.025, 0.87, 0.87, 3.96, 6.0, 5.6], + [9, 34692638.021, 0.035, 1.21, 1.21, 5.18, 6.85, 12.46], + [10, 34715392.651, 0.045, 1.56, 1.56, 6.74, 7.71, 20.17], + [11, 34735184.429, 0.055, 1.91, 1.91, 8.65, 8.57, 28.75], + [12, 34752659.886, 0.065, 2.26, 2.26, 10.91, 9.43, 38.18], + [13, 34768278.088, 0.075, 2.61, 2.61, 13.52, 9.78, 47.96], + [14, 34782376.191, 0.085, 2.96, 2.96, 16.47, 10.14, 58.1], + [15, 34795208.759, 0.095, 3.31, 3.31, 19.78, 10.49, 68.59], + [16, 34806972.481, 0.1, 3.48, 3.48, 23.26, 10.66, 79.25], + [17, 34817822.318, 0.1, 3.48, 3.48, 26.74, 10.67, 89.92], + [18, 34827882.405, 0.1, 3.48, 3.48, 30.23, 10.67, 100.59], + [19, 34837253.604, 0.1, 3.48, 3.48, 33.71, 10.67, 111.26], + [20, 34846018.858, 0.1, 3.48, 3.48, 37.19, 10.68, 121.94], + [21, 34854247.043, 0.1, 3.49, 3.49, 40.68, 10.68, 132.62], + [22, 34861995.782, 0.1, 3.49, 3.49, 44.17, 10.68, 143.3], + [23, 34869313.518, 0.1, 3.49, 3.49, 47.65, 10.68, 153.98], + [24, 34876241.046, 0.1, 3.49, 3.49, 51.14, 10.68, 164.66], + [25, 34882812.647, 0.1, 3.49, 3.49, 54.63, 10.69, 175.35], + [26, 34889056.938, 0.1, 3.49, 3.49, 58.12, 10.69, 186.04], + [27, 34894997.5, 0.1, 3.49, 3.49, 61.61, 10.69, 196.73], + [28, 34900653.351, 0.1, 3.49, 3.49, 65.1, 10.69, 207.42], + [29, 34906039.293, 0.1, 3.49, 3.49, 68.59, 10.69, 218.11], + [30, 34911166.179, 0.1, 3.49, 3.49, 72.08, 10.69, 228.81], + [31, 29099912.619, 0.1, 2.91, 2.91, 74.99, 9.05, 237.86], ], - result.result['CCUS PROFILE'], + ccus_profile, ) def test_input_hashing(self): @@ -343,6 +354,11 @@ def test_input_with_non_default_units(self): self.assertDictEqual(result_default_units, result_non_default_units) def test_csv(self): + """ + TODO make this less tedious to update when expected result values change + (https://github.com/NREL/GEOPHIRES-X/issues/107) + """ + def assert_csv_equal(case_report_file_path, expected_csv_file_path): test_result_path = self._get_test_file_path(case_report_file_path) result = GeophiresXResult(test_result_path)