Skip to main content

A sharp-interface immersed boundary method for simulating high-speed compressible inviscid flows


This paper presents a robust sharp-interface immersed boundary method for simulating inviscid compressible flows over stationary and moving bodies. The flow field is governed by Euler equations, which are solved by using the open source library OpenFOAM. Discontinuities such as those introduced by shock waves are captured by using Kurganov and Tadmor divergence scheme. Wall-slip boundary conditions are enforced at the boundary of body through reconstructing flow variables at some ghost points. Their values are obtained indirectly by interpolating from their mirror points. A bilinear interpolation is employed to determine the variables at the mirror points from boundary conditions and flow conditions around the boundary. To validate the efficiency and accuracy of this method for simulation of high-speed inviscid compressible flows, four cases have been simulated as follows: supersonic flow over a 15 ° angle wedge, transonic flow past a stationary airfoil, a piston moving with supersonic velocity in a shock tube and a rigid circular cylinder lift-off from a flat surface triggered by a shock wave. Compared to the exact analytical solutions or the results in literature, good agreement can be achieved.


Inviscid flows are usually used as flow field conditions for fast transient problems, such as the impact of shock waves onto a structure [1,2,3,4] and the internal flow field arising within a solid rocket motor [5]. To treat such problems, the conventional body-conformal grid methods [6, 7] can be utilized. Although it is direct to enforce boundary conditions on the fluid-structure interface with a body-conformal grid method, the complex-shaped structure increases too much work on the grid generation process. Moreover, a re-meshing algorithm is required to adapt a moving solid boundary which consumes more computing time and increases the algorithmic complexity of these body-conformal grid methods. For using a non-conforming Cartesian grid, on the other hand, the immersed boundary method (IBM) has gained attention as an appropriate method for tackling flows with complex-shaped stationary or moving boundaries during the last two decades. Applying the advantage of Cartesian grid, in particular, some high-order algorithms for complicated moving problems have been developed [8, 9].

It is well known that the IBM was firstly proposed by Peskin [10] to simulate the blood flow in the heart. Following the pioneer work of Peskin, numerous scientists have contributed to improve the accuracy and efficiency of the IBM. Huang et al. [11] introduced the variety of IBM fundamentals and assessed the latest progresses especially the strategies to address the challenges and the applications of the IBM. According to the work of Cui et al. [12], the IBM can be classified into two categories, namely diffused-interface methods and sharp-interface methods based on the representation of the fluid-structure interface. The diffused-interface IBM can be regarded as a continuous forcing approach. The boundary is smeared by distributing a forcing term [11, 13] and a source term [14] to the surrounding Cartesian grid points via a delta function [15]. After that, these two terms are added to the momentum equation and energy equation, respectively. Our previous work [16] developed an implicit diffused-interface IBM based on variable correction for simulating compressible viscous flows over stationary and moving bodies. Furthermore, Wang et al. [17] applied a diffused-interfaced IBM to simulate compressible multiphase flows. The significant advantage of diffused-interface IBM is that it is formulated independent of the spatial discretization, and it simplifies the implementation into an existing fluid solver, just like [13, 14]. However, Sotiropoulos and Yang [18] indicated that the classic diffused-interface IBM is difficult to simulate fluid-structure interaction problems, because the inherent stiffness of the forcing term may induce numerical instabilities and spurious oscillations.

On the other hand, the sharp-interface IBM can be regarded as a discrete forcing approach, in which the boundary is precisely tracked. It includes cut-cell method [19, 20], Cartesian IB method [12, 21], and ghost-cell method [8, 9]. Among these methods, the cut-cell method can obtain the clearest interface. The reason is that the boundary divides grid cells into two sub-cells for the solid phase and fluid phase, respectively. Therefore, the conservation of mass, momentum and energy can be strictly enforced into the fluid phase. However, the complicated cell reshaping procedure causes difficulties in simulating complex moving body problems. In the Cartesian IB method, the fluid points with at least one neighboring point inside the solid body are called IB points or forcing points. Reconstructing the flow variables at these points and enforcing the boundary conditions can ensure the accuracy of the flow field. The ghost-cell method is similar to the Cartesian IB method. The solid points with at least one neighboring point inside the fluid domain are called ghost points. The reconstruction procedure is done at these ghost points. Tran and Plourde [5] used both the Cartesian IB method and the ghost-cell method to solve internal flows. Although the Cartesian IB method and the ghost-cell method are less accurate than the cut-cell method because of their implicit representation of the solid boundary, the point recognition procedure is easier than the cut-cell procedure, and the flux calculation around the immersed boundary is also not necessary. Mittal et al. [22] have shown the large potential of ghost-cell method for simulation of highly complex moving body problems.

In the ghost-cell method, the flow variables at the ghost points cannot be interpolated from the fluid field or the boundary conditions directly. Thus, an image point can be considered, which is the mirror of ghost point along the normal direction to the boundary and is always in the fluid domain. A body intercept point is the midway point between ghost point and image point, which must be on the boundary. Therefore, boundary conditions can be enforced on body intercept points directly. The flow variables at ghost points are interpolated from corresponding image points and body intercept points [5, 8, 9, 22]. A significant issue of ghost-cell method is the accuracy of the interpolation procedure at image points from corresponding body intercept points and fluid points. Brahmachary et al. [21] used an inverse distance weighting interpolation method to reconstruct the flow variables. This scheme preserves the local maxima and minima, which leads to a smooth reconstruction and is more stable than a polynomial reconstruction. A linear interpolation method was used in [5, 12] to reconstruct the values at IB points. Khalili et al. [9] used a bilinear interpolation for two-dimensional problems, and Mittal et al. [22] used a trilinear interpolation for three-dimensional problems similarly. Higher-order polynomials are required for more accurate results, but they often lead to numerical instabilities, and more information is needed to determine the polynomials. Qu et al. [8] listed four polynomials for the interpolation: a linear, an incomplete quadratic (bilinear), a complete quadratic and a cubic. They found that higher-order polynomials (e.g., a cubic polynomial) required more interpolation points and the computational time may significantly increase. Furthermore, they revealed that the complete quadratic polynomial does not significantly improve the accuracy of their method but requires more interpolation points than the incomplete quadratic polynomial. It is shown that bilinear interpolation may be an expected scheme to reconstruct the flow variables.

