https://github.com/sintefmath/fimbul.jl
https://github.com/sintefmath/fimbul.jl
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/sintefmath/fimbul.jl
- Owner: sintefmath
- License: mit
- Created: 2025-02-26T20:33:42.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-06T22:51:08.000Z (about 1 year ago)
- Last Synced: 2025-03-06T23:27:40.856Z (about 1 year ago)
- Language: Julia
- Size: 26.4 KB
- Stars: 1
- Watchers: 7
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://sintefmath.github.io/Fimbul.jl/dev/)
> [!TIP]
> Visit the docs at https://sintefmath.github.io/Fimbul.jl/dev/
# Geothermal simulation in Julia
Fimbul.jl is a [Julia](https://julialang.org/)-based toolbox for geothermal simulations based on [JutulDarcy.jl](https://github.com/sintefmath/JutulDarcy.jl), a fully differentiable, high-performance porous media simulator toolbox. Fimbul and JutulDarcy are developed by the [Applied Computational Science group](https://www.sintef.no/en/digital/departments-new/applied-mathematics/applied-computational-sciences/) at [SINTEF Digital](https://www.sintef.no/en/digital/).
## Getting started
To get started with Fimbul, install [Julia](https://julialang.org/) 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");
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:
```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.
>[!NOTE]
>Interactive plotting requires `GLMakie`, which may not work if you are running Julia over SSH.
## Citing
The current main work describing `Fimbul.jl` is [*Fimbul.jl – Fast, Flexible, Robust, and Differentiable Geothermal Energy Simulation in Julia*, available through EarthDoc](https://doi.org/10.3997/2214-4609.202521164):
```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},
}<>
```
[DOI link to extended abstract.](https://doi.org/10.3997/2214-4609.202521164) If you use Fimbul in your work, please cite this work.
## License
Fimbul.jl is licensed under the MIT License. See [LICENSE](LICENSE) for details.
Copyright (c) 2025 Øystein Klemetsdal, SINTEF Digital and Contributors