Recent Releases of Fimbul.jl

Fimbul.jl - v0.3.5

Fimbul v0.3.5

Diff since v0.3.4

Fimbul v0.3.5

New features

Fractured Thermal Energy Storage (ftes)

  • New ftes case 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 egs case now uses cut_mesh with polygonal fracture cuts (PolygonalSurface), allowing more general fracture geometries.
  • examples/production/egs_demo.jl now compares varying well spacing and effect of angled fractures

Coaxial BHE

  • New deep coaxial_bhe case, 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 in egs and ftes.
  • 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_fractures and strike_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

Diff since v0.3.3

Release Notes v0.3.4

Improvements

  • Reinjection Target: Updated all cases (ATES, BTES, geothermal doublet, EGS) to use the new simplified ReinjectionTarget constructor from JutulDarcy, which no longer requires a rate argument.

Bug Fixes

  • Removed stray println debug 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

Diff since v0.3.2

Release Notes v0.3.3

Bug Fixes

  • Convex Hull Algorithm: Fixed a termination issue in get_convex_hull where 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

Diff since v0.3.1

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.

Improvements

  • Geometry Representation:
    • Switched from Vector{Tuple} to Matrix (2×N / 3×N) representation for all geometry and meshing operations, improving consistency and performance.
  • Case Setup:
    • Refactored geothermal_doublet(), ags(), and egs() to use the new layered_reservoir_domain() and matrix-based geometry.
    • Updated EGS case to pass well direction to compute_peaceman_index and setup_well for more accurate well modelling.
  • Code Organization: Moved case utilities into a utils/ subfolder.
  • Citation: Added CITATION.cff with reference to GET 2025 conference paper.

Bug Fixes

  • Updated EGS case based on well modelling bugfix in JutulDarcy.

Testing

  • Added tests for layered_reservoir_domain setup.
  • 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

Diff since v0.3.0

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

Diff since v0.2.1

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: Function make_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() and setup_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 setup
  • setup_btes_well() - BTES well configuration
  • setup_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

Diff since v0.2.0

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

Diff since v0.1.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.

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