1 |
adcroft |
1.5 |
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 |
adcroft |
1.1 |
|
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 |
heimbach |
1.4 |
Limiter(Cr)=max(0.D0,max(min(1.D0,2.D0*Cr), |
39 |
|
|
& min(2.D0,Cr))) |