MOOSE Newsletter (February 2026)
Mailing List is Back!
We will utilize this mailing list as a platform for notifying users of announcements on the MOOSE GitHub Discussions page.
Gmail Users: Just click the "Join group" button on the page linked above. Others must send an email to:
You can expect occasional messages about things like newsletters (once a month) and upcoming trainings and conferences. This list will remain low traffic, with only a few messages a month, and is not enabled for discussion. Announcements made there will link to the corresponding GitHub Discussions post for further engagement and discussion.
MOOSE Improvements
Capabilities Expansion
The use of the Capabilities system within the TestHarness has been expanded significantly in idaholab/moose#32294. Many test specification parameters that allow for the filtering or skipping of tests have been removed and must now use the capabilities test specification parameter. The use of these removed parameters will now produce an error with helpful information on what to specify as a capability instead.
For example, what was previously:
[Tests]
[test]
type = RunApp.i
input = input.i
min_ad_size = 50
method = opt
platform = linux
vtk = true
[]
[]
Must now be described as:
[Tests]
[test]
type = RunApp.i
input = input.i
capabilities = 'ad_size>=50 & method=opt & platform=linux & vtk'
[]
[]
In the future, many more test specification parameters will be transitioned to use the capabilities parameter, such as: min_parallel, max_parallel, min_threads, max_threads, heavy, and valgrind.
Distributed mesh support expansion
The following objects now support the use of a distributed mesh:
the BreakMeshByBlockGenerator can be used to split meshes at interfaces.
the SolutionUserObject can now be used to load a Nemesis file in a distributed manner. The partitioning of the solution mesh must match the partitioning of the mesh when requesting values from the solution file.
Warning summary table
A table is now printed at the end of the simulation summarizing all the warnings that occurred. The warnings are identified using the name of the objects that reported them. The time step or steps on which the warnings occurred are also reported. Due to limitations in the interface used to manage this table, the exact text of the warning is not reported in the table, as this text could depend on each occurrence.
FullSolveMultiApp fixed point iteration optimization
When using fixed point iterations between multiapps, there was an option to keep the solution at each restore (the keep_solution_during_restore parameter). This triggered a copy of the solution vector from the end of a fixed point iteration to the initial guess for the next fixed point iteration. However, this solution vector was then copied to create the old state of the variable which is notably used to compute the time derivative. There is now a parameter to allow or prevent this copy, depending on the type of simulation being restarted at each fixed point iteration.
This new parameter "update_old_solution_when_keeping_solution_during_restore" is mandatory when using keep_solution_during_restore because either behavior may be desirable in different circumstances.
Minor changes
The TimeIntegratedPostprocessor has been modified to allow the implementation of additional time integration methods, as needs arise, for the time integration of the postprocessor.
The CombinedVectorPostprocessor has been added to be able to append and sort vectors from multiple vectorpostprocessors. If the vectors are not the same length between the two postprocessors, filler values are appended.
Block names and ids are now conserved when extracting one or more subdomains to form a mesh in the BlockToMeshConverterGenerator.
MFEM Backend improvements
MultiAppMFEMCopyTransfer has been extended to provide complex variable transfers between MFEM apps. (idaholab/moose#32017)
A couple new vector postprocessors, MFEMLineValueSampler and MFEMPointValueSampler, add support for sampling MFEM variables at arbitrary points using GSLIB, opening the door to convert many of the existing XMLDiff tests over to CSVDiff tests, significantly reducing output sizes and unlocking parallel executions. (idaholab/moose#31250)
Bug fixes relating to coefficient projection and variable ordering in mixed bilinear forms, and device synchronization improvements. (idaholab/moose#32360 and idaholab/moose#32097)
Kokkos Backend improvements
A few bugs were fixed in the Kokkos-MOOSE tagging system, and tagging-based Eigenvalue calculations are now supported with Kokkos-MOOSE.
Moose::Kokkos::GeneralUserObjectandMoose::Kokkos::GeneralPostprocessorwere added to support automatic dependency resolution of general user objects with Kokkos-MOOSE user objects. Manual resolution of dependencies between MOOSE and Kokkos-MOOSE user objects is also supported throughexecution_order_groupparameter.Several improvements were made in the Kokkos-MOOSE material system:
A new material property concept called "on-demand" material property was added. An on-demand property is only allocated when there are its consumers other than its declaring material, which aids in saving memory usage and computing time for unused material properties. When populating an on-demand material property in a material, its validity should always be checked analogously to the optional material properties.
constant_onparameter is now respected by Kokkos-MOOSE materials. Material properties declared by materials withconstant_onset toELEMENTorSUBDOMAINonly allocate storage for elements or subdomains. It helps reducing memory usage and computing time for material properties that do not need to be computed and stored for every quadrature point.Material properties can now have different dimension sizes on different subdomains, while the dimension itself should be the same across the domain. For example, a material property can be a (2, 2) matrix on subdomain A and a (3, 3) matrix on subdomain B. However, boundary-restricted material properties should still have the same dimension size across the domain.
MOOSE Bug Fixes
Coupleable::coupledAllDofValuesnow correctly declares the variable dependencies. These dependencies are for example used to order the execution of auxiliary kernelsFunctor material property output will now use the property name rather than the parameter name for the name of the variable storing the output
Three tests which would fail on ARM Macs due to floating point calculation differences were made more robust.
MOOSE Modules Changes
Fluid Properties
Water97FluidProperties was extended to provide the temperature computed from pressure and enthalpy in region 4 and 5 as defined by the IAPWS-97.
libMesh-level Changes
2026.02.13_6232e98_0 Update
Added
MeshBase::Preparationclass, and setter APIs, supporting more fine-grained alternatives toMeshBase::is_prepared(). Mesh generation and modification code can now query whether a mesh is prepared in specific ways, and mark a mesh as unprepared in specific ways, allowing for much more efficient use of partially-prepared meshes in complex mesh generators and systems of mesh generators.MeshGeneration::build_square()` now supports
C0POLYGONelements, building a hexagonal mesh on a rectangular domain, with triangles and quads at boundaries to fit.GhostingFunctorsubclasses must now overrideclone()in non-deprecated builds. This allows the library to preserve their functionality when cloning a mesh.Added more
NemesisIOgetters, similar toExodusII_IOAPIs, to enable MOOSESolutionUserObjectcompatibility with distributed mesh+solution filesSystem::project_solution and project_vector can now optionally take a predicated element iterator range, to project on a subset of a mesh.
Added
libmesh_config.hentries to query static library build settingsAdded
Elem::operator!=to test (up to reordering) element equalityAdded
Elem::total_family_tree_by_side()helper functionconfigure --with-hdf5-requirednow attempts to detect HDF5 in existing paths if no specific HDF5 paths are specified.Added store_dirichlet_operators option for reduced_basis training
Compatibility with newer OSX SDKs
Fixes for MetaPhysicL compatibility with more-standards-conforming Apple clang
Workarounds for libMesh::Xdr compatibility with less-standard Apple XDR
Assorted bug fixes
Backported fix for valgrind compatibility to contrib ExodusII v8.11
Fixed regression in builds with PETSc but without Hypre
Fixed copying of
interior_parentpointers in certain corner cases when e.g. stitching or cloning meshes.Fixed copying of AMR
children_on_boundarysetting when copyingBoundaryInfoFixed multiple cases of
remote_elemneighbors not being made into non-remoteElem *links after a previously-remote element is received during repartitioning of refined meshesWeakened overzealous assertion on distributed meshes with
interior_parentpointersEnsured that cached data remains up to date after various mesh and boundary data operations
Infinite-element builder code is now compatible with more general unstructured distributed meshes.
InfQuad::is_child_on_side()is no longer completely broken.
2026.02.18_f8a1758_0 Update
Bug fix for
PetscVector(Vec)constructor for parallel non-VECMPIvectors. This fixes a regression in the use of other parallel-capable (e.g.-vec_type kokkos) implementations with ourSNESsolver interfaces on multiple ranks.Bug fix for
FEMContextinitialization of data for non-local (outside anyElem) data.
PETSc-level Changes
The PETSc submodule has been updated from version 3.24.3 to 3.24.4. Find the GitHub generated set of changes here: v3.24.3...v3.24.4
Conda Package Updates
moose-tools 2026.02.05
Pin python package
coverageto 7.13.2 (see #32313)
moose-dev 2026.02.05
Forced update due to
coveragepinning inmoose-tools 2026.02.05
moose-wasp 2025.09.19 02960f1_build_2
Forced update due to reformatting of pyhit
moose-dev 2026.02.10
Forced update due to reformatting of framework python and pyhit
moose-mpi 2026.02.16
Update compiler pins
moose-tools 2026.02.16
Update black to 26.1.0
Update ruff to 0.15.1
Remove old unused version requirements on git-lfs and matplotlib-base
moose-seacas 2025.10.14_0
Rebuild due to new compiler pins in
moose-mpi 2026.02.16
moose-wasp 2025.09.19_02960f1_3
Rebuild due to new compiler pins in
moose-mpi 2026.02.16
moose-libmesh-vtk 9.6.0_0
Update VTK
v9.5.2...v9.6.0Store libmesh configure and build logs in install
moose-petsc 3.24.4_0
Update PETSc
v3.24.3...v3.24.4
moose-libmesh 2026.02.13_6232e98_0
Update libmesh
502d428...6232e98
moose-dev 2026.02.16
Updated dependencies per above
moose-wasp 2025.09.19_02960f1_4
Rebuild due to new black format in
conda/wasp/test_pyhit.py
moose-dev 2026.02.17
Rebuild due to
moose-wasp 2025.09.19_02960f1_4bump
moose-libmesh 2026.02.13_6232e98_0
Update libmesh
6232e98...f8a1758
moose-dev 2026.02.20
Bump due to dependency updates
Apptainer Package Updates
moose-dev:2026.02.05
Forced update due to
coveragepinning inmoose-tools 2026.02.05
moose-dev:2026.02.10
Forced update due to reformatting of framework python and pyhit
moose-mpi:2026.02.25
Update base OS image
Update mpich to 5.0.0 for clang, clang_min, cuda, and gcc_min variants
Update mpich to 4.3.2 for intel variant
Update openmpi to 5.0.9
Add rocky9 variant with gcc 13.3.3 mpich 4.3.2, and openmpi 5.0.9
moose-petsc:3.24.4_0
Update PETSc
v3.24.3...v3.24.4
moose-libmesh:2026.02.13_6232e98_0
Update libmesh
502d428...6232e98Store libmesh configure log in install
moose-dev:2026.02.16
Updated dependencies per above
Update code-server to 4.109.2
Update gperftools to 2.18
Update go for gperftools build to 2.16.0
Update miniforge to 26.1.0-0
Update pytorch to 2.10.0
moose-dev:2026.02.17
Rebuild due to
moose-wasp 2025.09.19_02960f1_4bump
moose-libmesh:2026.02.18_f8a1758_0
Update libmesh
6232e98...f8a1758Set
--with-nvtxand--enable-perflogwhen building with cuda (see #32039)
moose-dev:2026.02.20
Bump due to dependency updates