MOOSE Newsletter (December 2020)
Migration to Github Discussions
The MOOSE development team has decided to move all new questions to a Github discussion forum.
Reporter Transfer
The ability to transfer Reporter values to and from sub-applications was added via the MultiAppReporterTransfer.
MultiApp UserObject Transfer
MultiAppUserObjectTransfer
can now be restricted to a block or a boundary using block
or boundary
parameter. This helps to combine multiple transfers into a single variable which can also simplify the overall simulation setup of kernels, BCs, etc.
Scaling Support for Global AD Indexing
Support was added for both automatic and manual scaling in MOOSE's global AD indexing configuration (obtained by running ./configure --with-ad-indexing-type=global
). This works for both finite elements and finite volumes variables.
Porous Flow Module Publication
A paper describing the core physics in the porous flow module has been published. It outlines a number of porous flow models that have been built and published over the past few years, including groundwater models, geothermal simulations, multi-phase modelling assessments and mineralization problems. Please reference this paper in publications involving the porous flow module.
Geochemistry Module
A physics module has been added that can solve geochemical models, the geochemistry module. The capabilities include:
Equilibrium aqueous systems
Redox disequilibrium
Sorption and surface complexation
Kinetics
All of the above combined with fluid and heat transport
The geochemistry module is designed to interface easily with the porous flow module so that complicated reactive transport scenarios can be studied. The documentation contains many detailed examples to help you get started with geochemistry.
Heap Profiling
Support has been added to do heap profiling using gperftools
. This is useful for tracking memory spikes in both serial and parallel simulations. Instructions for using this capability can be foundhere.
Fixed an Memory Issue in Assembly::init
There were several fully coupled flag matrices used in Assembly
which generated memory spikes for simulations that have many MOOSE nonlinear variables
. We fixed the issue by creating diagonal flag matrices if there are not coupling elements between MOOSE nonlinear variables
, which is often true when using PJFNK
. Preconditioners might also not need a fully coupled matrix for certain problems.