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
55 changes: 30 additions & 25 deletions docs/Fervo_Project_Cape-4.md.jinja

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,055 changes: 515 additions & 540 deletions docs/_images/fervo_project_cape-4-sensitivity-analysis-irr.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/fervo_project_cape-4-sensitivity-analysis-lcoe.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
679 changes: 364 additions & 315 deletions docs/_images/fervo_project_cape-4-sensitivity-analysis-lcoe.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,042 changes: 518 additions & 524 deletions docs/_images/fervo_project_cape-4-sensitivity-analysis-project_npv.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions docs/generate_fervo_project_cape_4_md.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,9 +195,9 @@ def main():

print(f'✓ Generated {output_file}')
print('\nKey results:')
print(f"\tLCOE: {template_values['lcoe_usd_per_mwh']}")
print(f"\tIRR: {template_values['irr_pct']}")
# print(f" Total CAPEX: {result_values['capex']}") # TODO
print(f"\tLCOE: ${template_values['lcoe_usd_per_mwh']}/MWh")
print(f"\tIRR: {template_values['irr_pct']}%")
print(f"\tTotal CAPEX: ${template_values['total_capex_gusd']}B")


if __name__ == '__main__':
Expand Down
380 changes: 190 additions & 190 deletions tests/examples/Fervo_Project_Cape-4.out

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions tests/examples/Fervo_Project_Cape-4.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Plant Lifetime, 30, -- Per https://fervoenergy.com/geothermal-mythbusting-water-
Reservoir Model, 1, -- Multiple Parallel Fractures (Gringarten)
Reservoir Depth, 2.5908, -- 8500 feet per https://pangea.stanford.edu/ERE/db/GeoConf/papers/SGW/2024/Fercho.pdf

