Skip to content

Commit 58c60e0

Browse files
fix some html encoding issues, include MC graphs (WIP, need more iterations, other polish)
1 parent ad829f8 commit 58c60e0

5 files changed

Lines changed: 44 additions & 12 deletions

File tree

docs/FPC_HIIP_Analysis.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
The foundational calculation for measuring thermal energy in a reservoir relies on the volumetric heat-in-place method.
1414

1515
### Thermal Energy Physics
16-
The SEC filing determines the total thermal energy ($Q_T$) as the sum of the thermal energy of the rock ($Q_R$) and the pore fluid ($Q_W$). Because the Granitic Basement rocks of the Project Cape Area have little to no porosity, the pore fluid energy effectively drops out, allowing the equation to be simplified to:
16+
The SEC filing determines the total thermal energy (Q<sub>T</sub>) as the sum of the thermal energy of the rock (Q<sub>R</sub>) and the pore fluid (Q<sub>W</sub>). Because the Granitic Basement rocks of the Project Cape Area have little to no porosity, the pore fluid energy effectively drops out, allowing the equation to be simplified to:
1717

18-
$$Q_T = (A \times h) \times \rho_b \times c_r \times (T_{res} - T_{ref})$$
18+
Q<sub>T</sub> = (A × h) × &rho;<sub>b</sub> × c<sub>r</sub> × (T<sub>res</sub> - T<sub>ref</sub>)
1919

20-
**HIP-RA-X Alignment:** HIP-RA-X performs this exact calculation. The primary difference is input structuring: while the SEC model takes bulk density ($\rho_b$) and rock specific heat ($c_r$) as separate variables, HIP-RA-X expects them pre-multiplied as a single `Rock Heat Capacity` (Volumetric Heat Capacity).
20+
**HIP-RA-X Alignment:** HIP-RA-X performs this exact calculation. The primary difference is input structuring: while the SEC model takes bulk density (&rho;<sub>b</sub>) and rock specific heat (c<sub>r</sub>) as separate variables, HIP-RA-X expects them pre-multiplied as a single `Rock Heat Capacity` (Volumetric Heat Capacity).
2121

2222
### The Critical Adjustment: Recovery Factors
2323
To achieve a like-for-like comparison, we must account for differing operational philosophies regarding recovery factors.
@@ -50,7 +50,7 @@ The HIP-RA-X inputs below were calibrated using the data provided in the D&M SEC
5050

5151
When evaluated using the deterministic 199°C baseline, HIP-RA-X produces an incredibly tight alignment with the SEC report's lower-bound thermal energy estimates.
5252

53-
| Model | Evaluated Thermal Metric | Result ($10^{15}$ Joules) |
53+
| Model | Evaluated Thermal Metric | Result (10<sup>15</sup> Joules) |
5454
| :--- | :--- | :--- |
5555
| **SEC Filing (D&M)** | Gross HIIP (Low Estimate) | **50,730** |
5656
| **HIP-RA-X** | Stored Heat (reservoir) | **50,500** |
@@ -61,13 +61,21 @@ Because our HIP-RA-X run used a static, deterministic input of 199°C—which si
6161

6262
To directly validate against the SEC's Mean Estimate, a Monte Carlo simulation (`MC_GeoPHIRES3`) was executed over 1,000 iterations using a uniform distribution between 170°C and 250°C.
6363

64-
| Model | Evaluated Thermal Metric | Result ($10^{15}$ Joules) |
64+
| Model | Evaluated Thermal Metric | Result (10<sup>15</sup> Joules) |
6565
| :--- | :--- | :--- |
6666
| **SEC Filing (D&M)** | Gross HIIP (Mean Estimate) | **63,560** |
67-
| **HIP-RA-X (Monte Carlo)**| Stored Heat (reservoir) Mean | **54,775** |
67+
| **HIP-RA-X (Monte Carlo)**| Stored Heat (reservoir) Mean | **55,076** |
6868

