Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
b782719
Address https://github.com/NREL/GEOPHIRES-X/issues/141?title=Derive+C…
softwareengineerprogrammer Feb 27, 2025
03fe26c
Bump version: 3.7.16 → 3.7.17
softwareengineerprogrammer Feb 27, 2025
c554171
Remove 'Do CCUS Calculations' from SUTRAEconomics - has no effect as …
softwareengineerprogrammer Feb 28, 2025
822739e
Remove EconomicsCCUS and OutputsCCUS which have been unused since ref…
softwareengineerprogrammer Feb 28, 2025
2d6b1fb
Add-ons parameters tooltip text including pattern for specifying mult…
softwareengineerprogrammer Feb 28, 2025
8789be8
Organize example1_addons input params sections
softwareengineerprogrammer Feb 28, 2025
45cb184
Address FIXME re: example1_addons incorrect parameter names in input …
softwareengineerprogrammer Feb 28, 2025
dcd2ff6
Bump version: 3.7.17 → 3.7.18
softwareengineerprogrammer Feb 28, 2025
1048fe1
Use consistent title styling: 'Add-Ons'
softwareengineerprogrammer Feb 28, 2025
657a8af
Update tooltips to mention option to specify multiple add-ons with ar…
softwareengineerprogrammer Feb 28, 2025
10a26fa
WIP - prepare to change 'CCUS PROFILE' to 'CARBON REVENUE PROFILE'
softwareengineerprogrammer Feb 28, 2025
c64523f
Change 'CCUS PROFILE' to 'CARBON REVENUE PROFILE'
softwareengineerprogrammer Feb 28, 2025
a710ba6
Bump version: 3.7.18 → 3.7.19
softwareengineerprogrammer Feb 28, 2025
abb867a
more example1_addons.txt parameter categories organization
softwareengineerprogrammer Feb 28, 2025
34f73b8
Fix revenue profile carbon price units - it was incorrectly designate…
softwareengineerprogrammer Feb 28, 2025
a512b03
Bump version: 3.7.19 → 3.7.20
softwareengineerprogrammer Feb 28, 2025
6a42b25
type annotation
softwareengineerprogrammer Feb 28, 2025
f0cb15e
S-DAC Economics: throw runtime error if range check fails instead of …
softwareengineerprogrammer Feb 28, 2025
164f49a
Fix issue with revenue profile electricity annual revenue being erron…
softwareengineerprogrammer Mar 4, 2025
ff392e7
Bump version: 3.7.20 → 3.7.21
softwareengineerprogrammer Mar 4, 2025
d3920bc
Merge pull request #49 from softwareengineerprogrammer/electricity-re…
softwareengineerprogrammer Mar 5, 2025
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.16
current_version = 3.7.21
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.16
version: 3.7.21
version_manager: "bump2version"
website: "https://github.com/NREL"
year_from: "2023"
Expand Down
6 changes: 3 additions & 3 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.16.svg
.. |commits-since| image:: https://img.shields.io/github/commits-since/softwareengineerprogrammer/GEOPHIRES-X/v3.7.21.svg
:alt: Commits since latest release
:target: https://github.com/softwareengineerprogrammer/GEOPHIRES-X/compare/v3.7.16...main
:target: https://github.com/softwareengineerprogrammer/GEOPHIRES-X/compare/v3.7.21...main

