CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Main CFD Forum (https://www.cfd-online.com/Forums/main/)
-   -   richardson extrapolation (https://www.cfd-online.com/Forums/main/114290-richardson-extrapolation.html)

 Puigar March 8, 2013 08:02

richardson extrapolation

hello!

I am trying to get a value from an independence mesh test, and I was told to use richardson extrapolation.

If I only have a table with mesh values and the force value. how do I do the extrapolation? I am not able to find suitable examples anywhere.. those are an example of the data. By eyesight I can guess that the value of F on N to infinite will be close to 1.42-1.415. But how I get the value analitically??

N 10 20 30 40
F 1.5984431 1.4780298 1.4446029 1.4293989

Puigar

 RodriguezFatz March 8, 2013 11:35

What is "N"?

 flotus1 March 8, 2013 11:42

For a correct richardson extrapolation, all you need to know is the order of the discretization error p of your numerical scheme.
The correct formula for a richardson extrapolation can be foung e.g. on wikipedia.

Remember that the size of your elements enters the formula, not the number of elements.

 RodriguezFatz March 8, 2013 11:48

Quote:
 Originally Posted by flotus1 (Post 412575) For a correct richardson extrapolation, all you need to know is the order of the discretization error p of your numerical scheme. The correct formula for a richardson extrapolation can be foung e.g. on wikipedia. Remember that the size of your elements enters the formula, not the number of elements.
But it seems to be much better to calculate "p" based on two refinements rather than just trusting your software that it is 2nd order accurate...

 flotus1 March 8, 2013 12:00

I agree...

 Puigar March 8, 2013 12:07

N10 is 41600 nodes (mesh is 80x520, rectangular domain)
N20 is 166400 nodes 160x1040
N30 is 374400 nodes 240x1560
N40 is 665600 nodws 320x2080

I am running with lattice boltzmann method, and it is fully adimensionalized. So if I have to consider the distance between nodes it could be like (guess):
(x axe)
h
h/2
h/3
h/4

(y axe)
the other values respectively

like this I will be able to find the asymptotic value of h+N where N tends to infinite?

 flotus1 March 8, 2013 14:28

From your values at h, h/2 and h/4 I evaluate the error order p=1.308.

Using this for a Richardson Extrapolation from h/2 and h/4 I get a value of 1.396.

For completeness, here is the formula from Wikipedia:

 RodriguezFatz March 11, 2013 04:36

Hi,

For the values of N=10,20,40 I get a numerical order of p=3.34,
an error of the fine grid e=-0.00167 and a correct value of f=1.427732

 flotus1 March 11, 2013 05:20

Strange...
How do you evaluate the order of the error?

 RodriguezFatz March 11, 2013 05:24

p=LOG(f_20 - f_40 / f_10 - f_20) / LOG(2)
It is LOG(2) only, if the grade of refinement in each step is 2 (in each direction) - which is the case here.
f_10, f_20, f_40 is related to the finest, normal and coarse grid.
This is explained in the Ferziger/Peric book.

 flotus1 March 11, 2013 05:34

A quadratic fit with excel yields this:

Enforcing an "exact" value of 1.427732 yields this, which doesnt fit the values very well:http://www.cfd-online.com/Forums/dat...AASUVORK5CYII=

Are you sure you applied Ferzigers formula correctly?

I derived a similar formula myself, i guess you just mixed up the sequence between coars and fine.

 RodriguezFatz March 11, 2013 05:54

No :D, but I just checked it and it seems to be right.
Well, as I understand it, it is not proper to make a quadratic fit in this case. The error of "f" should be something like

e = constant * (dx)^p,

where dx is the size of the grid. Now, if you have two consecutive refinements (=three values) you can estimate "p". If it is about 3.34, it doesn't seem to be right to use a quadratic fit for "e".

Hmm... when I create your first pic, it doesn't look like that, could you check the values for f and dx?

Also, I do not use the N=30 value at all.

 RodriguezFatz March 11, 2013 05:57

Sorry, I used the value of N=30 instead of N=20... wait a second.:rolleyes:

Alright, I get an order of p=1.31, error of N=40 is -0.03295 and corrected value is f_corr=1.396453.

 flotus1 March 11, 2013 06:03

Double-checked my values... everything correct.

If I assume the error order to be below 2, I can make a quadratic fit.
And since the quadratic fit "fits" very well, this is a strong evidence that the error is of order h^2 to the maximum.

For my derivation of the error order, I used the Ansatz F(h_i) = F(h=0) + a*(h_i)^p

 Puigar March 11, 2013 06:59

what are the values of the x axe for these two graphs??

Edit: and in addition: What are U_g and U_u from the richardon's formula?? I dont get how do you get that value, since you said you use the h, h/2 and h/4 that make 3 points, but there are only 2 arguments for U in the richardson's formula.

 RodriguezFatz March 11, 2013 07:40

x-axis shows the size of "dx" elements:
1/80, 1/160, 1,240, 1/320 for the four cases. You could also take "dy", that does not matter. The three points are used to obtain the numerical order "p". The actual extrapolation is done with only two points.
Ug is the result on the finest grid (N40), Uu is (in my case) the result on the 2x coarser grid (N20). Thus hu/hg = 2.
Better get a copy of Ferziger/Peric...

 Puigar March 11, 2013 13:45

Quote:
 Originally Posted by RodriguezFatz (Post 413056) p=LOG(f_20 - f_40 / f_10 - f_20) / LOG(2) It is LOG(2) only, if the grade of refinement in each step is 2 (in each direction) - which is the case here. f_10, f_20, f_40 is related to the finest, normal and coarse grid. This is explained in the Ferziger/Peric book.

f_10 you mean the value of the greatest number of nodes??
the values of the N are sorted from the least to the highest number of nodes and therefore from the coarsened to the finest grid.
N10 = coarsened // N= 40 the finest grid

Is it done the calculations like that? the LOG is in base 10 or 2?

 RodriguezFatz March 11, 2013 14:11

Quote:
 Originally Posted by Puigar (Post 413177) f_10 you mean the value of the greatest number of nodes?? the values of the N are sorted from the least to the highest number of nodes and therefore from the coarsened to the finest grid. N10 = coarsened // N= 40 the finest grid Is it done the calculations like that? the LOG is in base 10 or 2?
Ok, in your case it has to be:
p=LOG(f_20 - f_10 / f_40 - f_20) / LOG(2)

It does not matter if you take base 10 or 2 for the logarithm. You divide to logarithms, the base cancels.

 Puigar March 11, 2013 15:25

Quote:
 Originally Posted by RodriguezFatz (Post 413183) Ok, in your case it has to be: p=LOG(f_20 - f_10 / f_40 - f_20) / LOG(2) It does not matter if you take base 10 or 2 for the logarithm. You divide to logarithms, the base cancels.

Where can I get information of error order calculation "p"? I don't know how to find it via internet.

Thanks for the attention. I appreciate it a lot.

 RodriguezFatz March 11, 2013 16:31