6969
This successfully demonstrates that when supplied with identical bounding conditions, the HIP-RA-X volumetric engine perfectly mirrors the industry-standard probabilistic HIIP methodology.
7070

71+
#### Monte Carlo Distributions
72+
73+
The following histograms illustrate the uniform input distribution applied to the reservoir temperature and the resulting probabilistic output for stored heat.
74+
75+
![](_images/fpc_hiip_mc_Reservoir_Temperature.png)
76+
77+
![](_images/fpc_hiip_mc_Stored_Heat.png)
78+
7179
### Divergence in Electrical Power Capacity
7280

7381
While the raw thermal energy calculations align perfectly, translating that heat into electrical power introduces a stark methodological divergence between D&M and GEOPHIRES.

docs/FPC_HIIP_Analysis.md.jinja

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
The foundational calculation for measuring thermal energy in a reservoir relies on the volumetric heat-in-place method.
1414

1515
### Thermal Energy Physics
16-
The SEC filing determines the total thermal energy ($Q_T$) as the sum of the thermal energy of the rock ($Q_R$) and the pore fluid ($Q_W$). Because the Granitic Basement rocks of the Project Cape Area have little to no porosity, the pore fluid energy effectively drops out, allowing the equation to be simplified to:
16+
The SEC filing determines the total thermal energy (Q<sub>T</sub>) as the sum of the thermal energy of the rock (Q<sub>R</sub>) and the pore fluid (Q<sub>W</sub>). Because the Granitic Basement rocks of the Project Cape Area have little to no porosity, the pore fluid energy effectively drops out, allowing the equation to be simplified to:
1717

18-
$$Q_T = (A \times h) \times \rho_b \times c_r \times (T_{res} - T_{ref})$$
18+
Q<sub>T</sub> = (A × h) × &rho;<sub>b</sub> × c<sub>r</sub> × (T<sub>res</sub> - T<sub>ref</sub>)
1919

20-
**HIP-RA-X Alignment:** HIP-RA-X performs this exact calculation. The primary difference is input structuring: while the SEC model takes bulk density ($\rho_b$) and rock specific heat ($c_r$) as separate variables, HIP-RA-X expects them pre-multiplied as a single `Rock Heat Capacity` (Volumetric Heat Capacity).
20+
**HIP-RA-X Alignment:** HIP-RA-X performs this exact calculation. The primary difference is input structuring: while the SEC model takes bulk density (&rho;<sub>b</sub>) and rock specific heat (c<sub>r</sub>) as separate variables, HIP-RA-X expects them pre-multiplied as a single `Rock Heat Capacity` (Volumetric Heat Capacity).
2121

2222
### The Critical Adjustment: Recovery Factors
2323
To achieve a like-for-like comparison, we must account for differing operational philosophies regarding recovery factors.
@@ -50,7 +50,7 @@ The HIP-RA-X inputs below were calibrated using the data provided in the D&M SEC
5050

5151
When evaluated using the deterministic 199°C baseline, HIP-RA-X produces an incredibly tight alignment with the SEC report's lower-bound thermal energy estimates.
5252

53-
| Model | Evaluated Thermal Metric | Result ($10^{15}$ Joules) |
53+
| Model | Evaluated Thermal Metric | Result (10<sup>15</sup> Joules) |
5454
| :--- | :--- | :--- |
5555
| **SEC Filing (D&M)** | Gross HIIP (Low Estimate) | **50,730** |
5656
| **HIP-RA-X** | Stored Heat (reservoir) | **{{ det_stored_heat_15j }}** |
@@ -61,13 +61,21 @@ Because our HIP-RA-X run used a static, deterministic input of 199°C—which si
6161

6262
To directly validate against the SEC's Mean Estimate, a Monte Carlo simulation (`MC_GeoPHIRES3`) was executed over 1,000 iterations using a uniform distribution between 170°C and 250°C.
6363