.. |docs| image:: https://readthedocs.org/projects/GEOPHIRES-X/badge/?style=flat
:target: https://nrel.github.io/GEOPHIRES-X
Expand Down Expand Up @@ -334,7 +334,7 @@ Example-specific web interface deeplinks are listed in the Link column.
- `example1.txt <tests/examples/example1.txt>`__
- `.out <tests/examples/example1.out>`__
- `link <https://gtp.scientificwebservices.com/geophires?geophires-example-id=example1>`__
* - Example 1 with Addons
* - Example 1 with Add-Ons
- `example1_addons.txt <tests/examples/example1_addons.txt>`__
- `.out <tests/examples/example1_addons.out>`__
- `link <https://gtp.scientificwebservices.com/geophires?geophires-example-id=example1_addons>`__
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.16'
version = release = '3.7.21'

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.16',
version='3.7.21',
license='MIT',
description='GEOPHIRES is a free and open-source geothermal techno-economic simulator.',
long_description='{}\n{}'.format(
Expand Down
10 changes: 5 additions & 5 deletions src/geophires_x/Economics.py
Original file line number Diff line number Diff line change
Expand Up @@ -1523,8 +1523,8 @@ def __init__(self, model: Model):
self.CarbonPrice = self.OutputParameterDict[self.CarbonPrice.Name] = OutputParameter(
"Carbon Price Model",
UnitType=Units.COSTPERMASS,
PreferredUnits=CostPerMassUnit.DOLLARSPERTONNE,
CurrentUnits=CostPerMassUnit.DOLLARSPERTONNE
PreferredUnits=CostPerMassUnit.DOLLARSPERLB,
CurrentUnits=CostPerMassUnit.DOLLARSPERLB
)

self.LCOC = self.OutputParameterDict[self.LCOC.Name] = OutputParameter(
Expand Down Expand Up @@ -2804,19 +2804,19 @@ def Calculate(self, model: Model) -> None:
self.ElecRevenue.value, self.ElecCummRevenue.value = CalculateRevenue(
model.surfaceplant.plant_lifetime.value, model.surfaceplant.construction_years.value,
model.surfaceplant.NetkWhProduced.value, self.ElecPrice.value)
self.TotalRevenue.value = self.ElecRevenue.value
self.TotalRevenue.value = self.ElecRevenue.value.copy()
#self.TotalCummRevenue.value = self.ElecCummRevenue.value
elif model.surfaceplant.enduse_option.value == EndUseOptions.HEAT and model.surfaceplant.plant_type.value not in [PlantType.ABSORPTION_CHILLER]:
self.HeatRevenue.value, self.HeatCummRevenue.value = CalculateRevenue(
model.surfaceplant.plant_lifetime.value, model.surfaceplant.construction_years.value,
model.surfaceplant.HeatkWhProduced.value, self.HeatPrice.value)
self.TotalRevenue.value = self.HeatRevenue.value
self.TotalRevenue.value = self.HeatRevenue.value.copy()
#self.TotalCummRevenue.value = self.HeatCummRevenue.value
elif model.surfaceplant.enduse_option.value == EndUseOptions.HEAT and model.surfaceplant.plant_type.value in [PlantType.ABSORPTION_CHILLER]:
self.CoolingRevenue.value, self.CoolingCummRevenue.value = CalculateRevenue(
model.surfaceplant.plant_lifetime.value, model.surfaceplant.construction_years.value,
model.surfaceplant.cooling_kWh_Produced.value, self.CoolingPrice.value)
self.TotalRevenue.value = self.CoolingRevenue.value
self.TotalRevenue.value = self.CoolingRevenue.value.copy()
#self.TotalCummRevenue.value = self.CoolingCummRevenue.value
elif model.surfaceplant.enduse_option.value in [EndUseOptions.COGENERATION_TOPPING_EXTRA_HEAT,
EndUseOptions.COGENERATION_TOPPING_EXTRA_ELECTRICITY,
Expand Down
27 changes: 19 additions & 8 deletions src/geophires_x/EconomicsAddOns.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,51 +46,62 @@ def __init__(self, model: Model):
self.MyClass = sclass.replace("\'>", "")
self.MyPath = os.path.abspath(__file__)

def multi_addon_tooltip_text(param_name: str) -> str:
return (f'If using multiple add-ons: either (1) specify this value as an array or '
f'(2) use multiple parameters suffixed with a number '
f'e.g. \'{param_name} 1\', \'{param_name} 2\', etc.')

self.AddOnNickname = self.ParameterDict[self.AddOnNickname.Name] = listParameter(
"AddOn Nickname",
UnitType=Units.NONE,
Min=0.0,
Max=1000.0
Max=1000.0,
ToolTipText=multi_addon_tooltip_text("AddOn Nickname")
)
self.AddOnCAPEX = self.ParameterDict[self.AddOnCAPEX.Name] = listParameter(
"AddOn CAPEX",
Min=0.0,
Max=1000.0,
UnitType=Units.CURRENCY,
PreferredUnits=CurrencyUnit.MDOLLARS,
CurrentUnits=CurrencyUnit.MDOLLARS
CurrentUnits=CurrencyUnit.MDOLLARS,
ToolTipText=multi_addon_tooltip_text("AddOn CAPEX")
)
self.AddOnOPEXPerYear = self.ParameterDict[self.AddOnOPEXPerYear.Name] = listParameter(
"AddOn OPEX",
Min=0.0,
Max=1000.0,
UnitType=Units.CURRENCYFREQUENCY,
PreferredUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR,
CurrentUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR
CurrentUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR,
ToolTipText=f'Annual operating cost. {multi_addon_tooltip_text("AddOn OPEX")}'
)
self.AddOnElecGainedPerYear = self.ParameterDict[self.AddOnElecGainedPerYear.Name] = listParameter(
"AddOn Electricity Gained",
Min=0.0,
Max=1000.0,
UnitType=Units.ENERGYFREQUENCY,
PreferredUnits=EnergyFrequencyUnit.KWPERYEAR,
CurrentUnits=EnergyFrequencyUnit.KWPERYEAR
CurrentUnits=EnergyFrequencyUnit.KWPERYEAR,
ToolTipText=f'Annual electricity gained. {multi_addon_tooltip_text("AddOn Electricity Gained")}'
)
self.AddOnHeatGainedPerYear = self.ParameterDict[self.AddOnHeatGainedPerYear.Name] = listParameter(
"AddOn Heat Gained",
Min=0.0,
Max=1000.0,
UnitType=Units.ENERGYFREQUENCY,
PreferredUnits=EnergyFrequencyUnit.KWPERYEAR,
CurrentUnits=EnergyFrequencyUnit.KWPERYEAR
CurrentUnits=EnergyFrequencyUnit.KWPERYEAR,
ToolTipText=f'Annual heat gained. {multi_addon_tooltip_text("AddOn Heat Gained")}'
)
self.AddOnProfitGainedPerYear = self.ParameterDict[self.AddOnProfitGainedPerYear.Name] = listParameter(
"AddOn Profit Gained",
Min=0.0,
Max=1000.0,
UnitType=Units.CURRENCYFREQUENCY,
PreferredUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR,
CurrentUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR
CurrentUnits=CurrencyFrequencyUnit.MDOLLARSPERYEAR,
ToolTipText=f'Annual profit gained. {multi_addon_tooltip_text("AddOn Profit Gained")}'
)

# local variables that need initialization
Expand All @@ -99,7 +110,7 @@ def __init__(self, model: Model):
"AddOn CAPEX Total",
UnitType=Units.CURRENCY,
PreferredUnits=CurrencyUnit.MDOLLARS,
CurrentUnits=CurrencyUnit.MDOLLARS
CurrentUnits=CurrencyUnit.MDOLLARS,
)
self.AddOnOPEXTotalPerYear = self.OutputParameterDict[self.AddOnOPEXTotalPerYear.Name] = OutputParameter(
"AddOn OPEX Total Per Year",
Expand Down Expand Up @@ -242,7 +253,7 @@ def read_parameters(self, model: Model) -> None:
if key.startswith("AddOn Profit Gained"):
val = float(model.InputParameters[key].sValue)
self.AddOnProfitGainedPerYear.value.append(val) # this assumes they put the values in the file in consecutive fashion
model.logger.info("complete " + str(__class__) + ": " + sys._getframe().f_code.co_name)
model.logger.info(f"complete {__class__!s}: {sys._getframe().f_code.co_name}")

def Calculate(self, model: Model) -> None:
"""
Expand Down
Loading