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

Setup for buoyantBoussinesqPimpleFoam with openings

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

Like Tree1Likes
  • 1 Post By SadBoySquad

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 4, 2022, 12:54
Default Setup for buoyantBoussinesqPimpleFoam with openings
  #1
New Member
 
Join Date: May 2021
Location: Athens, Greece
Posts: 26
Rep Power: 4
SadBoySquad is on a distinguished road
Greetings to all people in this forum!

I have trouble setting up and successfully running a simulation using buoyantBoussinesqPimpleFoam.
Unfortunately, the case does not exactly match with any tutorial.
So there's the possibility of me messing up BCs or other parameters.

Case setup:

The setup is pretty basic: a simple "building like" box structure that is heated on the top wall.
The heating part can be achieved either via a fixedValue temperature BC or via a specified heatFlux (via fixedGradient BC).
Let's assume fixedValue here, for simplicity.
The top wall is set to a temperature that is 50 degrees higher than the reference temperature.

There are four openings that flow can enter/exit based on buoyant currents.
The other walls are solid and adiabatic.

I attached some images for better understanding:
- red colored patch is solid adiabatic wall
- pink colored patch is the top solid wall that gets heated
- the bottom wall (not visible in attachments) is also solid and adiabatic for now
- all other patches are openings; I expect flow to both enter and exit

Gravity direction is towards negative Z.

What I expect:

Since the top wall gets heated, temperature in the vicinity of the wall will increase.
Warm currents will rise up and air will try to exit from the top openings.

Each of the top openings may have regions of inflow and outflow, depending on the case.
It is, of course, not 100% certain that flow will be exiting from the whole patch surface.
However, I am expecting flow to exit from the top of the patch and enter from the bottom of the patch.

Meanwhile, since air is driven up towards the warm wall, flow will enter from the bottom openings.

Is my understanding flawed?
Should I expect something different?

My problem:

I cannot seem to understand how to properly setup the case.
The case runs and does not diverge.

However, I get unrealistic velocity values.
For said temperature difference, I get velocity values that reach 50 m/s!
This is not logical.

In the attachments you can see the velocity field and its unreasonably high values.
In addition, I attached the X velocity on the patches.

Flow exits from the lower openings.
Flow enters from the upper region of the upper openings and exits from the lower region.
This is the exact opposite to what I was expecting.

What am I doing wrong?


Case setup:

Here is a link with the whole setup, in case anyone is interested to try the case.
No need to let the simulation run for too long.
100-200 iterations are enough to produce the high velocity values.
https://www.dropbox.com/s/9dme0rg8cg...ntBox.zip?dl=0

I use the following BCs:

alphat

Code:
dimensions [0 2 -1 0 0 0 0]; 

internalField uniform 0;

boundaryField
{
    adiabatic
    {   
        type alphatJayatillekeWallFunction;
        Prt 0.90;
        value $internalField;
    }   

    bottomWall
    {   
        type alphatJayatillekeWallFunction;
        Prt 0.90;
        value $internalField;
    }   

    bottomOpeningLeft
    {   
        type calculated;
        value $internalField;
    }   

    bottomOpeningRight
    {   
        type calculated;
        value $internalField;
    }   

    topWall
    {   
        type alphatJayatillekeWallFunction;
        Prt 0.90;
        value $internalField;
    }   

    topOpeningLeft
    {   
        type calculated;
        value $internalField;
    }   

    topOpeningRight
    {   
        type calculated;
        value $internalField;
    }   

   }
k

Code:
dimensions [0 2 -2 0 0 0 0]; 

internalField uniform 0.1;

boundaryField
{
    adiabatic
    {   
        type kqRWallFunction;
        value $internalField;
    }   

    bottomWall
    {   
        type kqRWallFunction;
        value $internalField;
    }   

    bottomOpeningLeft
    {   
        type inletOutlet;
        inletValue $internalField;
        value $internalField;
    }   

    bottomOpeningRight
    {   
        type inletOutlet;
        inletValue $internalField;
        value $internalField;
    }   

    topWall
    {   
        type kqRWallFunction;
        value $internalField;
    }   

    topOpeningLeft
    {   
        type inletOutlet;
        inletValue $internalField;
        value $internalField;
    }   

    topOpeningRight
    {   
        type inletOutlet;
        inletValue $internalField;
        value $internalField;
    }

  }
nut

Code:
dimensions [0 2 -1 0 0 0 0]; 

