MOOSE Newsletter (May 2020)

AD 2.0

Automatic differentiation (AD) capabilities in MOOSE have been refactored. Application developers no longer have to use templating to take advantage of AD; AD object APIs should appear nearly identical to their non-AD counterparts. This change is meant to lower the barrier to entry to AD for application developers as well as ease maintenance in the framework. This doesn't come without some tradeoff; users who employ solve_type = PJFNK and extensively use AD will experience a slow-down in their simulations of about 1.5-2. However, for solve_type = NEWTON, which is the recommmended solve_type for AD applications, no appreciable slow-down should be observed. One other important change is that a material property that is declared AD must be retrieved as an AD property; similary for a regular property. E.g. these are the allowed pairings of declare/get: declareADProperty/getADMaterialProperty and declareProperty/getMaterialProperty. An overview of AD can be found here.

Stochastic Tools

  1. The surrogate system within the stochastic tools modules was enhanced to support the creation of trainer and evaluation objects. This includes the ability to store and load arbitrary training data for both in memory evaluation or loading from a file.

  2. The documentation for the stochastic tools module was improved to include more examples, including using the new train/evaluate object structure, see Stochastic Tools.

Python parameters package

A new python package for input parameters was created in the python directory. This new package is thoroughly tested and will replace the various other parameter systems within the MOOSE python tools in the near future. Please consider using this new package if you are creating python tools in an application and desire a parameter system.

Finite Volumes

Experimental support for solving PDEs using the finite volume method has been added to MOOSE.

Conda Environment Installation

The traditional moose-environment packages have been replaced with conda-packages, see Conda MOOSE Environment.