liddriven cavity using Matlab
Does anyone happen to have a Matlab code for solving the 2D liddriven cavity problem in primitive variables (i.e. pressure and velocity)? I will be so grateful, if you would be able to share it.
Thanks a lot. 
Re: liddriven cavity using Matlab
does it have to be in primitive variables? It is not difficult at all using streamfuntionvorticity, or streamfunctionvelocity equations.

Re: liddriven cavity using Matlab
Thanks Andrew. In fact, I have already solved the problem using vorticitystreamfuntion formulation (which is quite easy), but I'm having some troubles implementing the SIMPLE algorithm (on staggered grid) for this problem in Matlab.

Re: liddriven cavity using Matlab
I have you tried using the SIMPLER method? Just out of curiousity, how are you defining the pressure in the cavity? I was reading that the SIMPLE method cannot be used in all situations. Can it be used here? You might need to incorporate the underrelaxation constant.

Quote:
the problem is, after the coding, i can't get the nice solution. i'm sorry to bother you all, but can you send me the code that's working because my code isn't. I just want to compare or to determine where is my code (matlab or fortran) went wrong. ok. my email: sesenangje@yahoo.com Thanx very much 
I have a Hermite FE code used in a paper to appear in IJNMF. It computes the velocity and the pressure as a function of the velocity.

Quote:
Thank you very very much 
Idris,
I will send the Matlab LDC code for one of the methods to you as attachments. A preprint of the paper describing the method can be found at http://webpages.charter.net/jtholdeman/RevIJNMFart1.pdf . 
thanx guys,
i finally created the code myself. it's the matter of boundary condition. if the boundary condition is wrong, the solution also wrong. Actually my task is to solve vorticitystreamfunction equation of a lid driven cavity at steady state(using central finite difference). and not to forget,the relaxation scheme is needed when the reynolds number is very high (Re >1000) Anyway, many thanks to everybody, especially Jonas Holdeman. bye. 
can u please share the code....
thank you. 
ok, here it is
clear all;clf;clc; re=100; % for higher reynolds number(>5001000), use under relaxation rex=1; % underrelaxation, 0<rex<1 rexb=rex; nx=51; dx=1/(nx1); %100x100 grid (101*101 nodes) ny=51; dy=1/(ny1); fac=2*(1/dx^2+1/dy^2); Y=1; uo=1; nu=Y/(uo*re); % initial condition p(1:nx,1:ny)=0; o(1:nx,1:ny)=0; psi(1:nx,1:ny)=0; omega(1:nx,1:ny)=0; uact(1:nx,1:ny)=0; vact(1:nx,1:ny)=0; u(1:nx,1:ny)=0; v(1:nx,1:ny)=0; u(1:nx,ny)=1; for iteration =1:2000%iteration disp(['iteration= ',int2str(iteration)]) % stream function(internal nodes) for i=2:(nx1) for j=2:(ny1) pold(i,j)=p(i,j); f1=1/fac*(o(i,j)+(p(i+1,j)+p(i1,j))/dx^2+(p(i,j+1) ... +p(i,j1))/dy^2); p(i,j)=p(i,j)+rex*(f1p(i,j)); end end % Vorticity (Boundary nodes) for j=1:ny fab=2*p(2,j)/dx^2; %left side(AB) o(1,j)=o(1,j)+rexb*(fabo(1,j)); fcd=2*p(nx1,j)/dx^2; %right side(CD) o(nx,j)=o(nx,j)+rexb*(fcdo(nx,j)); end for i=1:nx fad=2*p(i,2)/dy^2; %bottom side(AD) o(i,1)=o(i,1)+rexb*(fado(i,1)); fbc=(2*p(i,ny1)+2*uo*dy)/dy^2; %top side (BC) o(i,ny)=o(i,ny)+rexb*(fbco(i,ny)); end %vorticity internal nodes for i=2:(nx1) for j=2:(ny1) oold(i,j)=o(i,j); f2=1/fac*((o(i+1,j)+o(i1,j))/dx^2+(o(i,j+1)+o(i,j1))/dy^2 ... re*(p(i,j+1)p(i,j1))*(o(i+1,j)o(i1,j))/(4*dx*dy)... +re*(p(i+1,j)p(i1,j))*(o(i,j+1)o(i,j1))/(4*dx*dy)); o(i,j)=o(i,j)+rex*(f2o(i,j)); end end % Calculate the velocity (u and v) for i=2:(nx1) for j=2:(ny1) u(i,j)=(p(i,j+1)p(i,j1))/(2*dy); v(i,j)=(p(i+1,j)p(i1,j))/(2*dx); end end % rearrange in cartesian coordinate %(which originally in matrix coordinate) for i=1:nx for j=1:ny k=i; l=j; psi(l,k)=p(i,j); omega(l,k)=o(i,j); uact(l,k)=u(i,j); vact(l,k)=v(i,j); end end figure(1)% Streamline plot with number Z = psi(1:ny,1:nx); X = linspace(0,1,size(Z,2)); Y = linspace(0,1,size(Z,1)); [c,h] = contour(X,Y,Z); axis equal axis([0 1 0 1]) drawnow end hope you can further developed these code by yourself. It's up to you what you are going to do about it :) 
thank you very much

