### 2.1 Governing equations

The three-dimensional (3D) Euler equations for compressible flow are applied to the governing equation:

$$ \begin{aligned} \frac{\partial \boldsymbol{q}} {\partial t} + \frac{\partial \boldsymbol{E}} {\partial x} + \frac{\partial \boldsymbol{F}} {\partial y} + \frac{\partial \boldsymbol{G}} {\partial z} = \boldsymbol{0}, \\ \boldsymbol{q} = \left[\begin{array}{c} \rho \\ \rho u \\ \rho v \\ \rho w \\ e \end{array}\right], \, \boldsymbol{E} = \left[\begin{array}{c} \rho u \\ \rho u^{2} + p \\ \rho uv \\ \rho uw \\ u(e+p) \end{array}\right], \, \boldsymbol{F} = \left[\begin{array}{c} \rho v \\ \rho uv \\ \rho v^{2} + p \\ \rho vw \\ v(e+p) \end{array}\right], \boldsymbol{G} = \left[\begin{array}{c} \rho w \\ \rho uw \\ \rho vw \\ \rho w^{2} + p \\ w(e+p) \end{array}\right], \end{aligned} $$

(1)

where *q* is a vector of conserved variables, and *E*,*F*, and *G* represent the inviscid flux vectors. *t*, *ρ*, *p*, and *e* represent time, density, pressure, and the total energy per unit mass, respectively, and *u*, *v*, *w* represent the velocity components in the *x*, *y*, *z* coordinates. Equation (1) is closed with the following equation by considering the ideal gas law:

$$p = \left(\gamma - 1 \right) \left[ e - \frac{1}{2} \rho \left(u^{2} + v^{2} + w^{2} \right) \right], $$

where *γ* is the ratio of specific heats. Note that Eq. (2) is used for nondimensionalisation in this study:

$$ \begin{aligned} x=\frac{\hat{x}}{\hat{L}}, \, y=\frac{\hat{y}}{\hat{L}}, \, z=\frac{\hat{z}}{\hat{L}}, \, t=\frac{\hat{t}}{\hat{L}/\hat{c}_{\infty}}, \, \rho=\frac{\hat{\rho}}{\hat{\rho}_{\infty}}, \\ e=\frac{\hat{e}} {\hat{\rho}_{\infty} \hat{c}_{\infty}^{2}}, \, p=\frac{\hat{p}} {\hat{\rho}_{\infty} \hat{c}_{\infty}^{2}}, \, u=\frac{\hat{u}} {\hat{c}_{\infty}}, \, v=\frac{\hat{v}} {\hat{c}_{\infty}}, \, w=\frac{\hat{w}} {\hat{c}_{\infty}}, \end{aligned} $$

(2)

where “ \(\hat {}\) ” indicates values with dimensions, and \(\hat {L}, \hat {c}_{\infty }\), and \( \hat {\rho }_{\infty }\) denote the characteristic length, speed of sound, and characteristic density, respectively.

### 2.2 Flow solver

Equation (1) is integrated over the control volume \(\widetilde {\mathit {\Omega }}\) as follows:

$$ \begin{aligned} \int_{\widetilde{\mathit{\Omega}}} \widetilde{\boldsymbol{\nabla}} \widetilde{\boldsymbol{F}} \, d\widetilde{\mathit{\Omega}} = 0 \\ \widetilde{\boldsymbol{\nabla}} = \left(\frac{\partial}{\partial t}, \frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z} \right), \quad \widetilde{\boldsymbol{F}} = \left(\boldsymbol{q}, \boldsymbol{E}, \boldsymbol{F}, \boldsymbol{G} \right). \end{aligned} $$

(3)

In order to solve the governing equations in a moving grid, Eq. (3) is discretised using the unstructured cell-centred approach of the MGFV method. This method uses a unified 4D time-space control volume, as illustrated in Fig. 3a, with a position vector \(\widetilde {\boldsymbol {R}}\). As tetrahedra grids are used in this study, the discrete form of the governing equation is as follows:

$$ \int_{\widetilde{\mathit{\Omega}}} \widetilde{\boldsymbol{\nabla}}\widetilde{\boldsymbol{F}}d\widetilde{\mathit{\Omega}} = \int_{\partial \widetilde{\mathit{\Omega}}} \widetilde{\boldsymbol{F}} \cdot \tilde{\boldsymbol{n}} \, d\widetilde{S}\ = \sum_{l=1}^{6} \widetilde{\boldsymbol{F}_{l}} \cdot \tilde{\boldsymbol{n}}_{l} = 0, $$

