You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _docs_v7/Gradients-Limiters-Grant.md
+83-7Lines changed: 83 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,20 +21,96 @@ Grant will work on:
21
21
Do this before diving into the comparisons (which can be a lot more work)
22
22
Also we assume that the user will know the theory, and that they are just looking for the limiters that are available in SU2 first.
23
23
24
-
We may want to link to another place in the docs where they mention that limiters can be activated after a specific number of iterations.
24
+
25
+
The field `SLOPE_LIMITER_FLOW` in the `.cfg` file specifies which limiter to use, and defaults to `VENKATAKRISHNAN` (see below). Note that this option is only used if `MUSCL_FLOW = YES` (which specifies to use a second-order method).
26
+
An example is shown here: https://su2code.github.io/tutorials/Laminar_Cylinder/. The [Turbulent Flat Plate example](https://su2code.github.io/tutorials/ Turbulent_Flat_Plate/) sets `SLOPE_LIMITER_TURB` (also defaulting to `VENKATAKRISHNAN`), which is used for the turbulence equations, rather than for the flow equations. Using a limiter similarly requires `MUSCL_TURB = YES` The settings `MUSCL_ADJFLOW`, `MUSCL_ADJTURB`, `SLOPE_LIMITER_ADJFLOW`, and `SLOPE_LIMITER_ADJTURB` set the corresponding options for the respective adjoint equations. For species transport, the options `MUSCL_SPECIES` and `SLOPE_LIMITER_SPECIES` are used.
27
+
28
+
<!-- There's also:
29
+
% Frozen the slope limiter in the discrete adjoint formulation (NO, YES)
30
+
FROZEN_LIMITER_DISC= NO
31
+
-->
32
+
33
+
34
+
<!--
35
+
CLimiterDetails.hpp:
36
+
computeLimiters.hpp uses computeLimiters_impl.hpp and really just sets the limiter
37
+
computeLimiters_impl.hpp passes computation of field values (cell averages), gradients, and to the limiter
38
+
39
+
also check out
40
+
computeGradientsGreenGauss.hpp
41
+
42
+
-->
43
+
44
+
The `SLOPE_LIMITER_` options above may each be changed to use different limiters, as explained below.
45
+
46
+
47
+
All of the limiters depend on variables `proj`, `delta`, and `eps`/`eps2` (and maybe `dist` for `raisedSine` in `SHARP_EDGES`)
48
+
49
+
Limiters
50
+
51
+
| Type | Description | Notes |
52
+
| --- | --- | --- |
53
+
|`NONE`| No limiter ||
54
+
|`BARTH_JESPERSEN`| Barth-Jespersen ||
55
+
|`VENKATAKRISHNAN`| Venkatakrishnan ||
56
+
|`VENKATAKRISHNAN_WANG`| Venkatakrishnan-Wang ||
57
+
|`SHARP_EDGES`| Venkatakrishnan with sharp edge modification ||
58
+
|`WALL_DISTANCE`| Venkatakrishnan with wall distance modification ||
59
+
60
+
61
+
The `VENKAT_LIMITER_COEFF` parameter is generally a small constant, defaulting to $0.05$, but its specific definition depends on the limiter being used.
62
+
63
+
For the `VENKATAKRISHNAN` option, the `VENKAT_LIMITER_COEFF` parameter refers to $K$ in $\epsilon^2=\left(K\bar{\Delta} x\right)^3$, where $\bar{\Delta}$ is an average grid size. The $K$ parameter defines a threshold, below which oscillations are not damped by the limiter, as described by [Venkatakrishnan](https://doi.org/10.1006/jcph.1995.1084). Thus, a large value will approach the case of using no limiter, while too small of a value will slow the convergence.
64
+
65
+
66
+
[Wang](https://doi.org/10.2514/6.1996-2091)
67
+
68
+
<!-- Maybe a better way to word this. -->
69
+
After the number of iterations given by `LIMITER_ITER` (default $999999$), the value of the limiter will be frozen.
70
+
71
+
72
+
73
+
<!-- We can specify which limiters are applied through the fields
74
+
constexpr size_t MAXNVAR = 32; -->
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
<!--
94
+
Should I mention some possible errors
95
+
96
+
SU2_MPI::Error("Too many dimensions to compute limiters.", CURRENT_FUNCTION);
0 commit comments