Relationship between water and air (artificial viscosity) in Multi-Physics

So I was looking at the examples for which artificial viscosity were used in different cases and I saw that sometimes the same artificial viscosity was used for both water and air. I understand that the artificial viscosity scheme is not meant to be a replacement for physical viscosity but shouldn't there be some kind of difference in artificial viscosity anyways since the viscosity of air is 12 times the viscosity of water? (at 20 degrees celsius, according to Engineering Toolbox website)

Also by looking at the XML documentation I see for the artificial viscosity that:

So when we are using the artificial viscosity scheme we control only the constant which is multiplied on the dynamic viscosity divided by the density. I understand that the "bar" operation is average sound and density of a + b, but how it µ_ab calculated or defined?

I am also a bit unsure about the "ViscoBoundFactor", since I am making a simulation of a tank like this:

Blue = water, gray = air

By using a visco bound factor I am able to control the "roughness" of the boundary surface?

To sum it up:

1) Should I use same alpha for water and air?

2) How is the µ_ab term defined or calculated?

3) Is it correct to say that the visco bound factor controls the "roughness" of a boundary?

Sorry for my long question, but I just need to make sure that I understand the settings and options in DualSPHysics.

Thanks you for reading.

Kind regards


  • If anyone could answer how the mu_ab is defined, ie. is it predefined somewhere in the code from the beginning or not, I would be very happy.
  • edited November 2018

    the μ_ab and cbar_ab are defined as where
    This is the equation used by Monaghan (1992) and as you can see μ_ab is not the dynamic viscosity while cbar_ab (and rhobar_ab) are the average values between neighbouring particles a and b.

    For the first question there isn't a quick answer. The value of the artificial viscosity depends on the case you are running. Several of the cases are gravity-driven flows where the viscosity has a secondary role. Do note that the average sound and density are calculated with the neighbouring particles so their values in the main body of the different fluids will be different. Only the interface will be affected by the other fluid.

    Viscoboundfactor will allow you to control particle movement around the boundaries using the viscosity term. I wouldn't call it roughness since I think that has a physical meaning not caprtured by a coefficient.

  • edited November 2018
    Thank you @athmokos for clearing up some of my misinformation. Thanks for clarifying for me that mu_ab is indeed artificial and not dynamic viscosity.

    And okay I see, to determine a correct alpha real life experiments has to be conducted. I will just to do a lot of simulations with different values - I see that there is no way to set a relationship between artificial water and air viscosity then, but only by experiments.

    I am still confused about the "Viscoboundfactor" then, because I assume a factor of 1 would make it so that the boundary particle has the same viscosity as the fluid particle? Is this a correct understanding or something I am missing? Also does the viscoboundfactor matter in the end? Because of the dynamic boundary conditions it is advised to measure 1.5h away from the boundary.

    I hope you could help me out with the last bit.


    EDIT: Also how would I go about extracting this value from the DualSPHysics simulation? Or should I just compute it for individual particles as:

    And assume that c (speed of sound in fluid) is constant everywhere ie. the speed of sound set at the beginning of simulation (speedsound in the xml file).
  • Yes a viscoboundfactor of one will give the same viscosity for fluid and boundary particles. Essentially, it is a multiplier for the viscosity value calculated for the fluid particles.
    Fluid particles are always interacting with the boundaries so I don't understand your comment about μ not having any effect.
    As for extracting it, you will need to create a new array to save the computed values and pass it to the output files as it currently is computed on the fly. It is possible to compute outside of DSPH but the equation you have written is not correct: μ_ab is computed between two particles a and b not for particle a individually. You need to find the neighbouring particles of a, then compute it for each pair to find the final value.
Sign In or Register to comment.