forked from altMITgcm/MITgcm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GAD_FLUX_LIMITER.h
45 lines (40 loc) · 1.19 KB
/
GAD_FLUX_LIMITER.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/GAD_FLUX_LIMITER.h,v 1.6 2013/12/16 21:17:18 jmc Exp $
C $Name: $
CBOP
C !ROUTINE: GAD_FLUX_LIMITER.h
C !INTERFACE:
C #include "GAD_FLUX_LIMITER.h"
C _RL Limiter
C Limiter(Cr)
C !DESCRIPTION:
C Contains statement function defining limiter function.
C
C A trivial limit for the limiter recovers the upwind scheme:
C \begin{equation*}
C Limiter(Cr)=0
C \end{equation*}
C Lax-Wendroff is recovered with:
C \begin{equation*}
C Limiter(Cr)=1
C \end{equation*}
C The Min-Mod limiter is obtained with:
C \begin{equation*}
C Limiter(Cr)=max(0,min(1,Cr))
C \end{equation*}
C The current limiter of choice is the "Superbee" limiter:
C \begin{equation*}
C Limiter(Cr)=max(0,max(min(1,2*Cr),min(2,Cr)))
C \end{equation*}
C which is the default.
CEOP
C Statement function to describe flux limiter
_RL Limiter
C Upwind Limiter(Cr)=0.
C Lax-Wendroff Limiter(Cr)=1.
C Min-Mod Limiter(Cr)=max(0.,min(1.,Cr))
C Suberbee Limiter(Cr)=max(0.,max(min(1.,2*Cr),min(2.,Cr)))
c Limiter(Cr)=0.
c Limiter(Cr)=1.
c Limiter(Cr)=max(0.D0,min(1.D0,Cr))
Limiter(Cr)=max(0.D0,max(min(1.D0,2.D0*Cr),
& min(2.D0,Cr)))