internalField uniform 0.0;

boundaryField
{
    adiabatic
    {   
        type nutUWallFunction;
        value $internalField;
    }   

    bottomWall
    {   
        type nutUWallFunction;
        value $internalField;
    }   

    bottomOpeningLeft
    {   
        type calculated;
        value $internalField;
    }   

    bottomOpeningRight
    {   
        type calculated;
        value $internalField;
    }   

    topWall
    {   
        type nutUWallFunction;
        value $internalField;
    }   

    topOpeningLeft
    {   
        type calculated;
        value $internalField;
    }   

    topOpeningRight
    {   
        type calculated;
        value $internalField;
    }   

 }
omega

Code:
dimensions [0 0 -1 0 0 0 0]; 

internalField uniform 1.1;

boundaryField
{
    adiabatic
    {   
        type omegaWallFunction;
        value $internalField;
    }   

    bottomWall
    {   
        type omegaWallFunction;
        value $internalField;
    }   

    bottomOpeningLeft
    {   
        type inletOutlet;
        inletValue $internalField;
        value $internalField;
    }   

    bottomOpeningRight
    {   
        type inletOutlet;
        inletValue $internalField;
        value $internalField;
    }   

    topWall
    {   
        type omegaWallFunction;
        value $internalField;
    }   

    topOpeningLeft
    {   
        type inletOutlet;
        inletValue $internalField;
        value $internalField;
    }   

    topOpeningRight
    {   
        type inletOutlet;
        inletValue $internalField;
        value $internalField;
    }   

  }
p

Code:
dimensions [0 2 -2 0 0 0 0]; 

internalField uniform 0.; 

boundaryField
{
    adiabatic
    {   
        type calculated;
        value $internalField;
    }   

    bottomWall
    {   
        type calculated;
        value $internalField;
    }   

    bottomOpeningLeft
    {   
        type calculated;
        value $internalField;
    }   

    bottomOpeningRight
    {   
        type calculated;
        value $internalField;
    }   

    topWall
    {   
        type calculated;
        value $internalField;
    }   

    topOpeningLeft
    {   
        type calculated;
        value $internalField;
    }   

    topOpeningRight
    {   
        type calculated;
        value $internalField;
    }

  }
p_rgh

Code:
dimensions [0 2 -2 0 0 0 0]; 

internalField uniform 0.; 

boundaryField
{
    adiabatic
    {   
        type fixedFluxPressure;
        rho rhok;
        value $internalField;
    }   

    bottomWall
    {   
        type fixedFluxPressure;
        rho rhok;
        value $internalField;
    }   

    bottomOpeningLeft
    {   
        type prghPressure;
        p   $internalField;
        rho rhok;
        value $internalField;
    }   

    bottomOpeningRight
    {   
        type prghPressure;
        p   $internalField;
        rho rhok;
        value $internalField;
    }   

    topWall
    {   
        type fixedFluxPressure;
        rho rhok;
        value $internalField;
    }   

    topOpeningLeft
    {   
        type prghPressure;
        p   $internalField;
        rho rhok;
        value $internalField;
    }   

    topOpeningRight
    {   
        type prghPressure;
        p   $internalField;
        rho rhok;
        value $internalField;
    }   


}
T

Code:
dimensions [0 0 0 1 0 0 0]; 

internalField uniform 303;

boundaryField
{
    adiabatic
    {   
        type zeroGradient;
    }   

    bottomWall
    {   
        type zeroGradient;
    }   

    bottomOpeningLeft
    {   
        type zeroGradient;
    }   

    bottomOpeningRight
    {   
        type zeroGradient;
    }   

    topWall
    {   
        // type fixedGradient;
        // gradient uniform 4166.0;
        type fixedValue;
        value uniform 353;
    }   

    topOpeningLeft
    {   
        type zeroGradient;
    }   

    topOpeningRight
    {   
        type zeroGradient;
    }   

 }
U

Code:
dimensions [0 1 -1 0 0 0 0]; 

internalField uniform ( 0. 0. 0. );

boundaryField
{
    adiabatic
    {   
        type noSlip;
    }   

    bottomWall
    {   
        type noSlip;
    }   

    bottomOpeningLeft
    {   
        type pressureInletOutletVelocity;
        value $internalField;
    }   

    bottomOpeningRight
    {   
        type pressureInletOutletVelocity;
        value $internalField;
    }   

    topWall
    {   
        type noSlip;
    }   

    topOpeningLeft
    {   
        type pressureInletOutletVelocity;
        value $internalField;
    }   

    topOpeningRight
    {   
        type pressureInletOutletVelocity;
        value $internalField;
    }   

 }