In this work, we present a robust IBM to simulate high-speed compressible inviscid flows over stationary and moving bodies. The Euler equations are discretized on a Cartesian grid and solved by a segregated density-based solver, namely rhoCentralFoam with Kurganov and Tadmor divergence scheme in the open source library OpenFOAM. The sharp-interface IBM is adopted, which is a significant issue in this work, because the exact location of shock waves has to be predicted. Khalili et al. [9] developed a ghost-cell IBM to simulate viscous compressible flows, and a bilinear interpolation was utilized to reconstruct the flow variables. However, it is noted that only low Mach number flows were considered in their study and the obtained conclusions were similar to that of incompressible flows. In this study, the similar ghost-cell IBM is adopted for enforcing the boundary conditions in simulating high-speed compressible inviscid flows. For a moving rigid object, moreover, the Newton’s second law of motion is utilized to solve strong coupling between fluid and structural within each time step. Because of inviscid flows, there is no viscous stress or torque on solid surface and the rotational motion is not involved. To validate the proposed method combined with OpenFOAM, two stationary cases are simulated: supersonic flow over a 15 ° angle wedge and transonic flow past a stationary airfoil. Then a moving piston and a lifting-off circular cylinder are simulated to validate the current method for handling moving body problems. All the results are compared well with the exact analytical solutions or the results in literature.

This paper is organized as follows. In Section 2, governing equations for fluid flows and motions of rigid bodies are described. In Section 3, numerical methods are presented, i.e., the governing equations in OpenFOAM and the ghost-cell IBM. In Section 4, four cases are simulated to validate the efficiency and accuracy of this method. In Section 5, conclusions are summarized.

Governing equations

For flows over a stationary body, only the flow field should be resolved. But for flows over a moving body, both the flow field and the motion of body should be resolved. Moreover, the fluid is strongly affected by the existence of body, and the body motions are coupled with the fluid flows.

Governing equations for fluid flows

For inviscid compressible flows, the Euler equations are solved, which can be written as follows:

$$ \frac{\partial \rho }{\partial t}+\nabla \cdot \left(\rho \mathbf{u}\right)=0 $$
$$ \frac{\partial \left(\rho \mathbf{u}\right)}{\partial t}+\nabla \cdot \left(\rho \mathbf{u}\mathbf{u}\right)+\nabla p=0 $$
$$ \frac{\partial \left(\rho {e}_t\right)}{\partial t}+\nabla \cdot \left(\rho {e}_t\mathbf{u}+p\mathbf{u}\right)=0 $$

where ρ is the fluid density, u is the fluid velocity, and p is the pressure. In addition, et is the total energy that includes kinetic energy and internal energy:

$$ {e}_t=e+\frac{1}{2}\rho \mathbf{u}\cdot \mathbf{u}={C}_vT+\frac{1}{2}\rho \mathbf{u}\cdot \mathbf{u} $$

where e is the internal energy, Cv is the heat capacity at constant volume, and T is the fluid temperature. As the perfect gas is considered here, the equation of state p = ρRT is adopted, where R is the specific gas constant.

The Mach number Ma is defined as \( Ma=\frac{U_{\infty }}{\sqrt{\gamma {RT}_{\infty }}} \), where U is the freestream velocity, T is the freestream temperature, and γ is the specific heat ratio, which is kept constant at 1.4 in present work. The pressure coefficient is defined as \( {C}_p=\frac{p_B-{p}_{\infty }}{\left(1/2\right){\rho}_{\infty }{U}_{\infty}^2} \), where pB is the pressure on the boundary of body, p is the freestream pressure, and ρ is the freestream density.

Governing equations for a passively moving rigid body

For a moving rigid body, only the velocity and the position vector of the mass center (Uc, Xc) are considered in this work. Due to the inviscid flows, the rotational motion of the body is not involved since there is no existence of viscous stress or torque. According to the Newton’s second law, the translational motion of a passively moving rigid body can be solved by the following equations:

$$ \frac{d{\mathbf{X}}_c}{dt}={\mathbf{U}}_c $$
$$ m\frac{d{\mathbf{U}}_c}{dt}={\mathbf{F}}_f $$

where m is the mass of the body, and Ff is the resultant force imparted by the fluid to the body, which can be given by:

$$ {\mathbf{F}}_f=\underset{\varGamma }{\int }{\mathbf{f}}_f dS=\underset{\varGamma }{\int }-p\mathbf{n} dS $$

where ff represents the force per unit area on the boundary of body by the fluid, which only includes the pressure interpolated from the flow fields, and Γ represents the boundary of body. n = n(XΓ, t) is the unit normal vector from the boundary into the flow field, where XΓ represents the position of the point on the boundary.

Numerical methods

Basic solver in OpenFOAM

