# Polynomial density and transport properties in buoyantBoussinesqSimpleFoam

 User Name Remember Me Password
 Register Blogs Members List Search Today's Posts Mark Forums Read

 LinkBack Thread Tools Display Modes
 April 22, 2012, 11:39 Polynomial density and transport properties in buoyantBoussinesqSimpleFoam #1 New Member   Peder Aursand Join Date: Apr 2012 Posts: 2 Rep Power: 0 Sponsored Links I am trying to use buoyantBoussinesqSimpleFoam to simulate natural convection around a cold pipe in a pool of water. The pipe is 273K and the surrounding walls of the pool are 293K, I therefore need to take into account density inversion of water in order to do this properly. Also, the transport properties of water vary strongly over the temperature range. What I would like to do, is to define polynomials for rho, nu and Pr as a function of temperature T. According to the documentation of thermophysical models in OpenFOAM, this should be possible using the icoPolynomial and polynomialTransport models. I am however not able to find a proper documentation on the usage of these. The little I've been able to find involves using the thermophysicalModels file, but the buoyantBoussinesqSimpleFoam solver seems to ignore this file and instead look for a file called transportProperties with constant values for the transport properties. Can anyone help me or point me in the right direction here?
 Sponsored Links

 April 23, 2012, 05:46 #2 Senior Member   Olivier Join Date: Jun 2009 Location: France, grenoble Posts: 266 Rep Power: 11 hello, You wan to use buoyantBoussinesqSimpleFoam, and you say the fluid properties vary srongly, right ? So the sort answer: do not use the Boussinesq form, try buoyantSimpleFoam instead. With buoyantSimpleFoam, you can use the polynomial properties. regards, olivier

April 25, 2012, 03:39
#3
New Member

Peder Aursand
Join Date: Apr 2012
Posts: 2
Rep Power: 0
Hi,

Quote:
 Originally Posted by olivierG hello, You wan to use buoyantBoussinesqSimpleFoam, and you say the fluid properties vary srongly, right ? So the sort answer: do not use the Boussinesq form, try buoyantSimpleFoam instead. With buoyantSimpleFoam, you can use the polynomial properties. regards, olivier
Thanks oliverG, that makes sense!

But anyhow, does there exist any documentation of the polynomial transport properties feature?

 April 25, 2012, 04:04 #4 Senior Member   Olivier Join Date: Jun 2009 Location: France, grenoble Posts: 266 Rep Power: 11 hello, For polynomial transport, as for the rest: there is very little documentation unfortunatelly, you should look in source code and in forum ... or buy a training courses, as this is the way OpenFoam live. Anyway, here is an exemple of a polynomial transport properties used in thermophysicalProperties: Code: ```thermoType hRhoThermo>; mixture { specie { nMoles 1;// not used since pureMixture and not ideal gaz. molWeight 1;// idem } equationOfState// rho(T) { rhoCoeffs<8> ( 1000 0 0 0 0 0 0 0);// coef a + bT+cT²+... } thermodynamics { Hf 0; Sf 0; CpCoeffs<8> ( 1000 0 0 0 0 0 0 0);// Cp(T) } transport { muCoeffs<8> // viscosity(T) ( 0.01 0 0 0 0 0 0 0); kappaCoeffs<8> ( 1 0 0 0 0 0 0 0);//conductivity(T) } }``` You can use this straight with buoyantPimpleFoam. If you want to use buoyantSimpleFoam (steady state), you need to create your own solver (easy, see http://www.cfd-online.com/Forums/ope...tml#post355667) regards, olivier mm.abdollahzadeh, Mojtaba.a, songwukong and 6 others like this.

 August 6, 2012, 11:47 #5 New Member   Howard NJOKU Join Date: Nov 2010 Location: Nsukka, Nigeria Posts: 9 Rep Power: 8 Hi all, I am working on a heat transfer problem in a vertical cylindrical water tank, in which hot water flows into the top of the tank while cold water is withdrawn simultaneously from the bottom. What results is a situation of different layers in the tank at different temperatures and because of this it doesn't seem OK to use fixed properties. Your suggestion to use the buoyantPimpleFoam solver for such cases is an eye-opener, but (I hope it doesn't sound foolish): Can this solver be used in this case, where water is my working fluid when the User Guide says the solver is for "Transient solver for buoyant, turbulent flow of compressible fluids for ventilation and heat-transfer"? This specification of compressible fluid discouraged me from using the solver initially and I have been trying the buoyantBoussinesqPimpleFoam solver. Your response will be of immense help. Thanks. Oke'e

 August 7, 2012, 08:30 #6 Senior Member   Olivier Join Date: Jun 2009 Location: France, grenoble Posts: 266 Rep Power: 11 hello, You can still use buoyantPimpleFoam with incompressible fluid. regards, olivier

 August 28, 2012, 07:56 #7 New Member   Howard NJOKU Join Date: Nov 2010 Location: Nsukka, Nigeria Posts: 9 Rep Power: 8 Thanks Olivier, your responses cleared up a lot of grey areas for me and my work is up and running again. Howard