where \(\partial \widetilde {\mathit {\Omega }}\) is the 4D boundary surface of the control volume. As depicted in Fig. 3b, the boundary surfaces at *l*=1−4 are equivalent to the 3D solids formed by the corresponding surfaces of a tetrahedron and the surfaces’ displacements in the *t* dimension. For example, the boundary surface at *l*=1 is equal to the solid composed by connecting the \(\widetilde {\boldsymbol {R}}^{N}_{1}\)-\(\widetilde {\boldsymbol {R}}^{N}_{2}\)-\(\widetilde {\boldsymbol {R}}^{N}_{3}\) surface and the \(\widetilde {\boldsymbol {R}}^{N+1}_{1}\)-\(\widetilde {\boldsymbol {R}}^{N+1}_{2}\)-\(\widetilde {\boldsymbol {R}}^{N+1}_{3}\) surface. In contrast, the boundary surfaces at *l*=5 and *l*=6 are equivalent to the tetrahedra at the *N* step and *N*+1 step, respectively. \(\tilde {\boldsymbol {n}}\) represents the 4D outward normal vector \(\tilde {\boldsymbol {n}} = \left [ \tilde {n}_{t}, \tilde {n}_{x}, \tilde {n}_{y}, \tilde {n}_{z} \right ]\). The length of \(\tilde {\boldsymbol {n}}\) is equal to the volume of the corresponding solid. It should be stated that while \(\tilde {\boldsymbol {n}}_{1}\) to \(\tilde {\boldsymbol {n}}_{4}\) comprises \(\left [ \tilde {n}_{t}, \tilde {n}_{x}, \tilde {n}_{y}, \tilde {n}_{z} \right ], \tilde {n}_{x}, \tilde {n}_{y}, \tilde {n}_{z} = 0\) at \(\tilde {\boldsymbol {n}}_{5}\) and \(\tilde {\boldsymbol {n}}_{6}\), which means \(\tilde {\boldsymbol {n}}_{5}\) and \(\tilde {\boldsymbol {n}}_{6}\) only have an \(\tilde {n}_{t}\) component. In addition, at the boundary surface \(l=1-4, \widetilde {\boldsymbol {F}}\) is evaluated by combining the values at the *N* step and *N*+1 step. On the other hand, \(\widetilde {\boldsymbol {F}}_{5}\) is evaluated only by using the value at the *N* step since *l*=5 represents the tetrahedron at the *N* step. Similarly, \(\widetilde {\boldsymbol {F}}_{6}\) is evaluated only by using the value at the *N*+1 step. The details of the MGFV method can also be found in [13].

From the procedure above, Eq. (4) can be obtained:

$$ \begin{aligned} \boldsymbol{q}^{N+1}(\tilde{n}_{t})_{6} + \boldsymbol{q}^{N} (\tilde{n}_{t})_{5} + \sum_{l=1}^{4} \left\lbrace \boldsymbol{q}^{N+\frac{1}{2}}~\tilde{n}_{t} + \boldsymbol{H}^{N+\frac{1}{2}} \right\rbrace_{l} =0 \\ \boldsymbol{H} = \boldsymbol{E}\tilde{n}_{x} + \boldsymbol{F}\tilde{n}_{y} + \boldsymbol{G}\tilde{n}_{z} \\ \boldsymbol{q}^{N+\frac{1}{2}} = \frac{1}{2} \left(\boldsymbol{q}^{N} + \boldsymbol{q}^{N+1} \right), \quad \boldsymbol{H}^{N+\frac{1}{2}} = \frac{1}{2} \left(\boldsymbol{H}^{N} + \boldsymbol{H}^{N+1} \right), \end{aligned} $$

(4)

where the superscript *N* indicates the index of the time steps. The inviscid flux vector *H*_{l} is calculated by Roe’s flux difference splitting [17]. To provide second-order accuracy, the MUSCL (Monotonic Upstream-centred Scheme for Conservation Laws) scheme is applied. The primitive variables of *q* are linearly reconstructed using the gradient computed with the Green-Gauss method and Hishida’s limiter [18]. \(\boldsymbol {q} \tilde {n}_{t}\) in Eq. (4) is estimated by the upwind scheme:

$$ \boldsymbol{q} \tilde{n}_{t} = \frac{1}{2} \left[ \boldsymbol{q}^{+} \tilde{n}_{t} + \boldsymbol{q}^{-} \tilde{n}_{t} - \vert \tilde{n}_{t} \vert \left(\boldsymbol{q}^{+} - \boldsymbol{q}^{-} \right) \right]. $$