As mentioned in Introduction, an open source code, i.e. OpenFOAM, is used to solve the governing equations of flow field. The codes in OpenFOAM are based on a cell-centered finite-volume method. High-speed compressible flows can be simulated by the solver rhoCentralFoam, which is a semi-implicit segregated density-based solver with the Kurganov-Tadmor divergence scheme [23]. More details about the algorithmic structure of rhoCentralFoam solver can be found in Ref. [14]. In our recent work [16], this solver has been combined with a diffused-interface IBM to simulate viscous compressible flows. To extend this solver to deal with inviscid compressible flows, only the viscous terms of the governing equations are ignored.

Boundary conditions

Classical boundary conditions including subsonic or supersonic inlet, subsonic or supersonic outlet and walls are applied at the external boundaries of the computational domain. For the inviscid flows, no boundary layer should develop in the vicinity of the boundary of body. When a stationary body is considered, the traditional slip boundary condition can be used on the boundary of body [5]. But when a moving body is considered, the no-penetration boundary condition should be used. The velocity vector u(XΓ, t) on the boundary Γ is decomposed into the normal and tangential velocity components:

$$ {\mathbf{u}}_{\mathbf{n}}\left({\mathbf{X}}_{\varGamma },t\right)=\mathbf{u}\left({\mathbf{X}}_{\varGamma },t\right)\cdot \mathbf{n}\left({\mathbf{X}}_{\varGamma },t\right) $$
$$ {\mathbf{u}}_{\boldsymbol{\uptau}}\left({\mathbf{X}}_{\varGamma },t\right)=\mathbf{u}\left({\mathbf{X}}_{\varGamma },t\right)\cdot \boldsymbol{\uptau} \left({\mathbf{X}}_{\varGamma },t\right) $$

where τ(XΓ, t) is the unit tangential vector at XΓ, which is perpendicular to the unit normal vector. Considering the no-penetration boundary condition, these components are then written as:

$$ {\mathbf{u}}_{\mathbf{n}}\left({\mathbf{X}}_{\varGamma },t\right)={\mathbf{U}}_c(t)\cdot \mathbf{n}\left({\mathbf{X}}_{\varGamma },t\right) $$
$$ \frac{\partial {\mathbf{u}}_{\boldsymbol{\uptau}}\left({\mathbf{X}}_{\varGamma },t\right)}{\partial n}=0 $$

where the velocity of the body mass center Uc(t) has been introduced in the previous section and it is independent of XΓ for a rigid body.

For a stationary body, the pressure boundary condition ∂p/∂n = 0 can be applied on the boundary. But it should be reformulated for a moving body. Following the work of Udaykumar et al. [24], the pressure gradient normal to the boundary is obtained by projecting the momentum equation into the boundary normal direction, which results in:

$$ \frac{\partial p\left({\mathbf{X}}_{\varGamma },t\right)}{\partial n}=-\rho \left(\frac{\partial \mathbf{u}}{\partial t}+\mathbf{u}\cdot \nabla \mathbf{u}\right)\cdot \mathbf{n}\left({\mathbf{X}}_{\varGamma },t\right)=-\rho \frac{D\mathbf{u}}{Dt}\cdot \mathbf{n}\left({\mathbf{X}}_{\varGamma },t\right) $$

where D/Dt is the material derivative. Du/Dt can be approximated directly from the known boundary velocities and this obviates the approximation of the convective term [8, 24].

In addition, an adiabatic boundary condition is applied at the boundary. The temperature gradient normal to the surface is written as:

$$ \frac{\partial T\left({\mathbf{X}}_{\varGamma },t\right)}{\partial n}=0 $$

The boundary conditions above can be classified into two categories, Dirichlet boundary condition (Eq. (10)) and Neumann boundary conditions (Eqs. (11), (12), (13)). In our previous work [16], a variable correction-based IBM is developed to correct the variables with the Dirichlet boundary condition, including the no-slip boundary condition and the isothermal boundary condition. But it is difficult to handle the Neumann boundary conditions. In this work, both two boundary conditions need to be enforced into the proposed method.

Sharp-interface immersed boundary method

As one of sharp-interface immersed boundary methods, the ghost-cell IBM is employed to impose the boundary conditions on the boundary of body in this work. According to the location of boundary, the computational grid nodes lying inside the body are identified as the solid points, and the nodes lying outside the body are identified as the fluid points. Considering the rhoCentralFoam solver employed, one layer of solid points adjacent to the immersed boundary are called ghost points (GPs), as illustrated in Fig. 1. The interpolation procedure cannot be conducted on these GPs directly. Thus, an image point (IP) is required, which is the mirror of GP along the normal direction to the boundary. Thus, a boundary intercept (BI) point is defined as the midway point between GP and IP. The unit normal vector n is also marked on the BI point in Fig. 1.

Fig. 1

Different kinds of points on a Cartesian grid

After identifying different kinds of points, the interpolation procedure can be conducted on the IP. In Ref. [5], a liner interpolation was used and it followed the formulation ϕ = c1x + c2y + c3. Three coefficients (ci, i = 1, 2, 3) should be computed by using three points with known values. The IP should be surrounded by these three points to maintain good stability. However, each cell in the Cartesian grid is rectangular, and the IP must be in a rectangular domain, as illustrated in Fig. 1. The four vertices of the rectangular domain can be exactly regarded as known points. The liner interpolation should choose three of them to surround the IP, which may increase the complexity of the algorithm. Alternatively, a bilinear interpolation following the formulation ϕ = c0 + c1x + c2y + c3xy [8] is adopted in this work, and four unknown coefficients (ci, i = 0, 1, 2, 3) are determined by the four surrounding points. The accuracy of this interpolation scheme is second order, which is accurate enough for the solver in OpenFOAM. Thus, this interpolation method is simpler but more accurate than the linear interpolation algorithm. A generic variable ϕ can be expressed as:

