|
[Sponsors] |
September 10, 2002, 11:38 |
fractional step
|
#1 |
Guest
Posts: n/a
|
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? |
|
September 11, 2002, 03:31 |
Re: fractional step
|
#2 |
Guest
Posts: n/a
|
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.
|
|
September 11, 2002, 04:08 |
Re: fractional step
|
#3 |
Guest
Posts: n/a
|
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). |
|
September 11, 2002, 18:55 |
Re: fractional step
|
#4 |
Guest
Posts: n/a
|
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. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Transient simulation not converging | skabilan | OpenFOAM Running, Solving & CFD | 14 | December 17, 2019 00:12 |
How to write k and epsilon before the abnormal end | xiuying | OpenFOAM Running, Solving & CFD | 8 | August 27, 2013 16:33 |
Upgraded from Karmic Koala 9.10 to Lucid Lynx10.04.3 | bookie56 | OpenFOAM Installation | 8 | August 13, 2011 05:03 |
IcoFoam parallel woes | msrinath80 | OpenFOAM Running, Solving & CFD | 9 | July 22, 2007 03:58 |
Could anybody help me see this error and give help | liugx212 | OpenFOAM Running, Solving & CFD | 3 | January 4, 2006 19:07 |