1 Introduction

The designs of commercial and military vehicles are continuously improved to deliver increased performance. The vehicles are often costly to build and maintain, and, as a result, optimal performance and operational reliability become the key aspects of the vehicle design in the commercial and military mobility applications. As the vehicle and engine designs get more sophisticated, the corresponding computational analysis methods must also mature to support advances in the mobility technology. Recent advances in geometry modeling, mesh generation, computational mechanics of fluids and structures, multiphysics modeling, and high-performance computing create a unique opportunity for the development of the next-generation predictive simulation methods and tools for general mobility applications involving complex geometry and fluid–structure interaction (FSI). These new-generation methods and tools, described in some detail and demonstrated on a single-stage gas turbine design in this article, enable high-fidelity computational analysis with greatly improved representation of the complex geometries and multiphysics phenomena.

1.1 Moving-mesh methods

Using the terminologies and categorizations used in [1,2,3], a method for flows with moving boundaries and interfaces (MBI), including FSI, can be an interface-tracking (moving-mesh) method or an interface-capturing (nonmoving-mesh) method, or possibly a combination of the two. In a moving-mesh method, as the interface moves and the fluid mechanics domain changes its shape, the mesh moves to adjust to the shape change and to follow (i.e. “track”) the interface. Moving the fluid mechanics mesh to follow a fluid–solid interface enables us to control the mesh resolution near the interface, have high-resolution representation of the boundary layers, and obtain accurate solutions in such critical flow regions. The arbitrary Lagrangian–Eulerian (ALE) method, with the ALE finite element method introduced in 1981 [4], is one of the earliest and most commonly used moving-mesh methods.

In incompressible-flow MBI computations the ALE is quite often used with residual-based stabilized methods, with the most notable ones being the streamline-upwind/Petrov–Galerkin (SUPG) [5], pressure-stabilizing/Petrov–Galerkin (PSPG)Footnote 1 [6] and residual-based variational multiscale (RBVMS) [13,14,15,16] methods. The ALE method with the SUPG and PSPG stabilizations [17] is now called “ALE-SUPS,” and the ALE method with the VMS stabilization, “ALE-VMS.” The ALE-VMS has two more stabilization terms beyond those in the ALE-SUPS, and the additional terms give the method better turbulence modeling features. To increase their scope and accuracy, the ALE-VMS and RBVMS are often supplemented with special methods, such as those for weakly-enforced Dirichlet boundary conditions [18,19,20], sliding interfaces [21, 22] (see Sect. 1.3), and backflow stabilization [23]. The ALE-SUPS, RBVMS and ALE-VMS have been applied to many classes of FSI, MBI and fluid mechanics problems. The classes of problems include ram-air parachute FSI [17], wind turbine aerodynamics and FSI [24,25,26,27,28,29,30,31,32,33,34,35,36], more specifically, vertical-axis wind turbines (VAWTs) [33, 34, 37, 38], floating wind turbines [39], wind turbines in atmospheric boundary layers [32,33,34, 40,41,42], and fatigue damage in wind turbine blades [43], patient-specific cardiovascular fluid mechanics and FSI [44,45,46,47,48,49,50], biomedical-device FSI [51,52,53,54,55,56,57,58], ship hydrodynamics with free-surface flow and fluid–object interaction [59, 60], hydrodynamics and FSI of a hydraulic arresting gear [61, 62], hydrodynamics of tidal-stream turbines with free-surface flow [63], passive-morphing FSI in turbomachinery [64], bioinspired FSI for marine propulsion [65, 66], bridge aerodynamics and fluid–object interaction [67,68,69], and mixed ALE-VMS/immersogeometric computations [54,55,56, 70, 71] in the framework of the Fluid–Solid Interface-Tracking/Interface-Capturing Technique [72]. Recent advances in stabilized and multiscale methods may be found for stratified incompressible flows in [73] and for divergence-conforming discretizations of incompressible flows in [74].

The deforming-spatial-domain/stabilized space–time (DSD/SST) method [6, 8, 9] was introduced for computation of flows with MBI, including FSI, and functions as a moving-mesh method in such computations. Because the stabilization components of the original DSD/SST are the SUPG and PSPG, it is now called “ST-SUPS.” The ST-VMS is the VMS version of the DSD/SST. The VMS components of the ST-VMS are from the RBVMS. The ST-SUPS and ST-VMS, because of the higher-order accuracy of the ST framework (see [10, 11]), are desirable also in computations without MBI. The ST-SUPS and ST-VMS have also been applied to many classes of FSI, MBI and fluid mechanics problems (see [75] for a comprehensive summary of the work prior to July 2018). The classes of problems include spacecraft parachute analysis for the landing-stage parachutes [2, 76,77,78,79], cover-separation parachutes [80] and the drogue parachutes [81,82,83], wind turbine aerodynamics for horizontal-axis wind turbine (HAWT) rotors [2, 3, 24, 84], full HAWTs [30, 85,86,87] and VAWTs [33,34,35,36, 88, 89], flapping-wing aerodynamics for an actual locust [2, 90,91,92], bioinspired MAVs [86, 87, 93, 94] and wing-clapping [95, 96], blood flow analysis of cerebral aneurysms [86, 97], stent-blocked aneurysms [97,98,99], aortas [57, 58, 100,101,102,103,104], heart valves [57, 58, 87, 95, 102, 104,105,106,107,108,109] and coronary arteries in motion [110], spacecraft aerodynamics [80, 111], thermo-fluid analysis of ground vehicles and their tires [41, 42, 106, 112], thermo-fluid analysis of disk brakes [113], flow-driven string dynamics in turbomachinery [35, 36, 114,115,116], flow analysis of turbocharger turbines [117,118,119,120,121], flow around tires with road contact and deformation [106, 122,123,124,125], fluid films [125, 126], ram-air parachutes [41, 42, 127], and compressible-flow spacecraft parachute aerodynamics [128, 129].

1.2 Compressible-flow SUPG method

The compressible-flow SUPG method was first introduced, in the context of conservation variables, in a 1982 NASA technical report [130], with a concise version published as a 1983 AIAA paper [131] and more thorough version with additional examples as a 1984 journal paper [132]. That 1982 method is now called “\({(\text {SUPG})_{{82}}}\).” Several SUPG-like compressible-flow methods were developed after that. Taylor–Galerkin method [133], for example, is very similar, and under certain conditions is identical, to one of the versions of \({(\text {SUPG})_{{82}}}\). Another example of the subsequent SUPG-like compressible-flow methods in conservation variables is the streamline-diffusion method [134].

When the flow field is expected to have a discontinuity, SUPG and VMS methods are often supplemented with a discontinuity-capturing (DC) term, which is also called “shock-capturing term” in the context of compressible flows. Supplementing the SUPG with a DC term started as early as 1986 [135, 136]. The DC term played a significant role in the evolution of the compressible-flow SUPG. At its inception, \({(\text {SUPG})_{{82}}}\) was not used with a DC term, and the need for additional stabilization at the shocks was obvious from the test computations. Then \({(\text {SUPG})_{{82}}}\) was recast in entropy variables and supplemented with a DC term [137]. This, as expected, resulted in better shock profiles. In a 1991 ASME paper [138], \({(\text {SUPG})_{{82}}}\) was supplemented with a very similar DC term. All the test computations presented in [138, 139], which were among the most widely used test computations at that time, showed that, with the DC term, \({(\text {SUPG})_{{82}}}\) was very comparable in accuracy to \({(\text {SUPG})_{{82}}}\) recast in entropy variables. The stabilized and DC methods introduced in [136] for the advection–diffusion–reaction equation included safeguards to prevent “compounding”, i.e., augmentation of the SUPG effect by the DC effect when the advection and discontinuity directions are not orthogonal.

The compressible-flow ST-SUPG method [140] is essentially the same as the compressible-flow DSD/SST method, but without necessarily implying a mesh motion. The compressible-flow DSD/SST is a straightforward mixture of the DSD/SST concept and the compressible-flow SUPG. The first 3D MBI computation with the compressible-flow ST-SUPG was reported in 1996 [141] for two high-speed trains passing each other in a tunnel.

In a recent article [142], the ALE-SUPG formulation of compressible flows using pressure-primitive variables with DC was developed and applied to the simulation of a single-stage gas turbine. Weakly-enforced essential boundary condition and sliding-interface formulations for the compressible-flow equations were added in [142] to enable gas turbine simulations with boundary-layer flow and stator–rotor interaction. In [143], the formulation was applied to study off-design performance of the gas turbine stage, and in [144] it was used to simulate the full-rotorcraft aerodynamics. Here we build on the developments in [142] and introduce improvements to the DC, weakly-enforced essential boundary condition, and sliding-interface operators to increase the accuracy and robustness of the ALE-based compressible flow formulation, especially when it is used in combination with the Isogeometric Analysis (IGA) [21, 44, 45, 145, 146].

1.3 ALE Sliding-Interface method

The ALE sliding-interface (ALE-SI) method [21, 22] was introduced, in the context of incompressible-flow equations, to retain the desirable moving-mesh features of the ALE-VMS and ALE-SUPS in computations involving spinning solid surfaces, such as a turbine rotor. The mesh covering the spinning surface spins with it, retaining the high-resolution representation of the boundary layers, while the mesh on the other side of the SI remains unaffected. This is accomplished by adding to the ALE-VMS formulation interface terms that account for the compatibility conditions for the velocity and stress at the SI, accurately connecting the two sides of the solution. The ALE-SI has been applied to wind turbine aerodynamics and FSI [28,29,30,31] (more specifically, VAWTs [33, 34, 37, 38], floating wind turbines [39], wind turbines in atmospheric boundary layers [32,33,34], and fatigue damage in wind turbine blades [43]), hydrodynamics and FSI of a hydraulic arresting gear [61, 62], hydrodynamics of tidal-stream turbines with free-surface flow [63], bioinspired FSI for marine propulsion [65, 66], and compressible flows with emphasis on gas-turbine analysis [142, 143] and full-rotorcraft simulation [144].

