Adami(2012) Solid wall treatment questions

32 views
Skip to first unread message

Doruk ISIK

unread,
Sep 19, 2023, 11:24:37 AM9/19/23
to pysph-users
Hello all,

When extrapolating velocities to the dummy wall particles, do we use only fluid velocities (Eq. 22 in the original paper)? Or for a given solid particle "a", do we consider all its neighbors including neighboring solids "a" and fluids "b"? 

It is stated explicitly in the paper that when calculating solid pressures, the summation runs over only the neighboring fluid particles (subscript f in Eq. 27), but I am not sure what subscript "b" refers to for velocity extrapolation.

Thanks! 

pysph-users

unread,
Sep 19, 2023, 11:44:46 AM9/19/23
to pysph-users
What is confusing is that the authors used subscript b when referring to wall particles' prescribed velocity within the text("In the continuity equation, Eq. (6), the initial particle volume is used for the wall particles and v_b is set to the prescribed wall velocity" ), and later on switched to ".. is assigned to the dummy particle in Eq. (10), where v_a is the prescribed wall velocity."

Doruk ISIK

unread,
Sep 21, 2023, 3:34:19 PM9/21/23
to pysph-users
I have been looking at the source code, and there are a few things I'd like to ask.

In the paper, it says that in the continuity equation, the initial solid particle volume is used and the velocity is set to the prescribed velocity. Then, the dummy particle velocity (ghost velocity) is calculated after the extrapolation. 
But in the source code, both in ContinuitySolid and in SolidWallNoSlipBC, ghost velocities are used as shown below

class ContinuitySolid(Equation):
    """Continuity equation for the solid's ghost particles.

    The key difference is that we use the ghost velocity ug, and not the
    particle velocity u.

    """
    def loop(self, d_idx, s_idx, d_rho, d_u, d_v, d_w, d_arho,
             s_m, s_rho, s_ug, s_vg, s_wg, DWIJ):
        Vj = s_m[s_idx] / s_rho[s_idx]
        rhoi = d_rho[d_idx]
        uij = d_u[d_idx] - s_ug[s_idx]
        vij = d_v[d_idx] - s_vg[s_idx]
        wij = d_w[d_idx] - s_wg[s_idx]
        vij_dot_dwij = uij*DWIJ[0] + vij*DWIJ[1] + wij*DWIJ[2]

        d_arho[d_idx] += rhoi*Vj*vij_dot_dwij

class SolidWallNoSlipBC(Equation):
...
..
        # scalar part of the kernel gradient
        Fij = XIJ[0]*DWIJ[0] + XIJ[1]*DWIJ[1] + XIJ[2]*DWIJ[2]

        # viscous contribution (third term) from Eq. (8), with VIJ
        # defined appropriately using the ghost values
        tmp = 1./d_m[d_idx] * (Vi2 + Vj2) * (etaij * Fij/(R2IJ + EPS))

        d_au[d_idx] += tmp * (d_u[d_idx] - s_ug[s_idx])
        d_av[d_idx] += tmp * (d_v[d_idx] - s_vg[s_idx])
        d_aw[d_idx] += tmp * (d_w[d_idx] - s_wg[s_idx])

Shouldn't we use different velocities in each of those computations? 

A Dinesh

unread,
Sep 21, 2023, 7:10:31 PM9/21/23
to Doruk ISIK, pysph-users
Hi,

You can check with the `edac` paper, which uses TVF formulation and uses the same boundary conditions as what Adami uses.
You can run one of the examples and check the log file, in which you can see the execution order of the equations. The log file can be found inside the output folder.

To answer your question, yes, we should not use the dummy velocity in the to compute the continuity equation, but it (dummy velocities)  is exclusively used to compute the viscous part.

If you have any more questions, feel free to ask.

Dinesh

--
You received this message because you are subscribed to the Google Groups "pysph-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pysph-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pysph-users/6dd6ea24-65ba-4a51-b5d9-6b9eec9d03b4n%40googlegroups.com.

A Dinesh

unread,
Sep 21, 2023, 7:12:53 PM9/21/23
to Doruk ISIK, pysph-users
Missed the `edac` paper link in the previous email, https://gitlab.com/pypr/edac_sph/

Prabhu Ramachandran

unread,
Sep 21, 2023, 8:22:33 PM9/21/23
to pysph-users, pysph-users
The 'a' and 'b' are used for indices, so I am not sure you should stretch its meaning for every equation. What I am saying is that the index used for continuity is 'b' and I am not sure it means body or not.

The difficulty with a lot of these is that what we have implemented in pysph is our best understanding of the scheme. It is not endorsed or written by the authors of the scheme itself. Unfortunately, this is the situation with most papers, we really don't know what exactly is implemented. What Dinesh is saying is that for the EDAC paper, we have used a version of the Adami BC.

Regards,
Prabhu
--
You received this message because you are subscribed to the Google Groups "pysph-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pysph-users...@googlegroups.com.

Prabhu Ramachandran

unread,
Sep 21, 2023, 8:25:28 PM9/21/23
to Doruk ISIK, pysph-users
On 22/09/23 01:04, Doruk ISIK wrote:
I have been looking at the source code, and there are a few things I'd like to ask.

In the paper, it says that in the continuity equation, the initial solid particle volume is used and the velocity is set to the prescribed velocity. Then, the dummy particle velocity (ghost velocity) is calculated after the extrapolation. 
But in the source code, both in ContinuitySolid and in SolidWallNoSlipBC, ghost velocities are used as shown below

As Dinesh said, the log file will tell you exactly what equations are used. The TVF scheme does not use the continuity solid equation. The main feature of the BC proposed in that 2012 paper is the computation of the ghost velocity and the pressure which is what is used. As I said earlier, what is actually intended or implemented by the original authors is only known to them.

Regards,
Prabhu

Doruk ISIK

unread,
Sep 21, 2023, 8:50:47 PM9/21/23
to pysph-users
Thank you for the clarification. So, in a given time step, the ghost velocities and pressures are calculated from the neighboring fluids, and these values are used in the continuity as well as momentum equations. What is implemented from that paper is the ghost particles, velocities and pressures. 

Regards,
Doruk
Reply all
Reply to author
Forward
0 new messages