Releases: chaos-polymtl/lethe
Lethe v1.0.2 compatible with deal.ii 9.7
The Lethe v1.0.2 requires the latest major release of the deal.II library (deal.ii v9.7).
As part of the v1.0 release, the major components of this version are detailed in the following Journal Article for (which is available in open-access):
https://doi.org/10.1016/j.cpc.2025.109880
Lethe v1.0.2 introduces some key new features and bug fixes including:
- Five new examples : Turbulent Flow Around a Cylinder, Pseudo-2D Gas-Solid Fluidized Bed, Gas-Solid Spouted Rectangular Bed, Heat Transfer in Aligned Particles and Heated Packed Bed
- Full support for particle-particle heat transfer in the DEM simulations. This feature is illustrated in two of the aforementioned examples.
- A new feature which allows user to apply a single boundary condition to multiple boundary conditions id, greatly simplifying parameter files.
- Significant improvement to the geometric redistanciation algorithm. It is now approximatively 3-5X faster to apply this method to sharpen the interface. Furthermore, the method can also be used to generate initial conditions
- SDIRK time integration scheme for the matrix-based fluid dynamics solver (SDIRK22, SDIRK33 and SDIRK34)
- A number of bug fixes related to the of simulations in which post-processing capabilities are used. Notably, the Tables used to store the post-processing information were not all serialized and restored properly.
- Significant improvement to the compilation of Lethe. Warnings during compilation under CLang were all eliminated. Furthermore, compilation speed was improved by removing unnecessary include files.
- A great number of small bug fixes and improvements which are given in details below.
The lethe v1.0.2 release comes with a structured and stable syntax. All of the examples and test provided with lethe were re-ran with this v1.0.2 release to ensure that all of the results provided online are up to date. This version is production-ready and has been tested and validated extensively.
The full Changelog is here:
[Master] - 2025-10-14
Fixed
-
MAJOR The CFD-DEM implementation could run with adaptive time step (set adapt = true), but the DEM time step was never updated when the CFD time-step was adapted. This meant that the time progression in the DEM was actually wrong. None of our examples or previous publications use CFD-DEM with adaptive time-stepping, but this is clearly a problem. This change fixes this issue by recaclulating the DEM time-step at every coupling interval when the CFD time-step is adaptive. The portion of the critical Rayleigh time-step is also recalculated when that occurs. A test has been added to verify the adequacy of the feature. #1715
-
MINOR There was a segmentation fault when the geometric smoother was selected in the vof initial condition with a reinitialization method other than the geometric one. It was because the SignedDistanceSolver was only instantiated if the geometric reinitialization method was selected. This PR fixes this problem. #1718
[Master] - 2025-10-13
Changed
-
MINOR The CLang tidy workflow is back to ensure to ensure that Lethe is as clean as possible. Some of the small issues identified by it through the run have been fixed (notably some pass by copy instead of const reference and some range-based loop missing). #1708
-
MINOR The organization of the documentation for multiphase flows has been restructured slightly so that DEM is allowed to stand-out more. [#1713] (#1713)
[Master] - 2025-10-10
Changed
- MAJOR The CXX standard enforced for Lethe has been switched from C++ 17 to C++ 20. This change has been done to harmonize with the deal.II docker images, which are also now based on C++ 20. To further modernize the CI architecture, the docker images have been moved from Jammy (22.04) to Noble (24.04). This is a major breaking change for the tests since Noble is packaged with p4est 2.3.6 whereas Jammy was packaged with p4est 2.2. Consequently, all of the restart files and DEM files used in the tests have been regenerated using p4est 2.3.6. This is a positive change since p4est 2.3.6 is much easier to compile on modern machine than p4est 2.2 and it makes the whole testing environment a lot more portable. We have also reintroduced the deal.II major release CI. This means that Lethe is not only tested against deal.II v9.8pre (master), but is also tested against the last major stable release which is deal.II v9.7.1. This will be useful since installing the deal.II v9.7.1 is very easy on debian or ubuntu since there is a package for it. The documentation has been updated to reflect this major change and the installation instructions have been modernized to explain the capability of installing deal.II from the package manager under certain operating systems. Finally, this enables us to also rebuild docker files with every change to master and make Lethe available as a docker image. #1709
[Master] - 2025-10-06
Changed
- MINOR Unnecessary included files were removed from most
.hand.ccfiles from the repository. This should speed up the compilation on clusters. #1704
Fixed
- MINOR The timer in navier_stokes_base post_process_fd was requesting the time summary while the timer itself was running. In the recent deal.II change, this undefined behavior is asserted for. This manually opens and closes the timing at the right locations to ensure that the timer is not running anymore when the time is requested. #1705
[Master] - 2025-10-01
Added
- MINOR Added doxygen documentation for VANS and CFD-DEM solvers. #1702
[Master] - 2025-09-29
Added
- MINOR Continuing the integration of the mortar method with the matrix-free solver from #1682, this PR adds the mortar operators in the GC multigrid preconditioner. #1693
Changed
- MINOR We are targetting to uniformize the parameter names. As such, parameter declaration which are made of multiple words will not be separated by an "" anymore. This is already the case for 95% of the parameters in the code. The remaining "" will only be kept to indicate an underscore as per LaTeX syntax. This PR refactors the periodic_id and the periodic_direction parameter to follow this syntax. To keep the code stable in the short term, an alias was declared for this parameter which uses the previous syntax. #1698
Added
- MAJOR The id for the boundary condition used to support a single unsigned integer value, which meant that applying the same boundary condition to multiple ids would require setting up a large amount of boundary condition sections. This PR adds the support to specify a list of boundary id on which a boundary condition is applied. This list of boundary id is only used at the level of the parameter file and each id is still considered seperately in the simulation itself. #1697
[Master] - 2025-09-26
Fixed
-
MAJOR Fixed a bug in which an additional sparsity pattern was generated which would prevent the matrix-based code from refining past 80M cells or so on the cluster. This sparsity pattern has been removed. #1696
-
MINOR Add a virtual destructor to PhysicsScratchDataBase to remove some clang warnings. #1695
[Master] - 2025-09-23
Added
- MINOR A new reaction prefactor Gaussian model to be used with the lethe-fluid-sharp solver with the tracer physics. This new model imposes different properties at the interface and in the bulk of each phase, with a tunable width. It has been added to the tracer diffusivity as well. #1688
[Master] - 2025-09-18
Added
- MINOR The mortar implementation is added in the matrix-free solver. This PR also adds a direct MF solver to be used for debugging purposes.#1682
Fixed
- MINOR The code is modified so that the TableHandler objects are properly restored when writing checkpoints and restarting simulations for the lethe-fluid, lethe-fluid-particles and lethe-fluid-nitsche solvers. This feature was only working for the lethe-fluid/lethe-fluid-block/lethe-fluid-matrix-free solvers before. [#1673] (#1673)
[Master] - 2025-09-16
Fixed
- MINOR There was a typo in the code when load balancing. "Repartitioning" was written with two "n". #1681
Changed
-
MINOR Remove dealii 9.6 version checks in matrix-free solver. #1680
-
MINOR There was a warning that would be triggered in some of the Kokkos prototypes. These are now fixed by using the new syntax for the matrix-free operators. Furthermore, I took the opportunity to remove all the Clang warnings that would appear in prototypes. #1679
[Master] - 2025-09-13
Changed
Lethe v1.0.1 compatible with deal.ii 9.6
The lethe v1.0.1 introduces some key new features including:
- A new DEM rolling friction model
- Two new VOF redistanciation/sharpening algorithm based on geometric and algebraic redistantiation
- Improvement to the matrix-free algorithm enabling their coupling with heat transfer, but also non-Newtonian flows
- Minor bug fixes and improvement
The lethe v1.0.1 release comes with a structured and stable syntax. All of the examples and test provided with lethe were re-ran with this v1.0.1 release to ensure that all of the results provided online are up to date. This version is production-ready and has been tested and validated extensively.
Change Log
[Master] - 2025-05-27
Fixed
- MINOR The output of the mass conservation table in VOF was resulting in a seg fault in 3D. It was permanently fixed by adding the missing column name in 3D. #1541
[Master] - 2025-05-26
Changed
-
MINOR The rolling friction used in the hopper example as been change from 0.09 to 0.1776 to be equivalent to the one used in the reference article. This change will slightly affect the results from the validation script. #1539
-
MINOR The particle_particle_heat_transfer files are changed to calculate heat transfer for both particle-particle and particle-wall contacts with the same functions, as the calculation is very similar. #1534
[Master] - 2025-05-21
Fixed
- MINOR The rotor mesh rotation in the mortar method context was being done by rotating the triangulation. This PR changes this so that the mapping is rotated instead. #1536
[Master] - 2025-05-20
Fixed
- MINOR The functions used to define constraints in navier_stokes_base were calling reinit() without passing the locally_owned_dofs. This caused the constraints object to not have the updated locally owned DoFs in each process. This has now been fixed. #1533
Changed
- MAJOR The architecture of the code for particle-wall contacts was changed to reproduce the one for particle-particle contacts and remove code duplication.
The particle_wall_contact_info has been changed to a struct instead of a class and normal_overlap, tangential_relative_velocity and normal_relative_velocity_value are calculated on the fly and not stored in contact_info anymore. #1520
[Master] - 2025-05-09
Added
- MAJOR Added the buoyancy term to the matrix free operators to be able to support two way coupling between the heat transfer solver and the matrix-free fluid solver. In the GMG preconditioner the temperature solution is also transfered to all the MG levels. #1524
Added
- MINOR Mortar: the matrix-based solver is now able to read 'gmsh' files, and a function to compute the rotor radius and the number of subdivisions at the rotor-stator interface has been added. [#1526] (#1526)
Added
- MAJOR Added the buoyancy term to the matrix free operators to be able to support two way coupling between the heat transfer solver and the matrix-free fluid solver. In the GMG preconditioner the temperature solution is also transfered to all the MG levels. #1524
Added
- MINOR Some of the functions related to the mortar coupling have been refactored, and new functionalities have been added. For instance, the matrix-based solver is able to read 'gmsh' files, and the matrix-free solver is able to read data from the mortar subsection. A new coupling operator has been added. [#] (https://github.com/chaos-polymtl/lethe/pull/)
[Master] - 2024-05-07
Fixed
- MINOR The solution preceding the algebraic interface reinitialization time-step is now also regularized using the same process to ensure consistency in the time integration scheme. This is done by replacing the relevant previous solution with the reinitialized previous solution. A new application-test (
vof-algebraic-interface-reinitialization-advected-circle-bdf2-frequency-check) has been added to test this implementation. Also, a new validity map has been added to the VOFSubequationInterface. This ensures that subequations are solved using the correct VOF solution and in the right order. Subequations dependency checks are also made before solving each subequation. #1507
[Master] - 2025-04-30
Added
- MAJOR Multiphysic DEM simulations can now be launched with solver type dem_mp to follow the evolution of the temperature of the particles. The temperature is also added in the properties printed by application tests for the solver type dem_mp. #1514
[Master] - 2025-04-25
Changed
- MINOR The find_cell_neighbors is now templated with a boolean so that neighboring cell vectors can be reciprocal, which means that vector i and j will contain cell j and i, respectively. #1512
Fixed
- MINOR The Jacobian of the non-Newtonian GLS assembler has an error in the advection term. This has been fixed. #1513
[Master] - 2025-04-24
Added
- MINOR This PR Adds the find_line_sphere_intersection in lethe_grid_tools for use in the case of ray-particle intersection for the profilometry hackathon project. This function simply evaluates all intersection points between a line and a sphere. #1511
Added
- MAJOR Adds an experimental prototype that uses the DG method to solve the VOF equation. At the present stage, this prototype is compatible with surface tension, but does not support any of the redistanciation mechanism nor the smoothing of the initial condition. Furthermore, it does not yield satisfactory results when BDF2 is used as a time integration scheme. This feature is thus very experimental. #1510
[Master] - 2025-04-24
Changed
- MAJOR The parameters of the function which calculates the contact force, torque and heat transfer rate between particles were changed. Parameters torque, force and heat_transfer_rate were replaced by a class object ParticleInteractionOutcomes where they are stored. A function to resize these containers is also implemented in the class. #1504
[Master] - 2025-04-22
Added
- MINOR This PR completes the signed distance solver by filling the (almost) empty architecture of the SignedDistanceSolver implemented in #1451. Its coupling in the VOF solver (geometric reinitialization method) is also completed. The implemented routines follow the one of the already existing vof_advection prototype. #1497
[Master] - 2025-04-17
Added
- MAJOR The template parameter PropertiesIndex was added to the insertion classes to initialize the temperature only in multiphysic DEM. The template parameter dim was added to InsertionInfo (Parameters Lagrangian) to initialize the temperature with a parsed function in the parameter file for plane and volume insertion, which were modified accordingly. #1491
[Master] - 2025-04-16
Added
- MAJOR The mortar feature from #1462 started to be integrated into the lethe-fluid application. Together with #1481, a new mortar subsection is now available the parameters file. Rotor and stator meshes generated using dealii grids are merged into a unique triangulation; coupling at the interface is not yet considered. #1490
[Master] - 2025-04-14
Changed
- MAJOR The "tangential overlap" terminology is a misused of language since an overlap means that two things are occupying the same physical space which is not the case this vector. For this reason, this terminology was replaced by "tangential displacement" every where in the code and in the documentation. #1492
[Master] - 2025-04-13
Fixed
-
MINOR In the sharp immersed boundaries solver, added a condition that clears the combined_shape cache if a particle has moved. This fixes a bug that would lead to an incorrect level set function when particles would move accross subdomains. This only affected the visualization of the particles. #1479
-
MINOR The Rayleigh-Benard convection example would sometimes not work correctly on some machines and instead generate a static solution. This has been fixed by adding an initial condition in which a linear temperature profile is imposed in the direction orthogonal to the gravity (along the x axis). This also increases the robustness of the example. #1496
[Master] - 2025-04-10
Added
- MINOR Added an example demonstrating the use of the Method of Manufactured Solutions (MMS) with the incompressible solver, using quadrilateral and simplex meshes at varying resolutions. #1461
[Master] - 2025-04-07
Added
- MINOR The GMG preconditioner in the matrix-free VANS solver now uses the void fraction on every level instead of only the finest one. [#145...
Lethe v1.0 - compatible with deal.ii 9.6
The lethe v1.0 release marks the transition of lethe to a numbered released format. Following numbered releases will be generated more often and we aim to release a numbered version 4 to 6 times per year or when sufficient changes have been realized.
The lethe v1.0 release comes with a structured and stable syntax. All of the examples and test provided with lethe were re-ran with this v1.0 release to ensure that all of the results provided online are up to date. This version is production-ready and has been tested and validated extensively.
The lethe v1.0 was made possible from contributions of many people, including but not limited to:
Amishga Alphonius Antoine Avrit Lucka Barbeau Valérie Bibeau Bianca Bugeaud Audrey Collard-Daigneault Carole-Anne Daunais Toni El Geitani Olivier Gaboriault Simon Gauvin Shahab Golshan Olivier Guévremont Marion Hanne Jeanne Joachim Rajeshwari Kamble Martin Kronbichler Maxime Landry Pierre Laurentin Charles Le Pailleur Oreste Marquis Ghazaleh Mirakhori Thomas Monatte Peter Munch Victor Oliveira Ferreira Hélène Papillon-Laroche Paul Patience Laura Prieto Saavedra Catherine Radburn Philippe Rivest Mikael Vaillant
What's Changed
[Master] - 2024-11-28
Changed
- MINOR The squared term that was added in the correction direction vector of the VOF DCDD stabilization #1103 has been removed after observing regression in computed results of VOF examples. #1390
[Master] - 2024-11-21
Changed
- MINOR The default value for the particle weight for the load balancing was changed from 10K to 2K. #1347
[Master] - 2024-11-18
Fixed
-
MINOR Time step can now be changed after a restart if adaptive time stepping is disabled. #1343
-
MINOR Application of the immersed solid tanh diffusivity model is now faster thanks to using optimizations from the Shape class. #1343
-
MINOR The specific heat model in BDF2 was not protected against a division by zero (dH/dT). A tolerance is now added to the denominator (dH/(dT+tol)) to avoid this problem. #1367
[Master] - 2024-11-11
Changed
- MAJOR The time step in the simulation control class is no longer modified by default to be exactly the end time of the simulation. Moreover, the time step is no longer modified to output Paraview files at certain times, therefore, the time output for transient simulations was refactored. #1336
Added
- MINOR Added bubble detachment in liquid shear flow example to the documentation #1334
[Master] - 2024-11-04
Changed
- MINOR Curvature L2 projection within the VOF auxiliary physics now go through the VOF subequations interface. #1336
Added
- MINOR Added capillary rise example to the documentation #1328
[Master] - 2024-11-03
Fix
- MINOR Force chains between local-ghost particle were being written multiple time when running in parallel. An arbitrary rule was added so that only one of the process is writing the force chain.#1342
Fix
- MINOR It was not possible to differentiate cohesive and repulsive forces with the force chains since the code was using the ".norm()" function. Now, the force chain calculation uses the scalar product between the normal force and the normal unit vector. #1339
[Master] - 2024-11-02
Fix
- MINOR The checkpoint files generated from the lethe-particles solver were now incompatible with the CFD-DEM solvers (lethe-fluid-particles and lethe-fluid-vans) since the prefix are now ending with a "_0" or "_1". The "read_dem" function now reads the ".checkpoint_controller" file at first. #1338
[Master] - 2024-10-31
Changed
- MAJOR The way Lethe manages boundary conditions was changed dramatically. As of this change, every boundary condition defined in the triangulation (the mesh), but have a corresponding boundary condition defined in the parameter file for every physics that is enabled. This will be tested by the solver at run time. For example, if a mesh containing four boundary conditions (id 0, 1, 2, 3) is used, then a boundary condition must be defined for all of these ids. In the past, a default boundary condition was automatically applied to these boundaries. As of this change, there is no default boundary condition. Although this change requires more work and slightly longer parameter files, it has enabled us to extensively refactor and simplify the way boundary conditions are managed. It also greatly enhances the sanity checks we can do with boundary conditions.
[Master] - 2024-10-28
Added
- MINOR The DEM solver generates two versions of checkpoint files alternately, so that at least one version is not corrupted when the simulation stops during a checkpoint procedure. #1327
[Master] - 2024-10-22
Changed
-
MAJOR Secondary equations (subequations) solved within the VOF auxiliary physics now go through a subequations interface similarly to how auxiliary physics go through the multiphysics interface. At the moment, only the implementation for the L2 projection of the phase fraction gradient has been refactored. Furthermore, only a linear equation solver has been implemented so far. #1318
-
MAJOR All scratch data objects now inherit from a base class, namely PhysicsScratchDataBase. In a similar manner, all base assemblers are now specialized types of the PhysicsAssemblerBase. #1318
[Master] - 2024-10-18
Added
- MINOR Create compiler flag to use float precision for the geometric multigrid preconditioner in the matrix-free application. #1319
[Master] - 2024-10-16
Changed
- MINOR Change default coarse grid solver to a direct solver for the geometric multigrid preconditioner in the matrix application. #1322
Fixed
- MINOR Added missing flag to update quadrature points for the FEFaceValues of the tracer physics. #1323
Added
- MAJOR Tracer physics can now be solved by using a discontinuous Galerkin method instead of a continuous Galerkin method. #1320
[Master] - 2024-10-15
Added
- MINOR Five examples of the Cahn-Hilliard-Navier-Stokes solver were added to keep a trace of the work made with this solver. #1307
[Master] - 2024-10-11
Fixed
- MAJOR Unexpected segmentation faults were occurring when using large simulation with a periodic boundary condition. The cause of this bug was identified and fixed. It was related to the resizing of the force, torque and displacement vectors that were not considering the ghost particles when resized. #1316
[Master] - 2024-10-09
Changed
- MAJOR The boundary conditions for the fluid dynamics applications: matrix-based, matrix-free and block applications are now implemented only in the NavierStokesBase class. #1313
[Master] - 2024-10-04
Changed
- MINOR Values outputted on the terminal have been uniformized using the log precision parameter. #1310
[Master] - 2024-10-03
Fixed
- MINOR Simulations with time-dependent boundary conditions would not restart correctly in the matrix-free solver because the initial guess of the solution was reset to zero. This is fixed now, and the initial guess of the solution is identical. #1302
Changed
- MINOR The parameter "Lagrangian post-processing" has been renamed "lagrangian post-processing" to ensure that our parameter nomenclature (all lowercase) is homogenous. #1303
[Master] - 2024-09-30
Fixed
- MINOR Simulations with time-averaging of the velocity fields were unable to restart when the domain was very large due to the fact that the restart vectors were read into the wrong vectors (locally_owned instead of locally_relevant). This PR fixes this. This also ensures that Lethe is able to restart with a different core-count than what was used to generate the restart file. #1300
[Master] - 2024-09-26
Changed
- MINOR Made discontinuity-capturing directional dissipation (DCDD) stabilization optional for the VOF auxiliary physics. #1296
[Master] - 2024-09-25
Changed
- MINOR The solutions for the mulitphysics are updated right after the non linear solve of the fluid dynamics matrix free solver. This ensures that the physics solved after the fluid dynamics have the most recent solution. #1294
Changed
- MINOR The tracer gradient used for DCDD stabilization calculations is now from the previous solution, which reduces the number of non-linear iterations. [#1293](https://github.com/chaos...
Lethe v0.1 - Compatible with deal.II 9.1.1
This is the Lethe v0.1 release. It is the last release to be officially compatible with the 9.1.1 version of deal.II.