edoddridge / aronnax

An idealised isopycnal model that can be run either with n+1/2 layers, or with n layers and variable bathymetry.
http://aronnax.readthedocs.io/en/latest/
MIT License
23 stars 5 forks source link

Add an upwind advection scheme #179

Closed edoddridge closed 6 years ago

edoddridge commented 6 years ago

This implements an upwind advection scheme in the continuity equation and refactors the evaluate_dhdt subroutine. The refactor splits out the two diffusive contributions and the advective contribution into their own subroutines.

There are now two advection schemes available, and the parameter hAdvScheme is used to select between them (see additions to documentation). The upwind scheme changes the output, especially in regions with sharp gradients. However, the changes in the relative_wind test are small enough to allow both advection schemes to evaluate against the same blessed output, provided the tolerance is relaxed slightly for the upwind scheme.

This PR lays the groundwork for implementing a more sophisticated advection scheme, which will allow outcroppping (see #26). It also adds a slight enhancement to the test suite - when a test fails the difference between the blessed and current outputs is plotted in addition to both outputs. This change is a small step in the direction of #136.

codecov[bot] commented 6 years ago

Codecov Report

Merging #179 into master will increase coverage by 0.07%. The diff coverage is 98.46%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #179      +/-   ##
==========================================
+ Coverage   95.45%   95.53%   +0.07%     
==========================================
  Files           5        5              
  Lines        1299     1344      +45     
  Branches       73       74       +1     
==========================================
+ Hits         1240     1284      +44     
- Misses         42       43       +1     
  Partials       17       17
Impacted Files Coverage Δ
aronnax/driver.py 93.45% <ø> (ø) :arrow_up:
aronnax.f90 95.52% <98.46%> (+0.1%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 4b62406...d176a87. Read the comment docs.