MOOSE Newsletter (July 2024)
MOOSE Improvements
Execution at specific times
With the TimesEnableControl control object, any object which can be turned on/off using controls can now be activated or de-activated based on the times listed in a Times object. The execute_on
parameter of the controlled object is still obeyed, only when it is set to be active.
Checkpoint system updates
After receiving user feedback, MOOSE's checkpoint system has been updated:
By default, checkpoints are now written every 60 minutes of elapsed wall time (increased from 10 minutes).
The
Outputs/wall_time_checkpoint=false
syntax is introduced as an easy way to turn off automatic checkpoint output. Before this change, the only way to turn it off was to setOutputs/Checkpoint/wall_time_interval
to a number of seconds longer than the total simulation wall time.An informative block is output to the MOOSE header in the console output describing the configuration of the checkpoint system for each simulation.
Checkpoints are now written in compressed ASCII (.cpa.gz) format instead of binary (.cpr) format. This allows checkpoints to be output on systems without XDR support. Reading and writing binary checkpoint files is no longer supported.
Modules changes
Several additional routines for evaluating LinearFluidProperties with the (pressure, temperature) and the (specific volume, specific internal energy) variable sets were implemented.
The INSFVMomentumTimeDerivative finite volume kernel can now optionally not contribute to the Rhie Chow coefficients. This enables INSFV flow solutions to be independent from the timestep size.
TabulatedFluidProperties support for the (specific volume, specific internal energy) variable set was entirely reworked to enable the direct use of tabulated data with these variables. Properties tabulated in (pressure, temperature) can also be loaded simultaneously.
Minor changes
A basic line search was added to the contact point search Newton solve, along with improved floating point exception handling, both to increase robustness of the contact point search.
The PropertyReadFile can now read a list of files to read from another file, containing the files' names in a single column.
libMesh-level Changes
2024.07.16
Update
Support for
QuadShell9
elements, and fixes for refinement ofQuadShell8
elements. This is a behavior-changing update:QuadShell4
elements, when elevated to second order, now becomeQuadShell9
(with a full biquadratic Lagrange space) rather thanQuadShell8
(with a "Serendipity element" space).Fixes for libMesh
make dist
andmake distcheck
with new submodules and new contributed packages.Support and unit tests for non-square EigenSparseMatrix matrices
Support and unit tests for reading sparse matrices from gzipped-Matlab format files.
Utility for converting sparse matrix files from PETSc binary formats to Matlab format.
Improved speed for reading sparse matrices.
Refactoring of some solution transfer code; exposure of
MeshfreeInterpolationFunction
class to users.Support and unit tests in TIMPI for
set_union
ofmultiset
andmultimap
containers, includingunordered_
versions.Refactored Nedelec finite element code for simplification and generality.
Fixes and testing for more IsoGeometricAnalysis use cases on distributed meshes.
More test coverage:
ExodusII_IO
with shell elements, PETSc DMlibMesh interfaceNew
Elem::is_internal()
API for local node indicesAdditional fparser headers installed, to enable user subclassing
Assorted bug fixes: configure now supports preexisting
-Werror
in compiler flags (with tested compilers), more standard treatment of PETSc error codes,--node-major-dofs
now works with FE types that have element DoFs too.Added
LIBMESH_PETSC_SUCCESS
shimPetscVector subvectors can now be created by supplying only local subvector indices.
Slight change to
restore_subvector()
argumentsIncoming vectors to
local_variable_indices()
are now cleared before filling.PerfLog profiling of matrix reads and mesh constraint initialization.
Refactoring and optional debugging features for mesh constraint code.
Added
RBConstruction::is_serial_training_type()
and EIM updates to reduced basis code.Added a DofMap API for users to request full matrix sparsity pattern retention even with linear algebra packages that do not need it themselves.
System::is_initialized()
is nowconst
Added
LibmeshPetscCall
macro that can wrap any PETSc function call without need forLIBMESH_CHKERR(ierr)
2024.07.27
Update
Bounding box testing for .msh $Entities in GmshIO::read(), to detect file inconsistencies
Added Netgen as an optional submodule. With Netgen enabled, libMesh now includes a
NetGenMeshInterface
class which can be used to generate tetrahedral meshes within triangulated boundaries or within volume mesh domains.Added
libmesh/fuzzy_equals.h
methods:absolute_fuzzy_equals()
andrelative_fuzzy_equals()
, for checking equality to within a specified absolute or relative tolerance. Addedl1_norm()
andl1_norm_diff()
methods as necessary to classes (TypeVector
,NumericVector
,SparseMatrix
) and subclasses which might be compared.Fixes for
make distcheck
testing of release candidate tarballsUpdates to EIM error indicator normalization in Reduced Basis code