CFD Online Logo CFD Online URL
Home > Forums > Main CFD Forum

Left/right states for Riemann problems

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

LinkBack Thread Tools Display Modes
Old   May 30, 2008, 04:01
Default Left/right states for Riemann problems
Posts: n/a
Sponsored Links

I'm new to the finite volume method and its implementation. I have what I believe is a silly question about signs.

I'm trying to build a 3d vertex-centered NS solver for tetrahedral meshes using control volumes (CV) defined by the associated median dual mesh. For the convective fluxes I wish to offer a number of different approximate Riemann solvers, beginning with Roe's.

I have set things up such that, given an edge between vertices A and B, the normal to the interface between CV_A and CV_B intersected by this edge points away from B. I also have a binormal and tangent to the interface that allows me to rotate state variables from the Cartesian xyz-frame to the local frame at the interface.

Having done the rotation, I need the left and right states at the interface to proceed.

My first question is: what state is at A - is it the left or the right state? Does it depend on the direction of the interface normal ?

The choice can't be arbitrary because although the flux Jacobian does not depend on which is left or right (it depends only on Roe averages), the interface jumps do.

Looking at my notes for a 1D Riemann problem it appears that the left state should be such that the interface normal points from "left" to "right", although this is not mentioned anywhere. To get to my next question, I'll assume that this is so. This means that in my case, the left state is at B, right state at A. Now my jumps are (U_A - U_B) where U is the vector of conserved variables.

Now I calculate the fluxes and rotate them back to the xyz-frame to prepare for update of the vertex-centered values according to the typical scheme:

U^(n+1) = U^n - delta_t/|Volume| x Flux-integral

where the flux integral must be evaluared using the outward normal (Gauss theorem). Now, since the normal pointed away from B and towards A, this means that my nodal values should be updated as:

U_A^(n+1) = U_A^(n) + delta_t/|Volume| x Flux-integral (1)

U_B^(n+1) = U_B^(n) - delta_t/|Volume| x Flux-integral (2)

For comparison I found a 2D solver (NSC2KE) that does exactly the same as I have described above. In particular, for an edge AB the associated CV interface normal points away from vertex B. The only difference is that this code uses vertex A as left state, thus its jumps are U_B-U_A. Opposite sign of mine. Yet, it uses the exact same update formula (1)-(2).

This I don't understand. Changing the sign of the jumps should, all other things being equal, change the signs of the flux terms in (1)-(2) as well.

I would appreciate it if someone could point out my mistakes.

Thanks, Martin
  Reply With Quote
Sponsored Links

Old   May 30, 2008, 10:19
Default Re: Left/right states for Riemann problems
Ananda Himansu
Posts: n/a
From your formulas (1) and (2), "Flux-integral" should be the flux outward for the CV containing B and inward for the CV containing A. This is consistent with your stated interface normal direction pointing from B to A.

If the NSC2KE code uses your formulas (1) and (2), and adopts the same interface normal direction, then the difference between your code and NSC2KE must be in the relationship between the flux-integral and the jump in the conservative variables U. In that relationship, the two codes must reverse signs to account for the opposite directions of the jump in U.
  Reply With Quote

Old   May 30, 2008, 12:17
Default Re: Left/right states for Riemann problems
Posts: n/a
Thanks for the reply.

Having thought more about it, I conclude that the convention for what is the left and right states has nothing to do with the direction of the normal. Instead, whenever one considers the conservation equation for a control volume CV:

dU/dt = -S_dCV[F(U)dA] (1)

where dCV is the boundary of CV and S is the integral symbol, the convention is that the left state is inside CV, the right state is in any adjacent CV (or external to the domain at boundaries).

The everything falls into place. In NSC2KE (1) then becomes

dU/dt = S_dCV[F(U)dA]

at vertex A because the normal points into CV_A. And the jumps are calculated as U_B - U_A which is right state minus left state as it should be.
  Reply With Quote

Old   May 30, 2008, 14:58
Default Re: Left/right states for Riemann problems
Ananda Himansu
Posts: n/a
okay, if you say so. glad you were able to figure it out.
  Reply With Quote

Old   July 7, 2009, 13:47
Nishant Kumar
Join Date: Jun 2009
Posts: 32
Rep Power: 10
Nishu is on a distinguished road

I am also dealing with 1D Riemann compressible flow problem,
Were you able to figure out/ wrote the code for it?

Nishu is offline   Reply With Quote


Thread Tools
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 On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
[ICEM] Problems with coedge curves and surfaces tommymoose ANSYS Meshing & Geometry 0 August 5, 2011 16:02
Needed Benchmark Problems for FSI Mechstud Main CFD Forum 4 July 26, 2011 12:13
Help required to solve Hydraulic related problems aero CFX 0 October 30, 2006 12:00
Some problems with Star CD Micha Siemens 0 August 6, 2003 13:55
Inverse problems Aleksey Alekseev Main CFD Forum 0 May 12, 1999 15:38

Sponsored Links

All times are GMT -4. The time now is 05:50.