About Thermal LBM April 08, 2008 04:20PM |
Registered: 11 years ago Posts: 21 |

Hello Everybody,

Really I am grateful to this forum. I am new user of LBM.I would like to study about thermal LBM. I have found physical and Lb unit relation between Length, mass, time etc. My question, is there any relation between real and LB temperature? I would be grateful to him also, if any body help me to send any sample Fortran code of thermal LBM. With all the best.

Yours Truly

Mmatadu

Edited 1 time(s). Last edit at 05/12/2008 04:08PM by mmatadu.

Really I am grateful to this forum. I am new user of LBM.I would like to study about thermal LBM. I have found physical and Lb unit relation between Length, mass, time etc. My question, is there any relation between real and LB temperature? I would be grateful to him also, if any body help me to send any sample Fortran code of thermal LBM. With all the best.

Yours Truly

Mmatadu

Edited 1 time(s). Last edit at 05/12/2008 04:08PM by mmatadu.

Re: About Thermal LBM April 10, 2008 03:13AM |
Registered: 11 years ago Posts: 347 |

A Fortran code, no. But Andrea has written a Matlab code which simulates a thermal LBM. It's published, together with other LB samples, on the following page:

[www.lbmethod.org]

[www.lbmethod.org]

Re: About Thermal LBM April 10, 2008 05:41AM |
Registered: 11 years ago Posts: 21 |

Re: About Thermal LBM April 10, 2008 07:28AM |
Registered: 11 years ago Posts: 50 |

Hi,

umm, at least for the case of Rayleigh-Benard Convection, where you can define a Rayleigh number (Ra), you know that your Ra is proportional to the gradient of the temperature between upper and lower wall. Now, if you write the Ra number as ratio of quantities in real units on one side and the Ra given by your quantities in LB units on the other side of your equation... well, I think you should be able to find a relation between the gradient in lattice and real units.

g*alpha*deltaT*L^3/nu*k=gr_lu*alpha_lu*deltaT_lu*(ly-1)^3/(nu_lu*k_lu)

and then (maybe)

deltaT_lu= (deltaT*g*alpha*L^3)*(nu_lu*k_lu)/(nu*k)*(gr_lu*alpha_lu*(ly-1)^3)

where gr_lu will depend on delta_t and delta_x of your simulation.

alpha_lu=chosen constant.

(ly-1)= number of lattice spaces in the vertical direction (ly-2 if you use bounce_back)

nu_lu= c2s*(tauNS-0.5) % kinematic viscosity in lattice units

k_lu = c2s*(tauThermal-0.5) % thermal diffusivity

I hope it helps.. and that what I wrote make sense ;)

Andrea

Edited 1 time(s). Last edit at 04/10/2008 01:53PM by tovarish.

umm, at least for the case of Rayleigh-Benard Convection, where you can define a Rayleigh number (Ra), you know that your Ra is proportional to the gradient of the temperature between upper and lower wall. Now, if you write the Ra number as ratio of quantities in real units on one side and the Ra given by your quantities in LB units on the other side of your equation... well, I think you should be able to find a relation between the gradient in lattice and real units.

g*alpha*deltaT*L^3/nu*k=gr_lu*alpha_lu*deltaT_lu*(ly-1)^3/(nu_lu*k_lu)

and then (maybe)

deltaT_lu= (deltaT*g*alpha*L^3)*(nu_lu*k_lu)/(nu*k)*(gr_lu*alpha_lu*(ly-1)^3)

where gr_lu will depend on delta_t and delta_x of your simulation.

alpha_lu=chosen constant.

(ly-1)= number of lattice spaces in the vertical direction (ly-2 if you use bounce_back)

nu_lu= c2s*(tauNS-0.5) % kinematic viscosity in lattice units

k_lu = c2s*(tauThermal-0.5) % thermal diffusivity

I hope it helps.. and that what I wrote make sense ;)

Andrea

Edited 1 time(s). Last edit at 04/10/2008 01:53PM by tovarish.

Re: About Thermal LBM April 11, 2008 03:25PM |
Registered: 11 years ago Posts: 21 |

Thanks for your reply.But may be you discuss about cavity flow.

But I would like to know about channel flow, if wall temperature is 300 K, then how can I convert it to lb units. Supoose, if my Gird size is 50x30, and length is L=0.0005 m. then delx=L/50=0.00001m . Now we easily can find U_real=(delx/delt)*U_lb. where delt=delx*Cs/a.=time step.

If I want to put constant wall temp 300k, then how I can put it? I put directly 300K or I need to convert it to LB units, then how can I do it? As a new user of this method, I have some confused. Again thank you very much.

But I would like to know about channel flow, if wall temperature is 300 K, then how can I convert it to lb units. Supoose, if my Gird size is 50x30, and length is L=0.0005 m. then delx=L/50=0.00001m . Now we easily can find U_real=(delx/delt)*U_lb. where delt=delx*Cs/a.=time step.

