Skip to content
Home / Products / KAI-GeoEnergy / Utah FORGE
KAI-GeoEnergy · flagship case · Utah FORGE, USA

What can a geothermal well pair in hot granite deliver over 30 years?

Utah FORGE is the US Department of Energy's field laboratory for enhanced geothermal systems. We built its granite, fractures and wells into the KAI Reservoir Lab, checked the model against the 2024 circulation tests and ran it forward 30 years. Every chart is interactive; every number comes from a notebook you can run.

Real data: Utah FORGE wells 58-32, 16A(78)-32 and 16B(78)-32, the 3D temperature model, fracture logs and fracture models, and the April and August 2024 circulation tests. The 30-year forecasts are simulated with the KAI engine; the decision chart uses a surrogate model and says so. The forecasts use the FORGE temperature model corrected at the wells: against the 16A temperature log and the 16B gauge it runs 5.9 °C too hot there (5.1 to 6.7 °C; part 8).

Temperature model vs log1.7 °Cerror against the measured log in well 58-32, down to 2,295 m
After 30 years at 10 kg/s126 °Cproduced temperature, from 207 °C at the start (P10–P90 114–143)
Highest safe rate (cautious)4.9 kg/swith the minimum stress measured in 16B carried down to 16A (32.2 MPa); P90 6.1 kg/s. Regional gradient: 9.8 kg/s
Usual coarse model+11 °Ctoo optimistic at year 30; upscaled from the fine model, +2 °C
1 · The ground

Hot granite under the basin fill

The FORGE temperature model holds 5.2 km³ of granite hotter than 200 °C. In well 58-32, 200 °C is reached at 2,257 m. Against the measured log the model is off by 1.7 °C (root mean square) down to 2,295 m.

The 3D view of the cooling front loads when you reach it.

The cooled rock around the well pair after 1, 10 and 30 years at 10 kg/s: median member, 35 m cells. Blue is the injector 16A, gold the producer 16B. Simulated.

2 · 30 years of circulation

Produced temperature, with its P10–P90

16A injects at the rate, 16B produces at its August 2024 bottom-hole pressure, and fractures open and close with pressure (Barton–Bandis). 20 members sample the fracture density, apertures and the stress direction. On a refined grid the cold water reaches 16B after 1.26 ± 0.13 years at 10 kg/s (phase 4, source temperatures). With the corrected temperature model the start at 10 kg/s is 206.8 °C (204.9 to 208.7 °C) (before: 213.7 °C) and the 30-year temperature 126.5 °C (113.5 to 142.9 °C) (before: 129.2 °C). Heat output: 6.15 MWth (5.79 to 6.28 MWth) in year 1, 2.78 MWth (2.23 to 3.48 MWth) after 30 years.

3 · The pressure limit

How hard can you push this well pair?

Injecting above the minimum horizontal stress (Shmin) risks opening new fractures and induced earthquakes. We lead with the cautious answer. The nearest stress measurements, minifracs in 16B (GDR 1596) taken as measured and carried down to 16A, put Shmin at 32.2 MPa there. Against that limit only 9 of 20 members can inject even 5 kg/s for 30 years (P90 6.1 kg/s), and the August 2024 test ran well above it. With the regional GDR 1222 gradient instead, the highest rate that stays below Shmin for 30 years is 9.8 kg/s (P10–P90 9.4–10.7); the August 2024 test itself ran 2.5 MPa above that. Below 10 kg/s the stimulated fractures close a little; above it they open, but not enough.

Is there a local stress measurement at 16A? Not in the open data: the 16A stage 1 falloff (GDR 1408) showed no fracture closure. The nearest is seven minifracs in 16B (GDR 1596), at 1.6–1.8 km, above the reservoir. Their gradient, carried down to 16A, gives these limits (the stress also sets how far the fractures close):

  • GDR 1222, recommended (17.0 MPa/km, 40.3 MPa at the top of 16A): highest rate 9.8 kg/s (9.4 to 10.7 kg/s). Corrected temperatures, 20 members.
  • 16B minifracs, as measured (13.6 MPa/km, 32.2 MPa at the top of 16A): highest rate 4.9 kg/s (3.6 to 6.1 kg/s). Corrected temperatures, 20 members.
  • 16B minifracs, cooling adjusted (mid) (18.1 MPa/km, 42.9 MPa at the top of 16A): highest rate 11.8 kg/s (11.6 to 12.3 kg/s). Phase 5, 8 members, before the temperature correction.
  • 16B minifracs, cooling adjusted (high) (21.3 MPa/km, 50.5 MPa at the top of 16A): highest rate 16.2 kg/s (15.8 to 16.9 kg/s). Phase 5, 8 members, before the temperature correction.

