I want to solve this problem explosion test case. I was wondering about what are usual the boundary conditions for this type of problems. I want the wave to bounce of the boundary of the domain (let's say walls).

So far, to me, a zero velocity condition makes sense on the walls. But I think another condition is missing, so that the wave bounces of the wall. A zero Neumann condition might solve it assuming the velocity outside the domain is zero. But I feel that the boundary condition depends on the incoming wave so a Robin condition might be better.

What are the boundary conditions in this test case? How to make the solution bounce off the walls/boundary?


1 Answer 1


Apply the slip condition at the walls. For the slip condition, you need to determine the normal vector of the domain boundary (at the wall) and use it to determine the normal and tangential velocity components. Depending on the discretization scheme, you would assign some ghost/halo nodes where you prescribe the boundary conditions.

For the 2D case you linked, the explosion is contained within the four walls of a square domain, so all the walls should have the reflection/slip boundary condition applied. Only the slip condition would be required.

Let's choose one of the four walls. (This approach would be extended to the other walls as well). Let $\vec{n}$ be the local (unit) outward pointing normal at a given portion of the boundary.

We want to get the velocity vector aligned with the normal: $$\vec{v}_{na} = (\vec{v} \ \cdot \ \vec{n}) \ \vec{n} \ ,$$ and that aligned with the tangential component which is obtained by subtracting the normal velocity vector from the original velocity vector $$\vec{v}_t = \vec{v} - \vec{v}_{na} \ .$$

We then write the normal velocity vector by include the negative sign on $\vec{v}_{na}$ as $$\vec{v}_n = - \vec{v}_{na} \ .$$

Thus at the wall

$$\vec{v}_{wall} = \vec{v}_n + \vec{v}_t \ .$$

You can then write the primitive variable state at the boundary as

$$\mathbf{W}_{BC} = \Big( \rho_{i}, \ \ \vec{v}_{wall}, \ \ p_{i} \Big)^T$$

Where $i$ refers to boundary adjacent node value.

I hope this helps.

To the other community members, please let me know if I made an error.

  • $\begingroup$ Ty for your answer. So only the slip condition is required? Also could you write every condition using MathJax/Latex for clarity please? $\endgroup$
    – mle
    Apr 18 at 6:55
  • $\begingroup$ Another question is how would you code this boundary condition as a loss term for a Physical Inferred Neural Network (PINN)? $\endgroup$
    – mle
    Apr 18 at 19:54
  • $\begingroup$ I don't know about PINNs. Perhaps a more seasoned community member could step in with a suitable approach. $\endgroup$
    – cfd_chr
    Apr 18 at 19:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.