MOOSE Newsletter (December 2024)
INL was closed for its annual Curtailment of Operations December 25, 2024 through January 1, 2025. Accordingly, development of MOOSE and developer/user support was very light during this period. The MOOSE development team hopes that all of our collaborators, users, and colleagues around the world had a safe and restful holiday season!
MOOSE Improvements
Transient capabilities for the linear finite volume discretization
The linear finite volume discretization is used in the Navier Stokes module, notably, to set up segregated solves for pressure-velocity coupling. This discretization was first implemented without support for time integration. This has now been implemented, with new APIs which should be implemented in each of the TimeIntegrator
classes. These routines are then leveraged by the new LinearFVTimeDerivative kernel during the right hand side (RHS) and matrix assembly. The routines are:
timeDerivativeRHSContribution(..)
for the contribution of a time derivative to the RHS of a linear system, andtimeDerivativeMatrixContribution(..)
for the contribution of a time derivative to the matrix of a linear system.
Currently, these routines have only been implemented for the first order ImplicitEuler time integrator.
New Chain Controls
Several ChainControls were added. Their documentation can be found via the following links:
MOOSE Modules Changes
Navier Stokes module
A new Physics for the scalar transport equation using the linear finite volume discretization was added to the module. It is currently restricted to steady state problems. The SIMPLE executioner has been modified to solve passive scalars after the pressure-velocity coupling has converged.
Reactor module
The FlexiblePatternGenerator has been improved to automatically generate the extra-element integer ids in the elements. These ids can be used to number pins, assemblies, depletion regions etc.
Bug Fixes and Minor Enhancements
Auxiliary and linear finite volume variables can now be retrieved through the
getFunctor<Real>
calls asReal-
valued functors, even though they inherit from the MooseVariable which is an ADReal-valued functor. Since these two variable types do not actually leverage AD, this facilitates setting up non-AD functor materials.The CombinerGenerator was fixed to correctly translate the mesh if only a single position is used.
User objects now call
initialSetup()
for their setup in the same order (execution group) that they execute. This facilitates handling complex dependencies between user objects directly from the input file.The NumTimeSteps postprocessor was added to track the time step number in a transient simulation.