Version Notes
As new versions of LAVA are released you can find information on the fixes and features added by each version here.
1.0.1
LAVA 1.0.1 is a patch release with bug fixes, input naming cleanup, and general improvements across all three solvers.
Cartesian solver: Bug fixes address time-averaging EMA restart correctness, HWCNS positivity logic, multiphase nozzle and equilibrium input validation, and immersed boundary and AMR robustness. The default convective flux function changes from Rusanov to HLLEC for improved low-Mach accuracy. New features include volume subset output, an overhauled turbulence transition sensor, the wmpartialslip immersed BC, and new IB diagnostic surface output variables.
Unstructured solver: Bug fixes address time-averaging reset correctness, wall-model TKE sensor numerical stability, CFL diagnostic inconsistency, surface output ordering across MPI configurations, and problem cell output with high rank counts. New features include wall-normal line probe output for u⁺/y⁺ post-processing, anisotropic LES Vreman filter size, solution-linked surface CGNS output, compact binary BC statistics, automatic Jacobian epsilon selection, and problem-cell CGNS dumps on abort.
Cartesian and Unstructured: Exponential moving average (EMA) time-averaging inputs are renamed from ...timescale... to ...window.... Old names still accepted with a deprecation warning. A nozzle ASCII radial table validation fix and the new LAVAParaviewPlugin.py for ParaView mask visualization apply to both solvers.
Curvilinear solver: New extrapolation order and type options for viscous and inviscid wall boundary conditions.
Cartesian Solver (CART)
- Bug fix: Cart surface time-averaging EMA lost its sample timestamp across restarts, causing an inflated alpha on the first post-restart sample.
prevTimeis now persisted per surface in the restart file. - Bug fix: Positivity-preserving logic for HWCNS interpolation was not applied uniformly across all state components. The scheme now treats all state components equally.
- Bug fix: Multiphase nozzle with
asciiLineReadSpeciesnow requires the largest file mass fraction to matchispecies. - Bug fix: Improved robustness of
multiphaseequilibriumfunctionality for multiphase state input to a wide range of user's state input. - Bug fix: Improved robustness of immersed boundary and adaptive mesh refinement functionality.
- Input rename: AMR error-metric EMA inputs renamed:
errormetricexponentialmovingaveragetimescalectu→errormetricexponentialmovingaveragewindowctu(and...timescale→...windowfor the physical-time variant). Old names deprecated. - The default convective flux function has changed from Rusanov to HLLEC. HLLEC provides better accuracy for low-Mach-number flows while remaining robust for high-speed and shocked flows. Cases that explicitly set
fluxfunctionin their input file are unaffected. - Volume subset output: support for writing subsets of the domain (box type) with independent output intervals per subset.
- Transition sensor overhaul: improved robustness, OpenMP threading, and restart support for the turbulence transition sensor.
- New
wmpartialslipimmersed BC: applies wall-model-driven slip velocity at immersed wall cells, improving consistency with the convective operator. The transition height between slip and no-slip behavior (partialslipheight, in wall units y⁺) is configurable; the default is y⁺ = 100. Adds a newpartialslipsurface output variable (0 = no-slip region, 1 = slip region) and suppressesqdot/turbulencesurface outputs for BC configurations where they are not applicable. - Removed a partial-slip wall BC variant that was not reliable for bodies with thin geometry (e.g. thin fins or plates). The
wmpartialslipBC should be used instead. - New surface output variables
NormalIntoFluidX/Y/Z,Component, andBodyVelocityX/Y/Zare available to help diagnose immersed boundary behavior. These can be added to the surface output variable list in the input file.
Unstructured Solver (UNST)
- Bug fix: When time averaging is reset mid-run using
resetTimeAvg, the sample interval timer was not zeroed, causing the first new sample after the reset to carry an incorrect time weight. This is now corrected. - Bug fix: Wall-model turbulence-transition TKE sensor used a numerically unstable variance formula (
E[U²]−E[U]²). Replaced with Welford online variance, eliminating catastrophic cancellation for high mean velocities. - Bug fix: Small cell filtering diagnostic was inconsistent with the CFL calculation, causing unexpectedly small time steps in rare cases.
- Bug fix: Surface output (faces and nodes) is now written in a consistent order regardless of how the mesh is distributed across MPI ranks, ensuring identical surface files when rerunning with a different processor count.
- Bug fix: Problem cell output on abort or startup failed when the number of MPI ranks exceeded the number of problem cells. This is now handled correctly.
- Wall-normal BL probe: line probes now support
wall normal = truemode. Output includes wall shear stress, density, and viscosity at the projected foot for u+/y+ post-processing. - LES Vreman subgrid-scale model now uses anisotropic filter size by default.
- Reduced conservatism in the CFL calculation, yielding larger time steps.
- Surface CGNS output now uses solution linking by default: a single mesh file (
Unst.surf.meshLink.cgns) is written once and each solution file links to it, avoiding redundant geometry data. Disable withsplitgridandsolution = falsein thesurface {}output block. - BC statistics output replaced: per-step ASCII
bc_stats_NNNNNNN.datfiles are replaced by a continuous binarysurface/bc_stats.iterfile (same format asmonitor/unst.data.iter). Asurface/bc_name_map.txtmapping file is written once at startup. Mach-driven pressure history is similarly written tosurface/mach_driven_pressure_BCN.iter. Both files support seamless restart continuation. - When running with implicit time stepping or RANS simulation with the numerical Jacobian selected, Jacobian epsilon now defaults to automatic selection based on the magnitude of the solution vector entries.
- During startup and when the unstructured solver aborts in
robustmode, it now dumps out the problem cells to a CGNS file in the volume output directory with the flow solution. - Surface output is now written in deterministic global id order. Split grid and solution for surface output is now false by default.
Cartesian and Unstructured Solvers (CART/UNST)
- Bug fix: Nozzle ASCII radial table length must match
asciiLineTimeStart/Stop/Skipandnumberofradialpoints. - Input rename: Exponential moving average (EMA) time-averaging inputs renamed:
exponentialmovingaveragetimescalectu→exponentialmovingaveragewindowctu(physical-time variant:exponentialmovingaveragetimescale→exponentialmovingaveragewindow). Old names still accepted with a deprecation warning. - Added
LAVAParaviewPlugin.py(inbin/) with Process Cart Mask and Process Unst Mask filters for extracting individual bit flags from LAVA cell mask arrays in ParaView.
Curvilinear Solver (CURV)
- Bug fix: Fixed bug in restart file reading field mapping between variables available in restart file and those required for restart and read into tile. Fixed bug in unsteady simulation restarts using the SAsLM2015 correlation-based turbulence transition model.
- Add normal momentum and constant entropy extrapolation options for
BCWallInviscid,BCWallViscous, andBCWallViscousIsothermalwalls when using a wall model. - Add linear extrapolation option for
BCExtrapolateboundaries. - Add extrapolation order options for
BCWallInviscid,BCWallViscous, andBCWallViscousIsothermalwalls when using a wall model. Maintains backward compatibility withwallModelOrder.
Tools (TOOLS)
- Bug fix: Fixed broken symlinks for some mesh utility tools that were pointing to non-existent binaries.
1.0.0 (2026/03/19)
First public release of LAVA