Introduction

When shock-capturing schemes are used to model the interaction of shock waves with compressible turbulence or sound waves, the discretisation errors generated along the captured shock wave can severely degrade the fidelity of the flow simulation within the entire shock-downstream region [10, 13]. These limitations appear to be rooted in the fundamental ingredients of shock-capturing discretisations, namely the existence of intermediate shock points, located in between the pre- and post-shock states, that are a mere numerical artefact and have nothing to do with the true internal structure of the shock-wave [2]. This observation points to a fundamental weakness of the shock-capturing paradigm, so that it is not surprising that the author of [13] concludes that:

These limitations . can only be overcome by some form of shock-fitting.

Shock-fitting algorithms on structured grids, which still nowadays find their way in compressible DNS, see e.g. [16], are either limited to simple flow configurations, when the boundary shock-fitting approach is used, or require ad hoc differencing formulae in the vicinity of the fitted shock, when the floating shock-fitting approach is adopted. The latter approach, although more versatile than the former from a topological point of view, becomes algorithmically very complex when high order schemes are used, see, e.g., [14].

In the attempt to relieve most of the algorithmic difficulties encountered by shock-fitting methods when used on structured grids, the authors have recently developed an unstructured, shock-fitting algorithm capable of simulating steady flows in two [9, 11, 12] and three [5] spatial dimensions. The unstructured, shock-fitting algorithm has features of both the boundary and floating variants of the shock-fitting technique that had been proposed and used in the structured-grid framework over the last 50 years: the fitted shocks are treated as interior boundaries of zero thickness that are free to float throughout a triangular/tetrahedral mesh that covers the entire computational domain and locally adapts to follow the shock motion. The Rankine–Hugoniot jump relations are used to compute the Lagrangian motion of the discontinuities and an unstructured, vertex-centred, shock-capturing solver is used to discretise the governing PDEs in the smooth regions of the flow-field.

The aforementioned methodology has recently [6] being further developed to make it capable of dealing with un-steady flows. This can be accomplished by addressing three fundamental issues: (1) the shock-capturing code must be made capable of working in an Arbitrary Lagrangian Eulerian (ALE) setting; (2) the temporal accuracy of the Lagrangian shock motion must be raised to second order; and (3) the algorithm must be capable of automatically detecting changing flow topologies, such as those that may occur when a shock meets another shock or a solid wall. The first two issues have already been addressed in [6]. In this article we will demonstrate the current capabilities of the proposed technique by reporting the simulation of a shock–vortex interaction; moreover, we will also show a preliminary calculation that addresses the issue of changing flow topologies.

Numerical Method

The unstructured shock-fitting algorithm consists of two key ingredients: (1) a local re-meshing technique that constructs a time-dependent mesh in which the fitted discontinuities are internal boundaries of zero thickness and (2) an algorithm for solving the Rankine–Hugoniot jump relations that provide the Lagrangian velocity of the discontinuity and an updated set of dependent variables within the downstream side of the fitted shock.

More precisely, in two space dimensions, the fitted shock fronts are made of polygonal curves, i.e., a connected series of line segments (which we call the shock edges) that join the shock points. These shocks are free to move throughout a background triangular mesh that covers the entire computational domain (see Fig. 1a). At a given time level n, a local, constrained Delaunay triangulation is applied in the neighbourhood of the shock front to ensure that the edges that make up the shock front are also part of the triangular grid that covers the entire computational domain (see Fig. 1b). The shock speed w and shock-downstream state are computed by solving the Rankine–Hugoniot jump relations within each of the shock points. Using the shock speed w and the shock normal n that are available within each shock point, the fitted shock front is moved in a Lagrangian manner, as shown in Fig. 1c. As described in [6], a second-order-accurate temporal integration of the shock trajectory is obtained using a predictor–corrector scheme.

Fig. 1
figure 1

Shock-fitting: schematic illustration of some of the algorithmic ingredients. (a) Background mesh. (b) “Shock-fitted” mesh. (c) Shock-motion and cell deformation

In smooth regions of the flow-field, the vertex-centred, shock-capturing solver described in [3] is used to discretise the ALE formulation of the governing PDEs. An ALE formulation is needed because the triangular cells that abut on the shock front have at least one of their nodes that moves with the shock, thus deforming the cell. This is schematically shown in Fig. 1c where dashed lines are used to show the edges of the triangular cells when the shock front is at time level n and solid lines to show the same sides when the shock has reached time level n + 1.

Further algorithmic details concerning the un-steady, shock-fitting algorithm can be found in [6].

Numerical Results