If I want to put constant wall temp 300k, then how I can put it? I put directly 300K or I need to convert it to LB units, then how can I do it? As a new user of this method, I have some confused. Again thank you very much.

Re: About Thermal LBM April 12, 2008 09:48AM |
Registered: 11 years ago Posts: 15 |

Re: About Thermal LBM April 14, 2008 12:38PM |
Registered: 11 years ago Posts: 50 |

Hi moslemi,

well.. you could look at:

INTERNATIONAL JOURNAL FOR NUMERICAL METHODS IN FLUIDS

Int. J. Numer. Meth. Fluids 2002; 39:325–342 (DOI: 10.1002/d.337)

in the short Matlab code, instead of the D2Q4 lattice used by Guo for the advection diffusion equation, I use a D2Q5 (we add a rest particle to the D2Q4 lattice) but I would say that it does not change a lot for the "not completely correct advection diffusion scheme" implemented in the matlab code I wrote. To add a rest particle it would be necessary in the case you would like to use the**correct** advection diffusion scheme proposed by Jonas Latt in his Ph.D. thesis: [www.tufts.edu]

About the boundary condition. Reference? I do not know.

What I know is the macroscopic temperature (T_macro) on the boundary. I also know 4 of the 5 particle distribution functions (tin) I use for the advection diffusion lattice Boltzmann scheme.

I know that for a D2Q5 lattice T_macro= sum_i (tin) where i=1,2,3,4,5 and tin is the particle distr

Let's write T_macro in a explicit form:

T_macro= tin_1+tin_2+tin_3+tin_4+tin_5

On the equation above now you have only one unknown. The unknown depend on which boundary you want to apply the constant temperature condition.

Look the matlab code for a sample simple case. for instance look at

tIn(5,:,ly) = Tcold-tIn(1,:,ly)-tIn(2,:,ly)-tIn(3,:,ly)-tIn(4,:,ly);

tIn(3,:,1) = Thot-tIn(1,:,1) -tIn(2,:,1) -tIn(4,:,1) -tIn(5,:,1);

I hope I was clear .. let me know.

And

Edited 1 time(s). Last edit at 04/24/2008 10:16PM by tovarish.

well.. you could look at:

INTERNATIONAL JOURNAL FOR NUMERICAL METHODS IN FLUIDS

Int. J. Numer. Meth. Fluids 2002; 39:325–342 (DOI: 10.1002/d.337)

in the short Matlab code, instead of the D2Q4 lattice used by Guo for the advection diffusion equation, I use a D2Q5 (we add a rest particle to the D2Q4 lattice) but I would say that it does not change a lot for the "not completely correct advection diffusion scheme" implemented in the matlab code I wrote. To add a rest particle it would be necessary in the case you would like to use the

About the boundary condition. Reference? I do not know.

What I know is the macroscopic temperature (T_macro) on the boundary. I also know 4 of the 5 particle distribution functions (tin) I use for the advection diffusion lattice Boltzmann scheme.

I know that for a D2Q5 lattice T_macro= sum_i (tin) where i=1,2,3,4,5 and tin is the particle distr

Let's write T_macro in a explicit form:

T_macro= tin_1+tin_2+tin_3+tin_4+tin_5

On the equation above now you have only one unknown. The unknown depend on which boundary you want to apply the constant temperature condition.

Look the matlab code for a sample simple case. for instance look at

tIn(5,:,ly) = Tcold-tIn(1,:,ly)-tIn(2,:,ly)-tIn(3,:,ly)-tIn(4,:,ly);

tIn(3,:,1) = Thot-tIn(1,:,1) -tIn(2,:,1) -tIn(4,:,1) -tIn(5,:,1);

I hope I was clear .. let me know.

And

Edited 1 time(s). Last edit at 04/24/2008 10:16PM by tovarish.

Re: About Thermal LBM April 14, 2008 12:53PM |
Registered: 11 years ago Posts: 50 |

Hi mmatadu,

maybe this paper could help you

JOURNAL OF COMPUTATIONAL PHYSICS 146, 282–300 (1998)

ARTICLE NO. CP986057

A Novel Thermal Model for the Lattice

Boltzmann Method in Incompressible Limit

Xiaoyi He, Shiyi Chen, and Gary D. Doolen

... there's a small example that could be close to the oen you are trying to resolve.

The example is: Couette flow with a temperature gradient.

is this the problem you are interested about? If it is not.. explain me a little bit better your geometry please. Do you have a buoyancy force in your problem? the hotter plate is the upper or lower one? .. but anyway .. take a look at the paper I cited. it could help.

ciao

And

maybe this paper could help you

JOURNAL OF COMPUTATIONAL PHYSICS 146, 282–300 (1998)