transportProperties

Code:
transportModel Newtonian;

// Laminar viscosity
nu              1.89e-05;

// Thermal expansion coefficient
beta            3e-03;

// Reference temperature
TRef            303;

// Laminar Prandtl number
Pr              0.70;

// Turbulent Prandtl number
Prt             0.90;
fvSchemes

Code:
ddtSchemes
{
    default         Euler;
}

gradSchemes
{
    default         Gauss linear;
}

divSchemes
{
    default         none;

    div(phi,U)      Gauss upwind;
    div(phi,T)      Gauss upwind;

    turbulence      Gauss upwind;
    div(phi,k)      $turbulence;
    div(phi,omega) $turbulence;
    div(phi,R)      $turbulence;
    div(R)          Gauss linear;

    div((nuEff*dev2(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
    default         Gauss linear uncorrected;
}

interpolationSchemes
{
    default         linear;
}

snGradSchemes
{
    default         uncorrected;
}

wallDist
{
    method          meshWave;
}
Attached Images
File Type: jpg view1.jpg (32.2 KB, 10 views)
File Type: jpg view2.jpg (32.5 KB, 8 views)
File Type: jpg velocityX.jpg (28.6 KB, 9 views)
File Type: jpg velocityXPatches.jpg (28.5 KB, 8 views)
File Type: jpg temperature.jpg (28.8 KB, 8 views)
SadBoySquad is offline   Reply With Quote

Old   August 6, 2022, 09:20
Default
  #2
New Member
 
Join Date: May 2021
Location: Athens, Greece
Posts: 26
Rep Power: 4
SadBoySquad is on a distinguished road
So, no ideas on what I am doing wrong?
SadBoySquad is offline   Reply With Quote

Old   August 6, 2022, 10:12
Default
  #3
Senior Member
 
Kumaresh
Join Date: Oct 2016
Posts: 346
Rep Power: 11
Kummi is on a distinguished road
Send a message via Yahoo to Kummi
Let's arrange for a meeting and discuss about it
Kummi is offline   Reply With Quote

Old   August 6, 2022, 11:35
Default
  #4
New Member
 
Join Date: May 2021
Location: Athens, Greece
Posts: 26
Rep Power: 4
SadBoySquad is on a distinguished road
Quote:
Originally Posted by Kummi View Post
Let's arrange for a meeting and discuss about it
Hello!
Are you sure you replied to the correct thread?
Kummi likes this.
SadBoySquad is offline   Reply With Quote

Old   August 11, 2022, 05:26
Default
  #5
New Member
 
Join Date: May 2021
Location: Athens, Greece
Posts: 26
Rep Power: 4
SadBoySquad is on a distinguished road
Ok, I'm up for a meeting.
How are we going to do it?
SadBoySquad is offline   Reply With Quote

Old   August 25, 2022, 11:31
Default
  #6
Senior Member
 
Joachim Herb
Join Date: Sep 2010
Posts: 650
Rep Power: 21
jherb is on a distinguished road
Two suggestions:

- Set up a simialar case (same heights) with only one inlet and one outlet and see, if the problem is still there.
- Use fixedValue boundary conditions for the inlet(s)/outlet(s) for p_rgh. If I understand the prghPressure boundary conditions (https://www.openfoam.com/documentati...8H_source.html) correctly, you apply the same (real) pressure to the in- and outlets. But shouldn't p for the (highter) outlets be lower than for the (lower) inlets. By setting p_rgh to the same fixed value at the in- and outlets, you effectively should have a lower pressure at the higher outlets.
jherb is offline   Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

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


Similar Threads
Thread Thread Starter Forum Replies Last Post
Flow around an object which contains openings BabakArash Main CFD Forum 2 December 15, 2017 11:19
3 Stage axial compressor CFX Setup knixxor CFX 9 November 29, 2016 14:38
2D Glass Melt Simulation Setup marmz FLUENT 5 October 9, 2016 16:25
[ICEM] surface/curve mesh setup Studi ANSYS Meshing & Geometry 15 November 12, 2014 01:32
[ICEM] Hexa mesh, curve mesh setup, bunching law Anorky ANSYS Meshing & Geometry 4 November 12, 2014 01:27


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