Multiphase Separation: Setting Density and Viscosity ratios
OpenLB – Open Source Lattice Boltzmann Code › Forums › on OpenLB › General Topics › Multiphase Separation: Setting Density and Viscosity ratios
- This topic has 1 reply, 2 voices, and was last updated 1 year ago by stephan.
May 3, 2022 at 11:40 pm #6540joeruanParticipant
Hi, I’m not sure where to direct this, so hopefully someone can help.
I’m trying to replicate phase separation done in the following paper “https://www.frontiersin.org/articles/10.3389/feart.2021.748450/full”, and I’ve played around with the phase separation examples in the examples directory, but for the life of me, I cannot figure out how I could set 1) the density ratios for a single fluid and 2) the viscosity ratios between the two phases of the same fluid in the example phase separation code. My current plan of action is to modify the phase separation example and responses that focus on this line of action would be preferable to (and more helpful than!) suggestions of alternatives or writing a C++ script from scratch.
What I’ve done so far:
I’ve looked through the developer guide for hints on how to modify the phase separation example, but comments on exactly what the inputs are is pretty sparse. Specifically for including two phases with different densities, for example, in “interactionPotentials.hh”, shanchen94 takes as input rho and psi (not passed in the example script), but it’s not clear what those values are, and how they relate to the the rho0 vector set in the phase separation example (passed as an input to the ShanChenForcedSingleComponentGenerator2D object) or the initial rho defined in the example in prepareGeometry. If someone could help explain this to me, that’d be fantastic.
As for the viscosity ratios, this is slightly more unclear. Since viscosity is handled by the relaxation frequency omega, which is passed as input to the ForcedShanChenBGKdynamics object and later coupled with the lattice, and as only one omega is specified, this leads me to believe only one viscosity is possible to be specified per given lattice. So, for two phases (which have different constituitive viscosiies), how do you make them different? Would this actually require two lattices? Or am I missing something?
Finally, more of a fundamental question. The interaction parameter G, from literature, seems to be calibrated based on pressure, density and speed of sound measurements, multiplied by the simulation specific relaxation time. How possible would it be to modify G throughout the simulation? Or is it fixed?
Thanks!May 13, 2022 at 3:11 pm #6565stephanModerator
thanks for posting.
(1) You can modify the density ratio in the phaseSeparation examples by definition of the initial density profile. The Shan-Chen models currently implemented in OpenLB can be found in src/dynamics/interactionPotential.*. The one used in examples/multiComponent/phaseSeparation2d/ for example is taken from https://doi.org/10.1103/PhysRevE.49.2941 and is based on a single distribution realization. The default values for rho and psi are 200 and 4, respectively (see .h file).
(2) Yes, the modification of viscosity most probably has to be addressed with a second lattice.
For two components, see examples/multiComponent/rayleighTaylor2d/.
However, (to the best of my knowledge) due to numerical reasons, non-marginal viscosity ratios would require a modification of the present code. I can recommend https://www.wiley.com/en-us/Multiphase+Lattice+Boltzmann+Methods%3A+Theory+and+Application-p-9781118971338, or https://link.springer.com/book/10.1007/978-3-319-44649-3 for further reading.
(3) From a purely technical point of view you could make the interaction parameter non constant an pass it to the coupling. Maybe a few other modifications are required.
- You must be logged in to reply to this topic.