Closed d-reynolds closed 1 year ago
Cool integration test feature -- where can I change the namelist that it uses?
@gutmann the CI tests are now passing with the commits I made. Once these are in the hicar branch then they can be pulled into PR #157 and that PR should pass as well, it did with my tests at least.
TYPE: new feature
KEYWORDS: Advection, higher-order, structural, flux-limiter
SOURCE: Dylan Reynolds, SLF
DESCRIPTION OF CHANGES: These changes first generalize advection in the model such that the advection driver loops through a dictionary of advectable variables stored in the domain object. The driver then calls individual advection routines from each advection module. The upwind module has been changed to be a 'standard' advection scheme, where different spatial differencing stencils can be applied from the namelist. In this way, upwind becomes just a particular case of the 'standard' advection scheme. RK3 time-stepping is also facilitated for the advection variables through the advection driver, and the necesarry flux limiter is added to allow this. Both the flux limiter and the spatial orders of the advection scheme are now namelist options under advection options.
These changes also necessitated making the grid halo variable in size. This is why higher order schemes and the flux limiter have a large hit on computation time: they require more data to be exchanged through CoArrays. So note that going to a higher order advection scheme will have a doubling/trippling/etc effect on the run time over the upwind scheme, but we have seen justifiable improvements in essentially all advected fields as a result.
NOTES: These changes have been found to have a large impact on precipitation, especially at high resolutions and in complex terrain. Running with horder, vorder=3, flux_corr=1 is recommended for a performance/computation tradeoff.
Documentation to follow once all HICAR merges are complete