mass of boundary particle

Hi Alex and other teammates:

For the SPH summation operators, I aware that the term m_j appear in the summation operator, where m_j is the mass of the neighbouring particle j.

May I know what value should we use for m_j, if j is a boundary particle (fixed wall/floating)?

From the code, I aware that for fixed wall boundary, the value of "massbound" specified in the XML file is used, where massbound is equal to "massfluid". Any reason why?

Also, what is the "massbound" for floating object particle?

Thanks and looking for your advise.


  • massbound=massfluid=dp*dp*dp*density

    in the case of floating bodies, the mass of each particle of the floating body will be the total mass / number of floating particles

    new version 4.2 will include more information about this

  • @Alex just to be completely sure - "massbound" is the mass of each individual boundary particle?

    For an example if I have dp = 0.01 and rho0 = 1000, then the mass of each particle in 2D would be:

    massbound = dp^2 * rho0 = 0.1 kg

    So the total mass if we assume I have 121 particles in a moving box would be:

    mass = 121*massbound = 12.1 kg

    Is this correct?

    I am asking since I am bit confused and want to be sure I understand it correct. This means with changing dp the mass of my box changes. Is it possible to predefine a mass for a moving object?

    Kind regards

  • edited November 2018

    I think you got it right, not sure for the dp^2 for 2D cases.

    And yeah, if you add some particule the mass of the object will change.
    Rather than defining a Rhop, you can define a massbody in your xml files, then DSPH will compute the rhop for your floating.

    Kind regards
  • edited November 2018
    Hi @TPouzol

    Edit Leaving my answer up for people who might be confused as I was in the future. Basically my mistake lie in that I said sum(m)*sum(acceleration) = F, when it should be sum(m)*mean(acceleration) = F.

    Unfortunately I think something is wrong somewhere since DualSPHysics in computeforces does not seem to sum up mass of boundary particles, but only use massbound once. According to DualSPHysics computeforces my plot looks like this:

    Y-axis is forces, x-axis is time and blue, orange, yellow is force x y z respectively.

    Then I use Matlab to process the data with my coding and I get:

    Notice same phenomena but way bigger Y-axis scale. Here I have taken the sum of all particles ie. 12.1 kg (see first comment). I get the exact same result as DualSPHysics compute forces by using massbound = dp^2*rho0 = 0.01^2*1000:

    And with my limited understanding I believe that there is something wrong with computeforces then, because it should be total mass of bound times sum of all particle accelerations or am I misunderstanding something?

    Mass in 2D is how I describe it, see XML guide dualsphysics

  • Nice to known !
  • We have to check ComputeForces since we have definetly made some mistake there.
    However note that this only a problem in post-processing meanwhile the simulation is ok.

    ComputeForces should compute the force exerted onto a boundary object. That boundary object will be formed by a set of particles and the total force exerted against the object should sum(mass(b)*acceleration(b)) where b is each one of the boundary particles that form the object. And acceleration(b) is the total resulting force exerted by the surrounding fluid particles against the boundary particle b.

    if mass(b)=cte then

    We will check ComputeForces.exe to fix the code before the next release

  • @Alex to be fair I only looked at the boundary particles and used the assumption that the acceleration the boundary particle has must equal the acceleration the fluid is affecting the particle. So what I do is:

    1) Find total mass of some boundary (this time a predefined movement of a square)

    2) For each time step I take the sum of x y z accelerations so I get:

    t | total mass | ace_x | ace_y | ace_z
    0 |12.1| 0 | 0 | 0

    Then I simple multiply mass with ace and then take the magnitude if I want the total force.

    I am just a bit surprised that when I have my object moving towards the right the boundary acceleration values are negative?

    Here a plot over the forces in x y z (blue orange yellow), showing that the x forces are negative, when they should be positive - maybe a mistake in my processing?
    23.PNG 47.5K
Sign In or Register to comment.