Multicomponent flow- water droplet splashing
OpenLB – Open Source Lattice Boltzmann Code › Forums › on OpenLB › General Topics › Multicomponent flow- water droplet splashing
- This topic has 10 replies, 2 voices, and was last updated 2 years, 6 months ago by Julius.
September 25, 2020 at 9:36 am #5152
I would like to simulate water droplets falling down and splashing on a solid obstacles in 2D. I read the chapter about multicomponent flow from Krüger et. – Lattice Boltzmann Principle and Practise and tried to modify any of the available tutorial for multicomponent flows and I ran into following problems:
1.) I prefered the ShanChen method, but is it possible to use it in openLB, can I add one more solid surface and interaction with it?
2.) If yes, is the Li improved forcing scheme also involved in openLB ( https://journals.aps.org/pre/pdf/10.1103/PhysRevE.86.016709 )
3.) Is the free energy model better to use in openLB for this problem?
4.) I also read about troubles with simulations with high density ratio (in this situation it is about 1000). Is this possible to capture by the LBM with acceptable accuracy?
5.) What about external forces like gravity in both methods in openLB?
I’d appreciate if someone could give me some insights of how to deal with it.
FrankSeptember 25, 2020 at 2:50 pm #5153
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
ain 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.
September 25, 2020 at 3:13 pm #5155
- This reply was modified 2 years, 8 months ago by Julius.
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
JuliusOctober 21, 2020 at 1:17 pm #5237
thank you for your reply, it helped me to relise the differences between multiphase and multicomponent flow. But I stuck in problem with the non-dimensionalisation. I wanted to perform the Young-Laplace test to evaluate the surface tensions but I don’t know how to get the dimensioned number because in that case there is no velocity. The conversion factor I used are density and viscosity which is hidden in the omega. But there are three SI unit: kg, m and s. When I now can use various radia for the droplet and I get different gammas. For one radius I get the gamma about 70 N/m which is about 1000 times higher than for typical fluids. Do you know, what to change to get the gamma in the right order or if there are any mistakes in my thoughts?
One more problem I fall into are the omegas in the multicomponent flows for both lattices. In the example rayleighTaylor2d are the omegas the same for both lattices, but what to do, if the kinematic viscosities for both fluids are different? Can I use different values for both? I tried some numbers out but the simulation was unstable.
The implemenatation of the Li’s force etc. I also want to do but first I must understood the fundamentals of the model.
FrankOctober 21, 2020 at 3:03 pm #5238
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.
JuliusNovember 3, 2020 at 1:18 pm #5263
thank you for the reply, I think I get the unit conversion for this problem. But there appear another questions if I could ask you for help.
1.) I ran the Young-Laplace test to messure the pressure and get the surface tension. In my simulation however varies the calculated pressure far away about 200 l.u. from the droplet of radius 12 l.u. from 0.359973 to 0.359982 on a line of 50 l.u. at 10000 time steps. Could you get if this is a normal state or am I doing something wrong? I mean that the calculated surface tension would have than a high deviation and is depending on the exact position which you use outside the bubble.
2.) Do you know how to implement the MRT operator into the ShanChen model? I tried to find something like ShanChenMRTdescriptor but there isn’t anything in the doxygen and use the standard ForcedMRTdescriptor is not working too.
3.) Are open boundary conditions like velocity inlet or pressure outlet implemented for the ShanChen model? I have not found anything in doxygen.
I am really grateful to you for every answer which helps me moving forward.
FrankNovember 3, 2020 at 2:30 pm #5264
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/
JuliusNovember 11, 2020 at 9:16 pm #5288
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).
JuliusNovember 17, 2020 at 11:56 am #5329
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^2then 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, JuliusNovember 20, 2020 at 4:16 pm #5349
thank you for your report from the Young-Laplace test.
Does it mean, in the second post, that you didn’t use the Maxwell construction rule? Are the results the same?
I suppose you do not have any significant variation in density far away from the droplet spatial and time dependent.
First I will try to produce the test maybe for the multiphase single component case if I get the convergence here. Maybe are in the multicomponent flow some discrepancies which lead to a bit different procedure maybe.
For the multicomponent case I do not get any convergence for the pressure/density, even I run the simulation for a long time.
FrankNovember 20, 2020 at 6:52 pm #5350
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.
- You must be logged in to reply to this topic.