Skip to content

Re: thermal fluid and conjugate heat transfer

#2543
mgaedtke
Keymaster

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