MOOSE Newsletter (July 2018)

Jacobian testers

The MOOSE python Jacobian test capabilities have been updated to work with PETSc versions >= 3.9. Users of PETSc versions >= 3.9 now have the capability to test their Jacobians at every non-linear iteration instead of just on the initial condition.

The old Jacobian testing capability, which used the PETSc option -snes_type test, terminated application execution after one calculation of the Jacobian. In PETSc versions >= 3.9, the -snes_type test option has been replaced with -snes_test_jacobian. With this option, MOOSE applications will run normally and the hand-coded Jacobian will be compared against a finite-difference Jacobian at every non-linear iteration.

This can be very useful since it's difficult to capture all possible function states in an initial condition, e.g. a good result with the old option -snes_type test may lull the application developer into thinking that their Jacobian is perfect under all circumstances when it is not.

Relationship Managers with Pre-split Meshes

RelationshipManagers now work properly when using MOOSE's mesh splitter capability. If you have a simulation that requires extra geometric information, the RelationshipManagers are triggered during the mesh splitting process so that information is available when reading in pre-split meshes.

Bug fixes

  • Fixed incorrect input file line number error reporting under certain circumstances.

  • Fixed some missed cases of unused parameter tracking.

  • MOOSE errors out properly when the Executioner is accidentally omitted from an input file.

  • Using "–split-mesh" with a DistributedMesh now produces a useful error message.

  • LayeredBase-derived objects are now restartable.

PETSc external partitioner

The PetscExternalPartitioner interface has been incorporated into MOOSE. This interface provides a unified API to external mesh partitioning packages such as ParMETIS, Chaco, Party, and PTScotch, and a mechanism for assigning weights to elements and sides to facilitate workload balancing and communication minimization.

Peacock Exodus Viewer Improvements

The results tab of peacock ("ExodusViewer") was updated, a screenshot is shown in Figure 1:

  • Result refresh is now more efficient;

  • The tab was redesigned to be more compact, with less frequently-used controls moved to menu items;

  • The min/max toggles were redesigned to be cached with each variable as well as control if the automatic values should be computed via the visible or complete model;

  • The block selection is now more compact, and uses a drop-down control.

It is possible to run Peacock as an Exodus viewer by passing the --exodus or -r flags on the command line.

~/projects/moose/python/peacock/peacock -r path/to/an/exodus/file/here.e

Figure 1: Re-designed Exodus viewer tab.