A newer version of the Gradio SDK is available:
5.23.1
MOOSE Newsletter (November 2019)
Mesh MetaData Store
MOOSE has gained a new feature that makes it easier to manage mesh related attributes during simulation setup, namely the mesh "MetaData" Store. The purpose of this object is to hold any kind of attribute or property that a developer may wish to publish about the mesh for use in other objects.
There are a few reasons why you may want to use the MetaData store:
- No need to dynamic cast the underlying mesh object to gain access to methods or attributes.
- Solves the problem of not having access to Mesh during recover.
- No need to handle getting parameters from the mesh differently for normal startup vs recover runs.
Storing properties in the store means that you won't have to dynamic cast the underlying mesh object to get access to specific APIs or properties on your mesh. Another benefit of using the store is that you don't have to treat your normal simulation and recover simulations any differently from one and other. You'll be able to retrieve properties the same way in either case simplifying your startup code. This makes a lot of difference if you are using the MeshGeneration system to build your mesh programatically. The MetaData store is populated very early on recover runs so the data is available during the execution of any custom Actions that you might create.
Interface Material
MOOSE now has the ability to create IntefaceMaterial
objects. InterfaceMaterials
are capable of grabbing element face and neighbor face
variable values as well as element face and neighbor face material properties,
allowing for creation of truly interfacial properties that are a blend of the
quantities on the connected subdomains. An example application of
InterfaceMaterials
is for cohesive zone modelling. Example input files include
[interface_value_material.i], [interface_value_material_split_mesh.i], and
[interface_value_material_split_mesh_stateful.i]. Source examples of
InterfaceMaterial
derived objects are [InterfaceValueMaterial.C] and
[/JumpInterfaceMaterial.C]. Header examples can be found at
[InterfaceValueMaterial.h] and [/JumpInterfaceMaterial.h].
libpng detection test has moved to MOOSE's configure
Does anyone remember when MOOSE got a proper configure system? No? Good, then that means we did our job correctly. The test for the existence of libpng, which was hacked into one of the MOOSE Makefiles was moved to MOOSE's configure system for better reliability. It turns out that the detection failed in rare cases but it was annoying to deal with on systems where it did. Now, we run this test during configure so that we can reliably work with or without it based on the configure result.
MOOSE's configure system
We managed to make it 10 years without a configure script. We did this because we wanted to keep the build process simple for our developers and we were able to delegate all of our configure needs to libMesh's configure system. Well we finally caved and added a full-blown configure system to MOOSE. We are using the GNU Autotools for now, but the most important part is that nobody needs to change their work flow to accommodate the new configure script. It is completely optional at this point and we hope to keep it that way indefinitely.
There are a few optional library configurations that you may choose to activate by running the
script yourself. You can always check out what options are available by going to the framework
directory and running ./configure --help
.
Miscellaneous enhancements and bug fixes
- The TestHarness properly skips tests that require the presence of libpng.
Kernels for eigenvalue system
We made all kernels in the eigenvalue system consistent with those used in the nonlinear system. That being said, any existing kernels for regular nonlinear calculations can be used in the eigenvalue system without any changes.
Conservative transfer with L2 Lagrange
Conservative transfer supports L2 Lagrange nonlinear variable now.
IntegralBC support in eigenvalue system
We enhanced the eigenvalue system to support the IntegralBC. This help neutron transport calculations where the IntegralBC boundary conditions are often used in eigenvalue calculations.