MOOSE Newsletter (July 2026)
MOOSE Improvements
Kokkos Acceleration for Linear Finite Volume
MOOSE now has a Kokkos execution path for linear finite volume (FV) systems, providing the foundation for accelerating linear FV applications on GPUs and other supported architectures. New Kokkos objects support diffusion, constant-velocity first-order upwind advection, volumetric sources, and functor Dirichlet and Neumann boundary conditions through KokkosLinearFVDiffusion, KokkosLinearFVAdvection, KokkosLinearFVSource, KokkosLinearFVFunctorDirichletBC, and KokkosLinearFVFunctorNeumannBC.
The supporting system and mesh infrastructure handles device-side matrix and right-hand-side assembly, distributed ghost elements, and mixed Kokkos finite element and linear FV systems. This framework capability is a prerequisite for future application-level GPU acceleration in projects such as OpenPronghorn. (idaholab/moose#32492)
MFEM Backend improvements
Geometric Multigrid
The MFEM backend now provides MFEMGeometricMultigridSolver, a geometric multigrid preconditioner for linear, single-variable equation systems. Users can construct h- or p-refined hierarchies with MFEMFESpaceHierarchy, select assembly levels and smoothers for the multigrid levels, and configure a coarse solver. Coarse-level operators are rediscretized from the equation system on each level. The new MFEMOperatorChebyshevSmoother supplies an accelerator-friendly smoothing option with automatic eigenvalue estimation.
As part of this work, MFEM preconditioners and solvers are now configured uniformly under the Solvers block; the former Preconditioner block has been removed, and solver dependencies are resolved automatically. This interface enables memory-efficient multigrid configurations that can use partial assembly on fine levels. (idaholab/moose#32831, idaholab/moose#33436)
Quadrature function coefficients
The user can now leverage MFEM's scalar and vector quadrature function coefficients via MFEMScalarQuadratureFunction and MFEMScalarQuadratureFunction. These coefficient can be precomputed once over all quadrature points and then reused as a vector (as opposed to requiring repeated evaluation calls on the underlying function every time the coefficient is requested). (idaholab/moose#33292)
Extra warnings and parameters for point and line value samplers
When sampling with MFEMVariablePointValueSampler, MFEMVariableLineValueSampler, or MFEMComplexVariablePointValueSampler MOOSE now issues a warning to prevent sampling at points where the solution might be multi-valued because it belongs to a discontinuous , , or space. Added a parameter to adjust the average type to use when sampling functions on element boundaries and a parameter to change the distance tolerance over which points initially assigned to the mesh boundary are considered outside the mesh. (idaholab/moose#33255, idaholab/moose#33457, idaholab/moose#32736, idaholab/moose#33484)
Support generalized equation system-dependent updates in linear solvers
MFEMLinearSolverBase now holds a pointer to the solver's associated EquationSystem, simplifying solver setup for those solvers requiring equation system information, such as LOR-capable solvers or future block preconditioners. For the former, a new base class MFEMLORLinearSolverBase was added for all mfem::Solver objects used as linear solvers or preconditioners that support low-order-refined (LOR) problems, consolidating LOR setup in a single class. (idaholab/moose#33262)
Warning Fixes
Enabling the C++20 standard can enable additional compiler warnings. MOOSE code triggering these warnings has been fixed, and MOOSE now builds cleanly with clang++ -std=c++20.
MOOSE now builds cleanly with gcc 15+ by avoiding the creation of temporary std::vector copies which were triggering the -Wfree-nonheap-object diagnostic. (idaholab/moose#33459)
The MOOSE SurfaceSubdomainsDelaunayRemesher mesh generator was triggering zealous cache consistency checks in newer libMesh versions. This generator was not using caches improperly, but by now preparing any invalidated caches before relying on cached mesh data, it allows those checks to be enforced via the new libMesh assertions.
Shared Active Local Element Range data
MooseMesh::getActiveLocalElementRange() now returns the already-cached range maintained by libMesh, instead of maintaining a redundant cache. This reduces memory usage slightly.
To enable this, the return type has been changed to enforce the const-ness of the returned range, which required downstream updates in some applications.
IsoGeometric Analysis (IGA) mesh remapping support
The new RBBMappingConverter mesh generator interfaces to libMesh tools to convert the mappings between "master element" and physical element locations from the standard polynomial (Lagrange) to a rational-polynomial (Rational-Bernstein-Bezier, RBB) mapping basis which interpolates the original nodal points. For certain geometries (in particular, circular arcs and cylindrical extrusions of them) the RBB basis is then "isogeometric", an exact (up to floating-point error, and in some algorithms quadrature error) representation of geometry which cannot be exactly mapped by polynomials.
Enabled Post-Processor Checking for Multi-System Fixed Point Solve
A new execute_on flag was added: MULTISYSTEM_FIXED_POINT_CONVERGENCE, which can be used to execute post-processors at the correct time for a multi-system fixed point convergence check via PostprocessorConvergence or MultiPostprocessorConvergence.
MOOSE Bug Fixes
Fixed Maximum Iterations with IterationCountConvergence for Fixed Point Solves
IterationCountConvergence has the parameter "max_iterations", which controls the maximum number of iterations for a solve. For fixed point solves (both MultiApp and multi-system), this was allowing one more iteration than it should have, which has now been fixed.
Miscellaneous
Normal projection of 3D mortar quadrature points is now more robust on distorted faces.
MultiAppPostprocessorTransfer now correctly refuses to perform a reduction when transferring from the parent application to child application(s), as only a single value exists on the parent.
Profiling instructions were updated for
gperftoolson MacOS machines, to help getting symbols in profiles.
MOOSE Modules Changes
Heat Flux Aux Option for GrayDiffuseRadiation
GrayDiffuseRadiation now has the parameter "add_heat_flux_aux", which adds a CONSTANT MONOMIAL aux variable for the heat flux along the radiation surfaces, which is useful for coupling via MultiApps, for example.
Conda Package Updates
moose-build 2026.07.30
Loosen pinning for compilers to major version only
moose-libmesh 2026.06.05_ab36c00_1 [mpich,openmpi]
Force rebuild to use new conda linkers; MOOSE inherits compiler flags from libmesh so this is required to resolve ld issues
moose-dev 2026.07.30 [mpich,openmpi]
Use updated
moose-libmesh 2026.06.05_ab36c00_1 [mpich,openmpi]to fix ld issues
Apptainer Package Updates
moose-libmesh:2026.06.05_ab36c00_1
Forced rebuild due to conda package
moose-libmesh 2026.06.05_ab36c00_1 [mpich,openmpi]
moose-dev:2026.07.30
Forced rebuild due to conda package
moose-dev 2026.07.30 [mpich,openmpi]