Skip to content

Julius

Forum Replies Created

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • in reply to: Multicomponent flow- water droplet splashing #5350
    Julius
    Participant

    Hello Frank,

    In my second post I indeed did not use the maxwell construction rule to show that the simulation follows the young-laplace law. The results show the same trend, but are quite dissimilar.

    If you look at the difference between droplet center pressure minus the pressure far away, that pressure difference increases linearly with 1/r. This is the young-laplace law.

    If you look at the difference between droplet center density minus the equilibrium density, it increases linearly with 1/r. It follows the same trend as the laplace law and has a similar origin, but is an aphysical phenomena. In the pseudopotential method, the “liquid phase” is slightly compressible (real liquids are not). Since the pressure increases due to the young-laplace, that compresses the liquid as well, thus increasing the density.

    I can’t help you with the multicomponent case since I am not working with it. I’ll be releaseing my thermal multiphase code soon (1-2 weeks). That should feature the laplace pressure test.

    I hope that answeres your question.

    Regards.

    in reply to: Multicomponent flow- water droplet splashing #5329
    Julius
    Participant

    Hello Frank,

    A small correction to my previous statement.
    When only looking at density, then the difference between the density at the center of the droplet and the rim of the droplet should be taken. When looking at the pressure p = cs2 \rho + G 0.5cs2 \psi^2 then the difference between the center and the edge of the simulation should be taken. Both will result in a linear relation to 1/r showing that is follows the laplace, but only the pressure version should be used to calculate the resultant surface tension.

    At a tr=0.7, I get a center pressure of around O(1e-3), and a pressure of around O(1e-4) at the simulation edge. I hope that clarifies the problem a bit more.

    Regrards, Julius

    in reply to: Multicomponent flow- water droplet splashing #5288
    Julius
    Participant

    Hello Frank,

    Regarding your Young-Laplace question, this is how I did mine.

    I simulated a droplet and let it come to rest. The maximum time step that I have allowed for the simulation is 500k, or if it converged. Convergence was done via OpenLB’s ValueTracer using the average energy, over an interval of 100 steps and 1e-5 for the standard deviation.

    The young-laplace law is regarding the pressure difference between the center of the drop and the rim of the droplet. For the “center” I used the location of maximum density in the simulation domain. For the “outer edge” I used the liquid density gotten via the Maxwell construction (equal area).

    Regards,
    Julius

    in reply to: Multicomponent flow- water droplet splashing #5264
    Julius
    Participant

    Hi Frank,

    1) I am also currently working on simulating the Young-Laplace test. I’ll get back to you when I have my results.

    2) In OpenLB there is no SC MRT operator. You can make your own MRT descriptor by adding the tag::MRT to your descriptor. As far as I know the standard Forced MRT operator uses the Gou forcing scheme which is notoriously bad for the pseudopotential method. I am currently working on implementing Li’s MRT for D2Q9. If you have problems with high spurious currents, try using a thicker phase interface.

    3) All OpenLB boundaries technically work with the pseudopotential method. Using a pressure BC also sets the density and as such the phase. There is also a hidden away convection BC in OpenLB which is as far as I know meant to be used in combination with advection diffusion dynamics but works with normal dynamics as well.
    Also relevant is my question here: https://www.openlb.net/forum/topic/setting-both-density-and-velocity-at-boundary/

    Regards,
    Julius

    in reply to: IndicatorLayer2D usage #5262
    Julius
    Participant

    Dear Mathias,

    Thank you for the rename trick.
    I have managed to get my simulations to work with the ramp idea, but the possiblity to set layers is helpful and opens up some other simualtion possibilities.

    Regards,
    Julius Weinmiller

    in reply to: Multicomponent flow- water droplet splashing #5238
    Julius
    Participant

    Hi Frank,

    In most cases you can use the converter provided by OpenLB to convert from non-dimensional to dimensional numbers.
    Do note that the pressure in the converter assumes no pseudopotential modification, i.e.:
    p = cs^2 * ρ and not p = cs^2 *( ρ + G/2 Ψ^2 )

    I can highly recommend the book The Lattice Boltzmann Method Principles and Practice by Krüger et al.
    They have a good section on multicomponent flow. They also detail how to convert from dimensional to non-dimensional numbers.

    Even when simulating a droplet at rest, there are always spurious currents that arise. Those are numerical artifacts and aphysical, however that means that there is a non-zero velocity component in the simulation. You also have the grid spacing dx and time step dt to work with.

    The surface tension that emerges in LBM is a function of the pseudopotential and not density as it is in real life. Thus your surface tension depends on your pseudopotential function used.

    Since I have purely worked with single component multiphase flow, I cannot help you with your rayleighTaylor2d omega problem.

    Regards,
    Julius

    Julius
    Participant

    Hello d3rioe,

    In my config.mk I have PARALLEL_MODE := MPI and CXX := mpic++
    Running that with the mpirun command allows me to change the number of threads.
    I also have as a first message: [MpiManager] Sucessfully initialized, numThreads=15 for me. Maybe the manager is an issue?

    Regards, Julius

    Julius
    Participant

    Hello d3rioe,

    I think in the user manual page 38, “2.11 Lesson 11: Run Your Programs on a Parallel Machine” has your answer.
    “To run the program in parallel, use the command mpirun -np 2 ./cavity2d. Here -np 2 specifies the number of processors to be used”
    Use the flag --use-hwthread-cpus to enable threads in addition to individual cores.

    Regards, Julius

    in reply to: Multicomponent flow- water droplet splashing #5155
    Julius
    Participant

    Hi Prinz,

    I just realized that I overread your need for multicomponent flow.
    My answer came from the point of single-componet flow, but I do hope that it is still useful to you

    Regards,
    Julius

    in reply to: Multicomponent flow- water droplet splashing #5153
    Julius
    Participant

    Hi Prinz,

    I’m currently doing my Msc thesis on a similar topic. So while I am not an OpenLB dev, I am quite familiar with the workings. So here are my answers to your questions:

    1) The ShanChen method is possible to use in OpenLB. The forces are added via a coupling given in shanCehnForcedSingleComponentPostProcessor. An example of that on OpenLB is given in: examples\multicomponent\phaseSeparation. You can give walls a fictitous density and set the surface wettability in that way.
    2) I am also using Li’s method, and yes indeed it is possible to use it. You would need to create / modify a couple files however (I highly recommend create). You need an additional descriptor field in your fluid lattice to save the calculated pseudopotential. Then you need to copy the post processor, adapt it for your new NSdescriptor and save the calculated pseuodopotentials into the descriptor field. Then you need to copy the Gou forcing and modify the velocity before the force calculation, but after the collision calculations.
    3) I cannot say anything about that.
    4) That depends on your equation of state. Li’s method deals with the thermodynamic inconsistency when using an EoS, like the peng robinson one. I believe the instability occurs due to high spurious currents. You can use an MRT collision operator to reduce those, or decrease the repulsive coefficient in your equation of state (that is a in the PR EoS). While the thermodynamic inconsistency suffers a bit, I have managed to reach a density ratio of 1000 at a temperature ratio of 0.6 with the BGK collision operator in 3D.
    5) External forces can be added easily. Just add to the force a F=g*(rho_local - rho_average). Do note that you should exclude that force for the modified velocity when using the Li’s method.

    I hope that helps you a bit further.
    If any of the developers would like to chime in and correct a mistake I’ve made, please do so.

    Regards,
    Julius

    • This reply was modified 3 years, 6 months ago by Julius.
    in reply to: Velocity based error in secondary lattice #5048
    Julius
    Participant

    Hello Max,

    Thank you for looking into my bug report.
    Your comment regarding how the population is stored into the cell values was very helpful. And indeed, with that in mind, my bug report was erroneous.

    Since I am relatively new to the LBM scene, I was not aware that such measures are taken to reduce the numerical roundoff error. Perhaps it would be nice to make that clear in the documentation. Technically, it is written in there on page 49 (olb_ug-1.3r0), but only in one sentence, which can be easily read over.

    Thank you for your time and help!

    Regards, Julius

    in reply to: Setting both Density and Velocity at Boundary #4903
    Julius
    Participant

    Hello Mathias,

    Thank you! It didn’t occur to me that I can just set the velocity and density at the inlet with iniEquilibrium and simply not use a boundary manager.

    For all other users who want to do the same, do not forget to exclude the inlet material from the shan-chen coupling, since there are now no ghost nodes to grab density from. (or make your own ghost nodes)

    Regards,
    Julius

Viewing 12 posts - 1 through 12 (of 12 total)