CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > General Forums > Main CFD Forum

TVD?Riemann Solver? Shock Capture?

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   June 17, 2010, 20:06
Smile TVD?Riemann Solver? Shock Capture?
  #1
New Member
 
Join Date: Jun 2010
Posts: 14
Rep Power: 15
nashiong is on a distinguished road
hi all:
I am now studying shock capture scheme and I am really confusing about several conceptions.
that's TVD scheme, limiters, Riemann solvers, Godunov type scheme. I want to get a whole picture at first.
My understanding is TVD is another saying for limiter, and confine the interpolation to prevent from upshoot and downshoot, Riemann solver evaluates flux at cell face, is somekind of analytical solution. So we first use TVD to evaluate value, then use this value for Riemann solver for flux. I don't know what is Godunov type scheme.
I would rather appreciate for your help
nashiong is offline   Reply With Quote

Old   June 23, 2010, 03:58
Default
  #2
New Member
 
Nicholas F Camus
Join Date: Sep 2009
Location: London, England.
Posts: 21
Rep Power: 16
Killercam is on a distinguished road
The application of a flux limiter is to stabilise the code. If the code is second-order and above, the application of a flux limiter makes/should make the code TVD.

Riemann problem solves for the intercell numerical fluxes at cell interfaces - the solution does not have to be analystical - in fact in most cases there is no analytical solution. Accurate solution of the Riemann problem is the clever part of the code.

Godunov schem is a conservative upwind scheme for quasi-linear hyperbolic systems of PDEs. See book bny E. Toro. It is easly derived by considering the flues through a finite volume.
Killercam is offline   Reply With Quote

Old   June 23, 2010, 13:27
Default
  #3
jed
Member
 
Jed Brown
Join Date: Mar 2009
Posts: 56
Rep Power: 19
jed is on a distinguished road
Quote:
Originally Posted by Killercam View Post
If the code is second-order and above, the application of a flux limiter makes/should make the code TVD.
A discretization cannot be TVD and higher than second order. This is a theorem. But it can be "non-oscillatory" of arbitrary order, see (W)ENO.
jed is offline   Reply With Quote

Old   June 23, 2010, 16:37
Default
  #4
New Member
 
Join Date: Jun 2010
Posts: 14
Rep Power: 15
nashiong is on a distinguished road
Thanks a lot, I think I am clear about TVD and limiter. TVD is more like an adjective, meaning non-oscillative.
I am still a little confusing about Godunov and Riemann solver. I will look at Toro's book soon.
By the way, if we can capture shock using upwind scheme with conservative form, why we need to use Riemann solver? what's the motivation for Riemann solver? I mean, people face what problem and result in the appearance of Riemann solver?
thanks very much


Quote:
Originally Posted by Killercam View Post
The application of a flux limiter is to stabilise the code. If the code is second-order and above, the application of a flux limiter makes/should make the code TVD.

Riemann problem solves for the intercell numerical fluxes at cell interfaces - the solution does not have to be analystical - in fact in most cases there is no analytical solution. Accurate solution of the Riemann problem is the clever part of the code.

Godunov schem is a conservative upwind scheme for quasi-linear hyperbolic systems of PDEs. See book bny E. Toro. It is easly derived by considering the flues through a finite volume.
nashiong is offline   Reply With Quote

Old   June 23, 2010, 16:39
Default
  #5
New Member
 
Join Date: Jun 2010
Posts: 14
Rep Power: 15
nashiong is on a distinguished road
thx, Could you tell me what's the difference between "non-oscillatory" and 'TVD'?

Quote:
Originally Posted by jed View Post
A discretization cannot be TVD and higher than second order. This is a theorem. But it can be "non-oscillatory" of arbitrary order, see (W)ENO.
nashiong is offline   Reply With Quote

Old   June 23, 2010, 16:44
Default
  #6
jed
Member
 
Jed Brown
Join Date: Mar 2009
Posts: 56
Rep Power: 19
jed is on a distinguished road
TVD means Total Variation Diminishing, "non-oscillatory" schemes like WENO will produce small oscillations around discontinuities, a TVD method introduces no new extrema (there will be no oscillations, however small). Upwind schemes and Riemann solvers go hand-in-hand. The issue is that you usually have to solve a local problem just to determine the direction and speeds of the waves. An exact Riemann solver for the advection equation is the trivial upwind procedure. You can think of Riemann solvers as a generalization of this trivial upwinding to nonlinear equations and systems. Reconstruction (involving limiting) is mostly orthogonal to the Riemann solver, the physics goes in the Riemann solver while the order of accuracy and non-oscillatory properties go into the reconstruction (and time discretization, you need to use a strong stability preserving (SSP) method to preserve nonlinear stability properties like TVD).
jed is offline   Reply With Quote

Old   June 23, 2010, 17:11
Default
  #7
New Member
 
