• This topic has 4 replies, 3 voices, and was last updated 7 years ago by Alin.
Viewing 5 posts - 1 through 5 (of 5 total)
• Author
Posts
• #1940
Alin
Member

Hi, I am working on an analysis of flow characteristic and heat transfer past two heated cylinders by LBM. I have some questions about openlb which I cannot find answer in user guide and examples.
a) How can I set the temperature boundary at the cylinders in the simulation of the flow around the cylinders?
b) Is there an example of simultaneous analysis of flow and heat transfer?
Thank you.

#2711
robin.trunk
Keymaster

Hi alan.sant,

a) You can set the temperature boundary for the cylinder similar to the case in the examples by the material number (assuming you set a material number for each cylinder like in the cylinder3d example). Just have a look at thermal2d oder thermal3d, in the functions
prepareLattice(…)
-> here the type of boundary is set by addTemperatureBoundary(…)
setBoundaryValues(…)
-> here the values are defined by an AnalyticalConst object and set by defineRho(…) and definePopulations(…)

b) In the examples thermal2d and thermal3D a Rayleigh-Bernard convection is simulated (coupled flow and temperature field)

Best
Robin

#2712
mgaedtke
Keymaster

Hello Alan,

I am currently working on the thermal LBM in OpenLB and this part of the code is under heavy development at the moment. We hope to publish a revised version of the Advection-Diffusion-Equiation implementation till the end of the year.

However, you can set a constant temperature boundary by the function .addTemperatureBoundary() in AdvectionDiffusionBoundarys. Have a look at the example RayleighBenard2d or 3d, which are simulations of the rayleigh benard convection between a hot plate at the bottom and a cold plate on top (https://en.wikipedia.org/wiki/Rayleigh%E2%80%93B%C3%A9nard_convection)

Best regards,
Max

#2714
Alin
Member

[color=#][color=#]

Quote:
Quote from robin.trunk on September 8, 2017, 17:15
Hi alan.sant,

a) You can set the temperature boundary for the cylinder similar to the case in the examples by the material number (assuming you set a material number for each cylinder like in the cylinder3d example). Just have a look at thermal2d oder thermal3d, in the functions
prepareLattice(…)
-> here the type of boundary is set by addTemperatureBoundary(…)
setBoundaryValues(…)
-> here the values are defined by an AnalyticalConst object and set by defineRho(…) and definePopulations(…)

b) In the examples thermal2d and thermal3D a Rayleigh-Bernard convection is simulated (coupled flow and temperature field)

Best
Robin

Dear Robin,

I have studied the examples thermal2d and thermal3d, but there are some warnings when running the code of thermal2d.

Warning is as follows,

\$ make
Create dependencies for rayleighBenard2d.cpp
Compile rayleighBenard2d.cpp
g++ -DOLB_PRECOMPILED -O3 -Wall -std=c++0x -I../../src -I../../src/ -I../../src/external -c rayleighBenard2d.cpp -o /home/L/olb/examples/thermal2d/rayleighBenard2d.o
In file included from ../../src/core/core2D.hh:29:0,
from ../../src/olb2D.hh:4,
from rayleighBenard2d.cpp:33:
../../src/core/blockLattice2D.hh: in the function ‘void olb::BlockLattice2D<T, Lattice>::makePeriodic() [with T = double; Lattice = olb::descriptors::ForcedD2Q9Descriptor]’:
../../src/core/blockLattice2D.hh:702:6: Warning : assuming signed overflow does not occur when assuming that (X – c) > X is always false [-Wstrict-overflow]
void BlockLattice2D<T,Lattice>::makePeriodic()
^
../../src/core/blockLattice2D.hh:702:6: Warning：assuming signed overflow does not occur when assuming that (X – c) > X is always false [-Wstrict-overflow]
../../src/core/blockLattice2D.hh:688:9: Warning：assuming signed overflow does not occur when assuming that (X – c) > X is always false [-Wstrict-overflow]
if ( nextX<0 || nextX>=this->_nx ||
^
../../src/core/blockLattice2D.hh:688:9: Warning：assuming signed overflow does not occur when assuming that (X – c) > X is always false [-Wstrict-overflow]
cc1plus: Warning：assuming signed overflow does not occur when assuming that (X – c) > X is always false [-Wstrict-overflow]
../../src/core/blockLattice2D.hh: in the function‘void olb::BlockLattice2D<T, Lattice>::makePeriodic() [with T = double; Lattice = olb::descriptors::AdvectionDiffusionD2Q5Descriptor]’:
../../src/core/blockLattice2D.hh:702:6: Warning：assuming signed overflow does not occur when assuming that (X – c) > X is always false [-Wstrict-overflow]
void BlockLattice2D<T,Lattice>::makePeriodic()
^
../../src/core/blockLattice2D.hh:702:6: Warning：assuming signed overflow does not occur when assuming that (X – c) > X is always false [-Wstrict-overflow]
../../src/core/blockLattice2D.hh:688:9: Warning：assuming signed overflow does not occur when assuming that (X – c) > X is always false [-Wstrict-overflow]
if ( nextX<0 || nextX>=this->_nx ||
^
../../src/core/blockLattice2D.hh:688:9: Warning：assuming signed overflow does not occur when assuming that (X – c) > X is always false [-Wstrict-overflow]
if ( nextX<0 || nextX>=this->_nx ||
^

I would like to know whether these warnings affect the results.

Thank you very much.

Best
Alan

#2715
Alin
Member
Quote:
Quote from mgaedtke on September 11, 2017, 14:21
Hello Alan,

I am currently working on the thermal LBM in OpenLB and this part of the code is under heavy development at the moment. We hope to publish a revised version of the Advection-Diffusion-Equiation implementation till the end of the year.

However, you can set a constant temperature boundary by the function .addTemperatureBoundary() in AdvectionDiffusionBoundarys. Have a look at the example RayleighBenard2d or 3d, which are simulations of the rayleigh benard convection between a hot plate at the bottom and a cold plate on top (https://en.wikipedia.org/wiki/Rayleigh%E2%80%93B%C3%A9nard_convection)

Best regards,
Max

Dear Max,