Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 3.7.23
current_version = 3.8.0
commit = True
tag = True

Expand Down
2 changes: 1 addition & 1 deletion .cookiecutterrc
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ default_context:
sphinx_doctest: "no"
sphinx_theme: "sphinx-py3doc-enhanced-theme"
test_matrix_separate_coverage: "no"
version: 3.7.23
version: 3.8.0
version_manager: "bump2version"
website: "https://github.com/NREL"
year_from: "2023"
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ Changelog
GEOPHIRES-X (2023-2025)
------------------------

3.8
^^^

`release <https://github.com/NREL/GEOPHIRES-X/releases/tag/v3.8.0>`__ | `diff <https://github.com/NREL/GEOPHIRES-X/compare/v3.7.0...v3.8.0>`__

Revenue & Cashflow Profile period output aligned with NREL convention used to calculate NPV.
See https://github.com/NREL/GEOPHIRES-X/discussions/344

3.7
^^^

Expand Down
4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ Free software: `MIT license <LICENSE>`__
:alt: Supported implementations
:target: https://pypi.org/project/geophires-x

.. |commits-since| image:: https://img.shields.io/github/commits-since/softwareengineerprogrammer/GEOPHIRES-X/v3.7.23.svg
.. |commits-since| image:: https://img.shields.io/github/commits-since/softwareengineerprogrammer/GEOPHIRES-X/v3.8.0.svg
:alt: Commits since latest release
:target: https://github.com/softwareengineerprogrammer/GEOPHIRES-X/compare/v3.7.23...main
:target: https://github.com/softwareengineerprogrammer/GEOPHIRES-X/compare/v3.8.0...main

.. |docs| image:: https://readthedocs.org/projects/GEOPHIRES-X/badge/?style=flat
:target: https://nrel.github.io/GEOPHIRES-X
Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
year = '2025'
author = 'NREL'
copyright = f'{year}, {author}'
version = release = '3.7.23'
version = release = '3.8.0'

pygments_style = 'trac'
templates_path = ['./templates']
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def read(*names, **kwargs):

setup(
name='geophires-x',
version='3.7.23',
version='3.8.0',
license='MIT',
description='GEOPHIRES is a free and open-source geothermal techno-economic simulator.',
long_description='{}\n{}'.format(
Expand Down
7 changes: 6 additions & 1 deletion src/geophires_x/Economics.py
Original file line number Diff line number Diff line change
Expand Up @@ -1755,7 +1755,12 @@ def __init__(self, model: Model):
"Project Net Present Value",
UnitType=Units.CURRENCY,
PreferredUnits=CurrencyUnit.MDOLLARS,
CurrentUnits=CurrencyUnit.MDOLLARS
CurrentUnits=CurrencyUnit.MDOLLARS,
ToolTipText='NPV is calculated with cashflows lumped at the end of periods. '
'See: Short W et al, 1995. '
'"A Manual for the Economic Evaluation of Energy Efficiency and Renewable Energy '
'Technologies.", p. 41. '
'https://www.nrel.gov/docs/legosti/old/5173.pdf'
)
self.ProjectIRR = self.OutputParameterDict[self.ProjectIRR.Name] = OutputParameter(
"Project Internal Rate of Return",
Expand Down
4 changes: 2 additions & 2 deletions src/geophires_x/Outputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -2100,13 +2100,13 @@ def o(output_param: OutputParameter):
'________________________________________________________________________________________________________________________________________________________________________________________' + NL)
# running years...
for ii in range(0, (
model.surfaceplant.construction_years.value + model.surfaceplant.plant_lifetime.value - 1), 1):
model.surfaceplant.construction_years.value + model.surfaceplant.plant_lifetime.value), 1):
if ii < model.surfaceplant.construction_years.value:
opex = 0.0 # zero out the OPEX during construction years
else:
opex = o(econ.Coam).value
f.write(
f'{ii + 1:3.0f} {o(econ.ElecPrice).value[ii]:5.2f} {o(econ.ElecRevenue).value[ii]:5.2f} {o(econ.ElecCummRevenue).value[ii]:5.2f} | {o(econ.HeatPrice).value[ii]:5.2f} {o(econ.HeatRevenue).value[ii]:5.2f} {o(econ.HeatCummRevenue).value[ii]:5.2f} | {o(econ.CoolingPrice).value[ii]:5.2f} {o(econ.CoolingRevenue).value[ii]:5.2f} {o(econ.CoolingCummRevenue).value[ii]:5.2f} | {o(econ.CarbonPrice).value[ii]:5.2f} {o(econ.CarbonRevenue).value[ii]:5.2f} {o(econ.CarbonCummCashFlow).value[ii]:5.2f} | {opex:5.2f} {o(econ.TotalRevenue).value[ii]:5.2f} {o(econ.TotalCummRevenue).value[ii]:5.2f}\n')
f'{ii:3.0f} {o(econ.ElecPrice).value[ii]:5.2f} {o(econ.ElecRevenue).value[ii]:5.2f} {o(econ.ElecCummRevenue).value[ii]:5.2f} | {o(econ.HeatPrice).value[ii]:5.2f} {o(econ.HeatRevenue).value[ii]:5.2f} {o(econ.HeatCummRevenue).value[ii]:5.2f} | {o(econ.CoolingPrice).value[ii]:5.2f} {o(econ.CoolingRevenue).value[ii]:5.2f} {o(econ.CoolingCummRevenue).value[ii]:5.2f} | {o(econ.CarbonPrice).value[ii]:5.2f} {o(econ.CarbonRevenue).value[ii]:5.2f} {o(econ.CarbonCummCashFlow).value[ii]:5.2f} | {opex:5.2f} {o(econ.TotalRevenue).value[ii]:5.2f} {o(econ.TotalCummRevenue).value[ii]:5.2f}\n')
f.write(NL)

# if we are dealing with overpressure and two different reservoirs, show a table reporting the values
Expand Down
5 changes: 4 additions & 1 deletion src/geophires_x/SurfacePlant.py
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,10 @@ def __init__(self, model: Model):
AllowableRange=list(range(1, 15, 1)),
UnitType=Units.NONE,
ErrMessage="assume default number of years in construction (1)",
ToolTipText="Number of years spent in construction (assumes whole years, no fractions)"
ToolTipText='Number of years spent in construction (assumes whole years, no fractions). '
'Capital costs are spread evenly over constructions years e.g. if total capital costs are '
'$500M and there are 2 construction years, '
'then $250M will be spent in both the first and second construction years.'
)
self.cp_fluid = self.ParameterDict[self.cp_fluid.Name] = floatParameter(
"Working Fluid Heat Capacity",
Expand Down
2 changes: 1 addition & 1 deletion src/geophires_x/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '3.7.23'
__version__ = '3.8.0'
2 changes: 1 addition & 1 deletion src/geophires_x_schema_generator/geophires-request.json
Original file line number Diff line number Diff line change
Expand Up @@ -1244,7 +1244,7 @@
"maximum": 1.0
},
"Construction Years": {
"description": "Number of years spent in construction (assumes whole years, no fractions)",
"description": "Number of years spent in construction (assumes whole years, no fractions). Capital costs are spread evenly over constructions years e.g. if total capital costs are $500M and there are 2 construction years, then $250M will be spent in both the first and second construction years.",
"type": "integer",
"units": null,
"category": "Surface Plant",
Expand Down
Loading
Loading