November 2, 2012, 09:34
#8
Member

Nikunj Raithatha
Join Date: Jul 2012
Location: Washington DC
Posts: 47
Rep Power: 7
Hello All!

I am simulating a water filled cylinder being heated by a co-axial thinner cylinder at constant temperature. I am using buoyantPimpleFoam solver for simulating it. Despite following the discussions in this post, I am facing convergence issues while using the thinner cylinder temperature of 330K and 300 K.

Attached with this post are my input files. Please help me with possible solutions to this issue. I would appreciate any help in this regard.

Thanks a lot.
Regards,
Nikunj.
Attached Files
 poolEx330_water.zip (16.3 KB, 98 views)

 November 6, 2012, 06:43 #9 Senior Member   Olivier Join Date: Jun 2009 Location: France, grenoble Posts: 266 Rep Power: 11 hello, I just take a look at your transportProperties: for T=300 K, you get rho=-1e10 kg/m3 !! i don't know for other values, but something is clearly wrong here. regards, olivier

 November 6, 2012, 12:31 #10 Member   Nikunj Raithatha Join Date: Jul 2012 Location: Washington DC Posts: 47 Rep Power: 7 Thanks for your reply Olivier! I did notice this earlier and I tried running this example in a much simpler geometry (cuboid). While using constant properties, I am not getting any errors. However, when I use a liner dependence for rho, and keep other properties (Cp, mu, kappa) constant, I am getting the following error: Courant Number mean: 1186.73 max: 5937.61deltaT = 4.85044e-07Time = 0.0264005diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0DILUPBiCG: Solving for Ux, Initial residual = 0.602502, Final residual = 0.00270336, No Iterations 1001DILUPBiCG: Solving for Uy, Initial residual = 0.571317, Final residual = 0.00204734, No Iterations 1001DILUPBiCG: Solving for Uz, Initial residual = 0.69013, Final residual = 0.00698875, No Iterations 1001DILUPBiCG: Solving for h, Initial residual = 1, Final residual = 5.10565e+09, No Iterations 1001--> FOAM FATAL ERROR: Maximum number of iterations exceeded From function specieThermo::T(scalar f, scalar T0, scalar (specieThermo::*F)(const scalar) const, scalar (specieThermo::*dFdT)(const scalar) const) const in file /home/opencfd/OpenFOAM/OpenFOAM-2.1.1/src/thermophysicalModels/specie/lnInclude/specieThermoI.H at line 69.FOAM aborting#0 Foam::error:rintStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"#1 Foam::error::abort() in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"#2 Foam::specieThermo, 8> >::T(double, double, double (Foam::specieThermo, 8> >::*)(double) const, double (Foam::specieThermo, 8> >::*)(double) const, double (Foam::specieThermo, 8> >::*)(double) const) const in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libbasicThermophysicalModels.so"#3 Foam::hRhoThermo, 8> >, 8> > >::calculate() in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libbasicThermophysicalModels.so"#4 Foam::hRhoThermo, 8> >, 8> > >::correct() in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libbasicThermophysicalModels.so"#5 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/buoyantPimpleFoam"#6 __libc_start_main in "/lib/i386-linux-gnu/libc.so.6"#7 in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/buoyantPimpleFoam" My thermophysicalProperties file lookis like this: /*--------------------------------*- C++ -*----------------------------------*\| ========= | || \\ / F ield | OpenFOAM: The Open Source CFD Toolbox || \\ / O peration | Version: 2.1.1 || \\ / A nd | Web: www.OpenFOAM.org || \\/ M anipulation | |\*---------------------------------------------------------------------------*/FoamFile{ version 2.0; format ascii; class dictionary; location "constant"; object thermophysicalProperties;}// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //thermoType hRhoThermo>;pRef 100000;mixture{ specie{ nMoles 1; molWeight 1; }equationOfState{rhoCoeffs<8> (1232.2 -0.7806 0 0 0 0 0 0); // rho (T)} thermodynamics {Sf 0; Hf 0;CpCoeffs<8> (4178.0 0 0 0 0 0 0 0); // Cp (T) }transport { muCoeffs<8> (8.02e-7 0 0 0 0 0 0 0); // viscosity (T)kappaCoeffs<8> (0.61 0 0 0 0 0 0 0); //conductivity (T) }}// ************************************************** *********************** // Thanks for your help!

 November 6, 2012, 12:51 #11 Senior Member   Olivier Join Date: Jun 2009 Location: France, grenoble Posts: 266 Rep Power: 11 hello, Your Co number is too high. When using variable properties with T, you should take care that T can for some iterations get some bad value, like very cold / hot -> then your density goes wrong -> velocity goes wrong -> high courant number and crash. The solution is: relax T / rho much more, and use first order for velocity at the beginning. NB: There where a feature bug some time ago about adding temperature limiter, and i don't know if this is implemented actually, but this is not so difficult to add this. regards, olivier

 November 6, 2012, 14:22 #12 Member   Nikunj Raithatha Join Date: Jul 2012 Location: Washington DC Posts: 47 Rep Power: 7 Well, I am getting this error even when i am simulating an iso thermal problem with same temperature everywhere. Please note that everyhting is working fine when I simulate an example where the water is entering from one end and leaving from another. The aforementioned error occurs only when I simulate this geometry (and other geometries) such that no water leaves or enters the system. So, could this problem be due to the fact that I have a closed system or something else? The probable solution you provided in the last post makes sense. Could you tell me what do u mean by "relaxing T/rho and using first order for velocity at the beginning" and how to implement the same. Thanks a tonne! -Nikunj.

