-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update documentation for Gradients and Limiters #83
base: develop
Are you sure you want to change the base?
Changes from all commits
4dcff98
1f21d6d
ce4ed39
85ec5fc
ff2c593
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
--- | ||
title: Gradients and Limiters | ||
permalink: /docs_v7/Gradients-Limiters/ | ||
--- | ||
|
||
This page lists the gradient of the space computation methods and the limiter functions in SU2 as well as their associated options, it is not meant as a detailed theory guide but some application guidance is given nonetheless. The options listed here do not apply to the high order DG solver. | ||
|
||
--- | ||
|
||
|
||
--- | ||
|
||
## Gradient Computation ## | ||
The numerical method for the computation of the spatial gradients used for viscous fluxes and source terms is specified by the `NUM_METHOD_GRAD` field. The list of available options is given below: | ||
- `GREEN_GAUSS`: Classic gradient reconstruction based on the Green-Gauss theorem (edge-based). | ||
- `WEIGHTED_LEAST_SQUARES`: Compute the gradient of a field using inverse-distance-weighted approximation. | ||
The default value is `WEIGHTED_LEAST_SQUARES`. | ||
|
||
The spatial gradients method used only for upwind reconstruction is specified by the `NUM_METHOD_GRAD_RECON` field. An additional method is available: | ||
- `LEAST_SQUARES`: Compute the gradient of a field using unweighted Least- Squares approximation. | ||
|
||
If the `NUM_METHOD_GRAD_RECON` field is left empty or set to `NONE` it defaults to `NUM_METHOD_GRAD`. | ||
|
||
Thin Shear Layer gradient reconstruction is always used for the construction of the Jacobian. | ||
|
||
## Limiters ## | ||
SU2 implements limiter functions to prevent the generation of oscillations when using second order upwind spatial discretisations. These are specified by the config field `SLOPE_LIMITER_FLOW`. The available options are: | ||
- `NONE` : No limiter | ||
- `VENKATAKRISHNAN` : Slope limiter using Venkatakrisnan method, with reference length of 1. | ||
- `VENKATAKRISHNAN_WANG` : Slope limiter using Venkatakrisnan method, with a small non-vanishing bias proportional to the min-to-max range of the solution, to avoid limiting in small regions. | ||
- `BARTH_JESPERSEN` : Slope limiter using Barth-Jespersen method. | ||
- `VAN_ALBADA_EDGE` : Slope limiter using Van Albada method. | ||
- `SHARP_EDGES` : Slope limiter based on the distance to the nearest sharp edge. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This and wall distance should not be used for flow solvers |
||
- `WALL_DISTANCE` : Slope limiter based on wall distance. | ||
With `VENKATAKRISHNAN` being the default option. | ||
|
||
The `VENKAT_LIMITER_COEFF` tunable field is used to compute the small non-vanishing bias to prevent divisions by zero, $\epsilon$. Depending on the limiter to be used this field has different interpretations. For the `VENKATAKRISHNAN` limiter it represents the constant $K$ in $\epsilon^2=\left(K\Delta x\right)^3$. We refer to [Venkatakrishnan](https://doi.org/10.1006/jcph.1995.1084) for further details. For the `VENKATAKRISHNAN_WANG` limiter it represents the constant $\epsilon^{\prime}$ in $\epsilon = \epsilon^{\prime}(q^{\text{\max}}-q^{\text{\min}})$. We refer to [Wang](https://doi.org/10.2514/6.1996-2091) for further details. For both limiters larger values of `VENKAT_LIMITER_COEFF` decrease the extent of limiting, while values approaching zero cause lower-order approximation to the solution. Larger values of `VENKAT_LIMITER_COEFF` will reduce the high frequency oscillations of the sulition making it more stable and attaining better convergence properties. On expense, the accuracy of the solution will be typycally affected. The dafault value is 0.05. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I have written the last part: "Larger values of There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's a bit misleading. Specify that the oscillations are of the residuals (aka flip flopping). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Adapt the divisions by zero according to my comment above, the true purpose is not to prevent div by 0 |
||
|
||
The value of the limiter can be frozen after a certain amount of iterations, which can be specified in the `LIMITER_ITER`. The default value is $999999$. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The start of this sentence is not very clear.