Hi guys, I am a newbie in CFD thing. Currently I am trying to solve the same problem also.
I solved the problem using the stream function formulation, and now I'm trying to solve in in terms of primitive variable (u,v, and p) using projection method. First I tried using the most simple explicit projection method and it turns out the solution diverge, and I also used implicit projection method where the value of velocity field in each time step is iterated first and it still diverge. I don't know whats wrong with the code.. Have any of you tried to solve the problem using Projection method? 
thank you very much for posting these codes. but these codes seem to have some problems. it doesnt give correct plot nor correct data. if you have any other simple matlab code for lid driven cavity problem that worked , i would be very grateful.

Hello All,
I'm trying to implement SIMPLE in Finite Volume method in drivencavity flow using C++ in basic variables. Since the problem is steady state, I start out with u=0, v=0, p=0 for all interior nodes. This is causing the code to diverge away to infinity. For high viscosities, the divergence is less pronounced but u doesn't ever become negative in the results as it should. What may be the problem? Is it because I'm using unrelaxed pressure and velocity corrector equations? Thanks in advance. 
Lid driven cavity problem with Streamfunction vorticity formulation for Re = 150
Hello! I'm a beginner in CFD and coding; I have to solve the lid driven cavity problem for Re = 150 (nondimensionalised). I've used the forward euler scheme in the code, though i'm supposed to use FTCS. I tried implementing it but there were some problems and couldn't get the plot properly. Could someone help me to check if the code and plot are correct? And also how to implement FTCS into the code? It would be really helpful.. Thank you very much!!!
function u = strvor(N) M = N+1; N = N+1; %Setting initial values DX = 1/(M1); DY = 1/(N1); RE = 150; OMEGA = 1.9; %Q = 1; %h = min(((RE/2)*(((DX*DX)*(DY*DY))/((DX*DX)+(DY*DY)))), ((2/(RE*(Q*Q))))); h = 0.0005; UK = zeros (M, N); VK = zeros (M, N); P = zeros (M, N); PSIK = zeros (M, N); ZETAK = zeros (M, N); %Setting boundary conditions for i=1:M, UK(i,1) = 0; UK(i,N) = 0; VK(i,1) = 0; VK(i,N) = 0; end for j=1:N, UK(1,j) = 0; UK(M,j) = 1.0; VK(1,j) = 0; VK(M,j) = 0; end %Solving Poisson equation (SOR) RES = 100; TOL = 1e6; k=0; while(abs(RES)>TOL  k<100), k = k+1; for i=2 : M1, for j=2: N1, R=0.25*(PSIK(i+1,j)+PSIK(i1,j)+PSIK(i,j1)+PSIK(i,j+1)+(ZETAK(i,j)*DX*DX)); PSIK(i,j)=OMEGA*R + (1.0OMEGA)*PSIK(i,j); end end %Calculating velocity field for i=2:M1, for j=2:N1, UK(i,j) = (PSIK(i,j+1)  PSIK(i, j1))/(2*DX); VK(i,j) = (PSIK(i1,j)  PSIK(i+1, j))/(2*DY); end end for i=1:M, ZETAK(i,N) = ((2/(DX*DX))*((PSIK(i,N))(PSIK(i,N1)))); ZETAK(i,1) = ((2/(DX*DX))*((PSIK(i,1)(PSIK(i,2))))); end for j=1:N, ZETAK(1,j) = ((2/(DX*DX))*((PSIK(1,j)(PSIK(2,j))))); ZETAK(M,j) = ((2/(DY*DY))*((PSIK(M,j))(PSIK((M1),j))+(1.0*(DY)))); end ZETAK1=ZETAK; %Marching forward for i=2:M1, for j=2:N1, ZETAK1(i,j)= h*(((1/RE)*(((ZETAK(i+1,j)2*ZETAK(i,j)+ZETAK(i1,j))/DX^2)+((ZETAK(i,j+1)2*ZETAK(i,j)+ZETAK(i,j1))/DX^2)))(((UK(i,j)*(ZETAK(i+1,j)ZETAK(i1,j)))(VK(i,j)*(ZETAK(i,j+1)ZETAK(i,j1))))/2*DX))+ZETAK(i,j); end end for i=2 : M1, for j=2: N1, RES=ZETAK1(i,j)*DX*DX + 4*PSIK(i,j)  PSIK(i+1,j)  PSIK(i1,j)  PSIK(i,j+1)  PSIK(i,j1); if (abs(RES)>TOL) ZETAK=ZETAK1; break; end end if (abs(RES)>TOL) break; end end end %Calculating inner point values for i = 2 : M1, for j = 2 : N1, a = 1/4*(2*((PSIK(i+1,j)2*PSIK(i,j)+PSIK(i1,j))*(PSIK(i,j+1)2*PSIK(i,j)+PSIK(i,j1))/DX^2  ((PSIK(i+1,j+1)PSIK(i1,j+1))(PSIK(i+1,j1)+PSIK(i1,j1)))^2/16/DX^2)  P(i+1,j)  P(i1,j)  P(i,j+1)  P(i,j1)); P(i,j) = OMEGA*a + (1.0OMEGA)*P(i,j); if i==2 P(1,j) = 1/3/RE*(ZETAK(1,j+1)ZETAK(1,j1)) + 4/3*P(2,j)  P(3,j)/3; end if i==M1 P(M,j) = 1/3/RE*(ZETAK(M,j+1)ZETAK(M,j1)) + 4/3*P(M1,j)  P(M2,j)/3; end if j==2 P(i,1) = 1/3/RE*(ZETAK(i+1,1)ZETAK(i1,1)) + 4/3*P(i,2)  P(i,3)/3; end if j==M1 P(i,M) = 1/3/RE*(ZETAK(i+1,M)ZETAK(i1,M)) + 4/3*P(i,M1)  P(i,M2)/3; end end end %Plotting figure(1)% Streamline plot with number Z = PSIK(1:M,1:N); X = linspace(0,1,size(Z,2)); Y = linspace(0,1,size(Z,1)); [c,h] = contour(X,Y,Z); figure(2)% Pressure plot Z = P(1:M1,1:N1); X = linspace(0,1,size(Z,2)); Y = linspace(0,1,size(Z,1)); [c,h] = contourf(X,Y,Z); axis equal axis([0 1 0 1]) drawnow u=UK; end 
lid driven Cavity using FVM
hello ,
I am working on a CFD problem and developing a Matlab code for "Lid driven cavity " problem using finite volume method and Symmetric Couple Gauss Seidel Scheme but i have some confusion in writing the code in Matlab so can any one help me in this ... I shall be very grateful if anyone can share this 
bro do u have any unsteady code for the same problem.. ??

Lid Driven Cavity using Staggered grid
Hi,
i have done LDC in collocated grid in stream function vorticity method...right now trying to do it in staggered grid in primitive variable method FDM....can somebody send me the code so that i can verify my results.. sm4fn@hotmail.com i'm using SIMPLE 
Quote:
Can anyone explain why the boundary conditions for the vorticity are what they are? I mean what kind of approximation is that for the derivative of psi? Also what scheme is used for calculating the internal nodes of the vorticity? Thanks alot for the help :D 
All times are GMT 4. The time now is 15:45. 