CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   HeatFlux in buoyantBoussinesq (https://www.cfd-online.com/Forums/openfoam/70502-heatflux-buoyantboussinesq.html)

stawrogin November 26, 2009 05:35

HeatFlux in buoyantBoussinesq
 
Hello everybody,


I would like to use the buoyantboussinesq solver with a turbulentHeatFluxTemperature patch. The turbulentHeatFluxTemperature patch seems to need a name for the alphaEff-field (an Cp). But this solver doesn't seem to estimate alphaEff. What have I do to use this patch? Have I to adapt the solver to estimate alphaEff there or is there a easier way?


Thank you very much for your help.


Stawrogin

Thomas Baumann November 30, 2009 12:00

Hello,

kappaEff at the buoyantBoussinesqSimpleFoam solver and alphaEff in the turbulentHeatFluxTemperature patch are the same variable. So rename one of them, recompile it and that's it.

The easiest way is to copy the solver, rename it to your own and change in the Teqn.H kappaEff to alphaEff.

Regards Thomas

stawrogin December 1, 2009 05:48

Hello Thomas,

thanks a lot for your reply.

I looked a little bit in more detail into the Buoyant Boussinesq-solvers. But I think I have do multiply kappaEff with the real density as well. I think alpha should be in [kg/m/s] while kappaEff has the same Units than nu [m²/s]. But rhoK doesn't seem to be a "real" density but a relative density change due to the thermal expansion. So I have ro read a reference density somewhere to work with this patch.
Do you agree?
Or can I use e.g. alphaEff = kappaEff *rhoK, to consider the density effect in the heat transfer and keep in mind that this not a real "alpha" but alpha/(reference density) same as "kinematic pressure"?
Thanks once more for your help.
Best regards

stawrogin

Thomas Baumann December 1, 2009 08:32

Hello stawrogin,

I think alphaEff and kappaEff is the same, look:

For the wallheatflux:

gradient = heatflux / (alphaEff * cp0 *rho0)

with
heatflux = J/(s*m^2)
cp0 = J/(kg*K)
rho0 = kg/m^3
the gradient of the temperaure has the units:
gradient = K/m
so alphaEff has the units m^2/s.

Looking in the solver we see:

kappaEff = turbulence->nu()/Pr + turbulence->nut()/Prt

Prt has no units-> kappaEff = m^2/s

So alphaEff and kappaEff have both the same units.


Regards Thomas

stawrogin December 2, 2009 02:50

Hi Thomas,

thanks once more for your reply.

But where did you find the formula for the wallheatflux?

>For the wallheatflux:
>gradient = heatflux / (alphaEff * cp0 *rho0)

If I look at the this patch for the incompressible case, it seems the wallheat heat flux is not divided through rho. In the compressible case it is (as you said).
Incompressible case:
const scalarField& alphaEffp =
patch().lookupPatchField<volScalarField, scalar>(alphaEffName_);
const scalarField& Cpp =
patch().lookupPatchField<volScalarField, scalar>(CpName_);
gradient() = q_/(Cpp*alphaEffp);

So maybe it makes sense to define a non mass related Cp, something like Cpp = Cp * reference density.
Also I wonder how this patch considers density changes in the near wall region caused by thermal expansion (e.g. a rhoK )? But probably they are assumed to be small due to the Boussinesq approach is only valid for small density changes. What is your estimation? These incompressible solvers look a little bit confusing for me...

Thanks once more

Best regards
Stawrogin

Thomas Baumann December 2, 2009 05:41

Hi Stawrogin,

I'm using OpenFOAM-1.6. For the wallheatflux I implemented a boundary condition downloaded from the wikipage of OpenFOAM.

http://openfoamwiki.net/index.php/Contrib_wallHeatFlux

The last version is for OF1.5, but it works in OF1.6, too.

You are only using the Boussinesq-approximation if density changes can be neglected in every term, but buoyancy-effects mustn't be neglected, (changes of the material properties are neglected, too)

It should make no difference if you solve with rho0 or with the local rho, because the difference should be very small. If there's a change, you are not allowed to use the boussinesq-approximation.

Regards Thomas

David_010 February 9, 2010 03:01

Hi Thomas

I'm using buoyantBoussinesqSimpleFoam for solve laminar flow (laminar RASmodel) in an annular duct with constan heat flux in the outer wall. My question is: Why does exist a boundary condition based on the heat transfer coefficient? To apply the heat flux I'm using the expression q=k·fixedGradient(T) because the relation q=k·(Temperature gradient) must be met near the wall (due to the continuity of the heat transfer), so I don't understand the necessity of the other equation. May be the fixedGradient b.c doesn't work as I think. Could you explain me where I'm wrong?

Thankyou very much in advance for your attention.

Thomas Baumann February 9, 2010 03:19

Hi David,

if you solve a turbulent flow you have to use k=alpha_eff=alpha_laminar+alpha_turbulent p.e. for RANS. So because you don't know alpha_turbulent pre the simulation if you're using a high-reynolds-turbulence-model.

But you're right, you don't need this all if you're solving a laminar flow.

Regards Thomas

panda60 February 9, 2010 03:35

Quote:

Originally Posted by Thomas Baumann (Post 245438)
Hi David,

if you solve a turbulent flow you have to use k=alpha_eff=alpha_laminar+alpha_turbulent p.e. for RANS. So because you don't know alpha_turbulent pre the simulation if you're using a high-reynolds-turbulence-model.

But you're right, you don't need this all if you're solving a laminar flow.

Regards Thomas

Dear Thomas Baumann,
Could you explain us how buoyantBoussinesqSimpleFlam or buoyantBoussinesqPisoFoam works ?
Because I don't know how this solver deal with temperature in the wall.
If I use standard kEpsolon model, that means need wall functions in the wall. I don't know how it works .Because k,epsilon and nut all have there own wall function, but temperature doesn't have wall function. If I should deal with teperature by myself ?

Thomas Baumann February 9, 2010 04:28

Hi panda60,

you need to understand how the temperature-field is determined with the basic turbulence models (like kepsilon). Normally you set a turbulent Prandtlnumber as a constant (e.d. 0.9) and give a relation for the Reynolds-stresses and the turbulent heat fluxes. I think everything is explained in the wiki
http://openfoamwiki.net/index.php/Bu...sinesqPisoFoam


So you calculate the temperature-field by using the RS. That means, if you use a wallfunction in the k-, elsilon-equation you are using this, because of the coupling, in your alphaEff-field and so in the temperature-field, too. But sometimes you're not allowed to set the turbulent Prandtl-number as constant, so you have to modify it to a function or even use a reynolds-flux-turbulence-model.

But if you solve with a wallfunction and a turbulent Prandtl-number you have to be careful how to get walltemperature-gradients or the temperature at the wall, because you determine these values with the aid of your "cell next-to-wall". But here are the values getting by linear interpolation wrong, because here is the wallfunction used (the same problem as getting the wall-velocity-gradient or the wall-friction).

Regards Thomas

rob3rt July 12, 2010 03:46

Dear Thomas,

I have a few questions that need to be clarified if you don't mind.

I am using porousSimpleFoam + bousinessq to solve very low flow (laminar RAS) with three modes of heat transfer (conduction, convection, and radiation). So, I have set a heat source (radiation) for a specific value under transportProperties and I am wondering is there any need for me to set the convective coefficient using wallHeatFlux utility for the convection part? and how do I obtain the convective coefficient since I only know the Twater not the Tsolid?
And I used this http://openfoamwiki.net/index.php/Bu...sinesqPisoFoam energy equation plus the added heat source (radiation) by changing kappaEff to alphaEff, so I think the conduction term is already covered in here?

Thanks very much for your time and attention. Really appreciate if you can give me a feedback.

Kind Regards,
Robert.

Thomas Baumann July 13, 2010 03:18

Hi Robert,

you have normally two kinds of boundary conditions:
set a fixed value, for example the temperature or set a gradient for example wallheatflux. You mkust know more details of yoyur experiment or flow-problem to set the right boundary condition...
Changing kappaEff to alphaEff you should be able to use the wallheatflux-utility.

Regards Thomas

marval July 24, 2010 09:08

Quote:

Originally Posted by Thomas Baumann (Post 238455)
Hi Stawrogin,

I'm using OpenFOAM-1.6. For the wallheatflux I implemented a boundary condition downloaded from the wikipage of OpenFOAM.

http://openfoamwiki.net/index.php/Contrib_wallHeatFlux

The last version is for OF1.5, but it works in OF1.6, too.

You are only using the Boussinesq-approximation if density changes can be neglected in every term, but buoyancy-effects mustn't be neglected, (changes of the material properties are neglected, too)

It should make no difference if you solve with rho0 or with the local rho, because the difference should be very small. If there's a change, you are not allowed to use the boussinesq-approximation.

Regards Thomas

Greetings!

Do you know how to implement it on OF-1.6.x? Following the instructions didn't work too well.

Regards
Marco

Thomas Baumann July 28, 2010 16:33

Hi,
I have never used OpenFOAM-1.6.x.

But it works using OpenFOAM-1.6 and the same data works with OpenFOAM-1.7.

Regards Thomas

ubaid November 15, 2010 09:58

Ambiguity kappaEff
 
Hallo Everybody,

I have a small question and wondering over few things like kappaEff in buoyantBoussinesqSimpleFoam.

Temperature equation for both piso and simple solvers is same. I have read the docu of buoBPISOFoam under the following link.
http://openfoamwiki.net/index.php/Bu...sinesqPisoFoam
In this link, the author say that kappaEff = heat transfer coefficient (Eq 17).

I am wondering how it is so. kappaEff = nu / Pr + turb part.
Pr = Cp * mu / lambda lambda = conductance

if i put back Pr in above kappEff eq then i get following.

kappaEff = (nu * lambda ) / (Cp * mu) = (nu * lambda )/(Cp * rho * nu)
kappaEff = lambda / (Cp * rho)
above equation shows that this lambda is diffusivity?

Actually I am looking to get conductivity to calculate heatflux near the boundary wall region by following formula.

q= lambda (Gradient (T))

if I use q = kappaEff * Grad(T) then i get better results

BUT
if i use q = Cp * rho * kappaEff * Grad(T) then i get really bad results.

I am not sure what is kappaEff... but i think its conductance. I want to prove it that this kappaEff = conductance.

Can anyone please help me out in clearing what is kappaEff?

Thanks a lot for attention.

looking forward to replies.

Best Regards,

David_010 November 15, 2010 17:29

Hi ubaid,

I am workig with that solver for laminar regime. kappaEff is the thermal diffusivity, wich in an exclusive laminar solver is called DT. In fact, it is calculated as nu/Pr, which gives k/rho*cp, the thermal diffusivity.

I also have employed an existen wallHeatFlux b.c to do grad(T)=heatFlux/k, where k is the thermal conductivity (which in my case is temperature dependent) to impose a uniform heat flux.

I hope this helps you.

Regards,

David

ubaid November 15, 2010 17:57

Hello David,

Thanks for reply. one thing is now little bit sure that kappaEff = alphaEff = thermal diffusivity. Can you please let me know why the author say in the following link that it is heat transfer coefficient?
http://openfoamwiki.net/index.php/Bu...sinesqPisoFoam
Eq no 17.
it confuses me.

My case is an incompressible one. What can you sugguest me? that do i have to use q = k Grad(T), and i give conductivity from outside.. or do i calculate conductivity from kappaEff (thermal diffusivity) by using Cp and rho.

Thanks for your help
Regards

David_010 November 15, 2010 19:21

Hi ubaid

Take a look to this thread:

http://www.cfd-online.com/Forums/ope...oussinesq.html

I think it will be useful for you. I don´t know why the author calls kappaEff the heat transfer coefficient. As I understand heat transfer coefficient comes from h=q/DT, where DT in this case is the temperature difference, and q is the heat flux (in W/m^2), so h must be W/m^2·K. Then, the boundary condition would be

gradient = heatflux / (kappaEff * cp0 *rho0)

But look to the existen wallHeatFlux b.c.

Regards

David

ubaid November 16, 2010 09:33

Hi David,

If you dont mind, can I ask you? whats the difference between snGrad and simple grad in OpenFOAM?

Actually, am asking it because generally we say.

q = - k grad(T) is it equivalent to openfoam like q = k snGrad(T)...

Thanks in advance.
Best Regards,
Ubaid

David_010 November 16, 2010 14:22

Hi ubaid

snGrad is the gradient normal to a surface. The gradient term can be evaluated in different manners, and in the case of the temperature gradient at the wall, the heat flux expression q=k(DT/DX) employs the gradient normal to that wall, so snGrad is the correct way.


I suggest you to take a look to the Programmers Guide, I think it explains this better than me.


Hope it helps, regards


David

ubaid November 16, 2010 14:41

Quote:

Originally Posted by David_010 (Post 283666)
Hi ubaid

snGrad is the gradient normal to a surface. The gradient term can be evaluated in different manners, and in the case of the temperature gradient at the wall, the heat flux expression q=k(DT/DX) employs the gradient normal to that wall, so snGrad is the correct way.


I suggest you to take a look to the Programmers Guide, I think it explains this better than me.


Hope it helps, regards


David

Hallo David,

Thanks a lot, i got what you meant. I will look at manual closely.

Best Regards,

sarahk March 8, 2011 09:35

Hey Foamers,

i just tried the turbulentHeatFluxTemperature bc in the buoyantBoussinesqPimpleFoam tutorial case with OF-1.7.1.
I exchanged all the kappaEff with alphaEff. Its reading all the files, starts the time loop and breaks up directly. i got a:

--> FOAM FATAL ERROR:
request for volScalarField unifrom from objectRegistry region0 failed
available objects ot type volScalarField are

do i need to add a field in createFields?
Thought its ok, when i just add a value in the 0/T file ...

Any suggestions?

Thanks in advance!

Sarah

Anne Lincke August 17, 2011 09:20

Dear Foamers,
can someone explain me why OF1.7 still uses

HTML Code:
- ghf*fvc::snGrad(rhok)*mesh.magSf()
instead of

HTML Code:
fvc::interpolate(rhok)*(g & mesh.Sf())
as it was used in the previous version OF1.6.
I do not understand why the gradient of the densitiy is used while in the equations I find in literature it has to be just the densitiy multiplied with the constant g.
Can someone help me? Is this still a bug or do I overlook something?
Also in the Wiki-Link
http://openfoamwiki.net/index.php/Bu...sinesqPisoFoam
they use the interpolated density instead of the surface normal gradient.


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