Join Date: Jun 2010
Posts: 14
Rep Power: 15
nashiong is on a distinguished road
thx a lot. Do you mean that without using Riemann-type upwind scheme, classical upwind scheme should capture shock speed well too? ( don't consider oscillation at this stage )
My puzzle now is that: for very strong gradient, such as dam break on dry bed or very shallow wet bed. Riemann solver could capture the wave front well, but my upwind scheme failed to capture it. So I think Riemann solver is much accurate than classical upwind scheme?
for mild shock, my upwind scheme also performs well


Quote:
Originally Posted by jed View Post
TVD means Total Variation Diminishing, "non-oscillatory" schemes like WENO will produce small oscillations around discontinuities, a TVD method introduces no new extrema (there will be no oscillations, however small). Upwind schemes and Riemann solvers go hand-in-hand. The issue is that you usually have to solve a local problem just to determine the direction and speeds of the waves. An exact Riemann solver for the advection equation is the trivial upwind procedure. You can think of Riemann solvers as a generalization of this trivial upwinding to nonlinear equations and systems. Reconstruction (involving limiting) is mostly orthogonal to the Riemann solver, the physics goes in the Riemann solver while the order of accuracy and non-oscillatory properties go into the reconstruction (and time discretization, you need to use a strong stability preserving (SSP) method to preserve nonlinear stability properties like TVD).
nashiong is offline   Reply With Quote

Old   June 23, 2010, 17:17
Default
  #8
jed
Member
 
Jed Brown
Join Date: Mar 2009
Posts: 56
Rep Power: 19
jed is on a distinguished road
What do you mean "classical upwind scheme"? You will usually have multiple waves going in both directions, you can only determine those directions by solving a Riemann problem. Note that any stable and consistent (even if approximate, e.g. Rusanov, HLL, Roe+entropy fix) Riemann solver will preserve monotonicity inherent in the equations, so it should never generate a negative thickness/density/energy.

What did your method "not capture"? Note that a first-order method will tend to blur contact waves (and, less severely, shocks).
jed is offline   Reply With Quote

Old   June 23, 2010, 17:27
Default
  #9
New Member
 
Join Date: Jun 2010
Posts: 14
Rep Power: 15
nashiong is on a distinguished road
for example, I use third order upwind scheme to capture shock on wet bed.
so you mean that: since there are multiple waves going, single upwind scheme can not capture shock well in this case? it makes sense, but how could we explain for mild shock, upwind scheme also capture dam break shock well......
referring to 'not capture', I mean the shock front speed, front speed, all miss.
Many thanks to your careful explanation.

Quote:
Originally Posted by jed View Post
What do you mean "classical upwind scheme"? You will usually have multiple waves going in both directions, you can only determine those directions by solving a Riemann problem. Note that any stable and consistent (even if approximate, e.g. Rusanov, HLL, Roe+entropy fix) Riemann solver will preserve monotonicity inherent in the equations, so it should never generate a negative thickness/density/energy.

What did your method "not capture"? Note that a first-order method will tend to blur contact waves (and, less severely, shocks).
nashiong is offline   Reply With Quote

Old   June 23, 2010, 17:29
Default
  #10
New Member
 
Join Date: Jun 2010
Posts: 14
Rep Power: 15
nashiong is on a distinguished road
at the same time, do you mean the power for Riemann solver is that it can resolve multiple wave direction at the same time, while classical upwind scheme could only track one direction?
Quote:
Originally Posted by jed View Post
What do you mean "classical upwind scheme"? You will usually have multiple waves going in both directions, you can only determine those directions by solving a Riemann problem. Note that any stable and consistent (even if approximate, e.g. Rusanov, HLL, Roe+entropy fix) Riemann solver will preserve monotonicity inherent in the equations, so it should never generate a negative thickness/density/energy.

What did your method "not capture"? Note that a first-order method will tend to blur contact waves (and, less severely, shocks).
nashiong is offline   Reply With Quote

Old   June 23, 2010, 17:38
Default
  #11
jed
Member
 
Jed Brown
Join Date: Mar 2009
Posts: 56
Rep Power: 19
jed is on a distinguished road
You didn't answer my question about what "classical upwind scheme" means? How do you compute fluxes? This usually requires an (approximate) Riemann solve, it's really not possible to naively look at the states on either side of the shock and know which direction it is propagating, or even whether it is a shock or rarefaction, or contact wave. You can start with a very simple Rusanov flux, it may be somewhat over-diffusive, but it's trivial to implement and should produce correct speeds.
jed is offline   Reply With Quote

Old   June 23, 2010, 23:56
Default re
  #12
New Member
 
Join Date: Jun 2010
Posts: 1
Rep Power: 0
vincomgo is on a distinguished road
wow tks a lot.u help me have a clear view about this that I was so confused before
--------
Dedicated PHP Developers
vincomgo is offline   Reply With Quote

Old   August 18, 2020, 01:14
Default
  #13
New Member
 
Tanmay.P
Join Date: Aug 2020
Posts: 4
Rep Power: 5
Tanmay.P is on a distinguished road
Quote:
Originally Posted by jed View Post
You didn't answer my question about what "classical upwind scheme" means? How do you compute fluxes? This usually requires an (approximate) Riemann solve, it's really not possible to naively look at the states on either side of the shock and know which direction it is propagating, or even whether it is a shock or rarefaction, or contact wave. You can start with a very simple Rusanov flux, it may be somewhat over-diffusive, but it's trivial to implement and should produce correct speeds.
Hey sorry to resurrect decade old thread,

I think he mean standard 'upwind differencing' face interpolation schemes which interpolates value from cell centroids to the faces.

I have a similiar question, its pretty fundamental.

I was wondering, ROE-FDS scheme which is an approximate Riemann solver, is basically used to calculate interface fluxes directly onto the faces.

As far as I have ready FLUENT manual, it seems discretisation schemes do pretty much same thing (like MUSCL, QUICK, etc..). They interpolate the value (density, velocity, pressure...) on the face. Is that not enough to capture shock? (just instead of calculating fluxes, we can directly project and post process it.)

what am I missing here? is Riemann scheme used because it can distinguish the information propagation direction and then computes correct values?
Tanmay.P is offline   Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Working directory via command line Luiz CFX 4 March 6, 2011 21:02
Unable to Capture Shock in Transonic Flow Tim Siemens 6 January 29, 2009 07:05
why the solver reject it? Anyone with experience? bearcat CFX 6 April 28, 2008 15:08
compressible two phase flow in CFX4.4 youngan CFX 0 July 2, 2003 00:32
Setting a B.C using UserFortran in 4.3 tokai CFX 10 July 17, 2001 17:25


All times are GMT -4. The time now is 11:58.