Recent Releases of Fimbul.jl
Fimbul.jl - v0.3.5
Fimbul v0.3.5
Fimbul v0.3.5
New features
Fractured Thermal Energy Storage (ftes)
- New
ftescase for simulating Fractured Thermal Energy Storage systems. The setup places one central injector surrounded by multiple producer wells, with horizontal fracture planes connecting them to enable thermal transport through tight rock. Supports configurable fracture density, orientation, and radius. - New example:
examples/storage/ftes_demo.jl.
EGS improvements
- The
egscase now uses cut_mesh with polygonal fracture cuts (PolygonalSurface), allowing more general fracture geometries. examples/production/egs_demo.jlnow compares varying well spacing and effect of angled fractures
Coaxial BHE
- New deep
coaxial_bhecase, with option to control whether fluid is injected into the inner pipe or the outer annulus. - New example:
examples/production/coaxial_bhe_demo.jl.
New utilities
get_well_neighborship: computes well cell connectivity for multi-branch wells. Used internally inegsandftes.scaled_rate: computes a volumetric flow rate scaled to a given fraction of the pore volume in a region of interest over a time duration.- Fracture utilities (
src/cases/utils/fractures.jl):add_fracturesandstrike_dip_to_normal.
Merged pull requests:
- FTES case (#40) (@strene)
- Add coaxial ags example (#43) (@Copilot)
- New and improved examples (#44) (@strene)
- Copilot/refactor egg htates example (#46) (@strene)
- Fix typo (#47) (@strene)
Renewable Energy - Geothermal Energy
- Julia
Published by github-actions[bot] about 1 month ago
Fimbul.jl - v0.3.4
Fimbul v0.3.4
Release Notes v0.3.4
Improvements
- Reinjection Target: Updated all cases (ATES, BTES, geothermal doublet, EGS) to use the new simplified
ReinjectionTargetconstructor from JutulDarcy, which no longer requires a rate argument.
Bug Fixes
- Removed stray
printlndebug statement from AGS demo example.
Merged pull requests:
- Use new ReinjectionTarget constructor (#41) (@strene)
- Bump version (#42) (@strene)
Renewable Energy - Geothermal Energy
- Julia
Published by github-actions[bot] 2 months ago
Fimbul.jl - v0.3.3
Fimbul v0.3.3
Release Notes v0.3.3
Bug Fixes
- Convex Hull Algorithm: Fixed a termination issue in
get_convex_hullwhere the algorithm could enter an infinite loop when the starting point was not revisited (e.g., due to collinear or degenerate point configurations). The algorithm now also terminates when a previously visited point is encountered.
Documentation
- Minor text formatting improvements in the ATES demo example.
Merged pull requests:
- Make sure convex hull algorithm terminates also when first point is not revisited (#37) (@strene)
- Fix text formatting in ATES example (#38) (@strene)
- Bump version (#39) (@strene)
Renewable Energy - Geothermal Energy
- Julia
Published by github-actions[bot] 3 months ago
Fimbul.jl - v0.3.2
Fimbul v0.3.2
Release Notes v0.3.2
New Features
- Layered Reservoir Domains:
- Added
layered_reservoir_domain()for streamlined setup of layered geothermal reservoir domains with per-layer material properties. - Automatically expands scalar or per-layer properties (permeability, porosity, thermal conductivity, etc.) to all cells.
- Added
Improvements
- Geometry Representation:
- Switched from
Vector{Tuple}toMatrix(2×N / 3×N) representation for all geometry and meshing operations, improving consistency and performance.
- Switched from
- Case Setup:
- Refactored
geothermal_doublet(),ags(), andegs()to use the newlayered_reservoir_domain()and matrix-based geometry. - Updated EGS case to pass well direction to
compute_peaceman_indexandsetup_wellfor more accurate well modelling.
- Refactored
- Code Organization: Moved case utilities into a
utils/subfolder. - Citation: Added
CITATION.cffwith reference to GET 2025 conference paper.
Bug Fixes
- Updated EGS case based on well modelling bugfix in JutulDarcy.
Testing
- Added tests for
layered_reservoir_domainsetup. - Updated meshing and case tests for the new matrix-based geometry functionality.
Merged pull requests:
- Layered reservoir (#33) (@strene)
- Geometry updates (#35) (@strene)
- Bump version (#36) (@strene)
Renewable Energy - Geothermal Energy
- Julia
Published by github-actions[bot] 3 months ago
Fimbul.jl - v0.3.1
Fimbul v0.3.1
Release Notes Fimbul v0.3.1
New Features
- BTES and Closed-Loop Systems:
- Added support for U1 (U-tube) and coaxial borehole thermal energy storage (BTES) systems.
- Implemented analytical solutions for BTES and coaxial systems for validation.
- Added convenience functions for deriving closed-loop geometry from well data domains.
Improvements
- Meshing: Added option to control terminal output during meshing.
- Validation: Added validation functionality for closed-loop systems.
Bug Fixes
- Corrected units in axis labels.
- Fixed minor bugs in BTES setup and coaxial implementation.
Merged pull requests:
- BTES (#31) (@strene)
- Bump version (#32) (@strene)
Renewable Energy - Geothermal Energy
- Julia
Published by github-actions[bot] 5 months ago
Fimbul.jl - v0.3.0
Fimbul v0.3.0
Fimbul.jl v0.3.0 Release Notes
Breaking changes:
- Case setup functions: All setup functions now returns meta-data and other useful case info to case.input_data instead of as separate outputs.
-Schedule setup: Functionmake_schedule()now require that the first and last dates are identical for cases set up with dates.
Major New Features
Advanced Geothermal Systems (AGS)
- New
ags()function: Complete AGS case setup with closed-loop circulation systems
Enhanced Well Systems
- New well utilities:
setup_btes_well()andsetup_vertical_btes_well()for specialized BTES configurations, moved over from JutulDarcy.
Expanded Testing Framework
- Comprehensive schedule testing: Robust validation of time-dependent scheduling with multiple cycles
Enhanced Documentation & Examples
- AGS demo: Complete workflow demonstrating closed-loop geothermal systems
- Improved example comments: Enhanced technical explanations and educational content
- Better function documentation: More comprehensive parameter descriptions and usage examples
New/enhanced functions
ags()- Advanced Geothermal System setupsetup_btes_well()- BTES well configurationsetup_vertical_btes_well()- Vertical BTES well setup- Improved
make_schedule()with better date handling
Documentation: sintefmath.github.io/Fimbul.jl
Source Code: github.com/sintefmath/Fimbul.jl
Developed by SINTEF Digital
Merged pull requests:
- Refactor to new JutulDarcy release (#28) (@strene)
Renewable Energy - Geothermal Energy
- Julia
Published by github-actions[bot] 7 months ago
Fimbul.jl - v0.2.1
Fimbul v0.2.1
Enhanced Geothermal Systems (EGS) Support
New Features:
- EGS Case Setup: Added
egs()function for creating Enhanced Geothermal System simulations with fracture networks
EGS Demo Example:
- Complete EGS simulation workflow with 10-year thermal depletion analysis
- Individual fracture performance tracking and visualization
For detailed documentation and examples, visit the Fimbul.jl documentation.
Merged pull requests:
- Enhanced geothermal system (#27) (@strene)
Renewable Energy - Geothermal Energy
- Julia
Published by github-actions[bot] 8 months ago
Fimbul.jl - v0.2.0
Fimbul v0.2.0
Fimbul.jl v0.2.0 – Release Notes
Breaking Changes
make_utes_schedule
The function now expects charge and discharge periods to be specified as date ranges:- Charging:
[start_charge, end_charge] - Discharging:
[start_discharge, end_discharge]
This replaces the previous format using month names. Internally, the function delegates to a new utility,make_schedule, for processing.
- Charging:
New Features
-
ates
A new function for setting up simulation cases for Aquifer Thermal Energy Storage (ATES) systems. -
make_schedule
A utility for defining simulation schedules composed of multiple periods, each with distinct driving forces.
Merged pull requests:
- Getting started fix (#23) (@strene)
- Aquifer thermal energy storage (#25) (@strene)
- Version 0.2.0 (#26) (@strene)
Renewable Energy - Geothermal Energy
- Julia
Published by github-actions[bot] 9 months ago
Fimbul.jl - v0.1.0
Fimbul v0.1.0
Fimbul.jl v0.1.0 Release Notes
Fimbul.jl — A Julia-based toolbox for geothermal energy simulation built on JutulDarcy.jl. Written entirely in Julia, Fimbul provides specialized tools for setting up, simulating, and analyzing various geothermal energy scenarios.
Industry-relevant examples and workflows
- Geothermal energy production (
doublet.jl): 200-year geothermal energy production simulation from well doublet - BTES storage (
btes.jl): Seasonal Borehole Thermal Energy Storage (BTES) with 48 wells across six parallel sectors - HT-ATES digital twin (
egg_htates.jl): Advanced calibration workflows for aquifer thermal energy storage - Analytical verification (
analytical_1d.jl): Heat equation solver validation with convergence studies
Built on Solid Foundations
- High-performance: Built on Jutul.jl/JutulDarcy.jl for fully differentiable, high-performance reservoir simulation
- Advanced physics: Temperature-dependent fluid properties and specialized models supporting closed-loop and perforated wells
- Robust numerics: Handles realistic geomodels and complex wellbore trajectories with state-of-the art linear and nonlinear solvers
- Julia native: Fast, modern, and fully differentiable workflows
Documentation: https://sintefmath.github.io/Fimbul.jl/dev/
Source Code: https://github.com/sintefmath/Fimbul.jl
License: MIT
Developed by the Applied Computational Science group at SINTEF Digital
Renewable Energy - Geothermal Energy
- Julia
Published by github-actions[bot] 10 months ago