Skip to content

Commit 8dfb3b5

Browse files
Merge pull request #147 from softwareengineerprogrammer/project-red-2026-update_2026-04-23
Project Red 2026 Update: Effective Number of Fractures Sensitivity [v3.13.4]
2 parents 9dcb312 + 71ff767 commit 8dfb3b5

18 files changed

Lines changed: 422 additions & 138 deletions

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 3.13.3
2+
current_version = 3.13.4
33
commit = True
44
tag = True
55

.cookiecutterrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ default_context:
5454
sphinx_doctest: "no"
5555
sphinx_theme: "sphinx-py3doc-enhanced-theme"
5656
test_matrix_separate_coverage: "no"
57-
version: 3.13.3
57+
version: 3.13.4
5858
version_manager: "bump2version"
5959
website: "https://github.com/NREL"
6060
year_from: "2023"

CHANGELOG.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ GEOPHIRES v3 (2023-2026)
88
3.13
99
^^^^
1010

11-
3.13: `SAM-EM: Support all End-Use Options (Direct-Use Heat and CHP/Cogeneration) and Absorption Chiller Surface Application <https://github.com/NatLabRockies/GEOPHIRES-X/pull/478>`__; `documentation <https://softwareengineerprogrammer.github.io/GEOPHIRES/SAM-EM_End-Uses-and-Surface-Applications.html>`__ | `Project Red 2026 Update <https://github.com/softwareengineerprogrammer/GEOPHIRES/pull/145>`__; `documentation <https://softwareengineerprogrammer.github.io/GEOPHIRES/Fervo_Project_Red.html>`__ | `release <https://github.com/NREL/GEOPHIRES-X/releases/tag/v3.13.3>`__
11+
3.13: `SAM-EM: Support all End-Use Options (Direct-Use Heat and CHP/Cogeneration) and Absorption Chiller Surface Application <https://github.com/NatLabRockies/GEOPHIRES-X/pull/478>`__; `documentation <https://softwareengineerprogrammer.github.io/GEOPHIRES/SAM-EM_End-Uses-and-Surface-Applications.html>`__ | `Project Red 2026 Update <https://github.com/softwareengineerprogrammer/GEOPHIRES/pull/145>`__; `documentation <https://softwareengineerprogrammer.github.io/GEOPHIRES/Fervo_Project_Red.html>`__ | `release <https://github.com/NREL/GEOPHIRES-X/releases/tag/v3.13.4>`__
1212

1313
3.12
1414
^^^^

README.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ Free software: `MIT license <LICENSE>`__
5858
:alt: Supported implementations
5959
:target: https://pypi.org/project/geophires-x
6060

61-
.. |commits-since| image:: https://img.shields.io/github/commits-since/softwareengineerprogrammer/GEOPHIRES-X/v3.13.3.svg
61+
.. |commits-since| image:: https://img.shields.io/github/commits-since/softwareengineerprogrammer/GEOPHIRES-X/v3.13.4.svg
6262
:alt: Commits since latest release
63-
:target: https://github.com/softwareengineerprogrammer/GEOPHIRES-X/compare/v3.13.3...main
63+
:target: https://github.com/softwareengineerprogrammer/GEOPHIRES-X/compare/v3.13.4...main
6464

6565
.. |docs| image:: https://readthedocs.org/projects/GEOPHIRES-X/badge/?style=flat
6666
:target: https://softwareengineerprogrammer.github.io/GEOPHIRES