ARTICLE NO. CP986057

A Novel Thermal Model for the Lattice

Boltzmann Method in Incompressible Limit

Xiaoyi He, Shiyi Chen, and Gary D. Doolen

... there's a small example that could be close to the oen you are trying to resolve.

The example is: Couette flow with a temperature gradient.

is this the problem you are interested about? If it is not.. explain me a little bit better your geometry please. Do you have a buoyancy force in your problem? the hotter plate is the upper or lower one? .. but anyway .. take a look at the paper I cited. it could help.

ciao

And

Re: About Thermal LBM April 15, 2008 09:50AM |
Registered: 11 years ago Posts: 7 |

Dear Andrea,

I'm playing with your thermal.m code. I'm trying to modify it in order to simulate a buoyancy-driven cavity flow. I have some problems with boundary conditions, in particular I don't know how to impose a gradient temperature in the case of D2Q5 lattice. Could you help me?

Thank you.

I'm playing with your thermal.m code. I'm trying to modify it in order to simulate a buoyancy-driven cavity flow. I have some problems with boundary conditions, in particular I don't know how to impose a gradient temperature in the case of D2Q5 lattice. Could you help me?

Thank you.

Re: About Thermal LBM April 15, 2008 12:16PM |
Registered: 11 years ago Posts: 50 |

Ciao Shaq,

Some people use a finite difference scheme for the adiabatic boundary condition.

See for example:

C. Shu, Y. Peng, Y.T. Chew, Simulation of natural convection in a square cavity by Taylor series expansion- and least square-based lattice Boltzmann method, Int. J. Mod. Phys. C 13 (10) (2002) 1399-1414.

but you should be aware of the special case of corners...

See

Y.Peng,C.Shu and Y.TChew

Simplified thermal lattice Boltzmann model for incompressible thermal flows. Physical Review E68 2003.

but I'm wondering if a normal**bounce-back for the temperature distribution function** (as we use to do for the fluid) could be enough..

ciao

And

Some people use a finite difference scheme for the adiabatic boundary condition.

See for example:

C. Shu, Y. Peng, Y.T. Chew, Simulation of natural convection in a square cavity by Taylor series expansion- and least square-based lattice Boltzmann method, Int. J. Mod. Phys. C 13 (10) (2002) 1399-1414.

but you should be aware of the special case of corners...

See

Y.Peng,C.Shu and Y.TChew

Simplified thermal lattice Boltzmann model for incompressible thermal flows. Physical Review E68 2003.

but I'm wondering if a normal

ciao

And

Re: About Thermal LBM April 24, 2008 04:10PM |
Registered: 11 years ago Posts: 15 |

Re: About Thermal LBM April 25, 2008 09:38AM |
AdminRegistered: 11 years ago Posts: 231 |

Hi,