$$ \phi ={\varepsilon}^TC $$

where C = [c0,  c1,  c2,  c3]T is a coefficient vector, and \( \varepsilon ={\left[1,\kern0.5em x,\kern0.5em y,\kern0.5em xy\right]}^T \) is a coordinate vector that only depends on a local coordinate system (x, y). As mentioned above, the coefficient vector C should be determined by four surrounding points. However, if the surrounding point is just one GP, its corresponding BI would be used. Then the interpolation domain changes from a rectangle to the blue area in Fig. 1. The four surrounding points are marked as Pi, i = 0, 1, 2, 3, which can be a fluid point or a BI point. Due to the particularity of the BI point, Khalili et al. [9] considered multiple situations for interpolation according to the number of the BI points in the interpolation domain. In the current method, however, such complicated procedure is discarded, and only a judgment step is required to determine the information type of a surrounding point. The flow variables ϕ on the fluid point can be obtained from the flow field, while the values on the BI point can be obtained by using the boundary conditions. The Dirichlet-type boundary condition (Eq. (10)) is enforced on the BI point just like the fluid point. But for the Neumann-type boundary conditions (Eqs. (11), (12), (13)), some modifications are required:

$$ {\displaystyle \begin{array}{l}{\left.\frac{\partial \phi }{\partial n}\right|}_{BI}=\left(\frac{\partial \phi }{\partial x},\frac{\partial \phi }{\partial y}\right)\cdot \left({n}_x,{n}_y\right)\\ {}\kern2.899999em =\left({c}_1+{c}_3y,{c}_2+{c}_3x\right)\cdot \left({n}_x,{n}_y\right)\\ {}\kern2.899999em =0\cdot {c}_0+{n}_x\cdot {c}_1+{n}_y\cdot {c}_2+\left({xn}_y+{yn}_x\right)\cdot {c}_3\end{array}} $$

where (x, y) is the BI point coordinate, and n = (nx, ny) is the unit normal vector at the BI point.

The unknown coefficients C can be computed from the four surrounding points with their flow information:

$$ AC=\Phi $$
$$ C={A}^{-1}\Phi $$

where \( A={\left[{\varepsilon}_0,\kern0.5em {\varepsilon}_1,\kern0.5em {\varepsilon}_2,\kern0.5em {\varepsilon}_3\right]}^T \) is a 4 × 4 matrix depending on the coordinate information of the four surrounding points, and \( \Phi ={\left[{\phi}_0,\kern0.5em {\phi}_1,\kern0.5em {\phi}_2,\kern0.5em {\phi}_3\right]}^T \) is a generic variable vector. εi and ϕi (i = 0, 1, 2, 3) can be obtained by a judgment step, based on the information type of Pi:

