CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   Main CFD Forum (http://www.cfd-online.com/Forums/main/)
-   -   fractional step (http://www.cfd-online.com/Forums/main/5137-fractional-step.html)

nat September 10, 2002 10:38

fractional step
 
Hi, I am using a fractional step scheme which is a two-time-level type (time step n+1 and n) and based on finite differencing. I am solving the incompressible Navier Stokes equation using the primitive variables and basically the momentum equation goes like this:

[u*-u(n)]/k = 0.5( S(n+1) + S(n) )

where k = time step

S = spatial discretization

[u(n+1)-u*]/k = dP(n+1)/dx

So basically it's a Crank Nicolson scheme. By right the scheme should be free from the CFL criteria (if I'm not wrong), but the time step used could not be larger than the grid spacing when I ran it. Is there anything wrong? What could be wrong?

versi September 11, 2002 02:31

Re: fractional step
 
The predictive step should be [u*-u(n)]/k = 0.5( S(n*) + S(n) ) . One reason I guessed is the BC condition time laging. Other reasons may be things like what solution scheme for the C-N discretization.

nat September 11, 2002 03:08

Re: fractional step
 
Hi versi. You mentioned that [u*-u(n)]/k = 0.5( S(n*) + S(n) ). I wish to know if it actually makes any difference using [u*-u(n)]/k = 0.5( S(n+1) + S(n) ), and I'm actually going to iterate this momentum equation together with the pressure Poisson within the time step to achieve implicitness. Do you think it will affect my time accuracy?

I'm using it on a decaying vortex with known solution, and the pressure boundary condition is a Neumann condition with known a function dP/dn=f(x,y). Also, the pressure I calculate is of P(n+1).So dP(n+1)/dn=f(x,y,n+1).

Kalyan September 11, 2002 17:55

Re: fractional step
 
Nat,

The implicit scheme you have proposed can be used with CFL numbers as high as 25 (I haven't checked for number that are higher). For this, you have to make your implicit iterations converge. An implicit scheme is unconditionally stable does not automatically mean that the iterations would converge. You have to use a proper scheme for convergence.

The reason your iterations may not be converging could be because you are executing the first step of the scheme explicitly. If so, you need to modify your scheme (if only superficially) to use an implicit scheme and achieve convergence.

Try this. You need to solve the following.

[u(n+1)-u(n)]/dt = 0.5( S(n+1) + S(n) ) - dp/dx

You have a guess value of u(n+1) at the "kth" iteration which is u(n+1,k).

You need to compute the increment u(n+1,k+1) = u(n+1,k) + du which gets you closer to the actual solution.

A*du = residual = [u(n+1,k)-u(n)]/dt - 0.5( S(n+1,k) + S(n) ) + dp/dx

A is a matrix (banded) with contributions from the unsteady, convective and viscous terms.

u(n+1,k) is not divergence-free as needed. Let the divergence-free component of u(n+1,k+1) be u'(n+1,k+1).

u'(n+1,k+1) - u(n+1,k+1) = - dt * dq/dx

where q is the pressure correction to the current pressure field, p.

Taking divergence on both sides you get Laplacian{q} = - div[u(n+1,k+1)]/dt. After obtaining q, compute u'(n+1,k+1) which becomes your guess for the next iteration. The boundary condition for q is determined from your pressure boundary condition, since p+q becomes the new pressure field after each iteration. Hope this helps.



All times are GMT -4. The time now is 11:39.