In this article attention is payed to the effects that different practices used to simulate shock-waves produce on the solution quality within those smooth regions of the flow field that are located downstream of the modelled shock-waves. Therefore, a mathematical model (the Euler equations) describing the dynamics of an inviscid, perfect gas, is deemed adequate for the purpose.

Shock–Vortex Interaction

This first test case consists in the interaction between a stationary shock and a vortex and provides a useful testbed for comparing shock-capturing versus shock-fitting. It has been frequently reported in the literature, not only as a code verification case [1, 15], but primarily as a tool for understanding the fundamental mechanisms [7, 8] that account for noise generation due to the interaction between a shock-wave and a turbulent flow.

A uniform, supersonic stream, characterised by a shock-upstream Mach number (or vortex strength) M s  = 1. 21, carries a vortex, from the left to the right of the computational domain (the rectangle \( \left[0,2 L\right]\times \left[0, L\right] \)), towards a stationary normal shock. At the initial time, t = 0, the vortex is centred in \( \left({x}_v \div slash L,{y}_v \div slash L\right)=\left(0.5,0.5\right) \) and the shock is located 0. 2L downstream of the vortex centre. We have used the same vortical structure of [1] with the following parametric setting: r 0L = 0.05, α = 0. 204, ε = 0. 21, which gives a vortex Mach number, M v  = 0. 3.

The topological pattern that arises once the vortex impinges on the shock depends upon the shock and vortex strengths [7]: weak shock–vortex interactions are those that do not exhibit any shock reflection and strong shock–vortex interactions those that feature reflected and diffracted shocks; a Mach reflection is expected for the (M s = 1.21, M v = 0.3) couple used in the present numerical calculation.

A qualitative comparison between the two different shock-modelling practices is presented in Fig. 2, which shows pressure and entropy iso-contours computed using both shock-capturing and shock-fitting. The governing PDEs are discretised using the explicit, Lax-Wendroff (LW) scheme in the shock-fitting calculation and the implicit (dual time-stepping) MM-PG-LDA scheme [4] in the shock-capturing calculation. Both schemes are formally second-order-accurate in space and time.

Fig. 2
figure 2

Shock–vortex interaction (M s  = 1. 21, M v  = 0. 3): pressure and entropy iso-contours at t = 0. 5. (a) Pressure, shock-fitting. (b) Pressure, shock-capturing. (c) Entropy, shock-fitting. (d) Entropy, shock-capturing

The pressure iso-contours reveal that the shock-fitting calculation, Fig. 2a, is free from the oscillations that arise along the main shock in the shock-capturing calculation, Fig. 2b. Oscillations are visible in the shock-fitting calculation near the Mach reflection, because only the main shock is fitted, whereas the reflected shocks are captured using a non-monotone scheme, such as the LW.

The entropy iso-contours shown in Fig. 2 turn out to be particularly revealing in highlighting the differences between the two shock-modelling practices. Indeed, the shock-fitting solution, Fig. 2c, shows entropy variations only in the region where the vortex impinges on the shock; these entropy gradients are caused by the spatially variable oblique shock angle and hence shock intensity. By contrast, spurious entropy disturbances are present in the shock-capturing solution, Fig. 2d, also in regions where the shock is straight. These disturbances are convected downstream and pollute the entire shock-downstream region.

Regular Reflection Over a Wedge

In order to start developing the capability to treat the topological changes that can occur in unsteady flows, we have considered the flow originated by a planar shock that impinges on a 58 wedge, as shown in Fig. 3. As a consequence of this interaction, when the planar shock overtakes the corner of the wedge, a new curved shock and a regular reflection appear. This new shock and the regular reflection, along with the original planar shock, give rise to a new shock topology that affects the subsequent evolution of the flow-field.

Fig. 3
figure 3

Regular reflection: frames corresponding to increasing time

In the numerical simulation, the topological changes are introduced shortly after the planar shock has overtaken the corner. This is achieved by adding a shock which is initially made up of only three shock points (see the central frame of Fig. 3): two are located along the boundaries and the third one inside the flow-field; the reflected and the incident shocks are joined in a reflection point. The shape of the curved shock and the states of these new shock points are computed using simple analytical relations obtained from the reflection of isentropic waves. Starting from this approximate solution, the shock-fitting algorithm is anyway capable of correctly evolving the solution based on this new topology: this is clearly shown in the right frame (Fig. 3).

Conclusions

The shock-fitting technique for unstructured grids that the authors have been developing over the last few years has been successfully applied to two- and three-dimensional steady flows featuring interacting shocks; in the present paper it has been applied to unsteady flows characterised by changing shock topologies. In all applications tested so far, this new technique has shown huge potential benefits with respect to the shock-capturing approach and a reduced algorithmic complexity with respect to the shock-fitting techniques developed in the 1970s and 1980s within the structured grid framework.