CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Running, Solving & CFD

Question about PISO in IcoFoam

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

Reply
 
LinkBack Thread Tools Display Modes
Old   July 9, 2009, 13:16
Default Question about PISO in IcoFoam
  #1
Senior Member
 
Antonio Martins
Join Date: Mar 2009
Location: Porto, Porto, Portugal
Posts: 112
Rep Power: 8
titio is on a distinguished road
Send a message via MSN to titio Send a message via Skype™ to titio
Hi Foamers,

I have a question about the PISO implemented in icoFoam. According to the description given in Hrvoje thesis, the terms H(U) are only recalculated only when the new momentum predictor is calculated. For highly nonlinear flows, as in the flow of polymeric fluids they maybe important. How I can recalculate them whenever the flow field is recalculated?

Regards,

Titio
titio is offline   Reply With Quote

Old   September 3, 2010, 10:30
Default
  #2
New Member
 
Join Date: Jan 2010
Posts: 23
Rep Power: 7
jdiorio is on a distinguished road
Hi Titio,

Did you ever find a solution to this? I've been wondering the same thing. As far as I can see, H(U) is not recalculated inside the PISO loop. To truly have the PISO algorithm, as defined by Issa, H should be recalculated for each intermediate velocity field (H(U**) in Issa's notation). As stated in Hrv's thesis, the current PISO ignores this coupling. I thought that perhaps updating UEqn after the velocity update inside the PISO loop would do the trick to change UEqn.H() at the next PISO step, but it doesn't seem to make a difference.

James
jdiorio is offline   Reply With Quote

Old   September 3, 2010, 13:54
Default
  #3
Senior Member
 
santiagomarquezd's Avatar
 
Santiago Marquez Damian
Join Date: Aug 2009
Location: Santa Fe, Santa Fe, Argentina
Posts: 418
Rep Power: 15
santiagomarquezd will become famous soon enough
James, are you completely sure about H(U) is not updated in each PISO loop? U Field is corrected in each loop and H(U) is evaluated on the fly by a method using corrected U, so when P equation is assembled again, you have done it with a new H(U).

Regards.
__________________
Santiago MÁRQUEZ DAMIÁN, Ph.D.
Post-doctoral Fellow
Research Center for Computational Mechanics (CIMEC) - CONICET/FICH-UNL
T.E.: 54-342-4511594 Ext. 1005
Güemes 3450 - (3000) Santa Fe
Santa Fe - Argentina
http://www.cimec.org.ar
santiagomarquezd is offline   Reply With Quote

Old   September 3, 2010, 14:16
Default
  #4
New Member
 
Join Date: Jan 2010
Posts: 23
Rep Power: 7
jdiorio is on a distinguished road
Hi Santiago,

Yes, I believe you are correct. I was actually just looking at the code and was about to post that I think I was mistaken. U is updated at the end of each PISO loop, and when UEqn.H() is called again at the beginning of the next loop, using this updated U.

Therefore, U and p should satisfy continuity and momentum at the end of the PISO corrections, right? Is there a way to check this? Or is it still necessary to do a few "outer iterations" before going to the next time step? The way I understood the PISO algorithm is that it does not need further outer iterations (unlike SIMPLE if it were being used for an unsteady problem...)
jdiorio is offline   Reply With Quote

Old   September 3, 2010, 16:19
Default
  #5
Senior Member
 
santiagomarquezd's Avatar
 
Santiago Marquez Damian
Join Date: Aug 2009
Location: Santa Fe, Santa Fe, Argentina
Posts: 418
Rep Power: 15
santiagomarquezd will become famous soon enough
Issa shown in his paper, that is enough to do two or three PISO corrections, so that it isn't necessary to check the satisfaction of momentum and continuity.
Coming back to Titio's question, I think the problem isn't the recalculation or not of H(U) but the basic hypothesis made for PISO method. PISO method get rid off the non-linearity of convective acceleration term supposing that U^(n+1)~U^(n) in order to linearize the equations. So the momentum predictor is calculated for U^(n+1) but when the convective acceleration term is assembled, U^(n) is used for the flux.
This is useful in Co < 0.5 range in usual problems, but I think one must be more restrictive when high non-linearities are present.

Regards.
__________________
Santiago MÁRQUEZ DAMIÁN, Ph.D.
Post-doctoral Fellow
Research Center for Computational Mechanics (CIMEC) - CONICET/FICH-UNL
T.E.: 54-342-4511594 Ext. 1005
Güemes 3450 - (3000) Santa Fe
Santa Fe - Argentina
http://www.cimec.org.ar
santiagomarquezd is offline   Reply With Quote

Old   September 17, 2010, 13:31
Default
  #6
New Member
 
Join Date: Jan 2010
Posts: 23
Rep Power: 7
jdiorio is on a distinguished road
To try and answer Titio's question (if he's even still interested, if not then it will satisfy my own curiousity):

If you wanted to change the coefficients of H to use the most recent fluxes, couldn't you just make another fvVectorMatrix using the new phi and whatever U you like? It appears to me that when you call "UEqn.H()" it uses whatever the current value of U is, but only uses the value of phi that was supplied when UEqn was defined. So, even though phi changes, UEqn.H() still uses the original phi. So, after each pressure solve, you have a new (divergence free) phi, and you could make a new fvVectorMatrix, call it "UnEqn" that uses this new phi and your predicted U. Now when you call "UnEqn.H()", you are using the updated coefficients of "H". At least, that's how I understand how it's working.

It is probably also possible to just redefine "UEqn", but I'm not sure how to do that just yet.
jdiorio is offline   Reply With Quote

Reply

Thread Tools
Display Modes

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 Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
PISO Question titio OpenFOAM Running, Solving & CFD 1 July 6, 2009 05:33
Kubuntu uses dash breaks All scripts in tutorials platopus OpenFOAM Bugs 8 April 15, 2008 07:52
Question about PISO kar OpenFOAM Running, Solving & CFD 6 March 10, 2008 10:29
Problems understanding some piso details tehache OpenFOAM Running, Solving & CFD 3 July 27, 2007 06:02
Question about icoFoam boundary file jack2000 OpenFOAM Native Meshers: blockMesh 5 April 26, 2007 12:19


All times are GMT -4. The time now is 13:16.