So I am currently busy but if no ready unswer will come, I have to look into the code :confused:
Quote:
|
Sorry I have not read everything in this thread carefully but my PhD thesis (which can be downloaded from this link -- https://drum.lib.umd.edu/handle/1903/21883) discusses both these schemes reasonably well I think -- see information around page 27 in my thesis for linearUpwind and information around pages 34-35 for limitedLinear ....
Some other schemes are also reasonably well discussed in there (for example LUST, Gamma) .... Most of the schemes are discussed through the NVD diagram which provides some useful insights .... Convergence speed for different schemes is also discussed a little bit in there .... Cheers .... |
Just a small question: in your thesis you use fx in eq. 2.23 - is it the gradient in x direction or what is ist? Thanks!
|
Hello Daniel -- fx is described in the LUST scheme section (page 28, text below equation 2.15) -- I have pasted some of that text below:
"f x represents the mesh non-uniformity in the direction of the vector r. For uniform grids (for which f x = 1/2)" |
Quote:
did you investigate into that topic and did you get a reasonable answer? I was expecting more or less the same result as you wrote. Using a limiter of 0 should be identical to linear. |
Hi Tobias:
I am guessing the reason why "linear" and "limitedLinear 0" do not give identical results is because "limitedLinear 0" becomes upwind outside the Convection Boundedness Criterion (CBC) region on the NVD diagram -- see for example the discussion and figures around page 35 in my thesis (https://drum.lib.umd.edu/handle/1903/21883) .... This thread (https://www.cfd-online.com/Forums/op...tml#post805421) also discusses the same issue and I wrote a similar answer there as well (see post #23) .... I hope this helps .... |
I am not too much into the single discretization schemes and its pro/cons. I would need to investigate into the OpenFOAM code to understand the real difference. However, if you say some parts go to upwind rather than linear, it should be obvious.
You thesis already had more downloads than mine will get until 2200 :) Well. Regarding to your thesis, k represents the limiter, right? So k = 0 is a "bounded linear (central differencing)" scheme. However, I need some time to go through the stuff (whenever I will find the motivation :P ) |
When I did my thesis -- I looked at the code and wrote the equations for the different schemes ....
To confirm that I am reading the code correctly I remember I wrote a small OpenFOAM utility that gave me the face values directly .... Then I compared the face values given by the equations and the OpenFOAM utility with a simple python or Matlab script -- they were within machine precision as far as I remember -- so I am quite confident about the equations given in my thesis .... And yes k is the limiter/coefficient and can go from 0 to 1 .... |
Quote:
In OpenFOAM, limitedLinear: linearUpwind: When I output the matrix created by fvm::div(phi, T) through fvScalarMatrix divphi_tmp(fvm::div(phi, T));, I found that the values of divphi_tmp.diag(), divphi_tmp.lower(). divphi_tmp.upper() are identifical no matter which schemes (i.e., upwind and linearUpwind) are used in fvSchemes, expect for divphi_tmp.source(). Where, is a limiter, is the gradient of T at the cell centroid P. How to calculate the grad(T) at the centroid? OpenFOAM will search the gradScheme in fvSchemes. For the Gauss linear scheme, grad(T) is computed by the sum of the product of (i.e., T at faces around the cell P), direction vector and area respectively in the x, y, z directions, as explained in https://www.youtube.com/watch?v=oeA1Bg9GqQQ. So the contribution of fvm::div(phi, T), when using linearUpwind, enters TEqn.source() from the . So, the grad(T) is computed by , and the grad(T) in the linearUpwind scheme contributes the divphi_tmp.source(). If grad(T) is computed by like , the contribution of fvm::div(phi, T) will affect divphi_tmp.lower() and divphi_tmp.upper(), and not affact divphi_tmp.source(). |
All times are GMT -4. The time now is 19:40. |