[MITgcm-support] unexpected behavior of advection scheme 81

Jean-Michel Campin jmc at mit.edu
Wed Nov 1 14:07:44 EDT 2017


Hi Martin,

I believe the implementation of advection scheme 81 (=ENUM_SOM_LIMITER) correctly 
reproduce the limiter described in Prather, 1986 paper.

This might not be well documented, except in GAD.h :
> C ENUM_SOM_LIMITER :: 2nd Order-Moment Advection Scheme, Prather Limiter
and in relevant routines (gad_som_lim_r.F, gad_som_adv_x.F, gad_som_adv_y.F).
> C  limiter      :: 0: no limiter ; 1: Prather, 1986 limiter

And as Dave mentioned, this limiter is supposed to ensure positive tracer value 
(and not monotonicity), therefore it should not be used for a tracer field
that contains meaningful negative values.

Cheers,
Jean-Michel

On Wed, Nov 01, 2017 at 03:34:55PM +0000, Munday, Dave wrote:
> Hi Martin,
> 
> I don???t know the details of the numerical implementation, but this certainly seems to tie in with Prather???s discussion on limitation in his paper.
> 
> The discussion is framed in terms of keeping a tracer to strictly to positive values, rather than limiting the flux per se and/or maintaining monotonicity. In his example he discusses limiting the high order moments as they???re advected and that this might lead to some diffusion. So scheme 81 might not be limited in the sense that, for example, scheme 77 is. I remember talking to Mehmet Ilicak about this a couple of years ago and he did have a version of Prather with more conventional limiting.
> 
> Best wishes,
> 
> Dave
> 
> 
> On 1 Nov 2017, at 14:32, Martin Losch <Martin.Losch at awi.de<mailto:Martin.Losch at awi.de>> wrote:
> 
> Hi all,
> 
> Longjiang found a problem with the advection scheme 81 (prather with limiting). Apparently, this scheme only works adequately for tracers>0. As an illustration see the attached figure, where I advect, similarly to the figures in the documentation <http://mitgcm.org/public/r2_manual/latest/online_documents/node72.html> a rectangle (black line: initial conditions) with advection scheme 80 and 81 in a periodic domain. Advection scheme 80 does not seem to care if the rectangle ranges between 0 and 1 (upper blue curves) or -1 and 0 (lower orange curves). Advection scheme 81 does something very funny when the rectangle is between (-1,0) (lower read curve). The bottom panel of the attached figure shows the same after going around 10 times, after which nothing is left of the signal for advection schem 81. I am attaching this little experiment, in case anyone feels like reproducing it.
> 
> Longjiang has traced this back to line 159/160 in gad_som_adv_x.F (and similarly in the other directions), where
>          slpmax = 0.
>          IF ( sm_o(i,j).GT.zeroRL ) slpmax = sm_o(i,j)
> In case of sm_o<0 (e.g. negative temperatures), this would mean slpmax=0. etc.
> 
> Is this intentional? It would mean that one should not use advection scheme 81 for, say, temperature (in polar regions). One could advection THETA+273.15 ...
> 
> Martin
> 
> 
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org<mailto:MITgcm-support at mitgcm.org>
> http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support
> <advection_schemes.pdf><inputcode.tgz>
> 
> ________________________________
> This message (and any attachments) is for the recipient only. NERC is subject to the Freedom of Information Act 2000 and the contents of this email and any reply you make may be disclosed by NERC unless it is exempt from release under the Act. Any material supplied to NERC may be stored in an electronic records management system.
> ________________________________

> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mailman.mitgcm.org/mailman/listinfo/mitgcm-support



More information about the MITgcm-support mailing list