In the MGFV method, time stepping is represented by the following equation:

$$ \frac{\partial \boldsymbol{q}}{\partial t} = -\frac{1}{\widetilde{\mathit{\Omega}}} \left[ \boldsymbol{q}^{N+1} (\tilde{n}_{t})_{6} + \boldsymbol{q}^{N} (\tilde{n}_{t})_{5} + \sum_{l=1}^{4} \left\lbrace \boldsymbol{q}^{N+\frac{1}{2}}~\tilde{n}_{t} + \boldsymbol{H}^{N+\frac{1}{2}} \right\rbrace_{l} \right]. $$

(5)

For the 3D MGFV method, \(\widetilde {\mathit {\Omega }}\) represents the 4D control volume, and the value can be approximated with the corresponding 3D sixth volume *V*_{6}:

$$ \widetilde{\mathit{\Omega}} \approx \Delta t V_{6}. $$

Here, *V*_{6} has the same value as the absolute value of the normal vector to the sixth volume \(\tilde {\boldsymbol {n}}_{6}\), but \(\tilde {\boldsymbol {n}}_{6}\) comprises only the \(\tilde {n}_{t}\) component, then

$$ V_{6} = (\tilde{n}_{t})_{6}. $$

Therefore, Eq. (5) finally becomes:

$$ \frac{\partial \boldsymbol{q}}{\partial t} = -\frac{1}{\Delta t (\tilde{n_{t}})_{6}} \left[ \boldsymbol{q}^{N+1} (\tilde{n}_{t})_{6} + \boldsymbol{q}^{N} (\tilde{n}_{t})_{5} + \sum_{l=1}^{4} \left\lbrace \boldsymbol{q}^{N+\frac{1}{2}}~\tilde{n}_{t} + \boldsymbol{H}^{N+\frac{1}{2}} \right\rbrace_{l} \right]. $$

A pseudo-time approach based on the Newton-iteration scheme is employed to solve unsteady flows, and the two-stage rational Runge-Kutta (RRK) scheme [19] is applied to pseudo-time stepping. Here, the two-stage RRK scheme can be written with pseudo-time *t*^{∗} and pseudo-time step *ν*:

$$\begin{array}{*{20}l} \boldsymbol{g}_{1} &= -\Delta t^{\ast} \mathfrak{L} \left(\boldsymbol{q}^{N+1\left\langle \nu \right\rangle} \right) \\ \boldsymbol{g}_{2} &= -\Delta t^{\ast} \mathfrak{L} \left(\boldsymbol{q}^{N+1\left\langle \nu \right\rangle} + c_{2} \boldsymbol{g}_{1} \right) \\ \boldsymbol{g}_{3} &= b_{1} \boldsymbol{g}_{1} + b_{2} \boldsymbol{g}_{2} \\ \boldsymbol{q}^{N+1\left\langle \nu+1 \right\rangle} &= \boldsymbol{q}^{N+1\left\langle \nu \right\rangle} + \frac{2 \boldsymbol{g}_{1} (\boldsymbol{g}_{1} \cdot \boldsymbol{g}_{3}) - \boldsymbol{g}_{3} (\boldsymbol{g}_{1} \cdot \boldsymbol{g}_{1}) }{(\boldsymbol{g}_{3} \cdot \boldsymbol{g}_{3})}, \end{array} $$

(6)

where

$$\begin{aligned} \mathfrak{L} \left(\boldsymbol{q}^{N+1} \right) = \frac{ 1 }{ \Delta t \left(\tilde{n}_{t} \right)_{6} } \left[ \boldsymbol{q}^{N+1} \left(\tilde{n}_{t} \right)_{6} + \boldsymbol{q}^{N} \left(\tilde{n}_{t} \right)_{5} + \sum_{l=1}^{4} \left\lbrace \boldsymbol{q}^{N+\frac{1}{2}}~\tilde{n}_{t} + \boldsymbol{H}^{N+\frac{1}{2}} \right\rbrace_{l} \right] \\ \boldsymbol{q}^{N+1\left\langle 0 \right\rangle} = \boldsymbol{q}^{N}. \end{aligned} $$

*g*_{i}·*g*_{j} represents the summation of the scalar product of vectors *g*_{i} and *g*_{j} in all the cells. *b*_{1},*b*_{2}, and *c*_{2} are coefficients which satisfy the following relations:

$$ b_{1} + b_{2} = 2.0, \quad b_{2}c_{2} \leq -0.5. $$

This study uses *b*_{1}=1.0,*b*_{2}=−1.0,*c*_{2}=2.0 to provide second-order accuracy.