
[Sponsors] 
August 21, 2009, 04:28 
OpenFOAM version 1.6 details

#1 
Senior Member
Daniel WEI (老魏)
Join Date: Mar 2009
Location: South Bend, IN, USA
Posts: 688
Blog Entries: 9
Rep Power: 12 
Dear all,
Have a nice day! I have some questions,
Thank you.
__________________
~ Daniel WEI  NatHaz Modeling Laboratory Department of Civil & Environmental Engineering & Earth Sciences University of Notre Dame, USA Email  My Personal CFD Blog 

August 21, 2009, 09:14 

#2 
Senior Member
J. Cai
Join Date: Apr 2009
Posts: 180
Rep Power: 8 
Hi, Daniel, nice to meet you herein.
About question 2, NavierStokes equations solving methods are different, they are PISO algorithm and PIMPLE (merged PISOSIMPLE) algorithm respectively. Maybe the following references can help you to understand more details: 1. J.H. Ferziger and M. Peric Computational Methods for Fluid Dynamics 3rd ed. Springer 2002. 2. Hrvoje Jasak, PhD 1996, PDF of thesis posted at: Error analysis and estimation in the Finite Volume method with applications to fluid flows. 3. Henrik Rusche, PhD 2002 Computational fluid dynamics of dispersed twophase flows at high phase fractions. about question 1, I also am not so clear, but for the p, I always use smoothsolver to get a faster convergence. Best regards, Chiven 

August 21, 2009, 23:45 

#3  
Senior Member
Sandy Lee
Join Date: Mar 2009
Posts: 207
Rep Power: 9 
Quote:
My advisor dislikes piso algorithm so that we are all not really familar with it. We all like SIMPLEC algorithm. But many people think Piso is good for unstable flows. Am I wrong? 

August 22, 2009, 00:21 

#4 
Senior Member
Daniel WEI (老魏)
Join Date: Mar 2009
Location: South Bend, IN, USA
Posts: 688
Blog Entries: 9
Rep Power: 12 
Thanks for your help.
Actually, What I am struggling with is Question 1, ie. Guidelines for solver choosing I am using pisoFoam simulating a cylinder flow, and my experience has shown that GAMG use much smaller time to do the same job than PCG.
Okay, let me add more questions here, I think the answers of these questions are very useful for every users, and should be put on top. I have suffered the problem of parallel computing's speedup, I remember once somebody talked a speedup of 11.05 using 8 processors! That's impressive! How did he make it? The cylinder case I am solving is about 860000 grids, I found 32 processors or even 64 processors are much slower than what I thought. So, I want to know more detailedly, Guidelines for decomposition:
Thank you.
__________________
~ Daniel WEI  NatHaz Modeling Laboratory Department of Civil & Environmental Engineering & Earth Sciences University of Notre Dame, USA Email  My Personal CFD Blog Last edited by lakeat; August 22, 2009 at 01:50. 

August 22, 2009, 03:44 

#5  
Senior Member
Sandy Lee
Join Date: Mar 2009
Posts: 207
Rep Power: 9 
Quote:
I am so sorry I never hear of SAMG. Hope it is useful to you. Sandy 

August 22, 2009, 07:19 

#6  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Hi Sandy,
Quote:
Quote:
Best, A. 

August 22, 2009, 07:41 

#7  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Hi lakeat,
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Once you respect the basic rules of trying to decompose your domain minimizing the information exchange (in other words in the case of a symple cylinder try not to cut along the lenght of the pipe but make sections orthogonal to the pipe axis, for example), make some experiment and see what fits your needs. Best, 

August 22, 2009, 08:13 

#8 
Senior Member
Daniel WEI (老魏)
Join Date: Mar 2009
Location: South Bend, IN, USA
Posts: 688
Blog Entries: 9
Rep Power: 12 
Hi,
Thanks again. Your explanation is very clear and I will do the comparison. I have chance now to access the fastest supercomputer nationwide, I must compare and tailor out the number of processors needed for a given case. Now apparently, I think simple and hierarchical are just for some academical comparison, it is now metis and scotch that are much superior to them. I have compared and seen a great advantages of scotch over the others, and it's easy for use too. I will use scoth henceforth. FYI, my cylinder case has 860000 grids, otype, using scoth, I did not see a better performance in using 32 cpus over 16 cpus over 8 cpus, I will give the pictures as soon as my hands are free. This is why I begin to think about the question: "Is there any more choice to improve the parallel performance?" I saw Prof. Jasak are recommending SAMG, In your opinion, will SAMG be better than GAMG and suitable for my case? (pisoFoam) Thank you. Concerning the speedup, I get the info from thread  Superlinear speedup in OpenFOAM 13 The paper can be downloaded from: (http://www.jncasr.ac.in/kirti/current_science.pdf) That's astonishing, I have never experience that's high. Thank you.
__________________
~ Daniel WEI  NatHaz Modeling Laboratory Department of Civil & Environmental Engineering & Earth Sciences University of Notre Dame, USA Email  My Personal CFD Blog 

