KAI engine · reference case
How much can the boreholes give, and what is lowering the water?
Three questions a park asks about its boreholes, answered on real data: what the aquifer is like (from a pumping test), what pumping will do to it (a MODFLOW 6 model), and whether a falling water level is the park's pumping, a neighbour's, or the weather (from the borehole's own record).
1 · What a pumping test says about the aquifer
Two classic Dutch field tests. A borehole is pumped at a constant rate and the water level is logged in piezometers nearby. The engine fits an aquifer model (TTim) to every reading at once and returns its transmissivity, storage and, if water leaks in from above, the resistance of the layer on top.
Oude Korendijk
confined aquifer788 m³/day for 14.1 h · aquifer 7 m thick · piezometers at 30, 90 m
- piezometer at 30 m
- piezometer at 90 m
- Transmissivity
- 463 m²/d
- Storativity
- 1.8×10⁻⁴
- Fit error
- 5 cm
Dalem
leaky aquifer761 m³/day for 8.2 h · aquifer 37 m thick · piezometers at 30, 60, 90, 120 m
- piezometer at 30 m
- piezometer at 60 m
- piezometer at 90 m
- piezometer at 120 m
- Transmissivity
- 1,677 m²/d
- Storativity
- 1.8×10⁻³
- Top-layer resistance
- 331 days
Same tests, other analysts
The engine's values beside those from the textbook and two commercial packages, as compiled in the TTim documentation.
| Test · method | T, m²/d | S | c, days |
|---|---|---|---|
| Oude Korendijk · KAI engine | 463 | 1.8×10⁻⁴ | — |
| Kruseman & De Ridder (Theis, by hand) | 390 | 1.7×10⁻⁴ | — |
| AQTESOLV | 463 | 1.8×10⁻⁴ | — |
| MLU | 468 | 1.7×10⁻⁴ | — |
| Dalem · KAI engine | 1,677 | 1.8×10⁻³ | 331 |
| AQTESOLV | 1,824 | 1.7×10⁻³ | 745 |
| MLU (with aquitard storage) | 1,672 | 1.5×10⁻³ | 769 |
The leakage resistance is the least certain number: ±76 days in the engine's own fit, and the two packages find 745–769 days, partly because they treat water stored in the clay differently. For a borehole forecast it matters little here: the long-run drawdown at the borehole changes by about 5 %.
Predicting a piezometer the model has not seen
Fit on all piezometers but one, then predict the one left out. This is the honest accuracy.
| Left out | Typical error | 1-year forecast at the borehole |
|---|---|---|
| Oude Korendijk, 30 m | 9.9 cm | 3.08 m |
| Oude Korendijk, 90 m | 8.7 cm | 3.29 m |
| Dalem, 30 m | 2.0 cm | 0.73 m no leakage seen |
| Dalem, 60 m | 1.3 cm | 0.66 m |
| Dalem, 90 m | 0.1 cm | 0.65 m |
| Dalem, 120 m | 1.0 cm | 0.68 m |
Without the closest Dalem piezometer (30 m) the fit cannot see the leakage at all and treats the aquifer as confined. Over a year that overstates the drawdown only slightly here, because this aquifer transmits water so well, but in a tighter aquifer it decides whether a borehole is sustainable. Put one observation well close to the pumped borehole.
What the two aquifers mean for a borehole pumping all the time
Forecast drawdown if each test borehole kept pumping at its test rate, from the fitted aquifers (no well losses, no boundaries).
| Aquifer | After 1 day | After 30 days | After 1 year |
|---|---|---|---|
| Oude Korendijk (confined), at the borehole | 2.55 m | 3.01 m | 3.35 m |
| Dalem (leaky), at the borehole | 0.65 m | 0.65 m | 0.65 m |
The leaky aquifer settles within a day: water drawn down through the clay replaces what is pumped. The confined one keeps falling as long as the pump runs, until it meets a boundary the 14-hour test never reached. Which case a park has decides how long its boreholes can run, and a test has to be long enough, or watched closely enough, to tell.
2 · A MODFLOW 6 borehole model
The analytic model fits the test; a numerical model is what carries a park's real layout: several boreholes, rivers and wetlands, pumping schedules. Built with FloPy on the Dalem aquifer, it first has to reproduce the real test.
Check: MODFLOW 6 rebuilds the Dalem test
| Piezometer | Error against the field readings | Largest difference from TTim |
|---|---|---|
| 30 m | 4.8 mm | 0.5 mm |
| 60 m | 9.2 mm | 0.4 mm |
| 90 m | 1.4 mm | 0.5 mm |
| 120 m | 5.6 mm | 0.5 mm |
What-if: two boreholes in this aquifer
what-if layout1,500 m³/day each, 250 m apart, for a year. Shading is drawdown after one year (darker = deeper, on a log scale); circles mark how far 10 and 5 cm reach. Even 1 cm reaches about 2,109 m.
- Drawdown at each borehole
- 1.38 m
- Caused by the other borehole
- 13 %
- 5 cm drawdown reaches
- 1,063 m
- Water from the layer above
- 95 % after 2.1 days
Where the pumped water comes from
- aquifer storage
- leakage from the layer above
How much each borehole could pump
| Allowed drawdown | Rate, each borehole |
|---|---|
| 2 m | 2,179 m³/day |
| 5 m | 5,447 m³/day |
| 10 m | 10,895 m³/day |
Aquifer drawdown only. A real borehole adds its own well losses, which a step-drawdown test measures. Here the deeper question is the one the model answers in the chart: nearly all the water ends up coming from the layer above, so the limit is what that does to the surface water.
3 · Is it the pumping or the weather?
A real observation well, 1960–2015, 2,846 readings, with four public-supply well fields around it and daily rain and evaporation. The engine (Pastas) learns how the level responds to each of them, then splits every change into its causes.
Test: trained on 1960–1999, predicting the next 15 years blind
After 2000 the well fields cut their pumping sharply. A model that knows only the weather cannot follow the rise that followed; one that knows the pumping can.
- observed (monthly mean)
- model: weather + pumping
- model: weather only
| Prediction for 2000–2015 | Typical error | Bias |
|---|---|---|
| Weather + pumping (KAI engine) | 0.22 m | +0.13 m |
| Weather only | 0.77 m | +0.62 m |
| Level stays at its 1995–1999 average | 0.85 m | −0.71 m |
How much each cause moved the level, year by year
Bars: how far each well field held the level down. Line: the weather, above or below its long-term average.
- Well field 1
- Well field 2
- Well field 3
- Well field 4
- weather
What the record says
- At the peak, in 1991, the four well fields together held the level 6.01 m lower than without pumping.
- The weather moves the yearly level between -0.48 and +0.54 m (dry and wet years).
- From 2005–09 to 2011–15 the level rose 0.95 m: 0.75 m from less pumping, −0.01 m from the weather, the rest unexplained.
- The model explains 96 % of the variation in the level over 55 years.
Effect of each well field on this borehole
| Well field | Per 1,000 m³/d | 90 % felt after |
|---|---|---|
| Well field 1 | 23.1 ± 2.8 cm | 12 years |
| Well field 2 | 6.1 ± 1.0 cm | 2 years |
| Well field 3 | 4.5 ± 0.4 cm | 12 months |
| Well field 4 | 2.1 ± 1.5 cm | 10 months |
Long-run lowering of this borehole for each extra 1,000 m³/day pumped at a well field. For a park this is the table that answers “what will the new borehole do to ours?” and lets a regulator see which abstraction is responsible. Slow responses, such as well field 1's, are the least certain part of the model.
Pumping 1960 → 1991 → 2015, well field 2: 0 → 27,296 → 17,547 m³/day.
What is real and what is a what-if
- Real: the Oude Korendijk and Dalem pumping tests (Kruseman & De Ridder, Analysis and Evaluation of Pumping Test Data, ILRI 1990), every reading as published.
- Real: 1960–2015 water levels at a Dutch observation well, monthly pumping at four nearby well fields, and daily rain and evaporation.
- What-if: the two-borehole layout in part 2. The aquifer is the real one from the Dalem test; the boreholes, their rate and spacing are an illustration of a park's question.
- Why Dutch data: these tests and this record are published in full under open licences. The methods are the same anywhere; a park's own pumping test and borehole logger data replace them.
How it works
- TTim, an analytic aquifer model, is fitted to all test readings at once; each piezometer is then left out and predicted.
- MODFLOW 6 (the USGS groundwater model, built with FloPy) takes the fitted aquifer, reproduces the test, then runs the layout in question.
- Pastas fits one response to the weather and one to each well field, trained on 1960–1999; the years after are the test.
Data pinned to fixed versions: pumping tests via the TTim documentation (MIT (data from Kruseman & De Ridder 1990)), water-level record via the Pastas documentation (MIT). Engine: TTim 0.8.0, FloPy 3.11.0, MODFLOW 6.6.0 12/20/2024, Pastas 2.0.0. Built 2026-10-21T06:00Z by the KAI engine.