So the answer turns on the cooling adjustment of the minifracs: as measured, the limit is lower than the GDR 1222 gradient; adjusted for cooling, the well pair could take 12 to 16 kg/s. A minifrac in the reservoir section of 16A would settle it.

4 · Checked against the 2024 test

The produced water is cooler than the model

The water cools by 13.4 °C (12.3–14.4) on its way up 16B. Taking that into account, the model is still 4.4 °C (2.7–5.9) too hot at the bottom hole. We tested whether thin, fast fracture paths, where water and rock are not at one temperature, explain it.

We kept the water in the fractures and the rock between them as separate temperatures (a dual-continuum model, eight rock shells per cell), with the spacing of the flowing fractures taken from the stimulated fracture network. Thin, fast paths now cool first. It brings the model about halfway to the measurement. It also leaves water near 16A colder and so more viscous, which pushes the injector pressure up by 6 MPa unless the apertures are refitted.

  • Local equilibrium (phase 4): 214.1 °C (212.6 to 215.5 °C) at the bottom hole; misfit +11.2 °C (+9.7 to +12.6 °C).
  • Dual continuum, same apertures: 208.4 °C (203.0 to 214.0 °C); misfit +5.5 °C (+0.1 to +11.1 °C).
  • Refitted to the August pressures, as every phase 4 member was, the dual-continuum model needs 1.13 × the stimulated apertures and gives 207.4 °C (200.7 to 213.7 °C) at the bottom hole: a misfit of +4.5 °C (-2.2 to +10.8 °C).
  • Over 30 years at 10 kg/s it changes the year-30 temperature by only -0.9 °C (-2.4 to -0.3 °C), but the first small cooling arrives earlier.
  • With the temperature model corrected at the wells (part 8), the local-equilibrium model gives a misfit of +4.4 °C (+2.7 to +5.9 °C), down from +11.2 °C (+9.7 to +12.6 °C). Most of the gap was the temperature model, which is measured; the dual continuum is not. The forecasts on this page use local equilibrium with the corrected temperatures.
5 · A misfit we report

Tracers arrive 20 to 50 times later than the model says

Nanoparticle tracers came back to 16B within about 10 hours. The model returns 5 % of a tracer in 0.19 hours (0.13–0.44). Its flow paths hold too little water: the fracture openings that fit the pressures are too thin for the transport. This barely changes the heat results, but it is a real misfit, so we show it rather than tune it away.

6 · Upscaling, checked against the fine model

The usual coarse model is about 11 °C too optimistic

Industry often simulates on coarse cells with averaged fracture permeability. We ran the same 12 fracture networks on 23 m cells and on 70 m cells. The usual coarse model ends +10.8 °C (+3.1 to +14.2 °C) warmer at year 30 at 10 kg/s. With flow upscaled from the fine model (KAI), the error drops to +2.4 °C (+0.0 to +5.1 °C), without recalibration.

Phase 5 · a front correction, tested

Can a coarse model say when cold water arrives? Not yet.

A sharp cold front cannot be resolved in a few 70 m cells. We tried a correction that takes the travel time of heat from the fine model's flow field, which the KAI upscaling solves anyway, and checked it against the fine runs on 12 members. The test, set in advance: median error within 15 % and P10 and P90 within 30 %, at both rates. It did not pass the test we set before running it. It removes most of the scatter but leaves the corrected times 10–20 % early. So this page states only the 30-year heat result for coarse models, not their breakthrough times.

  • 10 kg/s: breakthrough error +54 % (-26 to +115 %) without the correction, -20 % (-24 to -13 %) with it.
  • 40 kg/s: breakthrough error +72 % (-16 to +141 %) without the correction, -11 % (-18 to -3 %) with it.
7 · The decision chart · surrogate values

A test bed, not a power plant: what would a 30-year doublet need?

The produced temperature after 30 years by well spacing, one line per rate. The dashed line is 192.4 °C: still within 10 % of the way from the starting temperature to the reinjection temperature. At 10 kg/s it needs about 320 m (P50), 460 m to be right nine times in ten. The chart assumes that stimulation at a larger spacing makes a connected network of the same kind as FORGE's today. The values come from a surrogate trained on full runs (error 9.7 °C on held-out runs), so read spacings as ±20 %.