The ST Slip Interface (ST-SI) method (the acronym “SI” will also refer to “slip interface”) was introduced in [88], also in the context of incompressible-flow equations. The interface terms added to the ST-VMS formulation are similar to those in the ALE-SI. An ST-SI version where the SI is between fluid and solid domains was also presented in [88]. The SI in that case is a “fluid–solid SI” rather than a standard “fluid–fluid SI” and enables weak enforcement of the Dirichlet boundary conditions for the fluid. The ST-SI introduced in [113] for the coupled incompressible-flow and thermal-transport equations retains the high-resolution representation of the thermo-fluid boundary layers near spinning solid surfaces. These ST-SI methods have been applied to aerodynamic analysis of VAWTs [33,34,35,36, 88, 89], thermo-fluid analysis of disk brakes [113], flow-driven string dynamics in turbomachinery [35, 36, 114,115,116], flow analysis of turbocharger turbines [117,118,119,120,121], flow around tires with road contact and deformation [106, 122,123,124,125], fluid films [125, 126], aerodynamic analysis of ram-air parachutes [41, 42, 127], and flow analysis of heart valves [57, 58, 102, 107,108,109] and ventricle-valve-aorta sequences [104]. In the ST-SI version presented in [88] the SI is between a thin porous structure and the fluid on its two sides. This enables dealing with the porosity in a fashion consistent with how the standard fluid–fluid SIs are dealt with and how the Dirichlet conditions are enforced weakly with fluid–solid SIs. This version also enables handling thin structures that have T-junctions. This method has been applied to incompressible-flow aerodynamic analysis of ram-air parachutes with fabric porosity [41, 42, 127]. The compressible-flow ST-SI methods were introduced in [128], including the version where the SI is between a thin porous structure and the fluid on its two sides. Compressible-flow porosity models were also introduced in [128]. These, together with the compressible-flow ST-SUPG, extended the ST computational analysis range to compressible-flow aerodynamics of parachutes with fabric and geometric porosities. That enabled ST computational flow analysis of the Orion spacecraft drogue parachute in the compressible-flow regime [128, 129].

1.4 Moving-mesh Isogeometric Analysis

The IGA [21, 44, 45, 145, 146] was proposed in an effort to “bridge the gap” between computer-aided design (CAD) and the finite element method. As such, at its foundation, the IGA, unlike other computational methods, has a strong link to CAD, which is routinely used for the geometric design of many objects, including vehicles and their mechanical components. For the discretization of the solution fields, the IGA uses B-splines, non-uniform rational B-splines (NURBS), and related basis-function technology, which are essentially piece-wise polynomial or rational functions joined with higher-order continuity. For many problems arising in both fluid and solid/structural mechanics, the higher-order approximation accuracy and continuity of the splines result in high per-degree-of-freedom accuracy necessary to resolve the spatially multiscale phenomena present in many physical systems. This yields superior robustness, necessary for engineering applications. Computational flow analysis with IGA basis functions in space enables more accurate representation of the geometry and increased accuracy in the flow solution. It accomplishes that with fewer control points, and consequently with larger effective element sizes. That in turn enables using larger time-step sizes while keeping the Courant number at a desirable level for good accuracy.

The success with IGA basis functions in space motivated the integration of the ST methods with isogeometric discretization, which is broadly called “ST-IGA.” The ST-IGA was introduced in [10]. Computations with the ST-VMS and ST-IGA were first reported in [10] in a 2D context, with IGA basis functions in space for flow past an airfoil, and in both space and time for the advection equation. Using higher-order basis functions in time enables deriving full benefit from using higher-order basis functions in space. This was demonstrated with the stability and accuracy analysis given in [10] for the advection equation.

The ST-IGA with IGA basis functions in time enables a more accurate representation of the motion of the solid surfaces and a mesh motion consistent with that. This was pointed out in [10, 11] and demonstrated in [90, 91, 93]. It also enables more efficient temporal representation of the motion and deformation of the volume meshes, and more efficient remeshing. These motivated the development of the ST/NURBS mesh update method (STNMUM) [90, 91, 93], with the name coined in [85]. The STNMUM has a wide scope that includes spinning solid surfaces. With the spinning motion represented by quadratic NURBS in time, and with sufficient number of temporal patches for a full rotation, the circular paths are represented exactly. A “secondary mapping” [2, 10, 11, 90] enables also specifying a constant angular velocity for invariant speeds along the circular paths. The ST framework and NURBS in time also enable, with the “ST-C” method, extracting a continuous representation from the computed data and, in large-scale computations, efficient data compression [106, 112,113,114,115,116, 147]. The STNMUM and the ST-IGA with IGA basis functions in time have been used in many 3D computations. The classes of problems solved are flapping-wing aerodynamics for an actual locust [2, 90,91,92], bioinspired MAVs [86, 87, 93, 94] and wing-clapping [95, 96], separation aerodynamics of spacecraft [80], aerodynamics of horizontal-axis [30, 85,86,87] and vertical-axis [33,34,35,36, 88, 89] wind turbines, thermo-fluid analysis of ground vehicles and their tires [41, 106, 112], thermo-fluid analysis of disk brakes [113], flow-driven string dynamics in turbomachinery [35, 36, 114,115,116], flow analysis of turbocharger turbines [117,118,119,120,121], and flow analysis of coronary arteries in motion [110].

The ST-IGA with IGA basis functions in space has been used in ST computational flow analysis of turbocharger turbines [117,118,119,120,121], flow-driven string dynamics in turbomachinery [35, 36, 115, 116], ram-air parachutes [41, 42, 127], spacecraft parachutes [129], aortas [57, 58, 102, 103], heart valves [57, 58, 102, 107,108,109], ventricle-valve-aorta sequences [104], coronary arteries in motion [110], tires with road contact and deformation [123,124,125], fluid films [125, 126], and VAWTs [35, 36, 89]. The image-based arterial geometries used in patient-specific arterial FSI computations do not come from the zero-stress state (ZSS) of the artery. A number of methods [2, 148,149,150,151,152,153,154,155,156,157,158] have been proposed for estimating the ZSS required in the computations. Using IGA basis functions in space is now a key part of some of the newest ZSS estimation methods [57, 156,157,158,159] and related shell analysis [160].

1.5 Complex-geometry NURBS mesh generation method

Mesh generation in the IGA, such as NURBS meshes generation, is not as established and straightforward as mesh generation in the standard discretization methods such as the finite differences and finite elements. To make the IGA-based flow and FSI computations even more powerful and more practical, the mesh generation has to be less arduous, more straightforward, more automated, and basically as established as it is now for the finite difference and finite element methods. A complex-geometry NURBS mesh generation method was introduced in [118] to make the ST-IGA use, and in a wider context the IGA use, more practical in computational flow analysis with complex geometries. The method is based on block-structured mesh generation with existing techniques, projection of that mesh to a NURBS mesh made of patches that correspond to the blocks, and recovery of the original model surfaces. The recovery of the original surfaces is to the extent they are suitable for accurate and robust fluid mechanics computations. The method is expected to retain the refinement distribution and element quality of the block-structured mesh that we start with. Because there are ample good techniques and software for generating block-structured meshes, the method makes complex-geometry mesh generation relatively easy.

Mesh-generation tests and mesh-quality studies reported in [118, 119] clearly demonstrated the good performance of the method. Practicality of the method in flow computations in real-world applications was also demonstrated in [118, 119], with computational analysis of a turbocharger turbine with exhaust manifold, a disk-gap-band parachute, and a human aorta with branches. The method was used in more detailed computation of the aorta in [57, 58, 102, 103] and turbocharger turbine in [120], with additional computational analysis in [121]. The method was shown to be very effective also in IGA-based computational flow analysis of other classes of problems, such as the pump-flow analysis part of the flow-driven string dynamics presented in [35, 36, 116], flow analysis of a tsunami-shelter VAWT [36, 89], and ventricle-valve-aorta flow analysis [104].

1.6 ALE-SI-IGA

An SI provides mesh generation flexibility in a general context by accurately connecting the two sides of the solution computed over nonmatching meshes. This type of mesh generation flexibility is especially valuable in complex-geometry flow computations with isogeometric discretization, removing the matching requirement between the NURBS patches without loss of accuracy. This feature was used, in the context of the ST-IGA and under the name “ST-SI-IGA”, in flow analysis of heart valves [57, 58, 102, 107,108,109], ventricle-valve-aorta flow analysis [104], turbocharger-turbine flow analysis [117,118,119,120,121], spacecraft parachute compressible-flow analysis [129], flow analysis around tires with road contact and deformation [124, 125], and flow analysis of a tsunami-shelter VAWT [36, 89]. It is also used, in the context of the ALE-IGA and under the name “ALE-SI-IGA”, in the gas turbine flow analysis presented here.

1.7 Stabilization and DC parameters and element lengths

In all the semi-discrete and ST stabilized and VMS methods discussed in the earlier subsections, an embedded stabilization parameter, almost universally known as “\(\tau \)”, plays a significant role (see [2]). This parameter involves a measure of the local length scale (also known as “element length”) and other parameters such as the element Reynolds and Courant numbers. The interface terms in the ALE-SI and ST-SI also involve element length, in the direction normal to the interface. Various element lengths and \(\tau \)s were proposed, starting with those in [5, 161] and [130,131,132], followed by the ones introduced in [135, 136]. In many cases, the element length was seen as an advection length scale, in the flow-velocity direction. The set of \(\tau \)s introduced in [130,131,132] in conjunction with \({(\text {SUPG})_{{82}}}\) is now called “\({{\tau }_{82}}\)”. The \(\tau \) definition introduced in [136], which is for the advective limit and is now called “\(\tau _{\mathrm {SUGN1}}\)” (and the corresponding element length is now called “\(h_{\mathrm {UGN}}\)”), automatically yields lower values for higher-order finite element basis functions (see [162, 163]). The \(\tau \) used in [138] with \({(\text {SUPG})_{{82}}}\) was a slightly modified version of \({{\tau }_{82}}\). Subsequent minor modifications of \({{\tau }_{82}}\) took into account the interaction between the DC and \({(\text {SUPG})_{{82}}}\) terms in a fashion similar to how it was done in [136] for the advection–diffusion–reaction equation. Until 2004, all these slightly modified versions of \({{\tau }_{82}}\) were always used with the same DC parameter, which was introduced in the 1991 ASME paper [138] and is now called “\({{\delta }_{91}}\).” This DC parameter was derived from the one given in [137] for the entropy variables.

Calculating the \(\tau \)s based on the element-level matrices and vectors was introduced in [164] in the context of the advection–diffusion equation and the Navier–Stokes equations of incompressible flows. These definitions are expressed in terms of the ratios of the norms of the matrices or vectors. They automatically take into account the local length scales, advection field and the element Reynolds number. The definitions based on the element-level vectors were shown [164, 165] to address the difficulties reported at small time-step sizes. A second element length scale, in the solution-gradient direction and called “\(h_{\mathrm {RGN}}\),” was introduced in 2001 [8, 166]. Recognizing this as a diffusion length scale, a new stabilization parameter for the diffusive limit, “\(\tau _{\mathrm {SUGN3}}\),” was introduced in [8, 167], to be used together with \(\tau _{\mathrm {SUGN1}}\) and “\(\tau _{\mathrm {SUGN2}}\),” the parameters for the advective and transient limits. For the stabilized ST methods, “\(\tau _{\mathrm {SUGN12}}\),” representing both the advective and transient limits, was also introduced in [8].

