I don't completely understand why we would divide by the kernel again though, then we are kind of normalizing it? Wouldn't that alter the true value at a point a?

Re the second post, I suspect that this is the so-called "kernel correction" applied in MeasureTool, I think. In general the sum of weights should be one or close to it, if the kernel is full of particles. When this is not the case, near interfaces with the void for example, you redivide the numerator by the far-from-one sum of weights to normalise the weighting of velocity at the numerator again. My two cents, corrections welcome.

Re the first post, what is the formulation of vorticity implemented under the covers in the closed-source tools, it is a great question and I would be keen to receive directions.

I would really like to know as well, since it feels very awkward saying, "It is not known how vorticity is calculated in DualSPHysics", when I have to convince a teacher about how SPH can be useful....

Remember that SPH can be useful for so many problems, but DualSPHysics can fail with some of them... since DualSPHysics is only a SPH code with some implementations and options.

So when convince someone about SPH.. please be sure that you talk about SPH in general and not the particular case of DualSPHysics.

Sorry for pushing this question again up the stack. I believe that the question by Asalih3d was well-posed but I cannot spot a deciding answer.

To second Asalih3d's uncomfortable feeling, other than a teacher, sometimes you have to convince a peer reviewer, an industrial partner, or a internal/external client, if not all of them. On the other hand, all very fine that the DualSPHysics tool kit is distributed under all responsibility waivers, and so on and so forth.

Asalih3d had drafted a reasoned proposal. A confirmation of the vorticity formulation used under the covers by the post-processing tools of DualSPHysics would be appreciated. Thanks in advance.

## Comments

Or is it like this as in the guide:

I don't completely understand why we would divide by the kernel again though, then we are kind of normalizing it? Wouldn't that alter the true value at a point a?

Kind regards

Re the second post, I suspect that this is the so-called "kernel correction" applied in MeasureTool, I think. In general the sum of weights should be one or close to it, if the kernel is full of particles. When this is not the case, near interfaces with the void for example, you redivide the numerator by the far-from-one sum of weights to normalise the weighting of velocity at the numerator again. My two cents, corrections welcome.

Re the first post, what is the

formulation of vorticity implemented under the covers in the closed-source tools, it is a great question and I would be keen to receive directions.I would really like to know as well, since it feels very awkward saying, "It is not known how vorticity is calculated in DualSPHysics", when I have to convince a teacher about how SPH can be useful....

Consider this a "bump" of the thread..

Kind regards

Remember that SPH can be useful for so many problems, but DualSPHysics can fail with some of them... since DualSPHysics is only a SPH code with some implementations and options.

So when convince someone about SPH.. please be sure that you talk about SPH in general and not the particular case of DualSPHysics.

Sorry for pushing this question again up the stack. I believe that the question by Asalih3d was well-posed but I cannot spot a deciding answer.

To second Asalih3d's uncomfortable feeling, other than a teacher, sometimes you have to convince a peer reviewer, an industrial partner, or a internal/external client, if not all of them. On the other hand, all very fine that the DualSPHysics tool kit is distributed under all responsibility waivers, and so on and so forth.

Asalih3d had drafted a reasoned proposal. A confirmation of the vorticity formulation used under the covers by the post-processing tools of DualSPHysics would be appreciated. Thanks in advance.

The vorticity of particle a is estimated by Monaghan, 1992:

Here you can also find the code:

const double massrhop=mass2/rhop1;

vort.x+=(dvy*frz-dvz*fry)*massrhop;

vort.y+=(dvz*frx-dvx*frz)*massrhop;

vort.z+=(dvx*fry-dvy*frx)*massrhop;

Thanks @Alex

Thank you very much!