Skip to content

stephan

Forum Replies Created

Viewing 15 posts - 31 through 45 (of 63 total)
  • Author
    Posts
  • in reply to: Two component lattice density setting #5720
    stephan
    Moderator

    The lattice density for a Navier-Stokes lattice (population which approximates NSE) can in general be initialized with unity.

    Please note that dependent on what you are simulating, and which model you are using the physical densities of each lattice have separated meanings.
    This means that the lattice densities are kinetic densities in the first place and are only mapped one-to-one on macroscopic conservables if constructed to do so.

    For e.g. Free Energy Model, the lattice densities of the second (and maybe third for ternary systems) are macroscopic variables (order parameters) in the additional Cahn-Hilliard equations.
    These variables are hence not directly the component densities, but instead recover them by a simple additive relation.
    Dependent on exactly these relations the additional Cahn-Hilliard lattice densities should be initialized (see e.g. the microFluidics2d Example in OpenLB).

    For more information please have a look at the user guide and the standard literature for Multiphase/Multicomponent LBM (e.g. Krüger et al. 2017 “The Lattice Boltzmann Method” Chapter 9).

    BR
    Stephan

    in reply to: Multicomponent flow #5698
    stephan
    Moderator

    Dear Participant,

    to ensure that the flow problem is well-posed please have a look at the standard literature (see Krüger et al. 2017 “The lattice Boltzmann method” or Huang et al. 2015 “Multiphase Lattice Boltzmann Methods: Theory and Application” and references therein).
    Also, please start with “ideal” parameter settings (e.g. low Reynolds number) to prevent numerical instability (see e.g. Krüger et al., Chapter 9).

    As such this is currently all I can do, since it is hard to tell where the issues are without going into detail.

    BR
    Stephan

    in reply to: Multicomponent flow #5696
    stephan
    Moderator

    Dear Participant,

    yes, you should set boundaries for all lattices.
    It might help to have a look at another multicomponent simulation (though with the Free Energy Model) where various boundary conditions are set (/examples/multiComponent/microFluidics2d/).

    Best,
    Stephan

    in reply to: ComputeNusselt #5689
    stephan
    Moderator

    Dear Mike,

    you are welcome! In case you need further information please let me know.

    BR
    Stephan

    in reply to: ComputeNusselt #5683
    stephan
    Moderator

    Dear Mike,

    thank you for your post.

    Please note that “rho” on the ADlattice refers to the zeroth moment in LBM terms, which is now the temperature (in contrast to density on NSlattice).

    In the example code the computeNusselt function does:
    /// Compute the nusselt number at the left wall
    Hence the function uses an approximation to the normalized temperature gradient (q := local Nu = normTempGrad * L) with a finite difference (second order forward) at boundary nodes:
    q += (3.0*T_x – 4.0*T_xplus1 + 1.0*T_xplus2)/2.0*N;

    BR
    Stephan

    in reply to: Advection Diffusion D3Q19 Boundary Condition #5639
    stephan
    Moderator

    Dear Mathis,

    you are welcome, thanks for starting the discussion!

    Yes, including a ramp up for the concentration could be helpful.
    Approximating the profile with a smoothed out concentration might also help.

    BR
    Stephan

    in reply to: Advection Diffusion D3Q19 Boundary Condition #5637
    stephan
    Moderator

    Dear Mathis,

    thanks for the explanation.

    The problem with high Re for scalar transport via ADE on its own (or high Peclét in that case) appears to be increased for non-smooth initial conditions (e.g. transporting the initial condition with very little diffusion: one layer of cells at boundary have concentration 1, other cells concentration 0).
    Is this the case in your application?
    From my experience, simply switching to D3Q19 will not do the trick then.

    To approximate the ADE in that case, you could use an improved finite difference method (https://doi.org/10.1016/j.jocs.2021.101363) or use a limiter for the LBM (https://doi.org/10.1142/S0129183117501418).

    ELB will help you for high Re NSE, although I am not familiar with the benefit for non-smooth initial conditions in high Pe ADE. In case you make any progress in that direction please let me know!

    BR
    Stephan

    in reply to: Advection Diffusion D3Q19 Boundary Condition #5634
    stephan
    Moderator

    Dear Mathis,

    I am not quite sure to understand your argumentation on using D3Q19 instead of D3Q7 in this case.
    However, could you please test your application with the addition of the collide step as you specified?

    I am looking forward for your reply and will double-check the code in the meantime.

    BR
    Stephan

    in reply to: how to continue from the last computed results #5633
    stephan
    Moderator

    Dear ztdep,

    please have a look at the User Guide associated with release 1.4 of the code.
    Chapter 2.9 “Lesson 9: Use Checkpointing for Long DurationSimulations” describes the usage of lattice.load and lattice.save.
    An example implementation is offered in bifurcation3d/eulerLagrange.

    Good luck and BR
    Stephan

    in reply to: Parallel compilation failing at linking #5616
    stephan
    Moderator

    Dear Ramiro,

    please excuse the late reply and thank you for describing the issue.

    We are currently working on a solution.

    To circumvent the problem you could switch back to serial execution (config.mk out of the box).
    In case you have to use the parallel mode you might test an older MacOS.

    Thank you for you patience.

    BR
    Stephan

    in reply to: Unit conversion #5610
    stephan
    Moderator

    PS: To be precise… The function for the inlet boundary might be set to zero thickness since it is located at the domain’s origin. The thickness of the indicator for the outlet boundary has to be adapted to hit the target grid nodes. Of course you could make the former also of mesh-dependent thickness, which should be the favorable way of introducing functors for boundary conditions.

    BR
    Stephan

    in reply to: Unit conversion #5609
    stephan
    Moderator

    You are welcome.

    Each origin and extend are part of the input arguments for the respective indicatorCuboid2D functor and should be well-defined as is.
    For more information of the usage of indicator functors to build a geometry by stacking primitives together, please have a look at the User Guide (https://www.openlb.net/wp-content/uploads/2020/12/olb_ug-1.4r0.pdf, Section 5.1 “Creating a Geometry”).

    BR
    Stephan

    in reply to: Unit conversion #5607
    stephan
    Moderator

    Dear Participant,

    please have a look at the book “The Lattice Boltzmann Method” by Krüger et al. [https://www.springer.com/gp/book/9783319446479] which dedicates an entire Chapter to this task.

    More information about the unitConverter in OpenLB can be found in the User Guide (https://www.openlb.net/wp-content/uploads/2020/12/olb_ug-1.4r0.pdf, see Section 2.4 “Lesson 4: UnitConverter – Lattice and Physical Units”).

    Please note that akin introductory topics are taught at our yearly Spring school (https://www.openlb.net/spring-school-2022/), which offers many benefits for learning LBM and OpenLB.

    BR
    Stephan

    in reply to: MRT method #5595
    stephan
    Moderator

    Dear Xu Yang,

    for example in examples/laminar/poiseuille2d and poiseuille3d. You can uncomment //#define ENABLE_MRT to use the MRT dynamics instead of BGK.
    Also in the user guide associated with release 1.4 in Section 12.6.6 the necessary changes to run examples/thermal/squareCavity2d and squareCavity3d with MRT are documented.
    In case you would like to implement new models or see the currently supported MRT dynamics, please visit the doxygen, type “mrt” and have a look the suggested files.

    BR
    Stephan

    in reply to: Output of channel3D in examples of openlb #5588
    stephan
    Moderator

    Dear Xu Yang,

    please find the doxygen documentation online at https://www.openlb.net/DoxyGen/html/index.html

    The functor for y+ is also listed.

    Note that in the example channel3d, y+ is calculated “by hand” (line ~387), whereas computeLatticeVelocity (line ~116) returns u+ e.g. with the musker profile formula.

    For details of turbulent channel flow statistics please have a look at the publication by Haussmann et al. https://doi.org/10.1016/j.camwa.2019.04.033

    BR
    Stephan

Viewing 15 posts - 31 through 45 (of 63 total)