New ways of calculating the \(\tau \) and DC parameter to be used with \({(\text {SUPG})_{{82}}}\) were introduced in 2004 [167,168,169]. The new \(\tau \)s, now categorized under the label “\({{\tau }_{04}}\),” have a matrix structure for viscous flows and reduce to a scalar for inviscid flows. The new DC parameters were of two types: one defined in a style the Discontinuity-Capturing Directional Dissipation [8, 169, 170] parameter was defined, and one that is now called “\({\text {YZ}{\beta }}\)” DC parameter. The \({\text {YZ}{\beta }}\) DC parameter is residual-based, and it is simpler than \({{\delta }_{91}}\). It has options for smoother or sharper computed shocks. A number of 2D and 3D test computations with \({\text {YZ}{\beta }}\) DC were reported in [171,172,173]. These computations showed that in addition to being simpler than \({{\delta }_{91}}\), the \({\text {YZ}{\beta }}\) DC parameter was superior in accuracy. The computations reported in [171,172,173] were based on the compressible-flow ST SUPG.

Some new options for the stabilization parameters used with the SUPS and VMS were proposed in [9, 84, 85, 90, 112]. These include a fourth \(\tau \) component, “\(\tau _{\mathrm {SUGN4}}\)” [112], which was introduced for the VMS, considering one of the two extra stabilization terms the VMS has compared to the SUPS. They also include stabilization parameters [112] for the thermal-transport part of the VMS for the coupled incompressible-flow and thermal-transport equations.

Some of the stabilization parameters described in this subsection were also used in computations with other SUPG-like methods, such as the computations reported in [64, 174,175,176,177,178,179,180,181,182,183,184,185,186].

1.8 Direction-dependent element lengths for isogeometric discretization

The stabilization and DC parameters and element lengths discussed in the previous subsection were all originally intended for finite element discretization but quite often used also for isogeometric discretization. The element lengths and stabilization and DC parameters introduced in [187] target isogeometric discretization but are also applicable to finite element discretization. They were introduced in the context of the advection–diffusion equation and the Navier–Stokes equations of incompressible flows. The direction-dependent element length expression was outcome of a conceptually simple derivation. The key components of the derivation are mapping the direction vector from the physical ST element to the parent ST element, accounting for the discretization spacing along each of the parametric coordinates, and mapping what has been obtained in the parent element back to the physical element. The test computations presented in [187] for pure-advection cases, including those with discontinuous solution, showed that the element lengths and stabilization parameters proposed result in good solution profiles. The test computations also showed that the “UGN” parameters give reasonably good solutions even with NURBS basis functions. The stabilization parameters given in [124], which were mostly from [187], were the latest ones designed in conjunction with the ST-VMS.

The direction-dependent local-length-scale expressions introduced in [188] for B-spline meshes are outcome of a clear and convincing derivation and more suitable for element-level evaluation. The new expressions are based on a preferred parametric space, instead of the standard integration parametric space, and a transformation tensor that represents the relationship between the integration and preferred parametric spaces. We do not want the element splitting to influence the actual discretization, which is represented by the control or nodal points. Therefore, the local length scale should be invariant with respect to element splitting. That invariance is a crucial requirement in element definition, because unlike the element definition choices based on implementation convenience or computational efficiency, it influences the solution. It was proven in [189] that the local-length-scale expressions introduced in [188] meet that requirement.

The direction-dependent local-length-scale expressions introduced in [187, 188] have been used in computational flow analysis of turbocharger turbines [120, 121], compressible-flow spacecraft parachutes [129], tires with road contact and deformation [124, 125], fluid films [125, 126], heart valves [109], ventricle-valve-aorta sequences [104], and tsunami-shelter VAWTs [89].

1.9 Outline of the remaining sections

The NURBS mesh generation method is described in Sect. 2. The governing equations of compressible flows, including their quasi-linear and ALE forms, are summarized in Sect. 3. The compressible-flow computational method, including the SUPG, DC, weak-boundary-condition and SI operators, is presented in Sect. 4. The gas turbine geometry is described in Sect. 5. The meshes for the flow and structure analyses are presented in Sect. 6, together with the mesh quality evaluations. The results from the flow simulations are presented in Sect. 7. Structural mechanics simulation of the rotor free vibration is presented in Sect. 8. In Sect. 9, as an example of calculating the direction-dependent local length scales in isogeometric discretization, we calculate the Courant number in the turbine computation. The concluding remarks are given in Sect. 10.

2 NURBS mesh generation method

For completeness, we include, mostly from [118, 119], a shortened description of the NURBS mesh generation method. First we provide a brief introduction to the basic concepts and terminologies of NURBS meshes. Figure 1 shows, as an example, a NURBS control mesh for a stator blade of a turbocharger turbine, depicting the NURBS patches and control points. Figure 2 shows the corresponding physical mesh, depicting the physical patches and elements. The relationship between the control and physical meshes is given by NURBS basis functions, defined on each patch by the knot vectors of the patch, with each space direction having its own knot vector.

Fig. 1
figure 1

Cross-section of a NURBS control mesh around a stator blade of a turbocharger turbine. The red circles represent the control points, and the different-colored areas are the NURBS patches. (Color figure online)

Fig. 2
figure 2

Cross-section of the physical mesh corresponding to the control mesh in Fig. 1. The lines represent the element boundaries

2.1 Basic method

We start with a block-structured mesh (grid). Such meshes are very common in finite difference and finite volume computations. The mesh quality can be measured in terms of the grid point distribution, grid line orthogonality, element aspect ratio, and the adjacent-element-length ratio. Generating high-quality meshes requires some skills and experience, but there are ample good techniques and software for generating block-structured meshes. We assume that the block-structured mesh we start with is the outcome of such techniques or software and is of high quality. The mesh consists of trilinear elements. We see each block as a precursor to a NURBS patch. The time it would take to generate the block-structured mesh would be the time the user would spend on generating the finite difference, finite volume or finite element mesh. Beyond that, the NURBS mesh generation process is fully automated and takes essentially no time.

The second step involves a sequence of projections. For those projections, we define a common parametric space between each block and the corresponding patch. We choose the parametric space to be \(\pmb {\zeta } \in [0, 1]^{{n_{\mathrm {pd}}}}\), where \({n_{\mathrm {pd}}}\) is the number of parametric dimensions. Then the knot vector of the patch for a given direction would be of the form

$$\begin{aligned} \varXi = \{\underbrace{0, 0,\ldots 0}_{p+1}, \ldots , \underbrace{1, \ldots , 1}_{p+1}\}, \end{aligned}$$
(1)

where p is the polynomial order for the NURBS basis functions used in that direction. Two methods were proposed in [118, 119] to determine the knot values. We refer the reader interested in knowing those methods to [118, 119].

2.1.1 Projections

For each patch, the projections are done hierarchically. First the control points at the corners of the patch are set to the same locations as the corner grid points of the block. Then the edges between the corners are projected:

$$\begin{aligned} \int _{0}^1 {\mathbf {w}}^h\cdot \left( {\mathbf {x}}^h - \pmb {\chi }^h \right) \mathrm {d}\zeta = 0. \end{aligned}$$
(2)

Here \(\pmb {\chi }^h \in \varOmega \subset {\mathbb {R}}^{n_{\mathrm {sd}}}\), where \({n_{\mathrm {sd}}}\) is the number of space dimensions, is the position representation in the block, \({\mathbf {x}}^h \in \varOmega \) is the position representation in the patch, and \({\mathbf {w}}^h\) is the test function of the projection. The parametric coordinate \(\zeta \) used in the integration is a general representation for all edges. Next the surfaces between the edges are projected:

$$\begin{aligned} \int _0^1 \int _{0}^1 {\mathbf {w}}^h\cdot \left( {\mathbf {x}}^h - \pmb {\chi }^h \right) \mathrm {d}\zeta _1 \mathrm {d}\zeta _2 = 0. \end{aligned}$$
(3)

Here, the combination of the parametric coordinates \(\zeta _1\) and \(\zeta _2\) is a general representation for all surfaces. The projection sequence is completed with the projection of the volumes between the surfaces:

$$\begin{aligned} \int _0^1 \int _0^1 \int _{0}^1 {\mathbf {w}}^h\cdot \left( {\mathbf {x}}^h - \pmb {\chi }^h \right) \mathrm {d}\zeta _1 \mathrm {d}\zeta _2 \mathrm {d}\zeta _3 = 0. \end{aligned}$$
(4)

2.1.2 Merging the patches

For two adjacent blocks, the projections described in Sect. 2.1.1 result in the same control point positions over the surface they share, provided that the two blocks have the same knot vectors over the shared surface. This might happen automatically or require some additional steps, depending on the method used in determining the knot values of the parametric space. The control point variables are declared to be the same between the adjacent patches over the shared surface, which results in \(C^0\) continuity for the basis functions across the surface.

Remark 1

Alternatively, as proposed and used in [108, 117], we can declare the control point variables over the shared surface to be separate, resulting in \(C^{-1}\) continuity, and connect them with an SI.

2.2 Element reduction

We know from our experience that, to generate good quality NURBS meshes with the method proposed, in many cases we may need more elements in the finite element mesh than the target number of NURBS elements. Therefore we apply a reduction factor r to the number of elements in the block, which we can possibly be different for each direction in the block. However, if we use different factors in different directions, two adjacent blocks must have the same reduction factor in each of the two directions of the surface they share. To make the number of elements an integer, after applying the factor r, we raise the value to the next integer. After the element reduction, we use the modified versions of the methods for determining the knot values of the parametric space, and we refer the reader interested in knowing how the modifications are done to [118, 119].

2.3 Methods for recovering the exact surfaces

In the NURBS mesh generation method we have, we can recover the exact surfaces, instead of just relying on the surfaces represented by the block-structured mesh.

2.3.1 Special method for arc surfaces

Suppose we have a finite element mesh with a boundary that is an arc in the exact representation (see Fig. 3). We first represent the arc by three control points and the corresponding quadratic NURBS basis functions. The arc template is shown in Fig. 4, and the corresponding knot vector and weights are

