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 simulationImplementation 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.