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 gperftools on 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]