A newer version of the Gradio SDK is available:
5.23.1
MOOSE News (June 2019)
Revamped Mortar FEM
MortarConstraint
has been revamped. Mortar now relies on an AutomaticMortarGeneration
object
that, as its name suggests, automatically generates a mortar segment mesh for performing
integrations. For static mesh problems the mortar segment mesh generation is done once upon initial
setup. For dynamic problems with a displaced mesh, mortar mesh generation is done every residual
evaluation. We have verified that the new mortar system satisfies a prior error estimates, e.g.
in the L2 norm we observe order 3 and order 2.5 convergence for the primal and lagrange multiplier
variables respectively for a P2P1 discretization, as well as 2 and 1.5 for P1P1 and P1P0. Plots of
these results as well as some technical discussion can be found on the mortar
github issue. Additionally, an excellent overview
of the mortar implementation is given in
this technical report. Examples of using the new mortar
constraint can be found in the $MOOSE_DIR/test/tests/mortar
directory. These examples demonstrate
use of mortar with conforming and non-conforming meshes, as well as for periodic boundary
conditions. Physics examples include solution continuity, thermal, and mechanical contact. In the
latter case a finite difference Jacobian is used; however, a
follow-on PR will demonstrate use of automatic
differentiation and PJFNK for solving frictionless and frictional contact with the new mortar
constraint system.
PorousFlow: Reduction of Numerical Diffusion
A new type of numerical stabilization has been added to PorousFlow to complement the existing "full upwind" and "no stabilization" choices. The aim is to reduce numerical diffusion. The code is based on the theoretical work of Kuzmin and Turek. Users are strongly encouraged to experiment with this new feature so we can collectively learn the strengths and weaknesses in real simulations. Only minor changes to input files are needed to activate the new stabilization. The numerical stabilization lead page lists pros and cons of various stabilization schemes and provides links to pages that explain and quantify numerical diffusion.
Stochastic Tools "Batch" Mode
The Stochastic Tools module now includes the ability to run full and transient solves using "batch" mode, which is useful when a MultiApp contains a large number of sub-applications. In batch mode the MultiApp creates a single sub-application and re-uses it to perform the multiple simulations, allowing for reduced memory usage when compared to the default behavior. For more information please refer to [batch_mode.md].
RankMap and HardwareIDAux
A new capability has been added to MOOSE that enables the ability to query information about the physical node each MPI process is running on. In particular, it allows the user to find which MPI processes are located on the same physical node in the cluster. This can be useful for partitioning and advanced transfer capabilities.
In addition, a new [AuxKernel.md] has been added: [HardwareIDAux.md]. This AuxKernel
allows
you to visualize the placement of the MPI processes on the physical nodes in the cluster. This is
extremely useful for understanding the outcome of advanced mesh partitioners such as the [PetscExternalPartitioner.md].
For more information see the HardwareIDAux documentation
CombinerGenerator
A new [MeshGenerator.md] called the [CombinerGenerator.md] which allows the output of multiple
MeshGenerator
s to be combined into a single mesh. This is somewhat similar to [StitchedMeshGenerator.md]
except that it makes no attempt at all to actually stitch the meshes together. Instead, it merely
copies one mesh into another.
FancyExtruder
Another new [MeshGenerator.md] is the [AdvancedExtruderGenerator.md]. This new MeshGenerator
is similar to
the [MeshExtruderGenerator.md], in that it extrudes a 2D mesh into a 3D mesh,
except it provides many more options. In particular, the height
of
multiple elevations can be specified and subdomain IDs within each elevation can be swapped. This object
has been optimized to handle extremely large meshes.
PlaneDeletionGenerator
Yet another new [MeshGenerator.md] is the [PlaneDeletionGenerator.md]. This MeshGenerator
takes
a plane as input and will delete all of the elements on one side of the plane from your mesh. This is
extremely handy for taking a geometry and slicing it down into a region of interest or a region which
represents a symmetric portion of the whole.
PETSc Upgrade
PETSc was upgraded to 3.10.5; the new version provides better performance. We encourage MOOSE users to use this new version. To use this version of PETSc, follow instructions on moose website to update the environment package.
Conservative Transfer
Conservative transfers have been added to MOOSE to support transfer of a physics quantity
in a conservative way. Conservative transfers currently work with MultiAppMeshFunctionTransfer
,
MultiAppInterpolationTransfer
, MultiAppNearestNodeTransfer
and MultiAppUserObjectTransfer
.
Vector Support in InterfaceKernel
The InterfaceKernel
system has been updated to add compatibility with vector finite
elements. Usage of InterfaceKernel
for standard finite element variables remains the same as
before, but VectorInterfaceKernel
is now available for vector finite element variables. Examples
of usage for VectorInterfaceKernel
with NEDELEC_ONE
variables in 2D and 3D can be found in the
following two input files:
- [test/tests/interfacekernels/2d_interface/vector_2d.i]
- [test/tests/interfacekernels/3d_interface/vector_3d.i]
Simplified Module Makefile
MOOSE now contains 18 physics modules, several of which depend on each other. The "make" system has been simplified at the module level so dependencies no longer need to appear in the Makefile. Dependencies are listed in a single place (e.g. modules.mk).
The relevant section for every module has been abbreviated. Here is the relevant section for the phase_field Makefile:
# Module
MODULE_NAME := phase_field
include $(MODULE_DIR)/modules.mk
Improved Dynamic Loading Error Messages
MOOSE has long had the capability to load objects from dynamic libraries. The problem is that when a failure occurs the error message states that the file cannot be opened. This is rarely the case, so the error is misleading. An improved error message now differentiates between a missing or unreadable file and one that exists but fails to load for other reasons (such as missing expected functions or lack of dynamic loading support).
Parallel Testing in the Physics Modules
Parallel testing has been turned on by default for most of the physics modules. If you are building tests for the physics modules, make sure that your tests produce the same result when running serially or in parallel.
Improved Simulation Information Output (Console)
MOOSE has been displaying information about your simulation's active "RelationshipManagers" on the console for a few months now. This information has recently been augmented to display when pure libMesh "GhostingFunctors" (not wrapped by a MOOSE RelationshipManager) are active.