firedrakeproject / gusto

Three dimensional atmospheric dynamical core using the Gung Ho numerics.
http://firedrakeproject.org/gusto/
MIT License
11 stars 11 forks source link

Tracer conservative transport #469

Closed ta440 closed 6 months ago

ta440 commented 9 months ago

This pull request enables the conservative transport of tracers.

Mixing ratios are transported using a conservative equation, as opposed to the previous advective version. This is requires an additional transport equation type (tracer_conservative), form (tracer_conservative_form) and upwind transport method (upwind_tracer_conservative form). A reference density needs to be specified when using this transport form.

The equation class CoupledTransportEquation has been changed to generate the correct mass terms when using tracer_conservative. A conservative transport test of this equation has been added to integration-tests/equations/test_coupled_transport.py.

To work with the tracer_conservative form timestepping equation, the explicit multistage schemes need to have the gradient evaluation divided by the reference density. The ExplicitMultistage class now has an additional option of increment_form, which defaults to True, but should be set to False for use with the conservative transport scheme. A test of this scheme is added.