$$ {\varepsilon}_i=\left\{\begin{array}{cc}{\left[0,\kern0.5em {n}_{xi},\kern0.5em {n}_{yi},\kern0.5em {x}_i{n}_{yi}+{y}_i{n}_{xi}\right]}^T& \left( at\ BI\ with\ Neumann\ boundary\ condition\right)\\ {}{\left[\begin{array}{cccc}1,& {x}_i,& {y}_i,& {x}_i{y}_i\end{array}\right]}^T& (others)\end{array}\right. $$
$$ {\phi}_i=\Big\{{\displaystyle \begin{array}{ccc}\frac{\partial {\phi}_i}{\partial n}& {\phi}_i& \left( at\ BI\ with\ Neumann\ boundary\ condition\right)\\ {}(others)\end{array}}\operatorname{} $$

If Pi is a BI point and the given boundary condition is the Neumann-type boundary condition, Eq. (15) will be used.

Then the flow variables at the image point ϕIP can be obtained as:

$$ {\phi}_{IP}={\varepsilon}_{IP}^TC $$

After obtaining the values at the IP, the flow variables at the GP can be determined by using the boundary conditions on the immersed boundary. A linear interpolation along the normal is employed. Different types of boundary conditions need different formulas to calculate the values of flow variables at the GP:

$$ {\phi}_{GP}=\left\{\begin{array}{cc}2{\phi}_{BI}-{\phi}_{IP}& \left( Dirichlet\ boundary\ condition\right)\\ {}{\phi}_{IP}-{\left.\frac{\partial \phi }{\partial n}\right|}_{BI}\cdot \Delta l& \left( Neumann\ boundary\ condition\right)\end{array}\right. $$

where Δl is the length of the normal probe from the GP to the IP.

Fresh points for a moving body

For the case of stationary body, the GPs can be identified initially. But for the case of moving body, the GPs have to be updated at each time step. Figure 2 shows the process of immersed boundary moving from time level n to time level n + 1. As a result, a fluid point at time level n may become a newly emerged GP at time level n + 1 when the immersed boundary intrudes into the fluid domain, or a GP at time level n may become a newly emerged fluid point (called “fresh point”, i.e., FP) at time level n + 1 when the immersed boundary withdraws from the fluid domain. For the first situation, the newly emerged GP can be regarded as a normal GP and the reconstruction procedure is as usual. For the second situation, however, the FP is not possible to devise a straightforward temporal discretization of the governing equations, since it lacks a settled time history. Tran and Plourde [5] reconstructed the flow variables both on ghost point and forcing point. The forcing points are the points with at least one neighboring point inside the body. Since the FPs are included in the forcing points, this method seems to be workable for the moving boundary problems. Nevertheless, it is found that the FPs do not always appear, and this method also has to consume too much computing time.

Fig. 2

The emergence of fresh point due to the boundary motion from time level n to time level n + 1

In the present method, the reconstruction procedure on the FP is similar to that of GP. The interpolation domain changes from a rectangle to the blue area in Fig. 2, as the FP is shifted to its corresponding BI point. The other three surrounding points are marked as Pi, i = 1, 2, 3, which can be confirmed by:

$$ \left\{\begin{array}{c}\left({x}_1,{y}_1\right)=\left({x}_{FP}+\mathit{\operatorname{sign}}\left({n}_x\right)\cdot \Delta x,{y}_{FP}\right)\\ {}\left({x}_2,{y}_2\right)=\left({x}_{FP},{y}_{FP}+\mathit{\operatorname{sign}}\left({n}_y\right)\cdot \Delta y\right)\\ {}\left({x}_3,{y}_3\right)=\left({x}_{FP}+\mathit{\operatorname{sign}}\left({n}_x\right)\cdot \Delta x,{y}_{FP}+\mathit{\operatorname{sign}}\left({n}_y\right)\cdot \Delta y\right)\end{array}\right. $$

where (xi, yi) represents the coordinate of the Pi, sign is the symbolic function, and Δx, Δy are the mesh steps. If Pi is a FP, it will be also shifted to its corresponding BI point. And this manipulation is similar to that of GP. The flow variables are directly interpolated to the FP:

$$ {\phi}_{FP}={\varepsilon}_{FP}^TC $$

At each time step, the layer of FP is required to be one layer depth at least to guarantee the success of interpolation step. Considering the motion of immersed boundary and its velocity, the time step should be constrained as Δt < min(Δx, Δy)/|Uc|.

It should be clarified that the current interpolation procedure has some general similarities with the method proposed by Mittal et al. [22]. However, their interpolation stencil was always in a rectangular domain and the surrounding points would contain other GPs. As a result, a point Gauss-Seidel method was used for these coupled GPs. In the current method, if the surrounding point is just one GP, its corresponding BI point will replace it. Consequently, the surrounding points only include fluid points or BI points in the current interpolation stencil, as illustrated in Fig. 1. Then, the flow variables at the GP can be computed easier. Another advantage of the current method is that the BI points are included in the surrounding points and the boundary information is enforced into the interpolation procedure. The second difference is the reconstruction procedure of FPs. Mittal et al. [22] used the same method as GPs to calculate FPs. When the FP is in the fluid domain, the current method directly uses surrounding points to perform the interpolation to obtain the flow variables at the FP. Therefore, the calculation process is more concise.

Computing the forces on the body

For inviscid flows, only the pressure acting on the surface of body is required to be computed. The BI point is treated as an interpolation point, and the pressure pBI can be achieved by using Eq. (10). Then Eq. (7) can be rewritten as:

$$ {\mathbf{F}}_f=\underset{\varGamma }{\int }-p\mathbf{n} dS=-\sum \limits_i{p}_{BI}\Delta {s}_i{\mathbf{n}}_i $$

where Δsi is the arc length of the immersed boundary around the BI point. The pressure coefficient at the BI point can be expressed as:

$$ {C}_p=\frac{p_{BI}-{p}_{\infty }}{\left(1/2\right){\rho}_{\infty }{U}_{\infty}^2} $$

Solution procedure

To summary, the solution procedure of the current algorithm from time level n to n + 1 is given as follows:

  1. 1)

    For a passively moving body, solve its motion and get Uc, Xc by using Eqs. (5) and (6); Otherwise, Uc and Xc are given in advance.

  2. 2)

    Update the position of immersed boundary, and determine fluid points, solid points, FPs, GPs, IPs, and BI points;

  3. 3)

    Calculate values of flow variables (u, p and T) at FPs by using Eq. (23), and then the density ρ at FPs is updated by using the equation of state;

  4. 4)

    Calculate values of flow variables (u, p and T) at GPs by using Eq. (21), and then the density ρ at GPs is updated by using the equation of state;

  5. 5)

    Solve the governing equations of flow field, and compute the flow variables by using OpenFOAM;

  6. 6)

    Calculate the resultant force Ff by using Eq. (24);

  7. 7)

    Repeat Steps 1 to 6 until convergence is reached, and obtain ρn + 1, un + 1, pn + 1 and Tn + 1.

Numerical examples

Stationary cases

Supersonic oblique shock

To test the accuracy of the present method, a supersonic flow over a 15 ° angle wedge is simulated. This flow can produce a supersonic oblique shock, which has an exact analytical solution. Two Mach numbers are considered, i.e., Ma = 3.0 and Ma = 5.0. Supersonic inlet and zero-gradient outlet are adopted. Initial conditions are chosen with p = 1Pa and T = 1K.

In current simulations, the rectangular computational domain is (1.5m, 1.0m). A very fine uniform Cartesian grid is used with the mesh size of 1500 × 1000, and then the mesh spacing is Δh = 0.001m. At Ma = 3.0, the pressure contours are exhibited in Fig. 3. The slope starts at x = 0.5m, where the supersonic flow forms an oblique shock wave. The wave surface of the oblique shock is very clear, which is attributed to the good ability of the current method to handle the supersonic flow over a body.

Fig. 3

Pressure contours at Ma = 3.0

Table 1 lists the theoretical and numerical results from pre-shock state (subscript 1) and post-shock state (subscript 2): post-shock Mach number Ma2, pressure ratio p2/p1, temperature ratio T2/T1, and shock-angle that is the angle between the oblique shock and the horizontal plane. The present results are in agreement with the exact solution, and the accuracy of the current method is well displayed.