Gradient 1, 74, -- temperature at 8500 ft: 200 degC (https://pangea.stanford.edu/ERE/db/GeoConf/papers/SGW/2024/Fercho.pdf); 228.89 degC @ 9824 ft (https://doi.org/10.31223/X5VH8C)
Gradient 1, 72.23, -- temperature at 8500 ft: 200 degC (https://pangea.stanford.edu/ERE/db/GeoConf/papers/SGW/2024/Fercho.pdf); 228.89 degC @ 9824 ft (https://doi.org/10.31223/X5VH8C)
Number of Segments, 1

Reservoir Density, 2800, -- per https://doi.org/10.31223/X52X0B: phyllite + quartzite + diorite + granodiorite
Expand All @@ -59,7 +59,7 @@ Number of Fractures per Stimulated Well, 200, -- 25 stages with 8 clusters per s
Fracture Separation, 7.315
Fracture Shape, 2, -- CIRCULAR_DIAMETER
Fracture Height, 186.16, -- Approximates ellipsoidal fracture with 228 meter height and 152 meter width
Number of Doublets, 50
Number of Doublets, 52

Production Flow Rate per Well, 120, -- Maximum Fervo-tested flow rate
Production Well Diameter, 8.535, -- Inner diameter for 9-5/8" casing size
Expand All @@ -69,8 +69,8 @@ Ramey Production Wellbore Model, 1
Injection Temperature, 53.6, -- GEOPHIRES model-calculated reinjection temperature
Injection Wellbore Temperature Gain, 3

Ambient Temperature, 10, -- degC
Surface Temperature, 10, -- degC
Ambient Temperature, 11.17, -- https://www.ncei.noaa.gov/access/us-climate-normals/#dataset=normals-annualseasonal&timeframe=30&station=USC00425654
Surface Temperature, 13, -- Project InnerSpace GeoMap https://geomap.projectinnerspace.org/test/

Maximum Drawdown, 0.02, -- Drawdown value that prevents minimum net electricity generation from going below 500 MWe
Water Loss Fraction, 0.15, -- Estimated to be between 10 and 20%
Expand Down
526 changes: 263 additions & 263 deletions tests/examples/Fervo_Project_Cape-5.out

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions tests/examples/Fervo_Project_Cape-5.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Combined Income Tax Rate, .2555, -- Federal Corporate Income Tax Rate of 21% plu
Property Tax Rate, 0.0022, -- Utah Inland Port Authority (UIPA) tax differential incentive

Capital Cost for Power Plant for Electricity Generation, 1900, -- https://betterbuildingssolutioncenter.energy.gov/sites/default/files/attachments/Waste_Heat_to_Power_Fact_Sheet.pdf
Exploration Capital Cost, 30, -- Estimate significantly higher exploration costs than default correlation in consideration of potential risks associated with second/third/fourth-of-a-kind EGS projects
Exploration Capital Cost, 30, -- Equivalent to 2024b ATB NF-EGS conservative scenario exploration assumption of 5 full-size wells (NREL, 2025), plus $1M for geophysical and field work, plus 15% contingency, plus 12% indirect costs.

Well Drilling Cost Correlation, 3, -- VERTICAL_LARGE (2025 NREL Geothermal Drilling Cost Curve Update)
Well Drilling and Completion Capital Cost Adjustment Factor, 0.9, -- NREL Geothermal 2024b ATB https://atb.nrel.gov/electricity/2024b/geothermal
Expand All @@ -43,7 +43,7 @@ Plant Lifetime, 30, -- Per https://fervoenergy.com/geothermal-mythbusting-water-
Reservoir Model, 1, -- Multiple Parallel Fractures (Gringarten)
Reservoir Depth, 2.5908, -- 8500 feet per https://pangea.stanford.edu/ERE/db/GeoConf/papers/SGW/2024/Fercho.pdf

Gradient 1, 74, -- temperature at 8500 ft: 200 degC (https://pangea.stanford.edu/ERE/db/GeoConf/papers/SGW/2024/Fercho.pdf); 228.89 degC @ 9824 ft (https://doi.org/10.31223/X5VH8C)
Gradient 1, 72.23, -- temperature at 8500 ft: 200 degC (https://pangea.stanford.edu/ERE/db/GeoConf/papers/SGW/2024/Fercho.pdf); 228.89 degC @ 9824 ft (https://doi.org/10.31223/X5VH8C)
Number of Segments, 1

Reservoir Density, 2800, -- per https://doi.org/10.31223/X52X0B: phyllite + quartzite + diorite + granodiorite
Expand All @@ -59,7 +59,7 @@ Number of Fractures per Stimulated Well, 200, -- 25 stages with 8 clusters per s
Fracture Separation, 7.315
Fracture Shape, 2, -- CIRCULAR_DIAMETER
Fracture Height, 186.16, -- Approximates ellipsoidal fracture with 228 meter height and 152 meter width
Number of Doublets, 10
Number of Doublets, 11

Production Flow Rate per Well, 120, -- Maximum Fervo-tested flow rate
Production Well Diameter, 8.535, -- Inner diameter for 9-5/8" casing size
Expand All @@ -69,8 +69,8 @@ Ramey Production Wellbore Model, 1
Injection Temperature, 53.6, -- GEOPHIRES model-calculated reinjection temperature
Injection Wellbore Temperature Gain, 3

Ambient Temperature, 10, -- degC
Surface Temperature, 10, -- degC
Ambient Temperature, 11.17, -- https://www.ncei.noaa.gov/access/us-climate-normals/#dataset=normals-annualseasonal&timeframe=30&station=USC00425654
Surface Temperature, 13, -- Project InnerSpace GeoMap https://geomap.projectinnerspace.org/test/

Maximum Drawdown, 0.02, -- Drawdown value that prevents minimum net electricity generation from going below 100 MWe
Water Loss Fraction, 0.15, -- Estimated to be between 10 and 20%
Expand Down
16 changes: 16 additions & 0 deletions tests/geophires_x_tests/test_fervo_project_cape_4.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from typing import Any

from base_test_case import BaseTestCase
from geophires_x.GeoPHIRESUtils import quantity
from geophires_x.GeoPHIRESUtils import sig_figs
from geophires_x.Parameter import HasQuantity
from geophires_x_client import GeophiresInputParameters
Expand Down Expand Up @@ -355,3 +356,18 @@ def _parse_value_unit(self, raw_string: str) -> dict:

# Fallback for text-only values
return {'value': clean_str, 'unit': 'text'}

def test_fervo_project_cape_5(self) -> None:
"""
Fervo_Project_Cape-5 is derived from Fervo_Project_Cape-4 - see tests/regenerate-example-result.sh
"""

fpc5_result: GeophiresXResult = GeophiresXResult(
self._get_test_file_path('../examples/Fervo_Project_Cape-5.out')
)
min_net_gen_dict = fpc5_result.result['SURFACE EQUIPMENT SIMULATION RESULTS'][
'Minimum Net Electricity Generation'
]
fpc5_min_net_gen_mwe = quantity(min_net_gen_dict['value'], min_net_gen_dict['unit']).to('MW').magnitude
self.assertGreater(fpc5_min_net_gen_mwe, 100)
self.assertLess(fpc5_min_net_gen_mwe, 110)
3 changes: 2 additions & 1 deletion tests/regenerate-example-result.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ then
python ../docs/generate_fervo_project_cape_4_md.py

echo "Regenerating Fervo_Project_Cape-5..."
# TODO synchronize replacement matching with Fervo_Project_Cape-4 values
sed -e 's/Construction Years, 5/Construction Years, 3/' \
-e 's/Number of Doublets, 50/Number of Doublets, 10/' \
-e 's/Number of Doublets, 52/Number of Doublets, 11/' \
-e 's/500 MWe/100 MWe/' \
-e 's/Phase II/Phase I/' \
examples/Fervo_Project_Cape-4.txt > examples/Fervo_Project_Cape-5.txt
Expand Down