CFD Online Discussion Forums

CFD Online Discussion Forums (
-   Main CFD Forum (
-   -   1D Burgers euqation with 4th Runge Kutta (

dokeun August 4, 2011 03:57

1D Burgers euqation with 4th Runge Kutta

Now i'm tring to apply 4 Stage Runge Kutta scheme to 1D Burgers euqation as a model equation like this.

u^{n+1}_{i} = u^{n}_{i} - \Delta t \left( \frac{\partial E}{\partial x}\right)^{n}

hear, E_{i} = \frac{1}{2} {u_{i}}^2

At this point, the slop is suggested as central differencing.

\frac{\partial E}{\partial x} = \frac{E_{i+1} - E_{i-1}}{2 \Delta x}

The Question is..

How to handle at the point i=2,3,IM-2,IM-1?

Because 4 Stage Runge Kutta requires i-2 ~ i+2 points for next step value at i, I can't get {u^{n+1}_{i}} at i=2,3,IM-2,IM-1.

I got the answer using 3 stage RK to i=3,IM-2 and 2 stage RK to i=2,IM-1. inspite of complicate euqations used. But I guess there manybe more simple way for near the boundary points.

Please let me know simple solution for this.

Thank you in advance.

cfdnewbie August 5, 2011 03:18

maybe I'm misunderstanding you, but the classical RK schemes use stages/nodes that are INSIDE the interval you are trying to you are integrating in time, and you need the evaluation at (say) 1/3 delta t, 1/2 delta t, 2/3 delta t and so on...
how you discretize your spatial domain is up to you, since you are using a method of lines approach....

dokeun August 8, 2011 02:45

Dear cfdnewbie

Thank you for your reply.

Would please review my spreading out of the equations.

u^{(1)}_{i} = u^{n}_{i}

u^{(2)}_{i} = u^{n}_{i} - \frac{1}{2}\Delta t \left( \frac{\partial E}{\partial x}\right)^{(1)}_{i}

u^{(3)}_{i} = u^{n}_{i} - \frac{1}{2}\Delta t \left( \frac{\partial E}{\partial x} \right)^{(2)}_{i}

u^{(4)}_{i} = u^{n}_{i} - \frac{1}{2}\Delta t \left( \frac{\partial E}{\partial x}\right)^{(3)}_{i}

u^{n+1}_{i} = u^{n}_{i} - \Delta t \left[ 
\frac{1}{6} \left( \frac{\partial E}{\partial x} \right)^{(1)} 
\frac{1}{3} \left( \frac{\partial E}{\partial x} \right)^{(2)} 
\frac{1}{3} \left( \frac{\partial E}{\partial x} \right)^{(3)} 
\frac{1}{6} \left( \frac{\partial E}{\partial x} \right)^{(4)} 

Becasue \frac{\partial E}{\partial x} is defined as \frac{E_{i+1} - E_{i}}{2 \Delta x} = \frac {u^{2}_{i+1} - u^{2}_{i-1}}{4 \Delta x} , u^{(2)}_{i} refers u^{n}_{i+1},u^{n}_{i-1}.

And, in turn, u^{(3)}_{i} refers u^{(2)}_{i+1},u^{(2)}_{i-1}.

Here, u^{(2)}_{i+1} comes from u^{n}_{i+2},u^{n}_{i} and u^{(2)}_{i-1} is derived from u^{n}_{i},u^{n}_{i-2}.

As a result, to get u^{(3)}_{i}, I need the values of u^{(n)} at i+2~i-2.

As the same manner, u^{(4)}_{i} requires the value of u^{(n)} at i-3~i+3.

I feel that something is wrong with my equations but I'm in trouble to figure out it cleary.

I attached my F90 code for fixing..(it works any way)

I appreciate that again.

dokeun August 8, 2011 06:34

dear cfdnewbie

I understood my problem.

my original program was...

DO i=2,IM-1
u1(i) = function of u(n,i)
u2(i) = function of u(n,i)
u3(i) = function of u(n,i)
u4(i) = function of u(n,i)

but the right one should be

DO n=1,NM-1
DO i=2,IM-1
u1(i) = function of u(n,i)

DO i=2,IM-1
u2(i) = function of u1(i)

DO i=2,IM-1
u3(i) = function of u2(i)

DO i=2,IM-1
u4(i) = function of u3(i)

DO i=2,IM-1
u(n+1,i) = u(n,i) + ~~~

at first i tred to write all u1, u2, u3, u4 as functions of u(n) along just one iteration, but now there are each iteration for u1~u4, and in another iteration I calculate u(n+1)

All times are GMT -4. The time now is 12:06.