Table 1 Comparison of theoretical and present numerical results obtained from the supersonic oblique shock configuration

To assess the convergence rate of the current method, the case at Ma = 3.0 is simulated with different meshes. Four uniform grids of 75 × 50, 150 × 100, 300 × 200 and 1500 × 1000 are used. The corresponding grid steps are Δh = 0.02m, Δh = 0.01m, Δh = 0.005m and Δh = 0.001m, respectively. As illustrated in Table 1, the exact solution of shock-angle is θ = 32.24. The error of shock-angle eθ versus grid steps in the log scale is plotted in Fig. 4. From the figure, it is found that the slope of the line is about 1.7. Although the accuracy of the interpolation scheme is second order in the current IBM, some discrete schemes in the rhoCentralFoam solver are only first-order. Therefore, the overall accuracy of the current solver is less than the second-order.

Fig. 4

Convergence of numerical error versus grid step for supersonic oblique shock

Transonic flow around a stationary airfoil

To verify the robustness of the present method, a flow around an irregular-shaped object is simulated in this section. Here, a NACA0012 airfoil is considered. Two transonic flows are selected, in which the free-stream Mach number and angle of attack are: (a) Ma = 0.8, α = 1.25 and (b) Ma = 0.85, α = 1. The same problem has been simulated in previous work [25,26,27]. The computational domain is 28c × 20c with the mesh size of 511 × 251, where c is the chord length of airfoil, and the airfoil is located at (10c, 10c). The region around the airfoil is 1.2c × 0.2c, and a fine uniform mesh with the spacing of h = 0.005c is adopted.

The pressure and Mach number contours are presented in Fig. 5. For the case of Ma = 0.8, α = 1.25, there are a relatively strong shock on the upper surface of the airfoil and a weak shock on the lower surface of the airfoil, as illustrated in Fig. 5(1) and 5(2). For the case of Ma = 0.85, α = 1, however, it is indicated that such a problem is not easy to be handled [25, 26]. The strong shock appears on both the upper surface and the lower surface, as shown in Fig. 5(3) and 5(4).

Fig. 5

Pressure contours (1) and (3), Mach number contours (2) and (4), with different flows Ma = 0.8, α = 1.25 (1–2) and Ma = 0.85, α = 1 (3–4)

Figure 6 shows the pressure coefficient −Cp on the upper and lower airfoil surfaces. From the figure, it can be found that the present results compare well with the results of previous work [27, 28]. At Ma = 0.8, α = 1.25, the shock positions on the upper and lower airfoil surfaces are accurately predicted. Although the case (b) is difficult to simulate, the current method still can accurately predict the position of the upper and lower surface shock waves.

Fig. 6

Pressure coefficient on the upper and lower airfoil surfaces compared to reference results with different flows (1) Ma = 0.8, α = 1.25 and (2) Ma = 0.85, α = 1

Based on the two problems above, the sharp-interface IBM in this study has been proved to be able to deal with stationary boundary problems accurately.

Moving cases

Piston moving with supersonic velocity

To further validate the current method, the moving body problems will be simulated. The first one is a piston moving at a constant speed of Ma = 2.0 in a quiescent fluid. The movement sketch is shown in Fig. 7. The thickness of the piston is L, and it is located in the middle of a shock tube initially. The shock tube has a length of 128L and a width of 4L. In the whole computational domain, the parameters of the initial quiescent fluid are u = v = 0  m/s, p = 1Pa, and T = 1K. Then the piston is given a sudden velocity with Ma = 2.0. The same problem has also been simulated in previous studies [19, 20, 29], and it has an analytical solution.

Fig. 7

Schematic diagram of piston movement

The computational domain with the size of 128L × 4L is discretized by using three different uniform grids with 512 × 16, 1280 × 40 and 2560 × 80. These three grids correspond to the three mesh steps of Δh = 0.25L, Δh = 0.1L and Δh = 0.05L, respectively. The computations are performed till the instant of t = 25L/upiston, where upiston is the velocity of the piston. Figure 8 shows the pressure distribution along x-direction with different mesh steps. The piston is represented by a blue strip in the figure. pref = 1Pa is the reference pressure. Obviously, the result from fine mesh is closer to the exact solution than that from coarse mesh, especially at the corners of the curve. However, even for the coarsest mesh, the calculated result is generally in good agreement with the exact solution. Thus, it means that the current method has good robustness, and the satisfactory result can be obtained even at a relatively coarse grid.

Fig. 8

Grid convergence study of the pressure distribution along x-direction

Using the finest mesh, Fig. 9 shows the pressure ratio p/pref, density ratio ρ/ρref, and Mach number ratio Ma/Maref distribution along x-direction of shock tube. All the results compare well with the analytical solutions. This testing problem verifies that the current method can accurately solve the moving body problem.

Fig. 9

Comparison of (1) pressure, (2) density and (3) Mach number distribution along x-direction with analytical results at the finest mesh Δh = 0.05L

Lift-off of a cylinder

The second moving body problem to be simulated is a rigid cylinder whose motion is induced by the fluid. This problem takes place in a shock tube, whose domain size is 1m × 0.2m, as illustrated in Fig. 10. At the initial moment, a shock wave with Mach 3 is located at x = 0.08m, which is traveling from left to right. The pre-shock state, which is on the right of the shock, is at rest with p = 1Pa, T = 1K, and u = v = 0  m/s. The flow variables at the post-shock state can be calculated from the total temperature. The radius of rigid cylinder is 0.05 m, which is at rest initially on the floor of the shock tube. The center of the cylinder is initially at (0.15m, 0.05m), and the density of the cylinder is 10.77kg/m3. When the Mach 3 shock wave moves to the cylinder position, the cylinder will be lifted due to the action of the fluid. This cylinder lift-off problem has also been numerically studied in previous work [30, 31].

