1 |
C $Header: /u/gcmpack/models/MITgcmUV/pkg/generic_advdiff/GAD_FLUX_LIMITER.h,v 1.4 2001/07/30 20:42:45 heimbach Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
CBOP |
5 |
C !ROUTINE: GAD_FLUX_LIMITER.h |
6 |
|
7 |
C !INTERFACE: |
8 |
C #include "GAD_FLUX_LIMITER.h" |
9 |
C _RL Limiter |
10 |
C Limiter(Cr) |
11 |
|
12 |
C !DESCRIPTION: |
13 |
C Contains statement function defining limiter function. |
14 |
C |
15 |
C A trivial limit for the limiter recovers the upwind scheme: |
16 |
C \begin{equation*} |
17 |
C Limiter(Cr)=0 |
18 |
C \end{equation*} |
19 |
C Lax-Wendroff is recovered with: |
20 |
C \begin{equation*} |
21 |
C Limiter(Cr)=1 |
22 |
C \end{equation*} |
23 |
C The current limiter of choice is the "Superbee" limiter: |
24 |
C \begin{equation*} |
25 |
C Limiter(Cr)=max(0,max(min(1,2*Cr),min(2,Cr))) |
26 |
C \end{equation*} |
27 |
C which is the default. |
28 |
CEOP |
29 |
|
30 |
C Statement function to describe flux limiter |
31 |
_RL Limiter |
32 |
C Upwind Limiter(Cr)=0. |
33 |
C Lax-Wendroff Limiter(Cr)=1. |
34 |
C Suberbee Limiter(Cr)=max(0.,max(min(1.,2*Cr),min(2.,Cr))) |
35 |
|
36 |
c Limiter(Cr)=0. |
37 |
c Limiter(Cr)=1. |
38 |
Limiter(Cr)=max(0.D0,max(min(1.D0,2.D0*Cr), |
39 |
& min(2.D0,Cr))) |