MOOSE Newsletter (May 2024)
MOOSE Improvements
Hybridizable Discontinuous Galerkin methods
We have added the ability to implement hybridizable discontinuous Galerkin (HDG) methods. Thus far, we have added HDG discretizations of diffusion and Navier-Stokes physics. For more information about HDG, please visit the HDG overview page. More information about HDG Navier-Stokes can be accessed here.
Add new linear system assembly for finite volume methods
We have added a new assembly algorithm for finite volume systems which does not rely on Newton's method. With the new interfaces, the developer can decide which fixed-point algorithm is needed for a given problem and implement matrix and right hand side contributions accordingly. The current examples in MOOSE asssume a Picard-style fixed-point iteration. For more information we refer the interested reader to the design page.
Override parameters when using included files
Either of following syntaxes can now be used to override parameters from included files:
param := value
param :override= value
See Parameter override syntax for more information.
Added radiation coupling component between multiple 2D heat structures
In the Thermal hydraulics module, the component HSCoupler2D2DRadiation was added, which couples any number of 2D heat structures together via radiation, using gray, diffuse assumptions.
Deployment of the Physics syntax to the Navier Stokes module
Several Physics actions were created for the Navier Stokes equation with a finite volume discretization, and the fully-coupled single matrix approach.
Navier Stokes Flow / WCNSFVFlowPhysics for the mass and momentum equation
Navier Stokes Fluid Heat Transfer / WCNSFVFluidHeatTransferPhysics for the fluid energy equation
Navier Stokes Scalar Transport / WCNSFVScalarTransportPhysics for the transport of scalar quantities
Navier Stokes Turbulence / WCNSFVTurbulencePhysics for turbulence models
Navier Stokes Solid Heat Transfer / PNSFVSolidHeatTransfer for the porous media solid phase energy equation
Deployment of the new linear system assembly approach for the SIMPLE algorithm in the Navier Stokes module
We have deployed the new linear system assembly approach for building the momentum and pressure systems in the SIMPLE algorithm within the Navier Stokes module of MOOSE. On a 3D wavy pipe problem with around 330,000-cell unstructured hex mesh, the new approach shows a speedup of a factor of 10 in terms of solve times compared to the previous approach which relied in the residual and Jacobian routines already available in MOOSE.
libMesh-level Changes
2024.05.05
Update
ShellMatrix
support and other functionality added toCondensedEigenSystem
, to allow applications like MOOSE to safely solve eigenproblems with adaptive refinement or other DoF constraint equationsAdded
SparseMatrix::read()
subroutine, as well as format-specific read subroutines, to read sparse matrices from files.Added gzip option to mesh splitter app output
Auto Area function options for triangulation, allowing MOOSE
XYDelaunay
users to more easily generate more smoothly graded meshesMoved eigensolve printing and error computation from dbg-mode-only to a new
print_eigenvalues()
routineUsing more modern C++ features to simplify code:
std::insert_or_assign
,if
statements with variable initializers, reliable implicit polymorphicunique_ptr
conversion, more use ofstd::make_unique
and smart pointers to replace rawnew
,Doxygen documentation clarifications
More test coverage for PDE solves in spaces defined by arbitrary constraint operators
Debug-mode testing of partitioner graph symmetry, to intercept any errors before Parmetis can turn them into a more obscure error
Assorted Reduced Basis code updates: virtual
preevaluate_thetas()
method to allow subclass overrides; overruling ofdeterministic_training
option in some cases; storing error indicator normalization