[MITgcm-support] unexpected behavior of advection scheme 81

Munday, Dave danday at bas.ac.uk
Wed Nov 1 11:34:55 EDT 2017


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.
________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.mitgcm.org/pipermail/mitgcm-support/attachments/20171101/8dc46260/attachment.html>


More information about the MITgcm-support mailing list