MOOSE Newsletter (October 2023)

MOOSE Improvements

Input file includes

The following syntax can now be used to include other input files in an input file:


!include path/to/input.i

See Includes for more information.

Arbitrary Lagrangian Eulerian coupling FE and FV

In PR 25574 we demonstrated an Arbitrary Lagrangian Eulerian (ALE) laser melt pool simulation in which fluid velocity, pressure, and temperature were discretized using finite volumes while the mesh displacement field was discretized using finite elements. This required a few important developments in MOOSE:

  • Addition of NodeArg overloads to the MOOSE functor (on-the-fly evaluation) system. This allows coupling the finite volume velocity variables into the Dirichlet boundary condition that displaces the surface in the ALE simulation

  • Implementation of "finite-volume" functor methods for finite element variables for coupling finite element variables into the finite volume discretization (ElemArg, FaceArg)

  • Allowing finite volume discretizations to operate on a displaced mesh

Hybrid CG-DG formulation for Navier-Stokes

We merged PR 23986 which demonstrates a hybrid-method for discretizing the Navier-Stokes equations in which the pressure uses a continuous Galerkin discretization while the velocity components use a discontinuous Galerkin discretization. This formulation is intrinsically LBB stable and allows a natural upwind stabilization for momentum advection. For more information regarding the method, please see Hybrid Continuous/Discontinuous Galerkin Finite Element Navier Stokes.

SIMPLE algorithm for Navier-Stokes

The first segregated pressure-velocity coupling algorithm SIMPLE has been added to MOOSE in PR 22699. It results in considerably reduced memory footprint for large runs compared to monolithic solves with LU preconditioners.

Module rename

The Heat Conduction module was renamed to Heat Transfer to better match the capabilities of the module.

PETSc-level Changes

PETSc updated to 3.20.0: new conda packages

The moose-petsc package has been updated alongside the repository submodule to version 3.20.0. Subsequently, all conda packages have been incremented and should be updated. To update your MOOSE packages, please activate your MOOSE conda environment and perform the command:


mamba update --all

If this command does not succeed in updating the MOOSE packages, this is generally due to a conda dependency resolution issue, or a pinned Python package. In this case, it is recommended to update a specific package rather than using the --all option. Thus, one can also attempt the command:


mamba update moose-dev

or the highest-level MOOSE package installed if performing manual dependency builds (moose-libmesh, moose-petsc, etc. plus moose-tools). The following MOOSE package versions and builds outlined in the update prompt should be at least the following:


Package                  Version           Build
===================================================
moose-dev                2023.10.23        build_0
moose-libmesh            2023.09.06        build_4
moose-libmesh-vtk        9.2.6             build_5
moose-petsc              3.20.0            build_0
moose-mpich              4.0.2             build_12
moose-wasp               2023.10.06        build_0
moose-peacock            2023.10.23        build_0
moose-tools              2023.08.31        build_0

Bug Fixes and Minor Enhancements

  • We added the capability to transfer parameters from one object to another. This ensures that the docstring, the parameter group assignment and the defaults remain in sync between the two objects. This routine does not require an inheritance relation between the two objects.

  • The conservative transfer now give as much context as possible when they error due to inconsistent execution scheduling of the objects in charge of verifying the conservation.