8 · Phase 5 · a second, independent temperature check

Is the temperature model right at 16B?

A pressure–temperature gauge sits on the fibre in well 16B at 2,151 m along the hole (2,043 m deep). From 26 March to 2 April 2024 the well was quiet and still warming back after it had been cooled: it reached 171.9 °C, rising 0.5 °C a day. A recovery fit puts the undisturbed temperature at 177.9 °C (174 to 194 °C). The temperature model gives 183.6 °C there, so it is about +6 °C too hot (-11 to +9 °C). From 3 April the 16A stimulation disturbs the gauge, so those days are not used. The logger switched from °C to °F on 2 April; we converted it.

A second check, and the correction. The 16A temperature log of August 2021 (GDR 1421), run 216 days after drilling, agrees: below 600 m the model is +7.0 °C hot on average, +5.9 °C in the 16A open hole, and +8.2 °C at the depths where 16B produces. The model was built before these wells, so this is a blind check. We fitted a correction along each well (the log, with an allowance because it may still be a little cold) and spread it between them: 5.0 °C (4.2 to 5.8 °C) at 16A, 6.9 °C (6.0 to 7.7 °C) at 16B, 5.9 °C (5.1 to 6.7 °C) on average. Each of the 20 ensemble members draws its own correction, so its uncertainty is inside every P10–P90 on this page. At the gauge the correction says +8.0 °C and the gauge +5.7 °C (-11 to +9 °C): 2.2 °C apart, inside the gauge's own range.

  • 5 kg/s: start 213.7 → 206.8 °C; after 30 years 153.2 → 149.8 °C (133.4 to 164.5 °C); heat after 30 years 1.96 → 1.88 MWth.
  • 10 kg/s: start 213.7 → 206.8 °C; after 30 years 129.2 → 126.5 °C (113.5 to 142.9 °C); heat after 30 years 2.89 → 2.78 MWth.
  • 20 kg/s: start 213.7 → 206.8 °C; after 30 years 106.4 → 104.7 °C (97.7 to 120.3 °C); heat after 30 years 3.88 → 3.73 MWth.

What is real and what is modelled

  • Real: the GDR 1205 temperature, pressure and stress model; well 58-32 logs and fracture picks; the 16A and 16B trajectories and fracture models (GDR 1646); the 2024 circulation tests (GDR 1611, 1683), tracers (GDR 1701) and fibre data (GDR 1721); the 16B gauge (GDR 1608); the stress reports (GDR 1222, 1596, 1408).
  • Modelled: fracture permeability between the wells, the 30-year forecasts and the wellbore heat loss (KAI engine). The forecasts, the pressure limit and the decision chart use the temperature model corrected at the wells (GDR 1421 log, GDR 1608 gauge); the tracer and upscaling comparisons (parts 5 and 6) compare models on the source temperatures.
  • Surrogate: the decision chart (Gaussian-process model trained on full runs, with its error published).
  • Not redistributed: the raw GDR files are fetched at run time and checked by SHA-256; the notebooks publish derived values only.

How it works

  1. Map the granite and its temperature from the FORGE 3D model and check it against the 58-32 log.
  2. Build the fractured granite from the fracture logs and the stimulated fracture network, as an ensemble.
  3. Calibrate each member on the August 2024 test, then run 30 years at each rate.
  4. Check upscaling against the fine model, train a surrogate for the decision chart and rank the inputs by Sobol indices.

Lauwerier (1955) · Gringarten and Sauty (1975) · Barton, Bandis and Bakhtar (1985) · Oda (1985) · Pruess and Narasimhan (1985) · Peaceman (1978).

Reproduce this case yourselfSix executed notebooks that assert every published number, the derived data with SHA-256 checksums, and the script that rebuilds it from the Geothermal Data Repository, open on GitHub (code MIT, text and results CC BY 4.0).Notebooks on GitHub ↗

Utah FORGE, U.S. Department of Energy, via the Geothermal Data Repository (OpenEI), CC BY 4.0. Simulated results are labelled as such; they are KAI's, not the FORGE team's.

KAI-GeoEnergy

Ask this of your site

What will your doublet deliver over 30 years, and how sure can you be? We build the model from your data and give you the answer with its P10–P90.

Guides

Guides on this topic

All KAI guides