docs/Fervo_Project_Red.md.jinja

Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,17 @@ geometry for the Project Red simulation are detailed below:
124124
| :--- | :--- | :--- |
125125
| Number of Fractures | `{{ input_params['Number of Fractures'] }}` | {{ input_params_comments['Number of Fractures'] }} |
126126
| Fracture Shape | `{{ input_params['Fracture Shape'] }}` | {{ input_params_comments['Fracture Shape'] }} |
127-
| Fracture Height | `{{ input_params['Fracture Height'] }}` | {{ input_params_comments['Fracture Height'] }} |
128-
| Fracture Width | `{{ input_params['Fracture Width'] }}` | {{ input_params_comments['Fracture Width'] }} |
129-
| Fracture Separation | `{{ input_params['Fracture Separation'] }} meter` | {{ input_params_comments['Fracture Separation'] }} |
127+
| Fracture Height | `{{ input_params['Fracture Height'] | replace("foot", "feet") }}` | {{ input_params_comments['Fracture Height'] }} |
128+
| Fracture Width | `{{ input_params['Fracture Width'] | replace("foot", "feet") }}` | {{ input_params_comments['Fracture Width'] }} |
129+
| Fracture Separation | `{{ input_params['Fracture Separation'] }} meters` | {{ input_params_comments['Fracture Separation'] }} |
130130

131131
.. raw:: html
132132

133133
</div>
134134

