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.