$$\begin{aligned} \varXi&= \left\{ 0,0,0, 1,1,1\right\} \end{aligned}$$
(5)

and

$$\begin{aligned} w^1&= 1,&w^2&= \cos q,&w^3&= 1. \end{aligned}$$
(6)

For details, see [2, 11]. Figure 5 shows the NURBS representation of the arc, superimposed on the finite element mesh. Then we insert to the knot vector given by Eq. (5) the knots of the initial NURBS mesh. From that, we obtain the new control points and weights representing the boundary. The new mesh can be seen in Fig. 6.

Fig. 3
figure 3

A finite element mesh that includes a boundary that is an arc (red curve) in the exact representation. (Color figure online)

Fig. 4
figure 4

The arc template with three control points representing an arc with angle 2q

Fig. 5
figure 5

NURBS representation of the arc, superimposed on the finite element mesh, where the three red circles are the control points. (Color figure online)

Fig. 6
figure 6

NURBS control mesh with the exact representation of the arc boundary

2.3.2 General method for CAD surfaces

If the CAD surface basis function space is a subset of our NURBS mesh basis function space, we can recover the exact surface by knot insertion to the CAD space to obtain our NURBS space. If not, the best we can do is to project the CAD surface to our NURBS space.

3 Governing equations of compressible flows

The Navier–Stokes equations of compressible flows are often expressed using the vector of conservation variables \(\tilde{{\mathbf {U}}}\):

$$\begin{aligned} \tilde{{\mathbf {U}}} = \begin{bmatrix} \rho \\ \rho u_1 \\ \rho u_2 \\ \rho u_3 \\ \rho e_\text {tot} \\ \end{bmatrix}\text {,} \end{aligned}$$
(7)

where \(\rho \) is the density, \(u_i\) is the \(i^{\mathrm{th}}\) velocity component, \(i=1,\ldots ,{n_{\mathrm {sd}}}\), \(e_{\text {tot}} = e +\Vert {\mathbf {u}}\Vert ^2/2\), and e is the internal-energy density.

We also introduce the vector of pressure-primitive variables \({\mathbf {Y}}\):

$$\begin{aligned} {\mathbf {Y}} = \begin{bmatrix} p \\ u_1 \\ u_2 \\ u_3 \\ T \\ \end{bmatrix}\text {,} \end{aligned}$$
(8)

where p and T are the pressure and temperature. Pressure, density, and temperature are related through the equation of state. Here we use the ideal-gas equation of state:

$$\begin{aligned} p = \rho R T\text {,} \end{aligned}$$
(9)

where R is the ideal-gas constant. We assume a calorically perfect gas and define the internal-energy density as

$$\begin{aligned} e = c_\text {v} T\text {,} \end{aligned}$$
(10)

where \(c_\text {v} = R/(\gamma -1)\) is the specific heat at constant volume, and \(\gamma \) is the heat capacity ratio.

Throughout the article, we use \((\cdot )_{,t}\) to denote a partial time derivative holding the spatial position \({\mathbf {x}}\) fixed, and we use \((\cdot )_{,i}\) to denote the spatial gradient.

With the above definitions, the Navier–Stokes equations of compressible flows, which represent the conservation of mass, momentum, and energy, can be written in terms of \(\tilde{{\mathbf {U}}}\) as

$$\begin{aligned} \widetilde{\mathbf {Res}} = \tilde{{\mathbf {U}}}_{,t}+\tilde{{\mathbf {F}}}^{\mathrm{adv}}_{i,i} - \tilde{{\mathbf {F}}}^{\mathrm{diff}}_{i,i} - \tilde{{\mathbf {S}}} = {\mathbf {0}}\text {,} \end{aligned}$$
(11)

where \(\tilde{{\mathbf {F}}}^{\mathrm{adv}}_{i}\) and \(\tilde{{\mathbf {F}}}^{\mathrm{diff}}_{i}\) are the vectors of advective and diffusive fluxes, \(\tilde{{\mathbf {S}}}\) is the source term, and \(\widetilde{\mathbf {Res}}\) is the strong-form residual.

The fluxes are defined as

$$\begin{aligned} \tilde{{\mathbf {F}}}^{\mathrm{adv}}_i&= \begin{bmatrix} \rho u_i \\ \rho u_i u_1 + p\delta _{1i}\\ \rho u_i u_2 + p\delta _{2i}\\ \rho u_i u_3 + p\delta _{3i}\\ \rho u_i \left( e + \Vert {\mathbf {u}}\Vert ^2/2\right) + p u_i\\ \end{bmatrix}\text {,} \end{aligned}$$
(12)
$$\begin{aligned} \tilde{{\mathbf {F}}}^{\mathrm{diff}}_i&= \begin{bmatrix} 0 \\ \tau _{1i}\\ \tau _{2i}\\ \tau _{3i}\\ \tau _{ij}u_j-q_i\\ \end{bmatrix}\text {,} \end{aligned}$$
(13)

where \(\delta _{ij}\) is the Kronecker delta. The viscous stress \(\tau _{ij}\) and heat flux \(q_i\) are given as

$$\begin{aligned} \tau _{ij}&= \lambda u_{k,k}\delta _{ij}+\mu \left( u_{i,j}+u_{j,i}\right) \text {,} \end{aligned}$$
(14)
$$\begin{aligned} q_i&= - \kappa T_{,i}\text {,} \end{aligned}$$
(15)

where \(\mu \) is the dynamic viscosity, \(\lambda = - 2 \mu /3\) based on Stokes’ hypothesis, and \(\kappa \) is the thermal conductivity.

Introducing the mass and momentum conservation into the energy equation of Eq. (11), we get

$$\begin{aligned} \mathbf {Res} = {\mathbf {U}}_{,t}+{\mathbf {F}}^{\mathrm{adv}}_{i,i} +{\mathbf {F}}^{\mathrm{sp}} - {\mathbf {F}}^{\mathrm{diff}}_{i,i} -{\mathbf {S}} = {\mathbf {0}}\text {,} \end{aligned}$$
(16)

where

$$\begin{aligned} {\mathbf {U}}&= \begin{bmatrix} \rho \\ \rho u_1 \\ \rho u_2 \\ \rho u_3 \\ \rho e \\ \end{bmatrix}\text {,} \end{aligned}$$
(17)
$$\begin{aligned} {\mathbf {F}}^{\mathrm{adv}}_i&= \begin{bmatrix} \rho u_i \\ \rho u_i u_1 + p\delta _{1i}\\ \rho u_i u_2 + p\delta _{2i}\\ \rho u_i u_3 + p\delta _{3i}\\ \rho u_i e \\ \end{bmatrix}\text {,} \end{aligned}$$
(18)
$$\begin{aligned} {\mathbf {F}}^{\mathrm{diff}}_i&= \begin{bmatrix} 0\\ \tau _{1i}\\ \tau _{2i}\\ \tau _{3i}\\ -q_i\\ \end{bmatrix}\text {,} \end{aligned}$$
(19)
$$\begin{aligned} {\mathbf {F}}^{\mathrm{sp}}&= \begin{bmatrix} 0 \\ 0 \\ 0 \\ 0\\ p u_{i,i} - \tau _{ij}u_{j,i}\\ \end{bmatrix} \end{aligned}$$
(20)

is the contribution of the stress power in the energy equation, and \(\mathbf {Res}\) is the modified strong-form residual.

3.1 Quasi-linear and ALE forms of the governing equations

The quasi-linear form of Eq. (16) is

$$\begin{aligned} {\mathbf {U}}_{,t}+\hat{{\mathbf {A}}}_i{\mathbf {U}}_{,i} + \hat{{\mathbf {A}}}_i^{\mathrm{sp}}{\mathbf {U}}_{,i} - \left( \hat{{\mathbf {K}}}_{ij}{\mathbf {U}}_{,j}\right) _{,i} - {\mathbf {S}} = {\mathbf {0}}\text {,} \end{aligned}$$
(21)

where \(\hat{{\mathbf {A}}}_i = \tfrac{\partial {\mathbf {F}}^{\mathrm{adv}}_i}{\partial {\mathbf {U}}}\), \(\hat{{\mathbf {A}}}^{\mathrm{sp}}_i\) is such that \(\hat{{\mathbf {A}}}^{\mathrm{sp}}_i {\mathbf {U}}_{,i} = {\mathbf {F}}^{\mathrm{sp}}\), and \(\hat{{\mathbf {K}}}_{ij}\) is such that \(\hat{{\mathbf {K}}}_{ij}{\mathbf {U}}_{,j} = {\mathbf {F}}^{\mathrm{diff}}_i\).

The quasi-linear form of Eq. (16) in terms of \({\mathbf {Y}}\) is

$$\begin{aligned} {\mathbf {A}}_0{\mathbf {Y}}_{,t}+{\mathbf {A}}_i{\mathbf {Y}}_{,i} +{\mathbf {A}}_i^{\mathrm{sp}}{\mathbf {Y}}_{,i}- \left( {\mathbf {K}}_{ij}{\mathbf {Y}}_{,j}\right) _{,i}- {\mathbf {S}} = {\mathbf {0}}\text {,} \end{aligned}$$
(22)

where \({\mathbf {A}}_0 = \tfrac{\partial {\mathbf {U}}}{\partial {\mathbf {Y}}}\), \({\mathbf {A}}_i = \tfrac{\partial {\mathbf {F}}^{\mathrm{adv}}_i}{\partial {\mathbf {Y}}} = \tfrac{\partial {\mathbf {F}}^{\mathrm{adv}}_i}{\partial {\mathbf {U}}}\tfrac{\partial {\mathbf {U}}}{\partial {\mathbf {Y}}} = \hat{{\mathbf {A}}}_i{\mathbf {A}}_0\), \({\mathbf {A}}^{\mathrm{sp}}_i\) is such that \({\mathbf {A}}^{\mathrm{sp}}_i {\mathbf {Y}}_{,i} = {\mathbf {F}}^{\mathrm{sp}}\), and \({\mathbf {K}}_{ij}\) is such that \({\mathbf {K}}_{ij}{\mathbf {Y}}_{,j} = {\mathbf {F}}^{\mathrm{diff}}_i\). Explicit expressions for the matrices appearing in the quasi-linear forms above can be found in [142].

With the space–time Piola transformation and following the steps in [45], the convective ALE form of Eq. (16) is written as

