Open Porous Media Short Course with Prof. Carl Fredrik Berg (NTNU)
Open Porous Media Short Course with Prof. Carl Fredrik Berg 🇳🇴
Three days of hands-on training on the Open Porous Media (OPM) open-source reservoir simulator — from the basics of building a simulation deck, through the physics that governs CO₂ in the subsurface, to running and visualizing real field-scale models of Sleipner and Norne.
CURE Lab hosted a three-day intensive short course led by Prof. Carl Fredrik Berg of NTNU (Norwegian University of Science and Technology), held as part of a program bringing invited overseas experts in CCS to Korea for focused technical training.
The subject was Open Porous Media (OPM) — the open-source reservoir simulation stack that has quietly become one of the standard tools for CO₂ storage modeling. For a lab whose research runs on subsurface flow simulation, having the software explained by someone who works on it in the country that has been injecting CO₂ offshore since 1996 is about as direct a transfer of expertise as it gets.
The instructor
Prof. Carl Fredrik Berg
Department of Geosciences, NTNU · Trondheim, Norway
Prof. Berg works at the point where pore-scale physics meets field-scale engineering. His research covers digital rock modeling of flow in porous media, the upscaling of transport properties from pore images to simulation grids, wettability characterization, and the optimization of reservoir simulation models — including well placement and uncertainty quantification. He is affiliated with PoreLab, the Norwegian Centre of Excellence dedicated to the physics of porous media.
That combination is unusual and it is exactly why the course worked. Upscaling is the recurring problem of CO₂ storage simulation: the physics that controls how much CO₂ stays put happens at the scale of millimetres and metres, while the models that regulators and operators actually run have grid cells hundreds of metres wide. Someone who has worked at both ends can explain not just which keyword to type, but what the simulator is approximating away when you do.
At NTNU he teaches courses including Geomechanics and Flow in Porous Media and Numerical Methods in Reservoir Simulation, and he maintains an openly available reservoir simulation textbook — a teaching background that showed in how the three days were paced.
What is Open Porous Media?
OPM is a community initiative for open, reproducible simulation of porous media processes, developed largely out of Norway with contributions from SINTEF, NORCE, Equinor and the university groups around them. Its flagship, OPM Flow, is a fully-implicit three-phase black-oil reservoir simulator released under a free license.
The practical significance is easy to miss if you have only ever used commercial software. OPM Flow reads the same industry-standard input decks as the commercial simulators, has been validated against them on real field cases, and is used operationally on producing assets — so it is not a teaching toy. But because it is open source, you can read the discretization, instrument the solver, and publish a paper that someone else can reproduce exactly. For a research lab, that last property is worth a great deal.
Input & deck handling
Parses the simulation deck — grid, rock and fluid properties, wells, schedule — in the standard industry format, so existing models transfer without rewriting.
The simulator
Fully-implicit black-oil solver with extensions for CO₂ storage, thermal, polymer and solvent. Parallelized for multi-million-cell field models.
3D visualization & post-processing
Open-source viewer for grids, properties, faults and wells, with flow diagnostics and a Python interface for scripted analysis.
The three days
The physics: what actually holds CO₂ down
A CO₂ storage forecast is only as trustworthy as its treatment of trapping. Injected CO₂ is buoyant — it wants to rise — and the security of a storage site comes from a sequence of mechanisms that immobilize it progressively over very different timescales.
Structural trapping
A low-permeability caprock physically blocks the buoyant plume. Dominant from day one, but it is the mechanism most sensitive to seal integrity and fault behaviour.
Residual (capillary) trapping
As brine imbibes back behind the migrating plume, CO₂ is snapped off into disconnected, immobile blobs. Capturing this requires relative permeability hysteresis — get the hysteresis model wrong and the forecast is wrong.
Solubility trapping
CO₂ dissolves into the formation brine. Crucially, CO₂-saturated brine is denser than the brine below it, so the interface is gravitationally unstable and sinks in convective fingers — which greatly accelerates dissolution.
Mineral trapping
Dissolved CO₂ reacts with formation minerals to precipitate solid carbonate — the most permanent outcome, and the slowest. Full geochemistry generally sits outside the flow simulator itself.
OPM Flow handles CO₂ storage through a dedicated CO₂STORE mode, in which the CO₂–brine phase behaviour is not read from user-supplied tables but computed internally from pressure, temperature and salinity as the simulation runs. That matters for storage work, where conditions vary widely across a regional model and hand-tabulated PVT quietly stops being valid.
⚠️ The upscaling problem, made concrete
The convective fingers that drive solubility trapping are on the order of metres wide. A field-scale grid cell is on the order of a hundred metres. So a full-field simulation cannot resolve the very mechanism that determines long-term storage capacity — refine the grid enough to capture it and the model becomes unrunnable.
This is why sub-grid models for convective mixing are an active research topic, and why CO₂ storage benchmarks such as the SPE Comparative Solution Projects exist at all: to find out whether independent groups modeling the same site actually agree. It is also precisely the territory Prof. Berg's upscaling research sits in, and it made for the most useful discussion of the course.
Two real fields: Sleipner and Norne
Rather than synthetic examples, the course worked with two open benchmark datasets from the Norwegian continental shelf — both real fields, both with published models, both with decades of measured data to argue with.
CO₂ Storage · North Sea
Sleipner
The world's first commercial-scale CO₂ storage operation. Since 1996, roughly a million tonnes of CO₂ per year have been separated from produced gas and injected into the Utsira Formation, a high-permeability saline aquifer offshore Norway.
What makes Sleipner uniquely valuable is the monitoring record: a series of time-lapse seismic surveys has imaged the plume spreading beneath the caprock year after year. The public benchmark model, released in 2020, was built from that 4D seismic mapping — so a simulation can be checked against what the subsurface actually did, not just against another simulation.
Full Field Benchmark · Norwegian Sea
Norne
An Equinor-operated subsea oil field, producing since 1997 under water injection. Its operator and partners released an unusually complete dataset for research and education: the full simulation model, production history, PVT measurements, geological description, well logs, and four seismic surveys.
Norne is the standard stress test for a reservoir simulator. The grid is faulted corner-point geometry with heterogeneous, anisotropic permeability, dissolved gas, transmissibility multipliers and pressure-dependent porosity — all the awkward features that a clean textbook case leaves out.
Making the results legible
The final part of the course dealt with something easy to treat as an afterthought and expensive to get wrong: turning a simulation into something a person can interpret. A field-scale run produces gigabytes of cell-by-cell state across hundreds of time steps, and the engineering question — where did the CO₂ go, and is it staying there? — is not answerable by reading numbers.
Using ResInsight, the open-source 3D post-processor developed alongside OPM, participants worked through visualizing plume migration in the grid, sectioning models against faults and wells, and building the diagnostic plots that make a saturation field into an argument. Its Python interface also means these views can be scripted and regenerated — which matters when a study involves not one model but an ensemble of realizations.
Resources
- The Open Porous Media Initiative — documentation, tutorials and open datasets
- ResInsight — 3D viewer and post-processor for reservoir models
- Sleipner 2019 Benchmark Model — open reference dataset on CO2DataShare
- Prof. Carl Fredrik Berg — NTNU profile and publications
- PoreLab — Norwegian Centre of Excellence for the physics of porous media
Our thanks to Prof. Carl Fredrik Berg for three generous days, and for teaching the simulator and its limitations with equal care. CURE members leave with an open, reproducible CCS simulation workflow they can build research on — and a standing connection to NTNU. 🇳🇴 🤝 🇰🇷