InterPhaseChangeFoam ERROR
Dear Foam Users;
I am trying to simulate nozzle cavitation and using interphasechangeFoam. After starting the running after 1.5 days later i received following error. I checked the velocity fields, mass flow and turbulent energy distributions. All seems ok, i couldnt find any crazy fluctuation. Just before error i could the crazy value of the time step continuity errors. Could someone give to me any idea about this ERROR please Thanks in advance. ERROR: Code:
DILUPBiCG: Solving for alpha1, Initial residual = 0.60276, Final residual = 0.000145213, No Iterations 1 
hi
2 Attachment(s)
My mesh internal and concave mesh pictures..

Hi
When i check the quality of my mesh gives following error about concave mesh...Is there anyone who can advice to me how can i correct this error? And is this error really important or ignorable?
Thanks... mesh check: checkMesh allTopology allGeometry Code:
Mesh stats 
Quote:
Can you please tell us which mass transfer model you are using? What turbulence modelling do you adopt (from your log I'm guessing komega model but would be nice to have this confirmed). Peace, A 
hi
Dear Arthur,
Thanks so much for your answer. I am using SchneerSauer Transport model and as you guessed i am using komeggaSST turbulence model. Actually, when i checked and compared final my mass flow rate with experimental data still it shows no cavitation formation. In addition, what you think about the my checkmesh error for the concaveCells. Do you think that is it important error? Thanks... 
Well, mesh check errors are generally detrimental when it comes to the solution quality, especially when problems occur early on in the continuity equation (which is what I think is going on in this case from looking at your log). Your geometry looks simple enough to be meshed with blockMesh without too much trouble I think so perhaps that's one way to factor one thing out.
A 
Greetings to all!
I'll start by commenting on the concave cells topic. From my experience, there are 2 kinds of concave cells that checkMesh will complain about, then doing a full diagnostic:
As for the second kind... er... ignore and carry on :) Side note: when visualizing the concave cells, make sure to use the polyhedron option (aka to not decompose polyhedral cells). Onward to the next topic: the crash by interPhaseChangeFoam. I've never used this solver in any practical sense, so I have no idea of how to diagnose it's operation. Nonetheless, I do have some experience with Courant Number based solvers. The key detail usually is: if you have very smalls cells, then you're asking for a veeery slow simulation. In this case, checkMesh is reporting these critical details: Code:
Overall domain bounding box (0.006 0.008 2.71051e20) (0.00194 0.007 0.00194)
Therefore, the first step would be to ascertain if the meshed domain has got the correct size. The error output seems to imply that the simulation is running in parallel. This is a very important detail, since multiphase simulations in parallel tend to need special settings. In addition, the stack trace is indicating a very important detail: Code:
[8] #1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam211/platforms/linux64GccDPOpt/lib/libOpenFOAM.so" Taking a look into the source code for this solver, namely at "applications/solvers/multiphase/interPhaseChangeFoam"  the problem might be in this method: https://github.com/OpenFOAM/OpenFOAM...errSauer.C#L94 There are 2 sqrt calls in this method:
Nonetheless, has a look into this post as well: http://www.cfdonline.com/Forums/ope...tml#post454869 Best regards, Bruno 
hi
Dear Bruno,
Firstly, Thanks so much for your detailed information. I am really appreciated Since i am the new OF user, I read all of the threads and your comments. these information are very useful even some of them are very difficult for me to understand at this stage. Therefore, I have some questions; 1. you mentioned about the bounding box dimensions : HTML Code:
The bounding box equates to approximately a box shaped as 0.008 x 0.011 x 0.0019 m³. 2. Actually i didnt do any example about Courant number based solvers. Just i calculate the it based on this equation: Co= deltaT*U/min.Cell.Dimension ==> my min cell is=18.7e6, deltaT is set to =1e7 and U is = 3.1 m/s ==> Therefore Co uquals very small value as 0.0017. Could you give me some advice to set the Co number? 3. On the other hand could you give a bit more details about your following explanations; how did you estimate the flow speeds should not be faster than 1e4... (I want to know how can i ascertain the correct size of the mesh:confused:) HTML Code:
I'm not in the mood to do any Courant Number related math right now, but I'm estimating that the flow speeds should not be faster than 1e4 to 1e5 m/s, otherwise the simulation is going to be slooooow... HTML Code:
The error output seems to imply that the simulation is running in parallel. This is a very important detail, since multiphase simulations in parallel tend to need special settings. 5. After your explanations, i agree with you that this solver is not fit to make cavitation simulation inside of nozzle. Truely speaking, i am studying bubble dynamics which are very important to determine the bubble growth and collapse during cavitation phenomena. I choosed Schneer model bcs it includes bubble dynamics model (Rayleigh method was used) and i thought that i can insert my extended bubble dynamics model instead of this. Now, I am a bit confused that which solver is more convenient for me to make nozzle cavitation simulation based on bubble dynamics??If you can give me some advice will be very happy... 6. Final question is about the mesh creator programs. I talked with my prof. and he said that he could supply for me a mesh creator program which can work compatible with OPENFOAM. Therefore, could you give advice about some commercial or free mesh creator programs (which are not very difficult to create mesh). If you can have time to reply me, i will be so appreciated. Thanks so much Bruno. (Indeed, at the beginning, i was so pessimistic about using of OF, but after started to learn step by step feel better..:)) Thanks in advance. 
Hi shipman,
Quote:
Code:
Overall domain bounding box (0.006 0.008 2.71051e20) (0.00194 0.007 0.00194) Quote:
There is an utility in OpenFOAM named Co which will calculate the field for the Courant number on all cells. Quote:
Quote:
Quote:
Code:
find $FOAM_TUTORIALS name bubbleColumn Quote:
Bruno 
Hi
Thanks so much for your kind answers Bruno...
After check the your advices i will write you again. 
Dear Bruno,
After your suggestion, I started to try the bubblefoam for my nozzle cavitation simulation. However, i couldnt succeed yet. Always, Co number reaches a crazy value after some iteration later and gives following error: Code:
Max Ur Courant Number = 0.178827 Code:
solvers 
Also, I tried my case as laminar, but it gives same error as follow;
Code:
Max Ur Courant Number = 7309.4 
Dear Bruno,
I moved my question to this post. If you can answer i will be appreciated. thanks in advance. http://www.cfdonline.com/Forums/ope...imulation.html and one additional question about the difference of HEM and VOF models... http://www.cfdonline.com/Forums/ope...ofmodels.html Thanks in advance. 
Hi shipman,
Regarding the previous two posts, the issues seem to be:
Best regards, Bruno 
Dear Bruno,
Thanks for your kind answer. I read my this post again with your comments i have one question which made me confused: above at #7 comment of you: On the other it might have an imbalance on this expression: Code: mag(p  pSat()) + 0.01*pSat() 1. what is the meaning of mag exactly? what kind of mathematical function it makes for this: mag(ppSat())??? 2. even if Psat < 0 how can this can occur acc. to your comment? In other words, if pSat is negative and the following occurs: Code: mag(p  pSat()) < mag(0.01*pSat()) then sqrt can crash, due to a negative value. if the psat becomes negatif how this form mag(p  pSat()) < mag(0.01*pSat()) can be neg? i really dint understand? Could you let me know please? one more thing: why did programmer not use absolute command inside of the sqrt to avoid the floating point error? do u have any idea? thanks in advaance. 
Hi shipman,
Quoting from the header: https://github.com/OpenFOAM/OpenFOAM...SchnerrSauer.H Quote:
As for "pSat" being negative: I forgot that both "p" and "pSat" might be both zero, hence the division by zero is what might be causing the crash. As for the possibility of "pSat" being negative: I'm not familiar with this model nor solver, but I suspect that both should not be used with incompressible equationsolving (I can't remember the accurate name for this), which sometimes uses relative pressure instead of absolute pressure (i.e. relative to a reference; and absolute as it already includes the reference pressure). In other words, if absolute pressure is used, then all pressures should always be positive. Note: What I meant by incompressible equationsolving is how simpleFoam usually works. Best regards, Bruno 
hi
Hi Bruno,
Firstly, Thanks so much for your reply. As far as i understood from your answer that if mag function calculates the absolute value which means that this term mag(p  pSat()) is always positive than i found that the reason of floating point error (shown above at #1) is term 0.01*pSat. Because, I checked setting again and saw that i set pSat as 23000Pa for this calculation and it gives floatin error. And, also I checked the forum and original paper of model again but i couldnt find any reason why this term 0.01*pSat is used in the equation... On the other hand, based on the your following comment i couldnt understand what you mean exactly by saying relative pressure. HTML Code:
As for the possibility of "pSat" being negative: I'm not familiar with this model nor solver, but I suspect that both should not be used with incompressible equationsolving (I can't remember the accurate name for this), which sometimes uses relative pressure instead of absolute pressure (i.e. relative to a reference; and absolute as it already includes the reference pressure). In other words, if absolute pressure is used, then all pressures should always be positive. And also When i checked the my result in interphasechangefoam, I found out that pressure never become negatif if i set the pSat as pozitif. So, I think that you are right about this comment: In other words, if absolute pressure is used, then all pressures should always be positive. Could you tell me reason why all pressures should be always (+) if absolute pressure is used? Because, I also checked the result of pressure by using interFoam (instead of interphasechageFoam) I saw that pressure drops below zero and become negatif. But in interphasechangefoam (if the pSat >0 ) never drops below zero.(or if pSat<0, as you know it gives floating point error) And also, in my previous post http://www.cfdonline.com/Forums/ope...foam_help.html about the disaappearing of the cavitation region i found out that although mass flow is increasing, cavitation region disappears due to pressure increases. Do you think that this problem is related with your explanation??? Thanks in advance for your kind support Bruno. If you let me know the reason, I think that i will be able to understand my general problem in interphasechangefoam. Best regards. Baris 
Hi Baris,
Quote:
In this case, instead of using a "VERY_SMALL" value, they might have chosen to use "0.01*pSat", since it keeps values within an acceptable operating region. Quote:
Bruno 
Dear Bruno,
Thanks so much for very valuable information for me. After your reply, also read many posts about the reference and absolute pressures. could you tell me i am right or not: 1. My conclusion is that in incompressible solvers (like simple, ico ,pisofoams..) reference pressure is used because only the pressure gradient is relevant for such flows. Hence the absolute value of pressure is absolutely unimportant. 2.However, i am a bit confused now about the interphasechageFoam which is also incompressible solver but it uses absolute pressure instead of reference value ....could you give me some insight about it? The reason is its multiphase flow??? Thanks in advance. 
Hi, shipman,
Quote:
In interPhaseChangeFoam, you need the saturation vapour pressure pSat. pSat is expressed in the absolute pressure. This is the reason why interPhaseChangeFoam use the absolute pressure. In interFoam, nothing depends on the absolute pressure because the physical properties in the solver is constant. There is no need to use the absolute pressure. 
All times are GMT 4. The time now is 16:53. 