Fig. 10

Schematic diagram of cylinder lift-off

When the shock wave reaches the cylinder, the cylinder can affect the flow field significantly to make the flow field asymmetrical. Due to the strong fluid-structure interaction, this asymmetry causes unequal forces on the upper and lower surfaces of the cylinder, and thus the lift-off phenomenon happens. The instant at t = 0.30085s is set as a stopping time of simulation when the cylinder is close to the upper surface of the shock tube. In Table 2, a convergence study of position of the cylinder mass center is presented. The computational domain is discretized by five uniform grids corresponding to the five grid steps of Δh = 1/500m, Δh = 1/1000m, Δh = 1/1600m, Δh = 1/2000m and Δh = 1/2500m, respectively. Obviously, with the refinement of the grid, the numerical result will gradually tend to an accurate value, both in Shyue’s work [31] and present work. Using the same mesh step, the present results are in good agreement with those of Shyue [31]. As shown in Fig. 11, Shyue [31] provided the pressure contours at two different moments, i.e., t = 0.1641s and t = 0.30085s. Similarly, Fig. 12 shows the current results at the same instants. From two figures, it is found that the position of shock waves is captured accurately by the present method. This testing problem completely demonstrates the robustness and accuracy of the present sharp-interface IBM.

Table 2 Grid convergence study of position of the cylinder mass center at the final stopping time t = 0.30085s
Fig. 11

Pressure contours computed by Shyue [31] at different time: (1) t = 0.1641s, and (2) t = 0.30085s

Fig. 12

Present pressure contours (Δh = 1/2000m) at different time: (1) t = 0.1641s, and (2) t = 0.30085s


A robust sharp-interface immersed boundary method is proposed in this work for simulating high-speed inviscid compressible flows over stationary and moving bodies. The Euler equations are discretized on a Cartesian grid and solved by the rhoCentralFoam solver in the platform of OpenFOAM. The interaction of flow and body boundary is handled by using a ghost-cell IBM. A bilinear interpolation method is employed to robustly interpolate the flow variables at an image point corresponding to those at a ghost point, as well as to satisfy the boundary conditions. The velocity around the body boundary is decomposed into the normal and tangential components. The normal component satisfies the no-penetration boundary condition, which is the Dirichlet-type boundary condition. The tangential component together with the pressure and the temperature satisfies the Neumann-type boundary conditions at the immersed boundary. Finally, the density is reconstructed via the equation of state at ghost points. Additionally, a newly emerged fresh point may appear when the body moves. The flow variables at fresh points are reconstructed by using a method similar to the reconstruction of ghost points.

To validate the robustness and accuracy of the proposed method for high-speed inviscid compressible flows over stationary and moving bodies, four simulations are performed: supersonic flow over a 15 ° angle wedge, transonic flow past a stationary airfoil, a piston moving with supersonic velocity, and a rigid circular cylinder lift-off. It is shown that the results from the current method are in good agreement with the data in literature. As the future work, the current sharp-interface IBM can be extended to simulate high-speed viscous compressible flows together with the turbulence model for high Reynold number situation.

Availability of data and materials

