Skip to content

Poiseuille 3D Geometry Creation Query

OpenLB – Open Source Lattice Boltzmann Code Forums on OpenLB General Topics Poiseuille 3D Geometry Creation Query

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #5956
    achodankar
    Participant

    Hello Developers,
    I would like to understand the concept of why the inlet and outlet is set to a number of crossections. The inlet is set from from -2 deltax to 2 deltax, similarly the outlet is set from length – 2 deltax to length + 2 deltax. Why not just set the first cross-section to inlet and the last cross-section for the outlet.

    For example in the code:
    Vector<T, 3> center0(-converter.getPhysDeltaX() * 0.2, radius, radius);
    Vector<T, 3> center1(length, radius, radius);

    IndicatorCylinder3D<T> pipe(center0, center1, radius);

    superGeometry.rename(0, 2);

    superGeometry.rename(2, 1, pipe);

    if (flowType == nonForced)
    {
    Vector<T, 3> origin(0, radius, radius);
    Vector<T, 3> extend = origin;

    // Set material number for inflow
    origin[0] = -converter.getPhysDeltaX() * 2;
    extend[0] = converter.getPhysDeltaX() * 2;
    IndicatorCylinder3D<T> inflow(origin, extend, radius);
    superGeometry.rename(2, 3, 1, inflow);

    // Set material number for outflow
    origin[0] = length – 2 * converter.getPhysDeltaX();
    extend[0] = length + 2 * converter.getPhysDeltaX();
    IndicatorCylinder3D<T> outflow(extend, origin, radius);
    superGeometry.rename(2, 4, 1, outflow);
    }

    The second question, Can you explain the concept behind the following code?

    Vector<T, 3> center0(0, radius, radius);
    Vector<T, 3> center1(length, radius, radius);
    IndicatorCylinder3D<T> pipe(center0, center1, radius);
    IndicatorLayer3D<T> extendedDomain(pipe, converter.getPhysDeltaX());

    I don’t undersatnd the extended domain part.

    Lastly, after creating and initializing the lattice, why do we extend the center to -0.2 deltax? The geometry creation and application of boundaries is a bit confusing for me in the Poiseuille 3D case.

    Vector<T, 3> center0Extended(-converter.getPhysDeltaX() * 0.2, radius, radius);
    Vector<T, 3> center1Extended(length, radius, radius);

    IndicatorCylinder3D<T> pipeExtended(center0Extended, center1Extended, radius);
    IndicatorLayer3D<T> indicatorExtended (pipeExtended, 0.9*converter.getConversionFactorLength()*N/11.);

    I would really appreciate any explanation on these questions. It would be of great help to me.

    Thank you.

    Yours sincerely,

    Abhijeet C.

    #5960
    Adrian
    Keymaster

    w.r.t. the question on inflow / outflow indicators:

    The reason why this is set up in this way is to ensure that the first resp. last x-axis orthogonal cell layer is setup as in- resp. outflow. For this we need to in some sense match up physical parameters with discretized (cell) locations (if we want to use indicators as is done in this example).

    w.r.t. the extended domain:

    This is needed to ensure that the discretized domain fits the whole pipe.

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.