$$\begin{aligned} \left. {\mathbf {U}}_{,t}\right| _{\hat{{\mathbf {x}}}} +{\mathbf {F}}^{\mathrm{adv}}_{i,i} +{\mathbf {F}}^{\mathrm{sp}} - {\hat{u}}_i{\mathbf {U}}_{,i} - {\mathbf {F}}^{\mathrm{diff}}_{i,i} - {\mathbf {S}} = {\mathbf {0}} \text {,} \end{aligned}$$
(23)

where \({\hat{u}}_i\) is the \(i^{\mathrm{th}}\) component of the domain velocity \(\hat{{\mathbf {u}}}\) and \(\left. (\cdot )_{,t}\right| _{\hat{{\mathbf {x}}}}\) denotes a partial time derivative holding the referential position \(\hat{{\mathbf {x}}}\) fixed. The quasi-linear form of Eq. (23) in terms of \({\mathbf {U}}\) is

$$\begin{aligned} \left. {\mathbf {U}}_{,t}\right| _{\hat{{\mathbf {x}}}} +\left( \hat{{\mathbf {A}}}_i +\hat{{\mathbf {A}}}^{\mathrm{sp}}_i - {\hat{u}}_i {\mathbf {I}}\right) {\mathbf {U}}_{,i} - \left( \hat{{\mathbf {K}}}_{ij}{\mathbf {U}}_{,j}\right) _{,i}- {\mathbf {S}} = {\mathbf {0}} \text {,} \end{aligned}$$
(24)

and in terms of \({\mathbf {Y}}\),

$$\begin{aligned} \left. {\mathbf {A}}_0{\mathbf {Y}}_{,t}\right| _{\hat{{\mathbf {x}}}}+\left( {\mathbf {A}}_i+{\mathbf {A}}^{\mathrm{sp}}_i-{\hat{u}}_i{\mathbf {A}}_0\right) {\mathbf {Y}}_{,i} - \left( {\mathbf {K}}_{ij}{\mathbf {Y}}_{,j}\right) _{,i} - {\mathbf {S}} = {\mathbf {0}}\text {.} \end{aligned}$$
(25)

The corresponding strong-form residual is

$$\begin{aligned} \mathbf {Res} = \left. {\mathbf {A}}_0{\mathbf {Y}}_{,t}\right| _{\hat{{\mathbf {x}}}}+\left( {\mathbf {A}}_i+{\mathbf {A}}^{\mathrm{sp}}_i-{\hat{u}}_i{\mathbf {A}}_0\right) {\mathbf {Y}}_{,i} - \left( {\mathbf {K}}_{ij}{\mathbf {Y}}_{,j}\right) _{,i}- {\mathbf {S}}\text {.} \end{aligned}$$
(26)

For notational convenience, we define the matrices \(\hat{{\mathbf {A}}}_i^{\mathrm{ALE}} = \hat{{\mathbf {A}}}_i - {\hat{u}}_i{\mathbf {I}}\) and \({\mathbf {A}}_i^{\mathrm{ALE}} = {\mathbf {A}}_i - {\hat{u}}_i{\mathbf {A}}_0\).

4 Compressible-flow computational method

Let \(\varOmega \subset {\mathbb {R}}^{n_{\mathrm {sd}}}\) denote the domain in the current configuration, and let \(\varGamma \) be its boundary. In addition, let \({\mathcal {S}}\) and \({\mathcal {V}}\) denote the vector-valued pressure-primitive trial- and test-function spaces, respectively. The weak form of Eq. (25) is stated as follows: find \({\mathbf {Y}}\in {\mathcal {S}}\), such that \(\forall {\mathbf {W}}\in {\mathcal {V}}\),

$$\begin{aligned} B\left( {\mathbf {W}},{\mathbf {Y}}\right) - F\left( {\mathbf {W}}\right) = 0\text {,} \end{aligned}$$
(27)

where

$$\begin{aligned} B\left( {\mathbf {W}},{\mathbf {Y}}\right)&= \int _{\varOmega }{\mathbf {W}}\cdot \left( \left. {\mathbf {A}}_0{\mathbf {Y}}_{,t}\right| _{\hat{{\mathbf {x}}}}+\left( {\mathbf {A}}_i^{\mathrm{ALE}} +{\mathbf {A}}^{\mathrm{sp}}_i\right) {\mathbf {Y}}_{,i} \right) ~\mathrm {d}\varOmega \nonumber \\&\quad +\, \int _{\varOmega }{\mathbf {W}}_{,i}\cdot {\mathbf {K}}_{ij}{\mathbf {Y}}_{,j}~\mathrm {d}\varOmega \text {,} \end{aligned}$$
(28)
$$\begin{aligned} F\left( {\mathbf {W}}\right)&= \int _{\varOmega }{\mathbf {W}}\cdot {\mathbf {S}}~\mathrm {d}\varOmega +\int _{\varGamma _\text {h}}{\mathbf {W}}\cdot {\mathbf {H}}~\mathrm {d}\varGamma \text {.} \end{aligned}$$
(29)

Here \(\varGamma _\text {h}\) is the subset of \(\varGamma \) where the viscous stress and heat flux boundary conditions \({\mathbf {H}}\) are enforced weakly.

Remark 2

In compressible-flow computations, at the outflow boundary one often sets the pressure, viscous stress, and heat flux. One way to accomplish this is to set the nodal or control-point pressure to the desired values, and enforce the remaining conditions weakly by defining \({\mathbf {H}}\) as

$$\begin{aligned} {\mathbf {H}}= \begin{bmatrix} 0 \\ (\tau _{1i} n_i)_{\text {\tiny out}} \\ (\tau _{2i} n_i)_{\text {\tiny out}} \\ (\tau _{3i} n_i)_{\text {\tiny out}} \\ -(q_i n_i)_{\text {\tiny out}} \end{bmatrix}\text {.} \end{aligned}$$
(30)

An alternative approach, which we use here, is to relax the strong imposition of the outlet pressure and define \({\mathbf {H}}\) as

$$\begin{aligned} {\mathbf {H}}= \begin{bmatrix} 0 \\ -(p-p_{\text {\tiny out}}) n_1 + (\tau _{1i} n_i)_{\text {\tiny out}} \\ -(p-p_{\text {\tiny out}}) n_2 + (\tau _{2i} n_i)_{\text {\tiny out}} \\ -(p-p_{\text {\tiny out}}) n_3 + (\tau _{3i} n_i)_{\text {\tiny out}} \\ -(q_i n_i)_{\text {\tiny out}} \end{bmatrix}\text {.} \end{aligned}$$
(31)

Here \(n_i\) is the ith component of outward unit surface normal vector \({\mathbf {n}}\), and the subscript “out” denotes the prescribed outflow quantities.

Equations (27)–(29) are used as a point of departure to develop a formulation suitable for the discretization using the IGA or finite elements. In what follows, we present the additional method components, which are the SUPG stabilization, DC, weak enforcement of the essential boundary conditions, and the SI method.

4.1 SUPG operator

We assume the time-dependent domain \(\varOmega \) is divided into \(N_{el}\) spatial finite elements each denoted by \(\varOmega ^e\), and define the SUPG operator as

$$\begin{aligned} B_{\text {SUPG}}\left( {\mathbf {W}},{\mathbf {Y}}\right) = \sum _{e=1}^{N_{el}} \int _{\varOmega ^e} \left( \left( {{\mathbf {A}}^{\mathrm{ALE}}_i}\right) ^{\mathrm{T}}{\mathbf {W}}_{,i}\right) \cdot \pmb {\tau }_{\text {SUPG}} \mathbf {Res}~\mathrm {d}\varOmega \text {.} \end{aligned}$$
(32)

This SUPG operator is an extension of \({(\text {SUPG})_{{82}}}\) (see Sect. 1.2) from its original version with the scalar stabilization parameter \({{\tau }_{82}}\) (see Sect. 1.7) to a version with a matrix stabilization parameter \(\pmb {\tau }_{\text {SUPG}}\). When working with \({\mathbf {Y}}\), the stabilization parameter is

$$\begin{aligned} \pmb {\tau }_{\text {SUPG}} = {\mathbf {A}}_0^{-1}\hat{\pmb {\tau }}_{\text {SUPG}}\text {,} \end{aligned}$$
(33)

where \(\hat{\pmb {\tau }}_{\text {SUPG}}\) is the stabilization parameter when working with \({\mathbf {U}}\), which was given in [190] as

$$\begin{aligned} \hat{\pmb {\tau }}_{\text {SUPG}} = \left( \frac{4}{\varDelta t ^2} {\mathbf {I}} + G_{ij}\hat{{\mathbf {A}}}_i^{\mathrm{ALE}}\hat{{\mathbf {A}}}_j^{\mathrm{ALE}} + C_I~G_{ij} G_{kl} \hat{{\mathbf {K}}}_{ik}\hat{{\mathbf {K}}}_{jl}\right) ^{-\frac{1}{2}}\text {.} \end{aligned}$$
(34)

Here \(\varDelta t\) is the time-step size, \(C_I\) is a positive constant derived from an appropriate element-wise inverse estimate [191], and \(G_{ij}\) are the components of the element metric tensor. The expression in Eq. (34) requires calculation of the square-root-inverse of a \(5{\times }5\) matrix in 3D, which is done iteratively using a modified version of the Denman–Beavers algorithm [192, 193]. More details can be found in [142].

4.2 DC operator

Following the approach for the SUPG operator, we first define the DC operator for working with \({\mathbf {U}}\):

$$\begin{aligned} \sum _{e=1}^{N_{el}}\int _{\varOmega ^e}{\mathbf {W}}_{,i} \cdot \hat{{\mathbf {K}}}_{\text {DC}} {\mathbf {U}}_{,i}~\mathrm {d}\varOmega \text {,} \end{aligned}$$
(35)

where \(\hat{{\mathbf {K}}}_{\text {DC}}\) is the matrix DC parameter. Changing the variables we are working with from \({\mathbf {U}}\) to \({\mathbf {Y}}\) gives

$$\begin{aligned} \sum _{e=1}^{N_{el}}\int _{\varOmega ^e}{\mathbf {W}}_{,i} \cdot \hat{{\mathbf {K}}}_{\text {DC}} {\mathbf {A}}_0{\mathbf {Y}}_{,i}~\mathrm {d}\varOmega \text {,} \end{aligned}$$
(36)

which, in turn, defines the matrix DC parameter for working with \({\mathbf {Y}}\):

$$\begin{aligned} {\mathbf {K}}_{\text {DC}} = \hat{{\mathbf {K}}}_{\text {DC}} {\mathbf {A}}_0\text {.} \end{aligned}$$
(37)

We assume a diagonal form for \(\hat{{\mathbf {K}}}_{\text {DC}}\):

