CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM

Differences in solution method for pisoFoam and buoyantBoussinesqPisoFoam

Register Blogs Community New Posts Updated Threads Search

Like Tree12Likes
  • 1 Post By mchurchf
  • 10 Post By alberto
  • 1 Post By alberto

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   December 30, 2009, 17:56
Default 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: 18
mchurchf is on a distinguished road
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("(1|A(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
rajibroy likes this.
mchurchf is offline   Reply With Quote

Old   January 10, 2010, 17:27
Default
  #2
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
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 "pseudo-staggered" 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
kaifu, MPJ, mechy and 7 others like this.
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.

Last edited by alberto; January 10, 2010 at 17:28. Reason: removed quote
alberto is offline   Reply With Quote

Old   March 12, 2012, 06:12
Default
  #3
Senior Member
 
Samuele Z
Join Date: Oct 2009
Location: Mozzate - Co - Italy
Posts: 520
Rep Power: 18
samiam1000 is on a distinguished road
Quote:
Originally Posted by alberto View Post
Hi,

in pisoFoam you have the standard implementation
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
samiam1000 is offline   Reply With Quote

Old   March 12, 2012, 06:53
Default
  #4
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
Quote:
Originally Posted by samiam1000 View Post
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
Hi Samuele,

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 Rhie-Chow 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,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   March 12, 2012, 06:57
Default
  #5
Senior Member
 
Samuele Z
Join Date: Oct 2009
Location: Mozzate - Co - Italy
Posts: 520
Rep Power: 18
samiam1000 is on a distinguished road
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
samiam1000 is offline   Reply With Quote

Old   March 12, 2012, 07:00
Default
  #6
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
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 sub-iterations over the set of equations to improve the robustness of the algorithm using under-relaxation, and to speed-up transient simulations or perform pseudo-transient simulations.

Best,
samiam1000 likes this.
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   September 10, 2013, 23:24
Default
  #7
Senior Member
 
Dongyue Li
Join Date: Jun 2012
Location: Beijing, China
Posts: 838
Rep Power: 17
sharonyue is on a distinguished road
Quote:
Originally Posted by alberto View Post
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 "pseudo-staggered" 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
Dear Alberto,

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()
            )
        );
Can I code it like:
Code:
solve
        (
            UEqn
         ==
            
                    interface.sigmaK()*fvc::grad(alpha1)
                  - ghf*fvc::grad(rho)
                  - fvc::grad(p_rgh)
        );
sharonyue is offline   Reply With Quote

Old   August 6, 2023, 09:12
Default
  #8
Senior Member
 
Reviewer #2
Join Date: Jul 2015
Location: Knoxville, TN
Posts: 141
Rep Power: 10
randolph is on a distinguished road
Quote:
Originally Posted by alberto View Post
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 "pseudo-staggered" 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,

What is the reason that this "pseudo-staggered" version of the pressure equation is not needed in the standard psioFoam, but needed by the buoyantBoussinesqPisoFoam?

Thanks,
Rdf
randolph is offline   Reply With Quote

Reply


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


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 11:47


All times are GMT -4. The time now is 01:33.