FimbulGeothermal simulation in Julia
High-performance geothermal simulation toolbox based on automatic differentiation
High-performance geothermal simulation toolbox based on automatic differentiation
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.
To get started with Fimbul, install Julia and follow these steps:
git clone https://github.com/sintefmath/JutulDarcy.jl.git
git clone https://github.com/sintefmath/Fimbul.jl.git
NOTE: Fimbul currently relies on the development version of JutulDarcy, and this repository therefore has to be cloned as well. This will likely change in a future release, so that the release version of JutulDarcy can be used instead.
mkdir fimbul-testing
cd fimbul-testing/
using Pkg; Pkg.activate(".");
Pkg.develop(path="path/to/JutulDarcy/");
Pkg.develop(path="path/to/Fimbul/");
Pkg.instantiate()
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:
using Fimbul, JutulDarcy
using GLMakie
case = egg_geothermal_doublet()
result = simulate_reservoir(case)
plot_reservoir(case, result.states;
colormap = :seaborn_icefire_gradient, key = :Temperature)
Note that interactive plotting requires GLMakie
, which may not work if you are running Julia over SSH.
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.