Either you hava a look at Ferzigers book (not freely available online as far as I know) or you can derive the formula yourself.
Use the Ansatz F(h_i) = F(h=0) + a*(h_i)^p (where h_i is the grid spacing, f(h_i) is the value obtained on this grid, F(h=0) is the solution without discretization error, a is a constant and p is the error order. With solutions on three different grids with the same refinement ratio r (r= h_2/h_1 = h_3/h_2) you get 3 equations. (I) F(h_1) = F(h=0) + a*(h_1)^p (II) F(h_2) = F(h=0) + a*(h_2)^p (III) F(h_3) = F(h=0) + a*(h_3)^p (I')=(I)-(II) F(h_1)-F(h_2)= a*[(h_1)^p-(h_2)^p] (II')=(I)-(III) F(h_1)-F(h_3)= a*[(h_1)^p-(h_3)^p] (I'')=(I')/(II') [F(h_1)-F(h_2)]/[F(h_1)-F(h_3)]=[(h_1)^p-(h_2)^p]/[(h_1)^p-(h_3)^p] now using the definition of r, the right hand side becomes (1-r^p)/(1-r^2p)=1/(1+r^p) after some more algebra we arrive at p=log[F(h_1)-F(h_3)]/[F(h_1)-F(h_2)-1]/log(r) |
Hi folks again
first of all, thanks for the responses! ther were really useful to get a plain understanding of what is the richardson extrapolation and how to apply it to my problem. I have another doubt. If I only have the values of f(h20),f(30) and f(40) because the coarsened grid (f10) does not work, can I manage to get the order of error "p"? for example. in some case I can run all teh simulations with all of the grid, including the coarsened. But there are some conditions that when I apply them to the model, they make it more unstable, to the point that the coarsened grid (f10) falls off. for example case 1 all of them work: I get p and F for richardson extrapolated value x y h -> F_h h/2-> F_h/2 h/4-> F_h/4 case 2 Can I use the value "p" for richardson extrapolated value of CASE 1 if the trends of the two results of F and G are more or less the same? how can I assess the similarity of the trends of F and G to validate the value of the order of the error "p"? x y (h doesn't work) h/2-> G_h/2 h/4-> G_h/4 thank you again for paying attention! It has been a great favour |
With solutions on only two different grids, there is no way in estimating the error order.
Even worse, if the convergence is not monotonic and you just guess a value for p, you end up with a completely wrong extrapolated value. So 3 solutions (with three different element sizes) are always necessary. If you did not refine with the same ratio, you can still try to solve [F(h_1)-F(h_2)]/[F(h_1)-F(h_3)]=[(h_1)^p-(h_2)^p]/[(h_1)^p-(h_3)^p] some way. The easier way is to keep the same ratio in both refinements. Take the coarsest mesh on which you get a reasonable result as a starting point. Now the finer mesh doesnt have to be h/2 if the solution at h/4 becomes too expensive. A refinement factor of e.g. 1.5 is still enough to do a reasonable extrapolation in most cases. |
Quote:
|
The thing is that you connot solve for p explicitly if the refinement ratios are not identical.
So h/2, h/3 and h/4 is not a good choice. And yes, the meshes dont need to be refined with a factor of 2 (or 0.5 in the definition I used above) Any factor far enough from 1 will do. |
Quote:
I did not get how was this step done when getting the three equation solving of "p" Quote:
|
|
|
|
All times are GMT -4. The time now is 02:45. |