MOOSE Newsletter (October 2025)
MOOSE Improvements
AuxKernel support in Kokkos-MOOSE
Kokkos-MOOSE now supports GPU-based AuxKernels, with the limitation that boundary-restricted elemental AuxKernels are not supported yet. The user can create their own GPU AuxKernel by subclassing Moose::Kokkos::AuxKernel. See the linked document for details.
New Reporters
Several Reporters were added that apply a parsed function to the entries in the reporter. ParsedVectorReporter will apply parsed functions to vector entries held in reporters, allowing the user to compute differences or multiplications between vectors. The ParsedVectorRealReductionReporter uses a parsed function to iterate through a vector and reduce it to a scalar. This can be used to find maximum, minimum, or sum of squares of a Reporter containing a vector. These reporters are useful in optimization problems to sum gradient vectors or to compute objective values, like an L2 norm between simulation and target values.
ArrayNodalKernel
MOOSE now supports nodal kernels applied to array variables. Example implementations include ArrayTimeDerivativeNodalKernel and ArrayReactionNodalKernel. Nodal kernels are most useful for implementing ordinary differential equations (functions of time) throughout the simulation domain. We anticipate array nodal kernels to be useful for defining systems of chemical reactions.
Test change reports on pull requests
CIVET now automatically generates testing reports on pull requests which notably indicate:
which tests were added by the pull request,
which tests were removed by the pull request, and
any significant change in runtime by the existing tests.
MFEM Backend improvements
Fixed an issue where time step information in the console output lagged by one time step
Added the ability to compile MFEM with the full range of supported build methods: oprof, devel, dbg, and opt
Improved support for selecting/validating basis functions for different FE spaces
Fixed the attributes inherited by boundary submeshes from the parent mesh
Workaround for breaking changes in hypre 3.0 to PCG/GMRES relating to preconditioning matrix reuse
Performance and documentation improvements
Added the ability to define cut transition submeshes, e.g., to model an induced electromotive force on a closed loop
Added an auxiliary kernel to sum an arbitrary number of variables
Added two mixed form kernels akin to the diffusion and vector mass kernels, for when test and trial variables may differ
Added the ability to set an initial condition on a scalar variable on a boundary
Added a postprocessor to integrate the dot product of two vector variables over a given domain
MOOSE Modules Changes
Optimization module
A flexible framework for adding spatial regularization to the parameter field was added to ParameterMeshOptimization. Currently only L2 regularization of the parameter mesh field has been implemented. The ParameterMeshFunction uses a separate finite element mesh to interpolate parameter fields onto the simulation domain's mesh. This functionality has been improved with the project_points option to allow simulation mesh points not encompassed by the parameter mesh to be projected onto the nearest parameter mesh element to determine the function value.
Navier Stokes module
The Physics syntax in the Navier Stokes module can now create the energy conservation equation using a specific enthalpy variable instead of a temperature variable. This was implemented to facilitate code coupling and the future study of phase changes.
Subchannel module
Subchannel simulations can now be run in serial within a simulation with multiple processes. This enables using a SCM solve as the parent application along with child(ren) MultiApps that are ran in parallel.
The interwrapper problems for quadrilateral and triangular lattice geometries were removed. This is part of a simplification and abstraction effort which will facilitate the maintenance and development of capabilities in SCM.
Solid mechanics module
The ElementJacobianDamper can now operate on elements that have become so distorted that the Jacobian of the mapping is negative. The loop on dampers will now catch the exception caused by a negative Jacobian, and MOOSE will re-try the solve with a smaller time step.
XFEM module
The algorithms used to create meshes defining the location of the XFEM cut have been improved to consume reporters to define the crack growth rate. New reporters were created to capture growth due to stress corrosion cracking and fatigue crack growth using the ParisLaw.
libMesh-level Changes
2025.10.29 Update
No change to libmesh itself, but scripts/update_and_rebuild_libmesh.sh --help now works. Previously, invocation of --help would result in a script error.
2025.10.21 Update
Dropped deprecated public
Mesh::boundary_infomember. Other long-deprecated APIs are now dropped in libMeshmasterand will be removed in the next submodule update!Added
BoundaryInfomethods to enable ID removal and/or renumbering one boundary at a timeVariationalMeshSmoothernow supports prism elements; additionally, the verbosity and tolerances of the variational system solve are now user-controllableFix for
MeshTools::find_nodal_neighborsto work with higher order elementsFixes for
get_diagonal()andget_transpose()inEigenSparseMatrix, and implementations inLaspackMatrixDofObjectandEleminvalid id constants are nowconstexpr, for improved CPU performance and GPU compatibilityFix for a potential preallocation error in parallel HDF5 sparse matrix reads
Fixes for poly2tri headers
More optimization for Lagrange 1D shape computations, including in tensor product (e.g. quad, hex, prism) calculations
Test coverage for higher order quads and for mixed elements in the variational smoother
Improved test coverage for sparse matrix transposes and norms
PETSc-level Changes
2025.10.29 Update
Still a 3.24.0 version but includes a patch commit that enables CF relaxation for hypre boomeramg running on GPU. This patch is helpful to ensure module tests using boomeramg continue to pass when using a PETSc configured with GPU support.
Additionally, PETSc configuration was changed such that zlib is now picked up by hdf5 when the latter is built by PETSc. Proper configuration of hdf5 with zlib is required by the netcdf 4.9.2 version available in libmesh.
2025.10.21 Update
Updated PETSc to 3.24.0. See release notes here.
Bug Fixes, Minor Changes, and Minor Enhancements
Invalid IDs are now excluded when generating a positions list with ElementGroupCentroidPositions
An example was added for activating objects for single time step using chain controls.
The
outputs=noneparameter, on a per-object basis, is now obeyed more closely when theshowparameter, in theOutputsblock, is used.The ADScaledCoupledTimeDerivative kernel was added to the framework to handle the common case of needing to scale a time derivative of a coupled variable.
The ParsedAux now uses face arguments for functors when restricted to one or more boundaries.