CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   pipe flow with heat transfer (http://www.cfd-online.com/Forums/openfoam/70891-pipe-flow-heat-transfer.html)

Fabian December 9, 2009 05:25

pipe flow with heat transfer
 
Hi all,


I recently started using OpenFoam so please apologize if I my question are trivial. But I am stucked right now with my case.




I try to simulated heat transfer from a constant wall temperature or temperature profile to a fluid (air) flow in a pipe. The Reynoldsnumber is about 60. My case is 2D and axis-symmetric. I made the structured mesh in Gambit and translated it with fluentMeshToFoam into an OpenFoam mesh.




What I have done so far:

In the first place I tried to solve it without turbulence model using SimpleFoam with turbulence model "laminar" but I saw a huge dependency of my boundary layer growth or velocity on the symmetry axis of my mesh (same result in fluent).



Second step was using a turbulence model (komegaSST) within SimpleFoam which yields to more realistic results.

Currently I want to add heat transfer from the wall to the fluid with buoyantSimpleRadiationFoam with k-epsilon turbulence model equivalent to the tutorial case. Unlike the tutorial case hotRoom, I have an inlet and outlet BC. The problem I have it calculates negative density after a few time steps (delta t = 0.01s). My best guess is, that my BC and Initial Conditions are messed up but I don't see the mistake. I would appreciate if anybody can give me a hint where to start looking for the error. I added the error message, as well as my BC and IC files.

The error message is as follows:

Starting time loop

Time = 0.01

DILUPBiCG: Solving for Ux, Initial residual = 0.999999, Final residual = 0.00620787, No Iterations 1
DILUPBiCG: Solving for Uy, Initial residual = 1, Final residual = 0.0069703, No Iterations 1
DILUPBiCG: Solving for h, Initial residual = 1, Final residual = 0.0277813, No Iterations 1
GAMG: Solving for p, Initial residual = 1, Final residual = 0.00965327, No Iterations 69
time step continuity errors : sum local = 4.55106e-05, global = -8.73226e-06, cumulative = -8.73226e-06
rho max/min : 0.69517 0.391125
DILUPBiCG: Solving for epsilon, Initial residual = 0.558883, Final residual = 0.0006318, No Iterations 1
DILUPBiCG: Solving for k, Initial residual = 1, Final residual = 0.00294338, No Iterations 1
ExecutionTime = 0.73 s ClockTime = 1 s

Time = 0.02

DILUPBiCG: Solving for Ux, Initial residual = 0.445276, Final residual = 0.000707, No Iterations 2
DILUPBiCG: Solving for Uy, Initial residual = 0.0121541, Final residual = 0.000203211, No Iterations 1
DILUPBiCG: Solving for h, Initial residual = 0.0186012, Final residual = 0.000122994, No Iterations 1
GAMG: Solving for p, Initial residual = 0.95453, Final residual = 0.00787701, No Iterations 85
time step continuity errors : sum local = 2.59707e-05, global = -5.01278e-06, cumulative = -1.3745e-05
rho max/min : 0.695114 -227.645
DILUPBiCG: Solving for epsilon, Initial residual = 0.991925, Final residual = 0.0052452, No Iterations 1
DILUPBiCG: Solving for k, Initial residual = 0.999986, Final residual = 0.00224127, No Iterations 3
ExecutionTime = 1.2 s ClockTime = 1 s

Time = 0.03

DILUPBiCG: Solving for Ux, Initial residual = 0.941892, Final residual = 0.0675285, No Iterations 1
DILUPBiCG: Solving for Uy, Initial residual = 0.0012009, Final residual = 4.10287e-05, No Iterations 1
DILUPBiCG: Solving for h, Initial residual = 7.18965e-06, Final residual = 7.18965e-06, No Iterations 0
GAMG: Solving for p, Initial residual = 0.0799496, Final residual = 0.194671, No Iterations 1000
time step continuity errors : sum local = 2.45316, global = -0.59745, cumulative = -0.597464
rho max/min : 576.072 -3.91344e+12
DILUPBiCG: Solving for epsilon, Initial residual = 0.116192, Final residual = 0.00391972, No Iterations 1
bounding epsilon, min: -7615.77 max: 2366.98 average: -3.64714
DILUPBiCG: Solving for k, Initial residual = 0.0973264, Final residual = 0.0027766, No Iterations 2
bounding k, min: -2.65967e+08 max: 1.58173e+09 average: 120258
ExecutionTime = 5.51 s ClockTime = 6 s

Time = 0.04

DILUPBiCG: Solving for Ux, Initial residual = 0.348629, Final residual = 0.00986564, No Iterations 1
DILUPBiCG: Solving for Uy, Initial residual = 0.337128, Final residual = 0.00389718, No Iterations 1
DILUPBiCG: Solving for h, Initial residual = 1.21621e-05, Final residual = 9.17565e-07, No Iterations 1
#0 Foam::error::printStack(Foam::Ostream&) in "/home/fhampp/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#1 Foam::sigFpe::sigFpeHandler(int) in "/home/fhampp/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#2 ?? in "/lib/libc.so.6"
#3 Foam::GAMGSolver::scalingFactor(Foam::Field<double >&, Foam::Field<double> const&, Foam::Field<double> const&, Foam::Field<double> const&) const in "/home/fhampp/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#4 Foam::GAMGSolver::scalingFactor(Foam::Field<double >&, Foam::lduMatrix const&, Foam::Field<double>&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, Foam::Field<double> const&, unsigned char) const in "/home/fhampp/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#5 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMa trix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const in "/home/fhampp/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#6 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/home/fhampp/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#7 Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/home/fhampp/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#8 main in "/home/fhampp/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/buoyantSimpleRadiationFoam"
#9 __libc_start_main in "/lib/libc.so.6"
#10 _start at /usr/src/packages/BUILD/glibc-2.9/csu/../sysdeps/x86_64/elf/start.S:116
Floating point exception


The radiation model is fvDOM with following coefficients

fvDOMCoeffs
{
nPhi 3; // azimuthal angles in PI/2 on X-Y.(from Y to X)
nTheta 5; // polar angles in PI (from Z to X-Y plane)
convergence 1e-3; // convergence criteria for radiation iteration
maxIter 10; // maximum number of iterations
}

turbulence Model is k-epsilon model with following coefficients

kEpsilonCoeffs
{
Cmu Cmu [ 0 0 0 0 0 0 0 ] 0.09;
C1 C1 [ 0 0 0 0 0 0 0 ] 1.44;
C2 C2 [ 0 0 0 0 0 0 0 ] 1.92;
alphaEps alphaEps [ 0 0 0 0 0 0 0 ] 0.76923;
}

I just copied the thermophysical properties from the tutorial case

thermoType hPsiThermo<pureMixture<constTransport<specieThermo <hConstThermo<perfectGas>>>>>;
mixture air 1 28.9 1000 0 1.8e-05 0.7;
pRef 1.0e5;



Here my BC and IC:

U
internalField uniform (0 -0.1 0);
boundaryField
{
inlet
{
type fixedValue;
value uniform (0 -0.1 0);
}
outflow
{
type zeroGradient;
}
wall
{
type fixedValue;
value uniform (0 0 0);
}
symmetry
{
type symmetryPlane;
}
frontAndBackPlanes
{
type empty;
}
}

p
internalField uniform 1.0e5;
boundaryField
{
inlet
{
type zeroGradient;
}
outflow
{
type fixedValue;
value uniform 1.0e5;
}
wall
{
type zeroGradient;
}
symmetry
{
type symmetryPlane;
}
frontAndBackPlanes
{
type empty;
}
}

T
internalField uniform 500.0;
boundaryField
{
inlet
{
type fixedValue;
value uniform 500.0;
}
outflow
{
type zeroGradient;
}
wall
{
type fixedValue;
value uniform 800.0;
}
symmetry
{
type symmetryPlane;
}
frontAndBackPlanes
{
type empty;
}
}

k
internalField uniform 1.38e-4;
boundaryField
{
inlet
{
type fixedValue;
value uniform 1.38e-4;
}
outflow
{
type zeroGradient;
}
wall
{
type compressible::kqRWallFunction;
value uniform 0;
}
symmetry
{
type symmetryPlane;
}
frontAndBackPlanes
{
type empty;
}
}

epsilon
internalField uniform 1.90e-4;
boundaryField
{
inlet
{
type fixedValue;
value uniform 1.90e-4;
}
outflow
{
type zeroGradient;
}
wall
{
type compressible::epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
symmetry
{
type symmetryPlane;
}
frontAndBackPlanes
{
type empty;
}
}

alphat
internalField uniform 0;
boundaryField
{
inlet
{
type fixedValue;
value uniform 0.0;
}
outflow
{
type fixedValue;
value uniform 0.0;
}
wall
{
type compressible::alphatWallFunction;
Prt 0.85;
value uniform 0;
}
symmetry
{
type symmetryPlane;
}
frontAndBackPlanes
{
type empty;
}
}

IDefault
internalField uniform 0;
boundaryField
{
inlet
{
type fixedValue;
value uniform 0.0;
}
outflow
{
type fixedValue;
value uniform 0.0;
}
wall
{
type greyDiffusiveRadiation;
T T;
emissivity 0.5;
value uniform 0;
}
symmetry
{
type symmetryPlane;
}
frontAndBackPlanes
{
type empty;
}
}

G
internalField uniform 0;
boundaryField
{
inlet
{
type fixedValue;
value uniform 0.0;
}
outflow
{
type fixedValue;
value uniform 0.0;
}
wall
{
type MarshakRadiation;
T T;
emissivity 1;
value uniform 0;
}
symmetry
{
type symmetryPlane;
}
frontAndBackPlanes
{
type empty;
}
}

mut
internalField uniform 0;
boundaryField
{
inlet
{
type zeroGradient;
}
outflow
{
type zeroGradient;
}
wall
{
type compressible::mutWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
symmetry
{
type symmetryPlane;
}
frontAndBackPlanes
{
type empty;
}
}



Thanks a lot for your help I appreciate it. If you need any further details about the case please let me know and I will post them.

Best regards, Fabian

Thomas Baumann December 10, 2009 05:49

Hi Fabian,

I don't know the answer for your negative density problem.

But I think because of the low Reynolds-number (indeed the Machnumber should be < 0.2) should your case be incompressible, density changes should only be there because of temperature changes. So why don't solving the problem with a boussinesq-solver... You solved the problem without heat-transfer incompressible, too.

In a first step I would set the wall-temperature everywhere to the temperature of the flow and set the gravity to zero. The solution should be the same as using simpleFoam.
In the next step change the wall-temperature...and set the right gravity...

Regards Thomas

Fabian December 12, 2009 05:53

Hi Thomas,

Thank you very much for your help. I am using buoyantBoussinesqPisoFoam now and it works fine. Now I only have to implement a radiation model into this solver. So we will see how it goes...

Thanks again and best regards,

Fabian


All times are GMT -4. The time now is 09:41.