August 22, 2009, 08:17 

#9  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Quote:
The SIMPLE algorithm in its original form (Caretto et al, 1972, Proceedings of the Third International Conference on Numerical Methods in Fluid Mechanics, Paris) is based on obtaining a pressure correction equation in which the velocity corrections are dropped because unknown (See, for example, Ferziger and Peric book). This is quite crude, and is one of the reasons why the method is not that efficient in terms of convergence rate. The effect of neglecting these terms is absent once the solution is converged however, and the method can be used "as is" for steady problems, where underrelaxation can be used to keep the solution stable. An unsteady version of the SIMPLE algorithm can be written, by performing two loops: the external loop in time, and an internal loop to obtain a convergence solution at a given time step. In the internal loop, underrelaxation can be used, as long as a sufficient number of iterations is ensured, in order to reach the actual solution at that given time. SIMPLEC is a version of SIMPLE where the velocity correction is introduced. However its convergence rate is very similar to what obtained with SIMPLE, using the correct underrelaxation: URF_p = 1  URF_u (Again, see Ferziger and Peric book). A more refined approach is the PISO one where you
Best,
__________________
Alberto Passalacqua GeekoCFD  A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as live DVD/USB, hard drive image and virtual image. OpenQBMM  An opensource implementation of quadraturebased moment methods Last edited by alberto; August 22, 2009 at 08:47. 

August 22, 2009, 08:26 

#10  
Senior Member
Daniel WEI (老魏)
Join Date: Mar 2009
Location: South Bend, IN, USA
Posts: 688
Blog Entries: 9
Rep Power: 12 
Quote:
Hi, Sandy, There are advisors and advisors ...
__________________
~ Daniel WEI  NatHaz Modeling Laboratory Department of Civil & Environmental Engineering & Earth Sciences University of Notre Dame, USA Email  My Personal CFD Blog 

August 22, 2009, 08:32 

#11  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Quote:
Quote:
Quote:
Quote:
Best, 

August 22, 2009, 09:49 

#12 
Senior Member
Sandy Lee
Join Date: Mar 2009
Posts: 207
Rep Power: 9 
Hi Alberto, I still care of two question:
1. Which code or file to judge a symmetric or asymmetric matrix in OpenFOAM  1.5? 2. If you think p equation is not always a singular matrix, why we have to spend so much CPU time during the numerical simulation. Which step is the most expensive. I think, except for the grid generation, it is the solution of the linear equation in every iterative step. Am I wrong? The key is what kind of matrix is the p equation??? I am actually weak to analyze the matrix structure. Have a nice weekend. Sandy 

August 22, 2009, 14:07 

#13  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Quote:
Quote:
Consider a square matrix (matrix with n rows and n columns, of real elements). You say that the matrix is invertible (or not singualar) if a matrix exists so that , where I is the identity matrix, and is the inverse matrix. If such a matrix does not exist, the matrix is said to be singular, or not invertible. You can easily understand if a matrix is invertible by computing its determinant, because a square matrix is singular if and only if its determinant is zero. Now, let's consider a linear system in the form where x is the unknown vector, b the known vector and A the matrix. Its solution is clearly given formally by and exists only if is invertible, or, in other words, not singular. If you have a linear system whose matrix has null determinant, you can still have solutions, but you need to evaluate the rank of the matrix, and compare it to the rank of the complete matrix (rectangular), obtained by adding to A the column b. According to RouchéCapelli theorem, you know that
The matrix of the linear system originating from the discretization of the pressure Poisson equation in standard form is tridiagonal or, more generally, block tridiagonal. There are specific algorithms for the solution of this kind of matrix (Thomas algorithm and its block version for example), which are very effective due to their low computational cost (Thomas algorithm costs O(n), while Gauss method costs O(n^3), for example). I hope this helps. Best, 