November 6, 2012, 16:55
#13
Member

Nikunj Raithatha
Join Date: Jul 2012
Location: Washington DC
Posts: 47
Rep Power: 7
Hey!

I figured how to relax T and rho. This works fine when I am using rho, which is lineraly dependen on Temperature.

However, when I am using the following dependence of rho on T (rho = 4.8611E-10(T^6) - 9.8744E-07(T^5) + 8.3490E-04(T^4) - 3.7610E-01(T^3) + 9.5196E+01(T^2) - 1.2836E+04(T) + 7.2132E+05), I am getting the following error:

Courant Number mean: 8.34989e-07 max: 1.49846e-06
deltaT = 0.00172794
Time = 0.0043679
diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG: Solving for Ux, Initial residual = 0.358751, Final residual = 8.38803e-08, No Iterations 2
DILUPBiCG: Solving for Uy, Initial residual = 0.687432, Final residual = 6.84879e-08, No Iterations 2
DILUPBiCG: Solving for Uz, Initial residual = 0.359104, Final residual = 8.25799e-08, No Iterations 2
DILUPBiCG: Solving for h, Initial residual = 1, Final residual = 1.17068e-07, No Iterations 2

--> FOAM FATAL ERROR:
Maximum number of iterations exceeded
From function specieThermo<Thermo>::T(scalar f, scalar T0, scalar (specieThermo<Thermo>::*F)(const scalar) const, scalar (specieThermo<Thermo>::*dFdT)(const scalar) const) const
in file /home/opencfd/OpenFOAM/OpenFOAM-2.1.1/src/thermophysicalModels/specie/lnInclude/specieThermoI.H at line 69.
FOAM aborting
#0 Foam::error:rintStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#1 Foam::error::abort() in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#2 Foam::specieThermo<Foam::hPolynomialThermo<Foam::i coPolynomial<8>, 8> >::T(double, double, double (Foam::specieThermo<Foam::hPolynomialThermo<Foam:: icoPolynomial<8>, 8> >::*)(double) const, double (Foam::specieThermo<Foam::hPolynomialThermo<Foam:: icoPolynomial<8>, 8> >::*)(double) const, double (Foam::specieThermo<Foam::hPolynomialThermo<Foam:: icoPolynomial<8>, 8> >::*)(double) const) const in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libbasicThermophysicalModels.so"
#3 Foam::hRhoThermo<Foam:ureMixture<Foam:olynomia lTransport<Foam::specieThermo<Foam::hPolynomialThe rmo<Foam::icoPolynomial<8>, 8> >, 8> > >::calculate() in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libbasicThermophysicalModels.so"
#4 Foam::hRhoThermo<Foam:ureMixture<Foam:olynomia lTransport<Foam::specieThermo<Foam::hPolynomialThe rmo<Foam::icoPolynomial<8>, 8> >, 8> > >::correct() in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libbasicThermophysicalModels.so"
#5
in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/buoyantPimpleFoam"
#6 __libc_start_main in "/lib/i386-linux-gnu/libc.so.6"
#7
in "/opt/openfoam211/platforms/linuxGccDPOpt/bin/buoyantPimpleFoam"
Aborted (core dumped)