64-
| Model | Evaluated Thermal Metric | Result ($10^{15}$ Joules) |
64+
| Model | Evaluated Thermal Metric | Result (10<sup>15</sup> Joules) |
6565
| :--- | :--- | :--- |
6666
| **SEC Filing (D&M)** | Gross HIIP (Mean Estimate) | **63,560** |
6767
| **HIP-RA-X (Monte Carlo)**| Stored Heat (reservoir) Mean | **{{ mc_stored_heat_mean_15j }}** |
6868

6969
This successfully demonstrates that when supplied with identical bounding conditions, the HIP-RA-X volumetric engine perfectly mirrors the industry-standard probabilistic HIIP methodology.
7070

71+
#### Monte Carlo Distributions
72+
73+
The following histograms illustrate the uniform input distribution applied to the reservoir temperature and the resulting probabilistic output for stored heat.
74+
75+
![](_images/fpc_hiip_mc_Reservoir_Temperature.png)
76+
77+
![](_images/fpc_hiip_mc_Stored_Heat.png)
78+
7179
### Divergence in Electrical Power Capacity
7280

7381
While the raw thermal energy calculations align perfectly, translating that heat into electrical power introduces a stark methodological divergence between D&M and GEOPHIRES.
21.8 KB
Loading
31.2 KB
Loading

src/geophires_docs/generate_fpc_hiip_analysis_doc.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import logging
2+
import shutil
23
from pathlib import Path
34

45
from jinja2 import Environment
@@ -14,10 +15,12 @@
1415

1516
_PROJECT_ROOT = Path(__file__).resolve().parent.parent.parent
1617
_BUILD_DIR = _PROJECT_ROOT / 'build' / 'fpc_hiip_analysis'
18+
_IMAGES_DIR = _PROJECT_ROOT / 'docs' / '_images'
1719

1820

1921
def generate_fpc_hiip_analysis_doc():
2022
_BUILD_DIR.mkdir(parents=True, exist_ok=True)
23+
_IMAGES_DIR.mkdir(parents=True, exist_ok=True)
2124

2225
# 1. Define and Run Deterministic Baseline
2326
base_params = {
@@ -72,7 +75,6 @@ def generate_fpc_hiip_analysis_doc():
7275
_log.info('Running Monte Carlo HIP-RA-X simulation (170°C - 250°C)...')
7376

7477
# Initialize the Monte Carlo Request
75-
# (Note: Paths must be absolute as required by the MonteCarloRequest class)
7678
mc_request = MonteCarloRequest(
7779
simulation_program=SimulationProgram.HIP_RA_X,
7880
input_file=base_input_path.absolute(),
@@ -90,6 +92,20 @@ def generate_fpc_hiip_analysis_doc():
9092
mc_stored_heat_mean_kj = mc_stats['Stored Heat (reservoir)']['mean']
9193
mc_stored_heat_mean_15j = mc_stored_heat_mean_kj / 1e12
9294

95+
# Copy generated MC histogram images to the docs directory
96+
mc_temp_img_src = _BUILD_DIR / 'Reservoir Temperature.png'
97+
mc_heat_img_src = _BUILD_DIR / 'Stored Heat (reservoir).png'
98+
99+
mc_temp_img_dst = _IMAGES_DIR / 'fpc_hiip_mc_Reservoir_Temperature.png'
100+
mc_heat_img_dst = _IMAGES_DIR / 'fpc_hiip_mc_Stored_Heat.png'
101+
102+
if mc_temp_img_src.exists():
103+
shutil.copy(mc_temp_img_src, mc_temp_img_dst)
104+
_log.info(f'Copied {mc_temp_img_src.name} to docs/_images/')
105+
if mc_heat_img_src.exists():
106+
shutil.copy(mc_heat_img_src, mc_heat_img_dst)
107+
_log.info(f'Copied {mc_heat_img_src.name} to docs/_images/')
108+
93109
# 4. Render Jinja Template
94110
_log.info('Rendering Markdown documentation...')
95111
docs_dir = _PROJECT_ROOT / 'docs'

0 commit comments

Comments
 (0)