August 22, 2009, 15:45 

#14  
Senior Member
Sandy Lee
Join Date: Mar 2009
Posts: 207
Rep Power: 9 
Quote:


August 22, 2009, 17:15 

#15  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Quote:
if the rank of A is less than n, the determinant of A is zero, and A is singular. Let's consider an example I took from my linear algebra book (Greco, Valabrega, Lezioni di Algebra e Geometria, Levrotto & Bella, 1992). Let's consider A= 1 2 1 1 1 2 0 2 2 4 1 3 2 4 2 2 and a known vector b = {2, 3, 1, 4}, so that the complete matrix is (Ab) = 1 2 1 1  2 1 2 0 2  3 2 4 1 3  1 2 4 2 2  4 If you careful look at the matrix A, you notice that the first row and the last row are linearly dependent, because you can obtain the last row by multiplying the first one by 2. This leads to a null determinant of the matrix, for a known property of matrix determinants (you can calculate it to check). This means that the rank of the matrix is not 4. Now, let's remind one practical definition of matrix rank: A matrix has rank r if the number of linearly independent rows (or column) is r, and r+1 rows (or columns) are always linearly dependent. According to this definition, the rank of matrix A is 2, since also the second row can be obtained as a linear combination of the first and the third rows, so the rank cannot be 3. Similarly, you can consider the complete matrix, and show its rank is 2. According to RoucheCapelli theorem you have that the system admits solutions, which are infinite, with multiplicity equal to 4  2 = 2. In practice, you find these solutions by taking two linearly independent equations from the system and use them to define the solution, which will have two variables free to vary. Notice that you can show that saying a matrix has zero determinant is equivalent to say it has two (or more) linearly dependent rows (or columns). Back to the pressure equation, I guess at this point it is clear that the matrix of the linear system obtained from the discretization of the Poisson equation has nothingto do with a singular matrix. Usually the difficulty in the numerical solution (analytically it's not a problem clearly) of a linear system is related to the condition number of its matrix (the highest this number is, the hardest it is to numerically solve the system accurately because of the limited machine precision). Now, please refer to a good linear algebra book. You need to know these elements of linear algebra if you want to properly understand how CFD codes and numerical algorithms work. It is really in your interest, and if I got it right you are a student, so take advantage of that and attend algebra classes I hope this helps. Best, 

August 22, 2009, 19:21 

#16  
Senior Member
Sandy Lee
Join Date: Mar 2009
Posts: 207
Rep Power: 9 
Quote:
Thanks again. Sandy 

August 22, 2009, 19:24 

#17 
Senior Member
Sandy Lee
Join Date: Mar 2009
Posts: 207
Rep Power: 9 
In addition, I actually need to know how to analyze the matrix structure in OpenFOAM. In my case, an "implicitly" solved source term was added into this Poisson equation. I want to know whether the new pressure equation still keep symmetric or not??? NO! right? Is it singular either?? What boundary conditions can make it well convergence. It is the first time I meet with this kind of pressure equation. Please help me out. Thanks a lot.


August 23, 2009, 08:06 

#18  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Quote:
why don't you derive the matrix yourself in a simple case like a rectangle, with these conditions, assuming the flow incompressible to make it simpler: top: fixed pressure, zero velocity gradient bottom: fixed velocity, zero pressure gradient sides: zero velocity, zero pressure gradient which is the typical case in a channel? Why do you think that matrix is singular? Note that in the case you use Neumann BC's on all boundaries for the pressure, you obtain an ill posed problem since you never specify a value explicitly for the pressure, and you generally need some addtional information to solve it. Best, 

August 23, 2009, 08:17 

#19  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Quote:


August 23, 2009, 08:44 

#20  
Senior Member
Sandy Lee
Join Date: Mar 2009
Posts: 207
Rep Power: 9 
Quote:


Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Superlinear speedup in OpenFOAM 13  msrinath80  OpenFOAM Running, Solving & CFD  18  March 3, 2015 06:36 
OpenFOAM  Validation of Results  Ahmed  OpenFOAM Running, Solving & CFD  9  June 22, 2011 18:59 
OpenFOAM Version 1.6 Released  opencfd  OpenFOAM Announcements from ESIOpenCFD  0  July 27, 2009 17:55 
user subroutine error  CFDUSER  CFX  2  December 9, 2006 07:31 
user defined function  cfduser  CFX  0  April 29, 2006 10:58 