$$\begin{aligned} \hat{{\mathbf {K}}}_{\text {DC}} = \text {diag}\left( {\hat{\kappa }}_\text {C},{\hat{\kappa }}_\text {M},{\hat{\kappa }}_\text {M},{\hat{\kappa }}_\text {M},{\hat{\kappa }}_\text {E}\right) \text {,} \end{aligned}$$
(38)

where

$$\begin{aligned} {\hat{\kappa }}_\text {C}&= \min \left( C_\text {C}\frac{h \left\| \mathbf {Res}\right\| _w}{\left\| \pmb {\nabla }{\mathbf {U}}\right\| _w}, {\hat{\kappa }}_\text {cap}\right) \text {,} \end{aligned}$$
(39)
$$\begin{aligned} {\hat{\kappa }}_\text {M}&= \min \left( C_\text {M}\frac{h \left\| \mathbf {Res}\right\| _w}{\left\| \pmb {\nabla }{\mathbf {U}}\right\| _w}, {\hat{\kappa }}_\text {cap}\right) \text {,} \end{aligned}$$
(40)
$$\begin{aligned} {\hat{\kappa }}_\text {E}&=\min \left( C_\text {E}\frac{h \left\| \mathbf {Res}\right\| _w}{\left\| \pmb {\nabla }{\mathbf {U}}\right\| _w}, {\hat{\kappa }}_\text {cap}\right) \text {.} \end{aligned}$$
(41)

Here h is the element length, \(C_\text {C}\), \(C_\text {M}\), and \(C_\text {E}\) are \({\mathcal {O}}(1)\) positive constants, \(\left\| \mathbf {Res} \right\| _w\) and \(\left\| \pmb {\nabla }{\mathbf {U}}\right\| _w\) are the weighted norms

$$\begin{aligned} \left\| \mathbf {Res}\right\| _w&= c^2\left| \mathrm {Res}_1\right| +\Vert {\mathbf {u}}\Vert \left\| \mathbf {Res}_{2:{n_{\mathrm {sd}}}+1}\right\| +\left| \mathrm {Res}_{{n_{\mathrm {sd}}}+2}\right| \text {,} \end{aligned}$$
(42)
$$\begin{aligned} \left\| \pmb {\nabla }{\mathbf {U}}\right\| _w&= c^2\left\| \pmb {\nabla }{U}_1\right\| +\Vert {\mathbf {u}}\Vert \left\| \pmb {\nabla }{\mathbf {U}}_{2:{n_{\mathrm {sd}}}+1}\right\| +\left\| \pmb {\nabla }{U}_{{n_{\mathrm {sd}}}+2}\right\| \text {,} \end{aligned}$$
(43)

\({\hat{\kappa }}_\text {cap}\) is the maximum value of the DC parameter:

$$\begin{aligned} {\hat{\kappa }}_\text {cap} = \left( \left( u_i-{\hat{u}}_i\right) \breve{G}_{ij}\left( {u}_j-{\hat{u}}_j\right) + c^2 \breve{G}_{ii}\right) ^{\frac{1}{2}}\text {,} \end{aligned}$$
(44)

where \(\left[ \breve{G}_{ij}\right] = \left[ G_{ij}\right] ^{-1}\), and c is the acoustic speed.

Remark 3

Note that the weighted norm appropriately scales the components that have different dimensions.

Remark 4

The DC parameter upper bound or “cap”, \({\hat{\kappa }}_\text {cap}\) is a multi-dimensional generalization of the upwinding viscosity \(h(u+c)/2\). While it is expected that, on average, the residual-based definition of the DC parameter will stay well below the upwinding limit, the division by the gradient norm can lead to local spikes, which are mitigated by the cap. The cap idea was introduced and successfully employed in [194], a recent reference focusing on developing residual-based shock-capturing methods for solids. We also note that the introduction of the cap reduces the degree of nonlinearity associated with the DC terms and, as a result, improves convergence of the Newton–Raphson iterations.

Remark 5

The DC parameter originates from the “CAU DC” [195], which, in turn, is just an extension of \(\delta _{91}\) (see Sect. 1.7), originally designed in the context of computing steady-state solutions, from its form based on the steady-state residual to its form based on the time-dependent residual. The DC parameter may also be viewed as YZ\(\beta \) DC with \(\beta =1\).

4.3 Weak-boundary-condition operator

Weakly-enforced essential boundary conditions act as near-wall models for under-resolved boundary-layer flows while converging to their strongly-enforced counterparts at optimal rate with mesh refinement. Here we develop an improved, relative to [142], weak-boundary-condition formulation for compressible flows. The essential boundary conditions for the velocity and temperature are enforced on \(\varGamma _\text {D}\in \varGamma \). Let \({\mathbf {W}}=[q\; {\mathbf {w}}^{\mathrm{T}}\; w_\theta ]^\mathrm{T}\) be the vector of test functions with \({\mathbf {w}} = [w_1\; w_2\; w_3]^\mathrm{T}\). The weak-boundary-condition operator is given as

$$\begin{aligned}&\nonumber B_{\text {WBC}}\left( {\mathbf {W}},{\mathbf {Y}}\right) = \\&\quad \nonumber -\,\int _{\varGamma _\text {D}}{\mathbf {W}}\cdot \{\hat{{\mathbf {A}}}_\text {n}\}_{-}\left( {\mathbf {U}}({\mathbf {Y}})-{\mathbf {G}}\right) ~\mathrm {d}\varGamma \\&\quad \nonumber -\,\int _{\varGamma _\text {D}} {\mathbf {w}} \cdot \left( \mu \left( \pmb {\nabla }{\mathbf {u}}+\pmb {\nabla }^{\mathrm{T}}{\mathbf {u}}\right) + \lambda (\pmb {\nabla }\cdot {\mathbf {u}}) {\mathbf {I}} \right) {\mathbf {n}}~\mathrm {d}\varGamma \\&\quad \nonumber -\,\int _{\varGamma _\text {D}} \left( \mu \left( \pmb {\nabla }{\mathbf {w}}+\pmb {\nabla }^{\mathrm{T}}{\mathbf {w}}\right) + \lambda (\pmb {\nabla }\cdot {\mathbf {w}}) {\mathbf {I}} \right) {\mathbf {n}}\cdot \left( {\mathbf {u}}-{\mathbf {g}}\right) ~\mathrm {d}\varGamma \\&\quad \nonumber +\, \int _{\varGamma _\text {D}}{\mathbf {w}}\cdot \tau _\mu ({\mathbf {u}}-{\mathbf {g}})~\mathrm {d}\varGamma \\&\quad \nonumber -\, \int _{\varGamma _\text {D}} w_\theta \kappa \pmb {\nabla }T\cdot {\mathbf {n}} ~\mathrm {d}\varGamma \\&\quad \nonumber -\,\int _{\varGamma _\text {D}} \kappa \pmb {\nabla }w_\theta \cdot {\mathbf {n}}\left( T-T_\text {b}\right) ~\mathrm {d}\varGamma \\&\quad +\, \int _{\varGamma _\text {D}}w_\theta \tau _\kappa (T-T_\text {b})~\mathrm {d}\varGamma \text {.} \end{aligned}$$
(45)

The first line on the right-hand side of Eq. (45) represents a convective contribution to the weak-boundary-condition operator. We note that the weak-boundary-condition operator is defined in terms of \({\mathbf {U}}\) and \({\mathbf {G}} = [\rho \; \rho {\mathbf {g}}^{\mathrm{T}}\; \rho c_\text {v}T_\text {b}]^\mathrm{T}\), where \({\mathbf {g}}\) and \(T_\text {b}\) are the prescribed velocity and temperature. Furthermore, \(\{\hat{{\mathbf {A}}}_\text {n}\}_{-}\) is the “negative” part of \(\hat{{\mathbf {A}}}_\text {n} = \hat{{\mathbf {A}}}_i n_i\). It is computed, based on the eigenvalue decomposition \({\mathbf {T}}{\varvec{\Lambda }}_\text {n} {\mathbf {T}}^{-1}\) associated with hyperbolic equation systems (see, e.g., [196]), using the expression

$$\begin{aligned} \{\hat{{\mathbf {A}}}_\text {n}\}_{-} = {\mathbf {M}}{\mathbf {T}}\{{{\varvec{\Lambda }}}_\text {n}\}_{-}{\mathbf {T}}^{-1}{\mathbf {M}}^{-1}, \end{aligned}$$
(46)

where, defining \(u_n=\left( {\mathbf {u}}-\hat{{\mathbf {u}}}\right) \cdot {\mathbf {n}}\),

$$\begin{aligned} {\varvec{\Lambda }}_\text {n} = \begin{bmatrix} u_n&{}0&{}0 &{}0 &{} 0\\ 0 &{}u_n&{}0 &{}0 &{} 0\\ 0 &{}0&{}u_n&{}0 &{} 0\\ 0 &{}0&{}0 &{}u_n +c&{} 0\\ 0 &{}0&{}0&{}0&{} u_n -c\\ \end{bmatrix} \end{aligned}$$
(47)

is the diagonal matrix of the eigenvalues of \(\hat{{\mathbf {A}}}_\text {n}\),

$$\begin{aligned} {\mathbf {T}} = \begin{bmatrix} n_1 &{}n_2&{}n_3 &{}\dfrac{\rho }{\sqrt{2}c} &{} \dfrac{\rho }{\sqrt{2}c}\\ 0 &{}-n_3&{}n_2 &{}\dfrac{n_1}{\sqrt{2}} &{} \dfrac{-n_1}{\sqrt{2}}\\ n_3 &{}0&{}-n_1 &{}\dfrac{n_2}{\sqrt{2}} &{} \dfrac{-n_2}{\sqrt{2}}\\ -n_2 &{}n_1&{}0 &{}\dfrac{n_3}{\sqrt{2}} &{} \dfrac{-n_3}{\sqrt{2}}\\ 0 &{}0&{}0&{}\dfrac{\rho c}{\sqrt{2}}&{} \dfrac{\rho c}{\sqrt{2}}\\ \end{bmatrix} \end{aligned}$$
(48)

is the matrix constructed using the corresponding eigenvectors as columns,

$$\begin{aligned} {\mathbf {M}} = \begin{bmatrix} 1 &{}0&{}0 &{}0 &{} 0\\ 0 &{}\rho &{}0 &{}0 &{} 0\\ 0 &{}0&{}\rho &{}0 &{} 0\\ 0 &{}0&{}0 &{}\rho &{} 0\\ 0 &{}0&{}0&{}0&{} (\gamma -1)^{-1}\\ \end{bmatrix} \end{aligned}$$
(49)

