A newer version of the Gradio SDK is available:
5.23.3
MOOSE Newsletter (September 2019)
SQA Documentation
Completing documentation for NQA-1 has been a primary focus over the past month, if you are interested in seeing the results of this labor please visit [sqa/index.md exact=True].
MeshGenerators and MeshModifiers
The MeshModifiers have been officially deprecated. All of the existing MeshModifiers have equivalent MeshGenerators that can be used to achieve the same behavior. Many applications are using modifiers so this is a big impact. Everyone should be moving to the generator system in the next month or two so that we can remove the old system. There will be additional enhancements that enable better restart capabilities before the old MeshModifiers system is removed.
New Mesh Syntax
We have streamlined the syntax for MeshGenerators. Rather than having separate top level blocks for
MeshModifiers, we are moving the generators to subblocks under the [Mesh]
block. This makes sense
logically because you might use several generators to build up a mesh so there's little need for
a separate [Mesh]
block. As a convenience you don't need to explicitly set the MeshGeneratorMesh
type when using the new syntax. If you have any generators at all, the mesh type is assumed to be
the MeshGeneratorMesh
(e.g. the final mesh resulting from processing all of the generators).
Here's an example of how to use the new syntax to build up a mesh:
[Mesh]
[file_reader]
type = FileMeshGenerator
file = twoblocks.e
[]
[block_1]
type = SideSetsAroundSubdomainGenerator
input = file_reader # Establishes the dependency on the reader
block = 'left'
new_boundary = 'hull_1'
[]
[block_2]
type = SideSetsAroundSubdomainGenerator
input = block_1 # dependency on the first sideset creator
block = 'right'
new_boundary = 'hull_2'
[]
[]
Optionally Skip Parallel Exception Check
Exception checking in MOOSE is a clean way to abort solves that run into physical or numerical issues in the middle
of a linear or nonlinear evaluation. However, checking exceptions in parallel at scale can be expensive in terms of
communication since each exception check involves a global reduction. A new input file option
Executioner/skip_exception_check=false
was added to allow users to toggle exception checking on/off
for when they are confident that their simulation will not produce exceptions. Turning off the exception check
will boost the speed of larger simulations with the trade-off that any thrown exceptions may cause your simulation
to abort without any usable error, or in some cases, may even cause your program to hang. If your simulation does
not complete when using this option, make sure you rerun it with this option disabled before seeking support from
anyone. Note: When using this option, you will see a message in your startup log indicating that exception checking
is not being performed.
SLEPc support
SLEPc is supported and installed by default through PETSc. If you have a recent version of the MOOSE redistributable
package or you are using the PETSc submodule you should have SLEPc support. The PETSc submodule and PETSc manual
installation instructions have been updated to honor this change. libMesh attempts to pick up SLEPc from PETSC_DIR
.
SLEPC_DIR
is not mandatory any more in order to use SLEPc. Most of these changes are transparent to end users.
Jacobian Contribution on Element Face
The compute thread of Jacobian blocks is a critical capability for physics-based preconditioner and RattleSnake AMG update.
The face contributions for DG kernels were ignored before, and resulted in a wrong calculation when using DG kernels together
with AMG update. A new routine is added to support Jacobian calculations on element faces in ComputeJacobianBlocksThread
for DG kernels.
New Non-AD Vector-Compatible Time Kernels
Hand-coded Jacobians are sometimes still needed when formulating vector-compatible time kernels.
Thus, VectorTimeKernel
and VectorTimeDerivative
are now available as alternatives to
ADVectorTimeKernel
and ADVectorTimeDerivative
. New methods - coupledVectorDotDu
and
coupledVectorDotDotDu
- have also been added to allow for coupled Jacobian entries in objects with
coupled time derivatives. Example usage of coupledVectorDotDu
can be found in the new
CoupledVectorTimeDerivative
kernel.