CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Instability in buoyantSimpleFoam (https://www.cfd-online.com/Forums/openfoam-solving/229414-instability-buoyantsimplefoam.html)

Avandri August 7, 2020 17:13

Instability in buoyantSimpleFoam
 
Good Day Foamers

I am a little new to OpenFOAM and having bit of trouble with a project I am currently busy with. I am trying to simulate the flow around a greenhouse. buoyantSimpleFoam runs for 1 or 2 iterations when using snappyHexMesh and for about 8 or 9 iterations when using just blockMesh before I usually encounter a negative temperature and buoyantSimpleFoam stops.

Apart from using buoyantSimpleFoam the equation of state is Boussinesq and kEpsilon is being used for turbulence. I have simplified the problem into a 2D on since I did not think 3D was necessary in this case.

I have tried to check a few stability criterion and made the velocity smaller, time step smaller and mesh size larger specifically to satisfy Courant stability criterion which did help a small bit. The simulation is still unstable. I have also tried only using blockMesh without using surfaceFeatureExtract and snappyHexMesh before using buoyantSimpleFoam and it still was unstable. I have tried to use some different discretization schemes without much success. I have increased some of the relaxation factors. I believe that something in my zero folder may be causing the instability but I am learning new things every day about OpenFOAM so it may be very possible that it is something else entirely that is causing the issues I am experiencing.

When using ParaView I see that the pressure switches from high to low and back again every time step which makes me think there is an issue specifically in the p or p_rgh file in the 0 folder.

p_rgh:

Quote:

boundaryField
{
inlet
{
type fixedFluxPressure;
value $internalField;
}

outlet
{
type fixedMeanOutletInlet;
meanValue 101325;
value $internalField;
}

wall
{
type fixedFluxPressure;
value $internalField;
}
ground
{
type fixedFluxPressure;
value $internalField;
}
shell
{
type fixedFluxPressure;
value $internalField;
}
top
{
type symmetry;
}
front
{
type empty;
}
back
{
type empty;
}
#includeEtc "caseDicts/setConstraintTypes"
}
p:

Quote:

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

outlet
{
type calculated;
value $internalField;
}

wall
{
type calculated;
value $internalField;
}

ground
{
type calculated;
value $internalField;
}

shell
{
type calculated;
value $internalField;
}

top
{
type symmetry;
}

front
{
type empty;
}

back
{
type empty;
}
#includeEtc "caseDicts/setConstraintTypes"
}
U:

Quote:

boundaryField
{
inlet
{
type fixedValue;
value uniform $Uinlet;
}

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

wall
{
type noSlip;
}
ground
{
type noSlip;
}
shell
{
type noSlip;
}
top
{
type symmetry;
}
front
{
type empty;
}
back
{
type empty;
}
#includeEtc "caseDicts/setConstraintTypes"
}
T:

Quote:

boundaryField
{
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
inlet
{
type fixedValue;
value $internalField;
}
wall
{
type fixedValue;
value uniform 300;
}
ground
{
type fixedValue;
value uniform 300;
}
shell
{
type fixedValue;
value uniform 300;
}
top
{
type symmetry;
}
front
{
type empty;
}
back
{
type empty;
}
#includeEtc "caseDicts/setConstraintTypes"
}
k:

Quote:

boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
wall
{
type kqRWallFunction;
value $internalField;
}
ground
{
type kqRWallFunction;
value $internalField;
}
shell
{
type kqRWallFunction;
value $internalField;
}
top
{
type symmetry;
}
front
{
type empty;
}
back
{
type empty;
}
#includeEtc "caseDicts/setConstraintTypes"
}
epsilon:

Quote:

boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
wall
{
type epsilonWallFunction;
value $internalField;
}
ground
{
type epsilonWallFunction;
value $internalField;
}
shell
{
type epsilonWallFunction;
value $internalField;
}
top
{
type symmetry;
}
front
{
type empty;
}
back
{
type empty;
}
#includeEtc "caseDicts/setConstraintTypes"
}
alphat:

Quote:

boundaryField
{
inlet
{
type calculated;
value uniform 0.12;
}
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
wall
{
type compressible::alphatJayatillekeWallFunction;
Prt 0.85;
value uniform 0.12;
}
ground
{
type compressible::alphatJayatillekeWallFunction;
Prt 0.85;
value uniform 0.12;
}
shell
{
type compressible::alphatJayatillekeWallFunction;
Prt 0.85;
value uniform 0.12;
}
top
{
type symmetry;
}
front
{
type empty;
}
back
{
type empty;
}
#includeEtc "caseDicts/setConstraintTypes"
}
nut:

Quote:

boundaryField
{
inlet
{
type calculated;
value uniform 0;
}
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
wall
{
type nutkWallFunction;
value uniform 0;
}
ground
{
type nutkWallFunction;
value uniform 0;
}
shell
{
type nutkWallFunction;
value uniform 0;
}
top
{
type symmetry;
}
back
{
type empty;
}
front
{
type empty;
}
#includeEtc "caseDicts/setConstraintTypes"
}
And finally here is a link to two cases I have made with what I have so far. One with only blockMesh and buoyantSimpleFoam and the other run with all the required bits of the simulation:
https://drive.google.com/drive/folde...0z?usp=sharing

Sorry for the large post. I would truly be incredibly grateful to any help I can get on this issue


All times are GMT -4. The time now is 22:21.