135135
Note that these parameters represent a simplified, homogenized analytical equivalent of a highly complex, heterogeneous subsurface fracture network.
136136
Further relevant detailed discussion can be found in the [Cape Station case study methodology section](Fervo_Project_Cape-5.html#calibration-with-fervo-implemented-field-design).
137+
See also the [effective number of fractures sensitivity analysis below](#sensitivity-analysis-effective-number-of-fractures-section).
137138

138139
## Results
139140

@@ -172,33 +173,65 @@ The variance analysis (results displayed in legend captions) evaluates the predi
172173
Both models demonstrate high predictive fidelity, tracking steady-state flowing temperatures within 1.5°C of the empirical data.
173174

174175
* **Overall Fit:** GEOPHIRES mathematically achieves a tighter overall fit, yielding a lower Root Mean Square Error (RMSE) and a higher coefficient of determination (R²).
175-
* **Systematic Bias:** The Fervo model exhibits slightly less systemic underestimation, with a cold bias of {{ fervo_bias_degc }}°C compared to the GEOPHIRES cold bias of {{ geophires_bias_degc }}°C.
176+
* **Systematic Bias:** The GEOPHIRES model exhibits slightly less systemic underestimation, with a cold bias of {{ geophires_bias_degc }}°C compared to the Fervo cold bias of {{ fervo_bias_degc }}°C.
176177
* **R² Context:** While the Fervo model yields a relatively low R² ({{ fervo_r2 }}), GEOPHIRES achieves a stronger R² of {{ geophires_r2 }}, indicating it more successfully captures the underlying physical trend of the data (the slight thermal drawdown) rather than simply averaging the noise. However, it is important to note that the absolute R² ceiling for both models is inherently suppressed by the dataset. Because the steady-state temperature profile is essentially a flat plateau, natural sensor variance and minor reservoir oscillations may account for a disproportionately large portion of the total variance, keeping the R² scores modest despite the favorable absolute error (RMSE).
177178

178179
<div id="long-term-forecast-section"></div>
179180

180-
### Long-Term Forecast (8-Year Horizon)
181+
### Long-Term Forecast ({{ long_term_forecast_years }}-Year Horizon)
181182

182-
To evaluate the model's predictive behavior over a longer timeframe, the GEOPHIRES simulation was extended to an 8-year horizon.
183-
This timeframe aligns with the redrilling interval modeled in the [Cape Station case study](Fervo_Project_Cape-5.html) and provides a
184-
realistic view of the anticipated thermal decline before major wellfield intervention would be required.
183+
To evaluate the model's predictive behavior over a longer timeframe, the GEOPHIRES simulation was extended to an {{ long_term_forecast_years }}-year horizon.
184+
This timeframe aligns with the redrilling interval modeled in the [Cape Station case study](Fervo_Project_Cape-5.html)
185+
and provides a plausible view of the anticipated thermal decline before major wellfield intervention would be required.
185186

186187
![](_images/fervo_project_red-2026_production-temperature-data-vs-modeling-long-term.png)
187188

188189
As shown in the forecast above, the Gringarten analytical model predicts a gradual onset of thermal decline following
189190
the initial two-year plateau, which eventually accelerates into a more pronounced drawdown.
190-
191191
When interpreting the trailing edge of the empirical dataset, minor deviations between the extracted data and the
192192
forecast curve are to be expected given the inherent imprecision of image-based data digitization and the presence of
193193
localized wellbore transients.
194-
Because Fervo has explicitly characterized this two-year operational period as demonstrating highly stable
195-
flowing temperatures with marginal to no actual reservoir drawdown, the GEOPHIRES parameterization
196-
deliberately favors a stabilized, slightly more optimistic decline curve rather than overfitting to potential
197-
extraction artifacts.
198-
This 8-year forecast establishes a testable predictive baseline, which can be further rigorously validated, tuned,
199-
and recalibrated as additional multi-year operational data becomes available
200-
to determine if late-stage variations represent minor transients or the onset of non-linear geological thresholds.
201194

195+
Because Fervo has explicitly characterized this two-year operational period as demonstrating highly stable flowing
196+
temperatures with marginal to no actual reservoir drawdown, the GEOPHIRES parameterization deliberately favors a
197+
stabilized, slightly more optimistic decline curve rather than overfitting to potential extraction artifacts.
198+
199+
While this {{ long_term_forecast_years }}-year forecast establishes a testable predictive baseline, understanding the true bounds of this decline
200+
requires accounting for inherent subsurface uncertainty.
201+
To explore how variations in reservoir geometry might accelerate or delay the onset of this long-term drawdown, the
202+
following sensitivity analysis expands our single baseline into a predictive envelope.
203+
204+
<div id="sensitivity-analysis-effective-number-of-fractures-section"></div>
205+
206+
#### Sensitivity Analysis: Effective Number of Fractures
207+
208+
As detailed in the methodology's [GEOPHIRES Reservoir Parameters](#geophires-reservoir-parameters) table, the baseline
209+
`Number of Fractures` ({{ input_params['Number of Fractures'] }}) represents a deliberately de-rated analytical
210+
equivalent designed to proxy a highly complex, heterogeneous subsurface fracture network. While this calibrated
211+
baseline provides the tightest statistical fit for the current two-year empirical window, assigning an exact number to
212+
the effective fracture surface area inherently relies on analytical interpretation.
213+
214+
To evaluate the bounding envelope of the reservoir's thermal drawdown, a sensitivity analysis was performed on this
215+
effective `Number of Fractures`. By expanding the model to include other plausible values (ranging from {{ fracture_sensitivity_range_low }} to {{ fracture_sensitivity_range_high }}
216+
fractures), the analysis demonstrates the sensitivity of the long-term thermal decline to the idealized fracture surface area.
217+
218+
![](_images/fervo_project_red-2026_production-temperature-data-vs-modeling-fracture-sensitivity-1.png)
219+
220+
*Detail view of the sensitivity curves overlapping the empirical steady-state data (Years 0–3):*
221+
222+
![](_images/fervo_project_red-2026_production-temperature-data-vs-modeling-fracture-sensitivity-2.png)
223+
224+
While the {{ input_params['Number of Fractures'] }}-fracture baseline is currently the most empirically supported
225+
estimate based on existing data alignment, time and additional multi-year operational data will ultimately determine
226+
which structural interpretation within this predictive envelope is the most accurate.
227+
228+
To further quantify the impact of these varying fracture geometries, the corresponding average annual net electricity
229+
generation over the {{ long_term_forecast_years }}-year horizon was also evaluated. While the flowing temperatures across all sensitivity cases
230+
essentially converge by year {{ long_term_forecast_years }}, their distinct intermediate thermal decline paths result in measurable differences in
231+
total power output. Utilizing Average Annual Net Electricity Generation (GWh) isolates these aggregate differences,
232+
providing a relative basis for comparing the lifecycle performance of each sensitivity case.
233+
234+
![](_images/fervo_project_red-2026_production-temperature-data-vs-modeling-power-sensitivity.png)
202235

203236
## Discussion
204237

205 KB
Loading
182 KB
Loading
290 KB
Loading
344 KB
Loading
172 KB
Loading

0 commit comments

Comments
 (0)