As apparent by the courant number, the problem is not with the convergence now, it is with something else.

Attached with this post are all the files I used for the analysis.

Thanks for you help!
Attached Files
 squareMesh.tar.gz (4.1 KB, 25 views)

 November 8, 2012, 09:46 #14 Member   Nikunj Raithatha Join Date: Jul 2012 Location: Washington DC Posts: 47 Rep Power: 7 Hey Guys! Apparently there is some 'glitch' (if i can call it that) in this solver, which creates problems when a closed system is simulated. The above example, when run with open top, runs w/o any errors. I dont know why is it because of, but thats how it is working for me. -Nikunj.

 November 8, 2012, 09:56 #15 Senior Member   Olivier Join Date: Jun 2009 Location: France, grenoble Posts: 266 Rep Power: 11 hello, Have you tested to move the pRefCell outside the domain ? On some solver there is a glitch at the cell location of the pRefCell. Regards, olivier

 November 8, 2012, 10:25 #16 Member   Nikunj Raithatha Join Date: Jul 2012 Location: Washington DC Posts: 47 Rep Power: 7 I have not specified pRef cell. Because, pRef is not even used in the peqn.H file of this solver, specifieing it is not going to make any difference, I think. I amy be wrong though. -Nikunj.

 November 8, 2012, 16:01 Temp. not propagating #17 Member   Nikunj Raithatha Join Date: Jul 2012 Location: Washington DC Posts: 47 Rep Power: 7 Hello! Even though the example is running without any error, the temperature is not propagating in the control volume, no matter how high the temperature at the BC is. It can be seen from the attached figure. Also attached are the case files that I am using. Please advise me about how to go about it. I think that there is some issue with the p_rgh condition, but i could be worng. Thanks, Nikunj

November 8, 2012, 16:04
#18
Member

Nikunj Raithatha
Join Date: Jul 2012
Location: Washington DC
Posts: 47
Rep Power: 7
attachments:
Attached Images
 aaa3.jpg (22.3 KB, 65 views)
Attached Files
 squareMesh_openTop1_vel.tar.gz (4.5 KB, 22 views)

 March 10, 2014, 04:23 use hpolynomial for rhoCentralFoam #19 New Member   anshul bansal Join Date: Jun 2013 Posts: 22 Rep Power: 6 hey all, can i use hpolynomial thermo condition for rhoCentralFoam solver?? because i use it, it gives me that error... thermoType { type heRhoThermo; mixture reactingMixture; transport polynomial; thermo hPolynomial; energy sensibleEnthalpy; equationOfState icoPolynomial; specie specie; } Valid psiThermo types are: type mixture transport thermo equationOfState specie energy hePsiThermo homogeneousMixture const hConst perfectGas specie sensibleEnthalpy hePsiThermo homogeneousMixture sutherland hConst perfectGas specie sensibleEnthalpy hePsiThermo homogeneousMixture sutherland janaf perfectGas specie sensibleEnthalpy hePsiThermo inhomogeneousMixture const hConst perfectGas specie sensibleEnthalpy hePsiThermo inhomogeneousMixture sutherland hConst perfectGas specie sensibleEnthalpy hePsiThermo inhomogeneousMixture sutherland janaf perfectGas specie sensibleEnthalpy hePsiThermo multiComponentMixture const hConst perfectGas specie sensibleEnthalpy hePsiThermo multiComponentMixture const hConst perfectGas specie sensibleInternalEnergy hePsiThermo multiComponentMixture sutherland janaf perfectGas specie sensibleEnthalpy hePsiThermo multiComponentMixture sutherland janaf perfectGas specie sensibleInternalEnergy hePsiThermo pureMixture const eConst perfectGas From function psiThermo::New in file lnInclude/basicThermoTemplates.C at line 73. FOAM exiting help me out please?? thanks Anshul

 March 10, 2014, 04:41 #20 Senior Member   Olivier Join Date: Jun 2009 Location: France, grenoble Posts: 266 Rep Power: 11 hello, rhoCentralFoam use hePsiThermo, not heRhoThermo, thus you can't use polynomial. However, for Cp you can use janaf which is also a polynomial model, but not for density (only perfect gas here). regards,

 Thread Tools Display Modes Linear Mode

 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 OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post novyno OpenFOAM Running, Solving & CFD 10 May 5, 2016 13:31 smajer OpenFOAM 2 March 16, 2012 07:11 aleisia FLUENT 2 October 9, 2011 04:40 Ellen FLUENT 0 December 23, 2008 15:25 Karthik FLUENT 6 December 8, 2004 19:19

 Sponsored Links

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

 Contact Us - CFD Online - Top