Skip to content

Thermal Poiseuille 2D with AdvectionDiffusionTRTDynamics

OpenLB – Open Source Lattice Boltzmann Code Forums on OpenLB Bug Reports Thermal Poiseuille 2D with AdvectionDiffusionTRTDynamics

Viewing 1 post (of 1 total)
  • Author
  • #6380


    I am currently working on a rectangular channel Thermal Poiseuille 2D and I am observing a strange behavior in the temperature field, which initiates at the channel inlet.

    For simplicity, I set the temperature everywhere to a value of 1.5. However, temperatures>1.5 appear at the inlet and temperatures<1.5 appear in the nearby lattices. These are two images of the temperature field at different timesteps:

    In these images, the Reynolds number is 50; the Prandtl number is 13; the maximum lattice velocity is 0.0375; the relaxation time 0.55; Courant number 0.04.For reference, I attach a geometry figure:

    For Dynamics I am using ForcedBGKDynamics for fluid and AdvectionDiffusionTRTDynamics for temperature. I am using the latest version of the code.

    Boundary conditions for the energy Eq. are constant temperature everywhere through setAdvectionDiffusionTemperatureBoundary. For the NS lattice, setInterpolatedVelocityBoundary at the inlet (Poiseuille flow), setInterpolatedPressureBoundary at the outlet and bounce back for the walls.

    Item A:

    The way in which the temperature issue disappears is using AdvectionDiffusionBGKDynamics. By doing this, I realized that in function AdvectionDiffusionTRTDynamics::collide() consists of:

    cell[iPop] -= _omega2 * (fPlus[iPop] – fEqPlus[iPop]) + this->_omega * (fMinus[iPop] – fEqMinus[iPop]);

    whereas in simple TRTDynamics:

    cell[iPop] -= _omega * (fPlus[iPop] – fEqPlus[iPop]) + _omega2 * (fMinus[iPop] – fEqMinus[iPop]);

    The omega related to the viscosity and the free parameter omega are switched in the collision.
    Even though I tried switching the parameters in the source code, I could still see the issue.

    Item B:

    In AdvectionDiffusionBoundaries::collide(), for the corners, the missing population is computed in the following fashion:

    cell[unknown] – cell[unknown]_equilibrium = – cell[opposite] – cell[opposite]_equilibrium

    Shouldn’t it be cell[opposite] – cell[opposite]_equilibrium on the right hand side like the Zou-He bounce back of the non-equilibrium part suggests? Or am I missing something from the implementation?

    Final remark:

    I apologize for the long post. I am just curious to understand what is happening with the TRT dynamics for ADE simulations with a velocity inlet, and also curious about the boundary conditions at the corners.
    Thank you very much for your time,

    Ramiro Freile

Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.