
[Sponsors] 
Differences in solution method for pisoFoam and buoyantBoussinesqPisoFoam 

LinkBack  Thread Tools  Display Modes 
December 30, 2009, 18:56 
Differences in solution method for pisoFoam and buoyantBoussinesqPisoFoam

#1 
Member
Matthew J. Churchfield
Join Date: Nov 2009
Location: Boulder, Colorado, USA
Posts: 49
Rep Power: 8 
To whom can help,
I am trying to reconcile some differences between pisoFoam and buoyantBoussinesqPisoFoam. In the UEqn.H file of buoyantBoussinesqPisoFoam the following equation is set up to predict velocity: UEqn == fvc::reconstruct((fvc::interpolate(rhok)*(g & mesh.Sf())  fvc::snGrad(p)*mesh.magSf())) However, in pisoFoam, this is the equation: UEqn == fvc::grad(p) Aside from the inclusion of the gravity term in buoyantBoussinesqPisoFoam, why are the face values used to reconstruct the cell centered values, whereas in pisoFoam the cell center values are used directly? The same situation occurs in setting up the pressure equation. In buoyantBoussinesqPisoFoam, the equation is: volScalarField rUA("rUA", 1.0/UEqn.A()); surfaceScalarField rUAf("(1A(U))", fvc::interpolate(rUA)); fvm::laplacian(rUAf, p) == fvc::div(phi) whereas in pisoFoam, it is: volScalarField rUA = 1.0/UEqn.A(); fvm::laplacian(rUA, p) == fvc::div(phi) buoyantBoussinesqPisoFoam is solving for pressure on the faces, and pisoFoam is solving for cell centered pressure. Does this make a difference? Why are the two codes different in this manner? Thank you 

January 10, 2010, 18:27 

#2 
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Hi,
in pisoFoam you have the standard implementation, in buoyantBoussinesqPisoFoam the solution algorithm is modified as follows:  you reconstruct the gravity and the pressure gradient contributions from the corresponding contribution to the flux  you solve a "pseudostaggered" version of the pressure equation  you correct the flux  you obtain the velocity correction reconstructing from the flux again (remember the flux is always continuous) This technique tries to mimic a staggered grid arrangement. It is applied to the gravity term too, since it is included in the pressure equation. Best, Alberto
__________________
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; January 10, 2010 at 18:28. Reason: removed quote 

March 12, 2012, 07:12 

#3 
Senior Member
Samuele Z
Join Date: Oct 2009
Location: Mozzate  Co  Italy
Posts: 490
Rep Power: 9 
Dear Alberto,
I am trying to understand the different solvers. So, for simpleFoam I've found this wiki.. As far as the pisoFoam is concerned, you wrote that it present the standard implementation. What does this mean? Is there a reference page? Thanks a lot, Samuele 

March 12, 2012, 07:53 

#4  
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Quote:
unfortunately I don't think there is a reference page. In pisoFoam you have the standard PISO algorithm you find in books, without body force term and without any particular treatment, except the RhieChow interpolation. You can take a look at the icoFoam page on the wiki and you'll see many similarities. My statement has to be read in the context of the comparison between the two solvers in the topic, where buoyantBoussinesqPisoFoam uses flux reconstruction to improve the solution procedure when body force terms are included. Best, 

March 12, 2012, 07:57 

#5 
Senior Member
Samuele Z
Join Date: Oct 2009
Location: Mozzate  Co  Italy
Posts: 490
Rep Power: 9 
That's great, thanks.
And what about the pimpleFoam solver? Do you know which solver is embedded in such a solver? Thanks a lot, Samuele 

March 12, 2012, 08:00 

#6 
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
The "pimple" solvers use a "combination of PISO and SIMPLE", which is not that far from the flavors you find in other codes with different names (unsteady SIMPLE, iterative PISO, depending on the creativity of the authors :)).
In short, it is an iterative solution method with subiterations over the set of equations to improve the robustness of the algorithm using underrelaxation, and to speedup transient simulations or perform pseudotransient simulations. Best, 

September 10, 2013, 23:24 

#7  
Senior Member
Dongyue Li
Join Date: Jun 2012
Location: Torino, Italy
Posts: 676
Rep Power: 8 
Quote:
Can I say that I have to reconstruct it when there is a body force? Is it a must? for example, in interFoam's UEqn: Code:
solve ( UEqn == fvc::reconstruct ( ( fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1)  ghf*fvc::snGrad(rho)  fvc::snGrad(p_rgh) ) * mesh.magSf() ) ); Code:
solve ( UEqn == interface.sigmaK()*fvc::grad(alpha1)  ghf*fvc::grad(rho)  fvc::grad(p_rgh) ); 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
smoothSolver diverges  solution in using PBiCG solver?  makaveli_lcf  OpenFOAM Running, Solving & CFD  3  September 11, 2013 12:44 
Solution Method & turbulent intensity in CFX 5.5.1  hamza albazzaz  CFX  7  June 29, 2011 12:39 
Question about meshing / solution scheme of CFX  Coriolius  CFX  8  August 1, 2004 18:39 
FVM,FDM AND FEM  d  Main CFD Forum  4  May 30, 2003 03:19 
Trouble w. tri. FV method and lam. backstep flow  Steve Reuss  Main CFD Forum  12  December 26, 2001 12:47 