MOOSE Newsletter (January 2026)
MOOSE Improvements
Added the option to pass command line arguments to all
RunApptesters in theTestHarness, via--append-runapp-cliarg(idaholab/moose#31935 and idaholab/moose#32239).For example,
--append-runapp-cliarg="foo=bar"will pass the command line optionfoo=barto all tests that run a MOOSE application.
The test harness now explicitly checks for a specific exit code on non-zero exits, instead of allowing any non-zero exit codes. The
should_crashtest specification parameter was deprecated and replaced withexpect_exit_code. Test specifications that setshould_crash = Truenow implicitly setexpect_exit_code = 1. Applications should remove the use ofshould_crashwhen possible, replacing it withexpect_exit_code.When assigning a name string to a MooseEnum (perhaps most notably the order parameter), if such a name does not exist amongst the enumerated items, and if it is plainly parseable as an integer, its existence is also now checked amongst the values of the enumerated items, allowing specifications such as
order = 3instead oforder = THIRD. (idaholab/moose#32164)MOOSE now supports the hypre Auxiliary-space Maxwell Solver (AMS) and the hypre Auxiliary-space Divergence Solver (ADS) for curl-curl and grad-div problems, respectively, via its well-known PETSc interface. A new DivDivField kernel has been added to allow discretizations of grad-div problems. (idaholab/moose#32233)
MFEM Backend improvements
All hypre AMS problems, including singular problems, are now verified to correctly execute on CUDA GPUs. (idaholab/moose#32197)
Time-dependent problems are now solved in terms of the state of the system at the next timestep, instead of time derivatives, using only MFEM's new capabilities. (idaholab/moose#32233)
UserObject and Postprocessor support in Kokkos-MOOSE
Kokkos-MOOSE now supports GPU-based UserObjects and Postprocessors. Kokkos-MOOSE postprocessors leverage the reducer concept of Kokkos and have substantially different interfaces from the original MOOSE postprocessors. The Kokkos-MOOSE VectorPostprocessors and Reporters will also adopt the same reducer interface and be added soon. (idaholab/moose#31858)
Mesh generation capabilities additions
A mesh generator was added to project a sideset onto a level-set surface. Level-set surfaces are defined implicitly with an equation, such as f(x,y,z) = 0. See ProjectSideSetOntoLevelSetGenerator. (idaholab/moose#32167)
A mesh generator was added to delete elements from a mesh in the proximity of another mesh. See DeleteElementsNearMeshGenerator. (idaholab/moose#32139)
Added ability to detect steady-state conditions using a post-processor
PostprocessorSteadyStateConvergence was added for detecting steady-state conditions using a post-processor value. This is similar to PostprocessorConvergence but lacks iteration-count parameters, which are often inappropriate for steady-state detection. (idaholab/#32242)
Allowed ChangeOverTimePostprocessor to estimate time derivative
ChangeOverTimePostprocessor was modified to allow division of the change in a post-processor value over a time step by the time step size, yielding an approximation of the time derivative. One use case is to use this quantity to check convergence to steady-state conditions (see the new PostprocessorSteadyStateConvergence). (idaholab/#32242)
MOOSE Modules Changes
Added passive scalar transport support in thermal hydraulics module
The ability to model the passive transport of quantities, like concentrations of molecules, has been added to the Thermal Hydraulics module. This support has been added to the components FlowChannel1Phase, SolidWall1Phase, InletMassFlowRateTemperature1Phase, and Outlet1Phase. (idaholab/#32149)
libMesh-level Changes
2026.01.14_887039c_0 Update
Preliminary support for configuring with NVTX, and for triggering NVTX profiler events via the PerfLog
Added
TypeTensor::is_hpd()to report whether a tensor is Hermitian Positive-DefiniteDeprecated
boostcopy::enable_if_c; use thestd::version instead.Fixed segmentation faults in cases where uncaught exceptions (including from any libMesh and MOOSE errors and assertion failures) are unhandled and reach the C++ terminate handler
Fixed
GhostPointNeighborsbehavior in cases where the new disjoint-boundaries feature is used on a distributed mesh with more elements than MPI ranks - this was blocking a major update in the functionality underlying the MOOSEBreakMeshByBlockGenerator.Free all memory (and keep valgrind happy) when running a subset of tests in unit test driver app
Fixed nvcxx compiler warnings
Fixed issues with HDF5 linking on some systems
Fixed out-of-bounds access in
VariationalMeshSmootherin 1D-only and 2D-only configurationsClarified comment in
JumpErrorEstimatorAdd support for hypre AMS and ADS
TIMPI update:
Fix non-blocking string
receive()Added more all-reduce APIs, for bitwise and logical operators (or, xor, and) and for products.
PETSc-level Changes
The PETSc submodule has been updated from v3.24.2 to v3.24.3. Please see the GitLab changeset listing for a summary of changes in this minor release update.
Package Changes
PR #31935
Update MFEM
9708cc5...b5af0e9Enable GSLIB support within MFEM
Update OSX SDK to 14.5 in conda, removing support for OSX Ventura (EOL September 15, 2025)
Updated MooseDocs to support python 3.14
- Explicitly set multiprocessing context to
fork; python 3.14 changes the default toforkserver- Remove some picking of objects that do not work with multiprocessingforkserver
Conda moose-tools 2026.01.27
Add build for python 3.14 and use as default
Update clang-format to 19
Update ruff to 0.14.5
Conda moose-mpi 2026.01.27
Update MPICH to 4.3.2
Update OpenMPI to 5.0.8
Update HDF5 to 1.14.6
Update CMake to 4
Update GCC to 14.3.0 on Linux
Update Clang to 19.1.7 on Mac
Update GFortran to 14.3.0
Allow python 3.14
Correct variable replacement in activation script
Force using OFI for mpich now that conda mpich comes with UCX
Conda moose-libmesh-vtk 9.5.2_0
Update VTK
v9.4.2...v9.5.2
Conda moose-petsc 3.24.3_0
Update PETSc
v3.24.2...v3.24.3
Conda moose-libmesh 2026.01.27_502d428_0
Update libmesh
c144a6e3...502d428Do not strip symbols for libmesh build by removing
-Wl,-SfromLDFLAGS
Conda moose-seacas 2025.10.14_0
Update C, C++, and fortran compilers to match those in
moose-mpi==2026.01.14Update seacas
v2025-05-22...v2025-10-14
Conda moose-wasp 2025.09.19_02960f1_0
Update C and C++ compilers to match those in
moose-mpi==2026.01.14
Conda moose-pprof 2026.01.11_71be6bf
Pin to a specific version of pprof
Update pprof to
71be6bf
Apptainer moose-mpi:2026.01.27
Update base container for
clang,clang_min, andgcc_minvariantsUpdate MPICH to 4.3.2 for
clang,clang_min, andgcc_minvariantsUpdate Clang to 20.1.8 for
moose-mpi-clangAdd
MOOSE_BASHRCvariable to allow for a custom bashrc when entering the shell; defaults to~/.bashrc_apptainerif availableAdd bash completion to shell, notably for git
Apptainer moose-petsc:3.24.3_0
Update PETSc
v3.24.2...v3.24.3
Apptainer moose-libmesh:2026.01.27_502d428_0
Update VTK
v9.4.2...v9.5.2Update libmesh
c144a6e3...502d428
Apptainer moose-dev:2026.01.27
Update NEML2
9708cc5...b5af0e9Update MFEM
9708cc5...b5af0e9Update code-server to 4.108.0
Update pytorch
v2.7.1...v2.9.1Update gperftools to 2.17.2 for
openmpi-profilingvariantUpdate Go to 1.25.5 for gperftools in
openmpi-profilingvariantUpdate miniforge to 25.11.0-1
Pin python to 3.14