a comment maybe. In general when you want to impose a gradient of a macroscopic quantity (temperature or velocity or pressure, let's say temperature T from now on) you can transform this gradient condition into a fixed temperature wall condition using the nearest neighbors. This is more convenient since in general it is not possible to impose a gradient on a lb code easily. Let's have small example.

Say you want d_x T(x_0,y)=0, where x_0 is the position of the wall (say it is a left wall, i.e. the outward pointing vector is (-1,0)). You can do a Taylor expansion (up to second order) of the nearest neighbors and you have (i'll omit the y coordinate)

T(x_0+1)=T(x_0)+d_xT(x_0)+1/2*d_x^2 T(x_0)

T(x_0+2)=T(x_0)+2*d_xT(x_0)+2*d_x^2 T(x_0)

You already know T(x_0+1) and T(x_0+2). You want to impose d_x T(x_0)=0. Then with these conditions and the two expansions, you are left with

T(x_0)=(4*T(x_0+1)-T(x_0+2))/3

Therefore you can just apply a normal fixed temperature boundary condition with the temperature equal to the formula above and the scheme should remain of second order accuracy.

I hope this explanation is more or less clear...

Cheers,

Orestis

a comment maybe. In general when you want to impose a gradient of a macroscopic quantity (temperature or velocity or pressure, let's say temperature T from now on) you can transform this gradient condition into a fixed temperature wall condition using the nearest neighbors. This is more convenient since in general it is not possible to impose a gradient on a lb code easily. Let's have small example.

Say you want d_x T(x_0,y)=0, where x_0 is the position of the wall (say it is a left wall, i.e. the outward pointing vector is (-1,0)). You can do a Taylor expansion (up to second order) of the nearest neighbors and you have (i'll omit the y coordinate)

T(x_0+1)=T(x_0)+d_xT(x_0)+1/2*d_x^2 T(x_0)

T(x_0+2)=T(x_0)+2*d_xT(x_0)+2*d_x^2 T(x_0)

You already know T(x_0+1) and T(x_0+2). You want to impose d_x T(x_0)=0. Then with these conditions and the two expansions, you are left with

T(x_0)=(4*T(x_0+1)-T(x_0+2))/3

Therefore you can just apply a normal fixed temperature boundary condition with the temperature equal to the formula above and the scheme should remain of second order accuracy.

I hope this explanation is more or less clear...

Cheers,

Orestis

Re: About Thermal LBM June 09, 2008 03:36AM |
Registered: 11 years ago Posts: 1 |

Re: About Thermal LBM June 10, 2008 01:09PM |
Registered: 11 years ago Posts: 50 |

Hi,

I'm not completely sure about what I'm writing... but if you use the thermal 2D code for Rayleigh Benard convection written in matalb ... and you add an external constant force at each element of your grid in the direction perpendicular to the buoyancy force, well .. you should get a kind of Poiseuille flow in a heated up system. Using R-B example you would have no-slip boundary condition at the top-bottom walls and periodic boundary in the x-direction.

Well ... you could even switch your heater on (to change boundary condition for the temperature from 0 to 1 for example.. look I don't know, but maybe a trigger for the temperature would be still needed ) once you reach a steady state for your Poiseuille solution... Do you see what I mean? it could be cool.. maybe it is far from what you have in mind .. but it could be helpful to get confident with Lattice Boltzmann and thermal models.

if you already play with OpenLB it should be pretty easy to make the small change that I proposed using the Rayleigh Benard 2D example. If you don't use OpenLB, it could be a nice problem to start with. (If you wanna use OpenLB look at forced poiseuille flow and Rayleigh Benard example)

ciao

Andrea

don't hesitate to ask more if I wasn't clear (it happens too often)

I'm not completely sure about what I'm writing... but if you use the thermal 2D code for Rayleigh Benard convection written in matalb ... and you add an external constant force at each element of your grid in the direction perpendicular to the buoyancy force, well .. you should get a kind of Poiseuille flow in a heated up system. Using R-B example you would have no-slip boundary condition at the top-bottom walls and periodic boundary in the x-direction.

Well ... you could even switch your heater on (to change boundary condition for the temperature from 0 to 1 for example.. look I don't know, but maybe a trigger for the temperature would be still needed ) once you reach a steady state for your Poiseuille solution... Do you see what I mean? it could be cool.. maybe it is far from what you have in mind .. but it could be helpful to get confident with Lattice Boltzmann and thermal models.

if you already play with OpenLB it should be pretty easy to make the small change that I proposed using the Rayleigh Benard 2D example. If you don't use OpenLB, it could be a nice problem to start with. (If you wanna use OpenLB look at forced poiseuille flow and Rayleigh Benard example)

ciao

Andrea

don't hesitate to ask more if I wasn't clear (it happens too often)

Re: About Thermal LBM May 29, 2018 10:12AM |
Registered: 1 year ago Posts: 4 |

tovarish Wrote:

-------------------------------------------------------

> Hi,

>

> umm, at least for the case of Rayleigh-Benard

>

> g*alpha*deltaT*L^3/nu*k=gr_lu*alpha_lu*deltaT_lu*(ly-1)^3/(nu_lu*k_lu)

>

> and then (maybe)

>

> deltaT_lu=

>

>

> where gr_lu will depend on delta_t and delta_x of

> alpha_lu=chosen constant.

> (ly-1)= number of lattice spaces in the vertical

> nu_lu= c2s*(tauNS-0.5) % kinematic viscosity in

> k_lu = c2s*(tauThermal-0.5) % thermal

>

> I hope it helps.. and that what I wrote make

>

> Andreay

Hello,

I’m a New user of LBM. my case is lid driven cavity flow (not affected by natural convection) with thermal boundary conditions.

Now that I can’t use Ra as my connection between LB and real parameters how can I input my temperatures into LB code?

I would be very thankful for any help .

-------------------------------------------------------

> Hi,

>

> umm, at least for the case of Rayleigh-Benard

>

> g*alpha*deltaT*L^3/nu*k=gr_lu*alpha_lu*deltaT_lu*(ly-1)^3/(nu_lu*k_lu)

>

> and then (maybe)

>

> deltaT_lu=

>

>

> where gr_lu will depend on delta_t and delta_x of

> alpha_lu=chosen constant.

> (ly-1)= number of lattice spaces in the vertical

> nu_lu= c2s*(tauNS-0.5) % kinematic viscosity in

> k_lu = c2s*(tauThermal-0.5) % thermal

>

> I hope it helps.. and that what I wrote make

>

> Andreay

Hello,

I’m a New user of LBM. my case is lid driven cavity flow (not affected by natural convection) with thermal boundary conditions.

Now that I can’t use Ra as my connection between LB and real parameters how can I input my temperatures into LB code?

I would be very thankful for any help .

Sorry, you do not have permission to post/reply in this forum.