# TIPS for those working on SIMPLE

 Register Blogs Members List Search Today's Posts Mark Forums Read

July 14, 2012, 12:05
#21
Member

Michael Moor
Join Date: May 2012
Location: Ireland
Posts: 30
Rep Power: 7
Quote:
 Originally Posted by houkensjtu I read through your description briefly and I think you should apply the boundary condition of Wall3(Which as you said, ensure the continuity condition) EVERY TIME before you solve the pressure correction equation. Coefficient of outlet velocity is cut as you said but they will enter the source term of pressure correction equation. Also, I think BICGSTAB is ok but not necessary, because your grid number is certainly not so huge(maybe several hundreds or thousands). Usually backslash is far more quick for small problem. Matlab's backslash is very capable. good luck!
Thanks again for the help! so you are saying that after solving the momentum equations yielding u* and v*, that i should apply the outlet boundary condition to these guessed velocity fields u* and v*? That makes sense, as that velocity cv (at i=NI), is the location of the east face of the pressure control volume at I=NI-1, i.e. the last pressure cv in the domain.

On one quick note about the initial guesses, which initialise the solution... at the moment, I have a guessed pressure field p* which is a linear distribution from west to east, i.e. 10-8-6-4-2-0, and I have also set the intial velocity field u* equal to the inlet vlaue, and v*=0. Anderson suggests putting in a velocity spike in a v control volume to create a 2D flow also.
If i set the u velocity field to zero (i=3 onward to i=NI-1), my outlet b.c returns NaN, and the solution fails due to this piece of code:

u(nX,2:nYp-1)=u(nX-1,2:nYp-1); % First extrapolate values from the domain

u(nX,2:nYp-1)=u(nX-1,2:nYp-1)*sum(u(2,2:nYp-1))/sum(u(nX,2:nYp-1)); % This multiplier is the mass in divided by the mass out, which ensures continuity

So I guess the question is, do i assign velocity values that correspond with p*, or is it just sufficient that the u-velocities be non-zero?

This is all much appreciated and I am making more progress than I have in a long time! Best Regards, Michael

July 14, 2012, 23:04
#22
Member

HouKen
Join Date: Jul 2011
Posts: 66
Rep Power: 8
Quote:
 Originally Posted by michaelmoor.aero Thanks again for the help! so you are saying that after solving the momentum equations yielding u* and v*, that i should apply the outlet boundary condition to these guessed velocity fields u* and v*? That makes sense, as that velocity cv (at i=NI), is the location of the east face of the pressure control volume at I=NI-1, i.e. the last pressure cv in the domain. On one quick note about the initial guesses, which initialise the solution... at the moment, I have a guessed pressure field p* which is a linear distribution from west to east, i.e. 10-8-6-4-2-0, and I have also set the intial velocity field u* equal to the inlet vlaue, and v*=0. Anderson suggests putting in a velocity spike in a v control volume to create a 2D flow also. If i set the u velocity field to zero (i=3 onward to i=NI-1), my outlet b.c returns NaN, and the solution fails due to this piece of code: u(nX,2:nYp-1)=u(nX-1,2:nYp-1); % First extrapolate values from the domain u(nX,2:nYp-1)=u(nX-1,2:nYp-1)*sum(u(2,2:nYp-1))/sum(u(nX,2:nYp-1)); % This multiplier is the mass in divided by the mass out, which ensures continuity So I guess the question is, do i assign velocity values that correspond with p*, or is it just sufficient that the u-velocities be non-zero? This is all much appreciated and I am making more progress than I have in a long time! Best Regards, Michael
Yeah you should ensure continuity on outlet every time before solving pressure correction.
As for NaN problem, I guess, because you applied 0 to all u velocity as initial guess, so when you apply
Quote:
 Originally Posted by michaelmoor.aero u(nX,2:nYp-1)=u(nX-1,2:nYp-1)*sum(u(2,2:nYp-1))/sum(u(nX,2:nYp-1)); % This multiplier is the mass in divided by the mass out, which ensures continuity
actually you are dividing by zero,or sth very near zero.
As far as I know...pressure initial guess is not so crucial problem.
good luck

 July 16, 2012, 12:23 #23 Member   Michael Moor Join Date: May 2012 Location: Ireland Posts: 30 Rep Power: 7 I assume then that this is what you mean: %% Apply Boundary Conditions boundary_conditions(); %% Solve for u* [ustar, diJ]=u_momentum(); %% Check continuity again % u(nX,2:nYp-1)=ustar(nX-1,2:nYp-1); % First extrapolate values from the domain % u(nX,2:nYp-1)=ustar(nX-1,2:nYp-1)*sum(u(2,2:nYp-1))/sum(u(nX,2:nYp-1)); %% Solve for v* [vstar, dIj]=v_momentum(); %% Solve for p' [pdash] = pressure_correction(diJ, dIj); Where now I have used the values of u* along i=NI-1, whereas in the boundary conditions, I had used the values of the initial guess. Md. Intishar likes this.

 July 19, 2014, 18:47 #24 New Member   Mostafa Ghadamyari Join Date: Aug 2013 Posts: 5 Rep Power: 6 Thank you very much for your notes! My cavity code wasn't working till I used your suggested relaxation factors! And now it is working like a charm!!

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post luckyxu Main CFD Forum 6 November 9, 2011 08:17 basilwatson OpenFOAM 3 December 9, 2010 03:53 renyun0511 OpenFOAM Running, Solving & CFD 0 November 10, 2010 02:47 L. Aouanouk Main CFD Forum 6 April 17, 2003 05:08 T Main CFD Forum 1 January 27, 2001 08:32

All times are GMT -4. The time now is 18:40.