|
[Sponsors] |
Setup for buoyantBoussinesqPimpleFoam with openings |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
August 4, 2022, 12:54 |
Setup for buoyantBoussinesqPimpleFoam with openings
|
#1 |
New Member
Join Date: May 2021
Location: Athens, Greece
Posts: 28
Rep Power: 5 |
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; } } 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; } } 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; } } 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; } } 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; } } 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; } } 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; } } 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; } } 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; 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; } |
|
August 6, 2022, 09:20 |
|
#2 |
New Member
Join Date: May 2021
Location: Athens, Greece
Posts: 28
Rep Power: 5 |
So, no ideas on what I am doing wrong?
|
|
August 6, 2022, 10:12 |
|
#3 |
Senior Member
|
Let's arrange for a meeting and discuss about it
|
|
August 6, 2022, 11:35 |
|
#4 |
New Member
Join Date: May 2021
Location: Athens, Greece
Posts: 28
Rep Power: 5 |
||
August 11, 2022, 05:26 |
|
#5 |
New Member
Join Date: May 2021
Location: Athens, Greece
Posts: 28
Rep Power: 5 |
Ok, I'm up for a meeting.
How are we going to do it? |
|
August 25, 2022, 11:31 |
|
#6 |
Senior Member
Joachim Herb
Join Date: Sep 2010
Posts: 650
Rep Power: 22 |
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. |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|
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 |