is the matrix of transformation from the vector \([\rho \; {\mathbf {u}}^{\mathrm{T}}\; p]^\mathrm{T}\) to \({\mathbf {U}}\), and \(\{{\varvec{\Lambda }}_\text {n}\}_{-}\) is the negative part of \({\varvec{\Lambda }}_\text {n}\), which is easily computed. The remaining terms in Eq. (45) correspond to the weak enforcement of essential boundary conditions coming form the viscous stress and heat-flux contributions as given in [142, 144].

4.4 SI operator

The SI method used in this work follows the approach for the weak-boundary-condition operator. We consider two subdomains that are in relative motion and share an SI, denoted by \(\varGamma _\text {I}\). We use the subscripts 1 and 2 to represent the two sides of the SI. Compatibility of \({\mathbf {U}}\), stresses, and heat fluxes at the SI is weakly-enforced with the following SI operator:

$$\begin{aligned}&\nonumber B_{\text {SI}}\left( {\mathbf {W}},{\mathbf {Y}}\right) = \\&\qquad \nonumber - \,\int _{\varGamma _\text {I}} {\mathbf {W}}_1 \cdot \left( \{\hat{{\mathbf {A}}}_\text {n}\}_{-}\right) _{1}({\mathbf {U}}_1({\mathbf {Y}}_1)-{\mathbf {U}}_2({\mathbf {Y}}_2))~\mathrm {d}\varGamma \\&\qquad \nonumber -\, \int _{\varGamma _\text {I}} {\mathbf {W}}_2 \cdot \left( \{\hat{{\mathbf {A}}}_\text {n}\}_{-}\right) _{2}({\mathbf {U}}_2({\mathbf {Y}}_2)-{\mathbf {U}}_1({\mathbf {Y}}_1))~\mathrm {d}\varGamma \\&\qquad \nonumber - \,\int _{\varGamma _\text {I}} \left( {\mathbf {w}}_1-{\mathbf {w}}_2\right) \cdot \dfrac{1}{2} \left( {\mathbf {t}}({\mathbf {u}}_1,{\mathbf {n}}_1)-{\mathbf {t}}({\mathbf {u}}_2,{\mathbf {n}}_2)\right) ~\mathrm {d}\varGamma \\&\qquad \nonumber -\, \int _{\varGamma _\text {I}} \dfrac{1}{2} \left( {\mathbf {t}}({\mathbf {w}}_1,{\mathbf {n}}_1)-{\mathbf {t}}({\mathbf {w}}_2,{\mathbf {n}}_2)\right) \cdot \left( {\mathbf {u}}_1-{\mathbf {u}}_2\right) ~\mathrm {d}\varGamma \\&\qquad \nonumber +\, \int _{\varGamma _\text {I}}\left( {\mathbf {w}}_1-{\mathbf {w}}_2\right) \cdot \tau _\mu ({\mathbf {u}}_1-{\mathbf {u}}_2)~\mathrm {d}\varGamma \\&\qquad \nonumber -\, \int _{\varGamma _\text {I}} \left( w_{\theta _1} -w_{\theta _2}\right) \dfrac{\kappa }{2} \left( \pmb {\nabla }T_1\cdot {\mathbf {n}}_1 -\pmb {\nabla }T_2\cdot {\mathbf {n}}_2 \right) ~\mathrm {d}\varGamma \\&\qquad \nonumber -\, \int _{\varGamma _\text {I}} \dfrac{\kappa }{2} \left( \pmb {\nabla }w_{\theta _1} \cdot {\mathbf {n}}_1-\pmb {\nabla }w_{\theta _2} \cdot {\mathbf {n}}_2\right) \left( T_1-T_2\right) ~\mathrm {d}\varGamma \\&\qquad +\, \int _{\varGamma _\text {I}}\left( w_{\theta _1}-w_{\theta _2}\right) \tau _\kappa (T_1-T_2)~\mathrm {d}\varGamma \text {,} \end{aligned}$$
(50)

where \({\mathbf {t}}({\mathbf {u}},{\mathbf {n}}) = \left( \mu \left( \pmb {\nabla }{\mathbf {u}}+\left( \pmb {\nabla }{\mathbf {u}}\right) ^{\mathrm{T}}\right) + \varLambda (\pmb {\nabla }\cdot {\mathbf {u}}) {\mathbf {I}} \right) {\mathbf {n}}\) is the viscous stress operator. The convective contributions to the SI operator, given by the first two terms on the right-hand side of Eq. (50), make use of \(\{\hat{{\mathbf {A}}}_\text {n}\}_{-}\) evaluated on each side of the SI. The remainder of the terms account for the viscous stress and heat flux contributions.

Fig. 7
figure 7

Geometry, dimensions and problem setup

4.5 Semi-discrete formulation and time integration

The final semi-discrete form of the Navier–Stokes equations of compressible flows may be stated as: find \({\mathbf {Y}}^h\in {\mathcal {S}}^h\), such that \(\forall {\mathbf {W}}^h\in {\mathcal {V}}^h\),

$$\begin{aligned} \nonumber&B\left( {\mathbf {W}}^h,{\mathbf {Y}}^h\right) - F\left( {\mathbf {W}}^h\right) \\ \nonumber&\quad +\,B_\text {SUPG}\left( {\mathbf {W}}^h,{\mathbf {Y}}^h\right) + B_\text {DC}\left( {\mathbf {W}}^h,{\mathbf {Y}}^h\right) \\&\quad +\, B_\text {WBC}\left( {\mathbf {W}}^h,{\mathbf {Y}}^h\right) +B_\text {SI}\left( {\mathbf {W}}^h,{\mathbf {Y}}^h\right) = 0\text {,} \end{aligned}$$
(51)

where \({\mathcal {S}}^h\) and \({\mathcal {V}}^h\) are the discrete counterparts of \({\mathcal {S}}\) and \({\mathcal {V}}\). The generalized-\(\alpha \) method [197, 198] is used for time integration. At each time step, the nonlinear equation system is solved with the Newton–Raphson method. At each Newton–Raphson iteration the resulting linear equation system is solved iteratively using the GMRES search technique [199] with nodal-block-diagonal preconditioning [200].

Fig. 8
figure 8

Fluid mechanics mesh. The four parts of the domain. The two cylindrical parts (yellow and cyan) and the parts with stator (red) and rotor (blue) blades and rotational periodicity. (Color figure online)

Fig. 9
figure 9

Fluid mechanics mesh. The five SIs of the mesh. The red SI has an actual slip. The blue SIs are just for mesh generation purposes and give us the flexibility to have different mesh resolutions on the two sides of the SI. (Color figure online)

5 Turbine geometry

The turbine geometry comes from the interactive geometry modeling platform described in [201] and was used in earlier finite element simulations reported in [142]. The geometry and dimensions are shown in Fig. 7. The axial length is 211.36 mm, the casing radius is 95.524 mm, and the shaft inner and outer radii are 38.862 and 77.724 mm. The stator has 24 blades, and the rotor 34. This is a smaller gas turbine design, similar to that used as part of a turboshaft for Black Hawk and Apache helicopters. We note that the gap between the stator and rotor blades is larger than that in the design used earlier in [142].

6 Turbine mesh generation

6.1 Fluid mechanics mesh

We divide the domain into four parts and generate a block-structured mesh for each part. Figure 8 shows the four parts. We have five SIs in the mesh. One of them is with an actual slip, and the other four are just for mesh generation purposes, giving us the flexibility to have different mesh resolutions on the two sides of the SI. Figure 9 shows the five SIs. Due to the rotational periodicity, the meshes around the stator and rotor blades are created by generating only one stator blade mesh and one rotor blade mesh and repeating those in a rotationally periodic fashion. In the cylindrical parts, the NURBS weights are selected to represent the exact geometry. Figure 10 shows the control mesh. The number of control points is 716,706, and the number of elements is 393,274. Figures 11 and 12 show the mesh around the stator and rotor blades.

Fig. 10
figure 10

Fluid mechanics mesh. Control mesh

Fig. 11
figure 11

Fluid mechanics mesh. The mesh around the stator blades. The checkerboard coloring is for differentiating between the NURBS elements. (Color figure online)

Fig. 12
figure 12

Fluid mechanics mesh. The mesh around the rotor blades. The checkerboard coloring is for differentiating between the NURBS elements. (Color figure online)

6.2 Rotor structural mechanics mesh

We divide the domain into three parts and generate a block-structured mesh for each part. Figure 13 shows the three parts. There is no SI. Due to the rotational periodicity, the mesh around the blades is created by generating only one blade mesh and repeating that in a rotationally periodic fashion. Figure 14 shows the control mesh. The number of control points is 246,738, and the number of elements is 126,922. Figure 15 shows the blade mesh.

Fig. 13
figure 13

Rotor structural mechanics mesh. The three parts of the domain. The two shaft parts (yellow and cyan) and the part with the blades (blue) and rotational periodicity. (Color figure online)

Fig. 14
figure 14

Rotor structural mechanics mesh. Control mesh

Fig. 15
figure 15

Rotor structural mechanics mesh. Two views of the blade mesh. The checkerboard coloring is for differentiating between the NURBS elements. (Color figure online)

6.3 Mesh quality evaluation

We evaluate the mesh quality based on the mesh line orthogonality and the aspect ratio. The mesh lines are defined along the parametric coordinates \(\xi ^\alpha \) in each element:

$$\begin{aligned} {\mathbf {g}}_\alpha = \frac{\partial {\mathbf {x}}^h}{\partial \xi ^\alpha }, \end{aligned}$$
(52)

where \(\alpha = 1, \ldots , {n_{\mathrm {pd}}}\). For a given pair of two directions \(\alpha \) and \(\beta \), we define the angle \(\phi _{\alpha \beta }\) between the two mesh lines as

$$\begin{aligned} \cos \left( \phi _{\alpha \beta } + \frac{\pi }{2}\right)&= \frac{ {\mathbf {g}}_\alpha \cdot {\mathbf {g}}_\beta }{ \left\| {\mathbf {g}}_\alpha \right\| \left\| {\mathbf {g}}_\beta \right\| } . \end{aligned}$$
(53)

Since the choice of the parametric directions is arbitrary, in the mesh quality visualization, we report the maximum value of the mesh line angle. We also report the \(L_p\) norm, which is defined in a standard fashion:

