Skip to content

Re: thermal fluid and conjugate heat transfer

Due to recent bot attacks we have changed the sign-up process. If you want to participate in our forum, first register on this website and then send a message via our contact form.

Forums OpenLB General Topics thermal fluid and conjugate heat transfer Re: thermal fluid and conjugate heat transfer

#2543
mgaedtke
Participant

Hello happyday,

for the different temperature boundaries:

First you assign a constant temperature boundary condition to your material number:

Code:
TboundaryCondition.addTemperatureBoundary(superGeometry, 3, Tomega);

For that material number you define a specific temperature by setting the rho value:

Code:
AnalyticalConst2D<T,T> Cold(Tcold);

ADlattice.defineRho(superGeometry, 3, Cold);

Here Tcold is the dimensionless Temperature = (T – T_lowest) / (T_highest – T_lowest), so usually the colder one will be 0 and the highest 1.

For conjugated heat transfer you define two AD dynamics, one for the fluid, one for the solid:

Code:
AdvectionDiffusionRLBdynamics<T, TDESCRIPTOR> TbulkDynamics (
converter.getOmegaT(),
instances::getAdvectionDiffusionBulkMomenta<T,TDESCRIPTOR>()
);

AdvectionDiffusionRLBdynamics<T, TDESCRIPTOR> TbulkDynamicsSolid (
converter[code]

Code:

Solid.getOmegaT(),
instances::getAdvectionDiffusionBulkMomenta<T,TDESCRIPTOR>()
);[/code]

You can see that there are different omegas from different converters, so there have to be two converters as well, or you calculate the omega directly in the code as seen in example bifurication3d/eulerEuler:

Code:
T omegaAD = 1. / (4. * ( diffusion * (converter.getDeltaT()/(converter.getDeltaX()*converter.getDeltaX()))
* (1./(converter.getCharU()*converter.getCharL())) ) + 0.5);

After that you can assign your fluid and solid dynamics to material numbers defined in the geometry (here: 5 = fluid, 6 = solid):

Code:
ADlattice.defineDynamics(superGeometry, 5, &advectionDiffusionBulkDynamics);
ADlattice.defineDynamics(superGeometry, 6, &advectionDiffusionBulkDynamicsSolid);

NSlattice.defineDynamics(superGeometry, 5, &bulkDynamics);
NSlattice.defineDynamics(superGeometry, 6, &instances::getNoDynamics<T, NSDESCRIPTOR>());

You need a boundary condition for the velocity field at the fluid/solid interface, but no boundary condition for the temperature field is needed here (as the temperature is allowed in both regions 5 and 6):

Code:
NSboundaryCondition.addVelocityBoundary(superGeometry, 5, NSomega);

It’s a bit hacky but as it seems it works. Please make sure to validate this method before acuatlly using it!

I hope i could help you and happy coding,
Max