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

How to compute WENO-reconstructed flux in local characteristic field?

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 20, 2017, 04:02
Default How to compute WENO-reconstructed flux in local characteristic field?
  #1
Member
 
Oleg Sutyrin
Join Date: Feb 2016
Location: Russia
Posts: 41
Rep Power: 10
OlegSutyrin is on a distinguished road
I'm trying to apply finite-difference characteristic-wise WENO method to 1D Euler equations:
U_t + F(U)_x = 0, \; \;\text{where} \;\; U = (\rho, \rho u, e) \;\; \text{and} \;\;F(U) = (\rho u, \rho u^2+p, (e+p)u)
Physical values are set at grid points x_j, so we need to approximate fluxes at mid-points x_{j\pm \frac{1}{2}}:
U_t \approx \frac{1}{h} \left[ \widehat{f}_{j+\frac{1}{2}} - \widehat{f}_{j-\frac{1}{2}} \right]
where \widehat{f}_{j\pm\frac{1}{2}} are sought-for approximation of physical fluxes f(U(x_{j\pm\frac{1}{2}})).

My algorithm is the following:

1) For each x_{j+\frac{1}{2}}, we calculate simple average state U_{j+\frac{1}{2}} = \frac{1}{2} (U_j + U_{j+1}) and, using it, local eigenvalues (u-a, u, u+a)_{j+\frac{1}{2}}, right eigenvector matrix R_{j+\frac{1}{2}} and it's left counterpart R^{-1}_{j+\frac{1}{2}}. (Subscript {j+\frac{1}{2}} will be omitted below)

2) Now we transform U, its differences \Delta U and flux differences \Delta F(U) to local characteristic field:
W=R^{-1}U, \;\; \Delta W=R^{-1}\Delta U, \;\; \Delta F(W)=R^{-1}\Delta F(U)
It is done only for relevant grid points which in my case (r=2) are x_{j-1}, x_j, x_{j+1}, x_{j+2}.

3) Then we reconstruct characteristic variable values by WENO method using W, \Delta W and \Delta F(W). We get two "candidates":
\widehat{W}^- = R_j(x_{j+\frac{1}{2}}) \; \text{and} \; \widehat{W}^+ = R_{j+1}(x_{j+\frac{1}{2}})
where R_j(x), R_{j+1}(x) are a convex combinations of corresponding polynomial functions obtained by WENO method.

The next step would be to compute 2-point flux function h(\widehat{W}^-,\widehat{W}^+) using these reconstructed values. I'm using Lax-Friedrich's function:
h(a,b) = \frac{1}{2} \left[ F(a) + F(b) + \alpha(b-a) \right]
where \alpha is maximum value of eigenvalue (different for each of equations, since they are decoupled now).

But how to compute these F(a) and F(b) using \widehat{W}^\pm? In component-wise approach it is simple: we reconstruct base values - (\widehat{\rho}^\pm, \widehat{u}^\pm, \widehat{p}^\pm), for example - and the use explicit formulas to compute F(a) = (\widehat{\rho}^- \widehat{u}^-, \; \widehat{\rho}^- (\widehat{u}^-)^2 + \widehat{p}^-,\; ...) and F(b) = (\widehat{\rho}^+ \widehat{u}^+, \; \widehat{\rho}^+ (\widehat{u}^+)^2 + \widehat{p}^+,\; ...), but we don't have such formulas for F(\widehat{W}) because \widehat{W} is expressed in local characteristic field...
OlegSutyrin is offline   Reply With Quote

Old   August 22, 2017, 06:03
Default
  #2
Member
 
Oleg Sutyrin
Join Date: Feb 2016
Location: Russia
Posts: 41
Rep Power: 10
OlegSutyrin is on a distinguished road
It seems that I was misunderstanding how the flux is reconstructed:

My idea was to reconstruct base values - U (or W if we are performing characteristic decomposition) - and then substitute them to formulas of F(U) (or F(W)) to obtain reconstructed fluxes.

It looks like the correct way is to apply reconstruction procedure to F(U) (or F(W) which is obtained by transformation F(W) = R^{-1}F(U)) itself. Some quick tests I performed with this approach show very plausible results.
OlegSutyrin is offline   Reply With Quote

Old   September 4, 2017, 14:24
Default
  #3
Senior Member
 
Join Date: Sep 2015
Location: Singapore
Posts: 102
Rep Power: 11
usv001 is on a distinguished road
Hi there,

Here's what I am doing: after reconstructing the characteristic variables at the face, I use the left eigenvector matrix to convert them back to primitive variables. Then, I use these to compute the flux using the flux function, e.g. Lax-Friedrich method. It has performed well in several 1D test cases.

USV
usv001 is offline   Reply With Quote

Reply

Tags
charateristic-wise, finite-difference, weno


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
p_rgh initial residual no change with different settings manuc OpenFOAM Running, Solving & CFD 3 June 26, 2018 16:53
Moving mesh Niklas Wikstrom (Wikstrom) OpenFOAM Running, Solving & CFD 122 June 15, 2014 07:20
Problem with rhoSimpleFoam matteo_gautero OpenFOAM Running, Solving & CFD 0 February 28, 2008 07:51
Convergence moving mesh lr103476 OpenFOAM Running, Solving & CFD 30 November 19, 2007 15:09
IcoFoam parallel woes msrinath80 OpenFOAM Running, Solving & CFD 9 July 22, 2007 03:58


All times are GMT -4. The time now is 15:52.