MOOSE Newsletter (September 2022)

MOOSE Improvements

New Mesh Generators

With the new PolyLineMeshGenerator, a set of user points can be connected into a mesh (either an open-ended polyline or a closed loop) of Edge2 elements.

Starting with an edge loop in the X-Y plane (or with the boundary of a different 2D mesh) to define an outer boundary, and optionally adding holes defined by other edge loops and/or 2D meshes, the new XYDelaunayGenerator can generate a triangle mesh inside the defined domain. User options allow for uniform (or as-needed) refinement of external and internal boundaries, and uniform or spatially-varying bounds on internal triangle sizes. A simple Laplacian mesh smoothing option exists to improve the resulting triangulation shape quality. Each hole can be left empty or can be stitched to the input mesh which was used to define it. This generator can be used recursively, so holes within holes can be used to define layered internal boundaries.

libMesh-level Changes

2022.09.09 Update

  • Performance logging via PerfLog has been added to more of the ExodusII interface.

  • The Parameters class print_helper() has been overloaded to handle nested vector-of-vectors-of-vectors parameters, so Parameter<T>::print() can now operate with that type as T.

  • ExodusII::write_added_sides() support, which can be turned on to automatically generate "side elements" in output, useful for visualization of SIDE_DISCONTINUOUS data fields which are discontinuous on true elements' edges and vertices.

  • Overloads for TypeTensor and TypeVector classes in the template metafunctions RawType and ReplaceAlgebraicType.

  • A new TensorTraits class, for easier writing of generic algorithms that can handle scalar, vector, and tensor classes.

  • Code refactoring and bug fixes, including

    • Fixed preconditioner reuse in the PetscNonlinearSolver interface when combined with Adaptive Mesh Refinement

    • Fixed the Poly2TriTriangulator refinement code behavior when it is told not to refine at all.

    • Fixed MeshedHole boundary orientation issues, thereby fixing a bug when Poly2TriTriangulator is required to refine a hole boundary initially defined by another mesh.

    • Fixed fragile SIDE_DISCONTINUOUS behavior when combined with other variable types on a HEX27.

  • More test coverage