All data and materials are available upon request.


  1. 1.

    Monasse L, Daru V, Mariotti C, Piperno S, Tenaud C (2012) A conservative coupling algorithm between a compressible flow and a rigid body using an embedded boundary method. J Comput Phys 231:2977–2994

    MathSciNet  Article  Google Scholar 

  2. 2.

    Arienti M, Hung P, Morano E, Shepher J (2003) A level set approach to Eulerian-Lagrangian coupling. J Comput Phys 185:213–251

    Article  Google Scholar 

  3. 3.

    Hejranfar K, Rahmani S (2019) Numerical simulation of shock-disturbances interaction in high-speed compressible inviscid flow over a blunt nose using weighted essentially non-oscillatory scheme. Wave Motion 88:167–195

  4. 4.

    Courant R, Friedrichs KO (1976) Supersonic flow and shock waves. Springer-Verlag, NewYork

  5. 5.

    Tran PH, Plourde F (2014) Computing compressible internal flows by means of an immersed boundary method. Comput Fluids 97:21–30

    MathSciNet  Article  Google Scholar 

  6. 6.

    Slone AK, Pericleous K, Bailey C, Cross M (2002) Dynamic fluid-structure interaction using finite volume unstructured mesh procedures. Comput Struct 80:371–390

    Article  Google Scholar 

  7. 7.

    Udaykumar HS, Shyy W, Rao M (1996) Elafint: a mixed Eulerian-Lagrangian method for fluid flows with complex and moving boundaries. Int J Numer Methods Fluids 22:691–712

    MathSciNet  Article  Google Scholar 

  8. 8.

    Qu YG, Shi RC, Batra RC (2018) An immersed boundary formulation for simulating high-speed compressible viscous flows with moving solids. J Comput Phys 354:672–691

    MathSciNet  Article  Google Scholar 

  9. 9.

    Khalili ME, Larsson M, Müller B (2018) Immersed boundary method for viscous compressible flows around moving bodies. Comput Fluids 170:77–92

    MathSciNet  Article  Google Scholar 

  10. 10.

    Peskin CS (1977) Numerical analysis of blood flow in the heart. J Comput Phys 25:220–252

    MathSciNet  Article  Google Scholar 

  11. 11.

    Huang WX, Tian FB (2019) Recent trends and progress in the immersed boundary method. J Mech Eng Sci 233(23–24):7617–7636

    Article  Google Scholar 

  12. 12.

    Cui Z, Yang ZX, Jiang HZ, Huang WX, Shen L (2018) A sharp-interface immersed boundary method for simulating incompressible flows with arbitrarily deforming smooth boundaries. Int J Comput Methods 15:1750080

  13. 13.

    Constant E, Favier J, Meldi M, Meliga P, Serre E (2017) An immersed boundary method in OpenFOAM: verification and validation. Comput Fluids 157:55–72

    MathSciNet  Article  Google Scholar 

  14. 14.

    Riahi H, Meldi M, Favier J, Serre E, Goncalves E (2018) A pressure-corrected immersed boundary method for the numerical simulation of compressible flows. J Comput Phys 374:361–383

    MathSciNet  Article  Google Scholar 

  15. 15.

    Yang X, Zhang X, Li Z, He GW (2009) A smoothing technique for discrete delta functions with application to immersed boundary method in moving boundary simulations. J Comput Phys 228:7821–7836

    MathSciNet  Article  Google Scholar 

  16. 16.

    Wang JJ, Li YD, Wu J, Qiu FS (2020) A variable correction-based immersed boundary method for compressible flows over stationary and moving bodies. Adv Appl Math Mech 12(2):545–563

    MathSciNet  Article  Google Scholar 

  17. 17.

    Wang L, Currao G, Han F, Neely AJ, Young J, Tian FB (2017) An immersed boundary method for fluid-structure interaction with compressible multiphase flows. J Comput Phys 346:131–151

    MathSciNet  Article  Google Scholar 

  18. 18.

    Sotiropoulos F, Yang X (2014) Immersed boundary methods for simulating fluid-structure interaction. Prog Aerosp Sci 65:1–21

    Article  Google Scholar 

  19. 19.

    Schneiders L, Günther C, Meinke M, Schröder W (2016) An efficient conservative cut-cell method for rigid bodies interacting with viscous compressible flows. J Comput Phys 311:62–86

    MathSciNet  Article  Google Scholar 

  20. 20.

    Muralidharan B, Menon S (2018) Simulation of moving boundaries interacting with compressible reacting flows using a second-order adaptive Cartesian cut-cell method. J Comput Phys 357:230–262

    MathSciNet  Article  Google Scholar 

  21. 21.

    Brahmachary S, Natarajan G, Kulkarni V, Sahoo N (2016) A sharp-interface immersed boundary method for high-speed compressible flow. 18th annual CFD symposium CFD division-aeronautical society of India, National Aerospace Laboratories, Bangalore, 10–11

  22. 22.

    Mittal R, Dong H, Bozkurttas M, Najjar F, Vargas A, von Loebbecke A (2008) A versatile sharp interface immersed boundary method for incompressible flows with complex boundaries. J Comput Phys 227:4825–4852

    MathSciNet  Article  Google Scholar 

  23. 23.

    Kurganov A, Tadmor E (2000) New high-resolution central schemes for nonlinear conservation laws and convection-diffusion equations. J Comput Phys 160:241–282

    MathSciNet  Article  Google Scholar 

  24. 24.

    Udaykumar HS, Mittal R, Rampunggoon P, Khanna A (2001) A sharp interface Cartesian grid method for simulating flows with complex moving boundaries. J Comput Phys 174:345–380

    Article  Google Scholar 

  25. 25.

    Jawahar P, Kamath H (2000) A high-resolution procedure for Euler and Navier-Stokes computations on unstructured grids. J Comput Phys 164:165–203

  26. 26.

    Dadone A, Grossman B (2002) An immersed body methodology for inviscid flows on Cartesian grids. 40th AIAA aerospace sciences meeting & exhibit, AIAA 2002–1059, Reno, 14–17

  27. 27.

    Liu C, Hu CH (2017) An immersed boundary solver for inviscid compressible flows. Int J Numer Meth Fluids 85:619–640

    MathSciNet  Article  Google Scholar 

  28. 28.

    Amaladas JR, Kamath H (1998) Accuracy assessment of upwind algorithms for steady-state computations. Comput Fluids 27(8):941–962

  29. 29.

    Murman SM, Aftosmis MJ, Berger MJ (2003) Implicit approaches for moving boundaries in a 3-D Cartesian method. 41st aerospace sciences meeting and exhibit, AIAA 2003–1119, Reno, 06–09

  30. 30.

    Tan SR, Shu CW (2011) A high order moving boundary treatment for compressible inviscid flows. J Comput Phys 230:6023–6036

  31. 31.

    Shyue KM (2008) A moving-boundary tracking algorithm for inviscid compressible flow. In: Benzoni-Gavage S, Serre D. (eds) Hyperbolic problems: theory, Numerics, Applications. Springer, Berlin, pp 989–996

Download references


This work is supported by the Priority Academic Program Development of Jiangsu Higher Education Institutions (PAPD).


Natural Science Foundation of Jiangsu Province (Grant No. BK20191271) and the National Numerical Wind Tunnel Project (Grant No. NNW2019ZT2-B28).

Author information




The first author finished the numerical simulations, and all authors were involved in writing the manuscript. All authors read and approved the final manuscript.

Corresponding author

Correspondence to Jie Wu.

Ethics declarations

Competing interests

The authors declare that they have no competing interests.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Wang, J., Gu, X. & Wu, J. A sharp-interface immersed boundary method for simulating high-speed compressible inviscid flows. Adv. Aerodyn. 2, 23 (2020).

Download citation


  • Immersed boundary method
  • Inviscid compressible flows
  • Sharp interface
  • Shock waves
  • OpenFOAM