$$\begin{aligned} L_p(\phi ) = \left( \frac{ \int _{\varOmega } \frac{2}{{n_{\mathrm {pd}}}({n_{\mathrm {pd}}}-1) } \sum _{\beta =1}^{{n_{\mathrm {pd}}}-1} \sum _{\alpha =\beta +1}^{{n_{\mathrm {pd}}}} \left| \phi _{\alpha \beta } \right| ^p \mathrm {d}\varOmega }{\int _{\varOmega } \mathrm {d}\varOmega } \right) ^{\frac{1}{p}}. \end{aligned}$$
(54)

To define the aspect ratio, we first define the length in each parametric direction:

$$\begin{aligned} \frac{h_{\alpha }}{2}&= \left\| {\mathbf {g}}_\alpha \right\| . \end{aligned}$$
(55)

With that, for a given pair of two directions \(\alpha \) and \(\beta \), the aspect ratio \(r_{\alpha \beta }\) is defined as

$$\begin{aligned} r_{\alpha \beta }&= \max \left( \frac{h_\alpha }{h_\beta }, \frac{h_\beta }{h_\alpha } \right) \end{aligned}$$
(56)
$$\begin{aligned}&=\exp \left| \ln h_{\alpha } - \ln h_\beta \right| . \end{aligned}$$
(57)

In the mesh quality visualization, we again report the maximum value. The \(L_p\) norm we report in this case is defined in a logarithmic fashion:

$$\begin{aligned} \ln L_p (r) = \left( \frac{ \int _{\varOmega } \frac{2}{{n_{\mathrm {pd}}}({n_{\mathrm {pd}}}-1) } \sum _{\beta =1}^{{n_{\mathrm {pd}}}-1} \sum _{\alpha =\beta +1}^{{n_{\mathrm {pd}}}} \left| \ln h_\alpha - \ln h_\beta \right| ^p \mathrm {d}\varOmega }{\int _{\varOmega } \mathrm {d}\varOmega } \right) ^{\frac{1}{p}} . \end{aligned}$$
(58)

Remark 6

We note that here we use the “transformation tensor” definition \({\mathbf {D}} = {\mathbf {I}}\) in calculating the local length scale (see [121] for the terminology and symbol definitions). There is no technical obstacle to using other definitions, such as “RQD-MAX” in [121].

Figures 1619 show the mesh line angle and aspect ratio in the parts of the mesh around the stator and rotor blades. Tables 1 and 2 show the \(L_2\) and max norms of the mesh line angle and aspect ratio.

Fig. 16
figure 16

Fluid mechanics mesh. Mesh line angle in the part of the mesh around the stator blades

Fig. 17
figure 17

Fluid mechanics mesh. Mesh line angle in the part of the mesh around the rotor blades

Fig. 18
figure 18

Fluid mechanics mesh. Aspect ratio in the part of the mesh around the stator blades

Fig. 19
figure 19

Fluid mechanics mesh. Aspect ratio in the part of the mesh around the rotor blades

Table 1 Fluid mechanics mesh
Table 2 Fluid mechanics mesh

6.3.1 Rotor structural mechanics mesh

Figures 20 and 21 show the mesh line angle and aspect ratio in the part of the mesh with the blades. Tables 3 and 4 show the \(L_2\) and max norms of the mesh line angle and aspect ratio.

Fig. 20
figure 20

Rotor structural mechanics mesh. Mesh line angle in the part with the blades

Fig. 21
figure 21

Rotor structural mechanics mesh. Aspect ratio in the part with the blades

Table 3 Rotor structural mechanics mesh
Table 4 Rotor structural mechanics mesh

7 Flow simulation

7.1 Problem setup

The problem setup is given in Fig. 7. A uniform axial velocity of 82.3 m/s, a pressure of 2,012,790 Pa and a temperature of 1669.78 K are prescribed (strongly) at the inlet boundary. At the outlet, the pressure is set weakly to 1,212,790 Pa, and the viscous stress and heat flux to zero. No-slip conditions are enforced weakly on the stator and rotor blades. In addition, temperatures of \(T=1423.15\) K and \(T=1673.15\) K are set strongly on the stator and rotor blades. On the shaft and casing surfaces, zero normal heat flux and slip conditions are applied. The dynamic viscosity is \(5.551{\times }10^{-5}~\mathrm {Pa\cdot s}\). We note that the flow is allowed to slip freely on the shaft and casing surfaces, different from the earlier simulations, where no-slip conditions were used.

We conduct two simulations, one using the quadratic NURBS mesh described in Sect. 6, and the other using a linear tetrahedral mesh similar to the one used in [142]. The meshes near the stator and rotor blades are shown in Fig. 22, and the mesh data is given in Table 5. The time-step size is \(3{\times }10^{-7}\) s in both simulations.

Fig. 22
figure 22

Mesh near the stator and rotor blades, showing the boundary-layer resolution. The red line is the SI. (Color figure online)

Table 5 Mesh data for the quadratic NURBS and linear tetrahedral meshes

7.2 Results

Figures 23 and 24 show the global distribution of the flow speed, pressure, temperature, and Mach number for the computations with the NURBS and tetrahedral meshes. The results are in good agreement intrinsically, as well as with earlier simulations of this case. We note that the solution appears continuous across all five SIs of the NURBS mesh. Figure 25 shows the temperature distribution in the stator–rotor region. The quadratic NURBS mesh with a carefully constructed boundary layer mesh is able to much better represent the thin thermal boundary layer near the stator blade than the tetrahedral mesh. The more diffuse thermal boundary layer obtained with the tetrahedral mesh leads to much less flow acceleration behind the stator blade and slower flow in the rotor channels. This can be seen in Fig. 26, which shows, for both simulations, the relative flow speed and streamlines in the stator and rotor channels. The slower flow in the rotor channels in the tetrahedral-mesh simulation translates to lower suction pressure and underestimation of the shaft torque relative to the NURBS-mesh simulation. The shaft power obtained is 354.0 kW with the NURBS mesh and 242.3 kW with the tetrahedral mesh.

Fig. 23
figure 23

Flow quantities computed with the NURBS mesh

Fig. 24
figure 24

Flow quantities computed with the tetrahedral mesh

Fig. 25
figure 25

Temperature distribution in the stator–rotor region

Fig. 26
figure 26

Average relative flow speed and streamlines in the stator (left) and rotor (right) channels

Gas turbine performance can also be assessed from the adiabatic efficiency of the turbine stage \(\eta _\text {ad}\), calculated using the expression (see [202])

$$\begin{aligned} \eta _\text {ad} = \frac{1-\dfrac{T_\text {0}^\mathrm{RBO}}{T_\text {0}^\mathrm{SBI}}}{1-\left( \dfrac{p_\text {0}^\mathrm{RBO}}{p_\text {0}^\mathrm{SBI}}\right) ^\frac{\gamma -1}{\gamma }}\text {.} \end{aligned}$$
(59)

Here, \(T_\text {0}^\mathrm{RBO}\) and \(p_\text {0}^\mathrm{RBO}\) are the total temperature and pressure at the rotor blade outlet, and \(T_\text {0}^\mathrm{SBI}\) and \(p_\text {0}^\mathrm{SBI}\) at the stator blade inlet. The total temperature and pressure are calculated as

$$\begin{aligned} T_\text {0} = T\left( 1 + \dfrac{\gamma -1}{2}M^2 \right) \end{aligned}$$
(60)

and

$$\begin{aligned} p_\text {0} = p\left( 1 + \dfrac{\gamma -1}{2}M^2 \right) ^\frac{\gamma }{\gamma -1}\text {,} \end{aligned}$$
(61)

where M is the local Mach number. The computed values of \(\eta _\text {ad}\) are 98.6 and 98.9% in the simulations with the NURBS and tetrahedral meshes. This is higher than the adiabatic efficiency of 85% reported for a similar case in [143], however, as we pointed out earlier, the simulation here has slip boundary conditions on the shaft and casing and a larger gap between the stator and rotor. As also evident from Fig. 26, in both simulations the flow stays attached to the blade surfaces, showing almost no recirculation and resulting in higher adiabatic efficiency values.

8 Free-vibration analysis

We carry out a free-vibration analysis of the gas turbine rotor with the structural mechanics NURBS mesh described in Sect. 6. We use the material properties of Nimonic C-263, with Young’s modulus 142 GPa, density \(8360~\mathrm {kg/m^3}\) and Poisson’s ratio 0.3. Figure 27 shows the displacement magnitude corresponding to one of the lower and one of the higher natural frequencies. The lower frequency corresponds to a global deformation mode, while the higher frequency has deformation localized to the rotor blades.

Fig. 27
figure 27

Structural displacement magnitude corresponding to two of the rotor natural frequencies. Color range from blue to red indicates the normalized-displacement range from low to high

9 An example of local-length-scale calculation in isogeometric discretization: Courant number

In the context of the fluid mechanics mesh and computation presented in the earlier sections, we give an example of calculating the direction-dependent local length scales in isogeometric discretization. We calculate the Courant number based on the local length scale in the direction of the flow velocity computed. The local length scale is based on the RQD-MAX version of the method in [121]. The time-step size, from Sect. 7, is \(3{\times }10^{-7}~\mathrm {s}\). Figures 28 and 29 show the Courant number.

Fig. 28
figure 28

Courant number. On a cylindrical surface cut equidistant from the shaft and the casing

Fig. 29
figure 29

Courant number. Histogram

10 Concluding remarks

We have made further advances in establishing the IGA as a fully-integrated and robust design-to-analysis framework. We have integrated a recently introduced NURBS mesh generation method for complex-geometry IGA and a state-of-the-art moving-mesh compressible-flow computation method. With that, we have successfully carried out IGA simulation of a gas turbine stage similar to the one used as part of a turboshaft for Black Hawk and Apache helicopters. In the course of this development, we have further improved the DC, weak-boundary-condition, and SI methods for compressible flows. A comparison between the IGA and finite element simulations of the gas turbine stage shows that the NURBS mesh generation method, which is as easy to use as a block-structured mesh generation method in finite volume or finite element analysis, enables higher-order and higher-continuity representation and superior accuracy. The NURBS discretization is able to represent better the thin thermal boundary layers and higher flow velocity on the suction side of the stator blade, leading to higher flow rate in the rotor channels and resulting in higher shaft power compared to the tetrahedral finite element discretization. A free-vibration analysis of the gas turbine rotor carried out using the structural mechanics NURBS crated with the mesh generation method shows that the method can be used very effectively also in structural mechanics analysis, producing informative global and local deformation patterns. The Courant number computation based on the NURBS mesh local length scale in the flow direction demonstrates some of the other positive features of the mesh generation framework.