Skip to content

FimbulGeothermal simulation in Julia

High-performance geothermal simulation toolbox based on automatic differentiation

Fimbul.jl

Fimbul.jl is a Julia-based toolbox for geothermal simulations based on JutulDarcy.jl, a fully differentiable, high-performance porous media simulator toolbox. Fimbul and JutulDarcy are developed by the Applied Computational Science group at SINTEF Digital.

Getting started

To get started with Fimbul, install Julia and follow these steps:

  • Make a project folder in a suitable location and navigate to it
bash
mkdir fimbul-testing
cd fimbul-testing/
  • Start a Julia REPL in the project folder, activate an environment, and add Fimbul and JutulDarcy. We will also add GLMakie for plotting.
julia
using Pkg; Pkg.activate(".");
Pkg.add("Fimbul");
Pkg.add("JutulDarcy");
Pkg.add("GLMakie");

You are now ready to run your first simulation! Fimbul comes with a number of example cases for geothermal energy applications. To check that everything works, you can run a small geothermal doublet case:

julia
using Fimbul, JutulDarcy
using GLMakie
case = egg_geothermal_doublet()
result = simulate_reservoir(case)
plot_reservoir(case, result.states;
colormap = :seaborn_icefire_gradient, key = :Temperature)

The first time you run this code, Julia will compile the packages, which may take a few minutes. Subsequent runs will be much faster.

Interactive plotting requires `GLMakie`, which may not work if you are running Julia over SSH.

Working with Fimbul

If you plan to use Fimbul extensively in your work, we strongly recommend that you read the documentation of JutulDarcy, in particular on getting started. This also covers the basics of installing Julia and creating a Julia environments, written for users who may not already be familiar with Julia package management.

Citing

The current main work describing Fimbul.jl is Fimbul.jl – Fast, Flexible, Robust, and Differentiable Geothermal Energy Simulation in Julia, available through EarthDoc:

bibtex
@inproceedings{Klemetsdal2025,
  title = {Fimbul.jl – Fast,  Flexible,  Robust,  and Differentiable Geothermal Energy Simulation in Julia},
  DOI = {10.3997/2214-4609.202521164},
  booktitle = {Sixth EAGE Global Energy Transition Conference & Exhibition (GET 2025)},
  publisher = {European Association of Geoscientists & Engineers},
  author = {Klemetsdal,  Ø. and Andersen,  O. and Møyner,  O.},
  year = {2025},
  pages = {1–5}
}<>

DOI link to extended abstract. If you use Fimbul in your work, please cite this work.