STREAmS – Curvilinear flow cases

STREAmS has been extended to carry out DNS of compressible flow over curvilinear geometries, including the following:

  • compressible curved channel flow,

  • external compressible flow on C-meshes (e.g. flow over an airfoil),

  • spatially developing boundary layer on curved walls (e.g. flow over compression corners).

Governing equations in generalized curvilinear coordinates

The Cartesian coordinates (\(x_i\)) of a body-fitted grid are transformed into boundary-conforming curvilinear coordinates (\(\xi_j\)) through the mapping \(x_i(\xi_j)\), with \(i, j = 1, 2, 3\). Thus, the boundary surface is composed of segments of coordinate surfaces \(\xi_j = const\). Assuming a stationary grid and using the same reference quantities for non-dimensionalization as those defined in the Cartesian coordinates, the compressible Navier–Stokes equations in generalized curvilinear coordinates for a calorically or thermally perfect, heat-conducting gas read:

\[\frac{1}{J}\frac{\partial \rho}{\partial t} + \frac{\partial \rho \hat{u}_j}{\partial \xi_j} = 0\]
\[ \frac{1}{J}\frac{\partial \rho u_i}{\partial t} + \frac{\partial \rho u_i \hat{u}_j}{\partial \xi_j} = -\frac{\partial p \hat{J}_{ji}}{\partial \xi_j} + \frac{\partial \sigma_{ik} \hat{J}_{jk}}{\partial \xi_j}\]
\[\frac{1}{J}\frac{\partial \rho E}{\partial t} + \frac{\partial \rho \hat{u}_j H}{\partial \xi_j} = -\frac{\partial q_i \hat{J}_{ji}}{\partial \xi_j}+ \frac{\partial \sigma_{ik} u_k \hat{J}_{ji}}{\partial \xi_j}\]
\[p = \rho \, R \, T\]

where \(u_i\) is velocity component in the \(i^{\mathrm{th}}\) Cartesian direction, \(\hat{u}_j=u_i \hat{J}_{j i}\) the velocity component in the \(j^{\mathrm{th}}\) curvilinear direction, with \(\hat{J}_{j i}=J_{j i}/J\) being the Jacobian matrix of the coordinate transformation \(x_i(\xi_j)\), normalized by its determinant \(J\). The constitutive equations defining the viscous stress tensor and heat flux vector are identical as those expressed Cartesian coordinates.

In the most general case, the elements of the Jacobian matrix, \(J_{j i}=\partial \xi_j / \partial x_i\), of the coordinate transformation \(\xi_j(x_i)\), are obtained by inverting the Jacobian matrix of the inverse transformation \(x_i(\xi_j)\). That is:

\[\begin{split}\left[\begin{array}{lll} \xi_x & \xi_y & \xi_z \\ \eta_x & \eta_y & \eta_z \\ \zeta_x & \zeta_y & \zeta_z \end{array}\right]=\left[\begin{array}{lll} x_{\xi} & x_\eta & x_\zeta \\ y_{\xi} & y_\eta & y_\zeta \\ z_{\xi} & z_\eta & z_\zeta \end{array}\right]^{-1}.\end{split}\]

For the particular cases available in STREAmS, only two-dimensional curvilinear coordinates are considered, where

\[\zeta = z.\]

It must be noted that it is still possible to stretch the mesh in the spanwise direction. Arbitrary two-dimensional conformal/non-conformal grids can be handled by the solver. To understand how to write an 2D mesh file please go to the mesh section in the documentation. A description of the specific setup adopted for the various flow cases, for which a tutorial is present, is reported in the following.

Compressible curved channel flow

../_images/Curv_cha_case.png

The computational domain is bounded by sectors of concentric cylinders, as shown in the figure, and wall curvature is defined by the radius of curvature, \(r_c\), measured at the channel centreline. The height of the computational domain is equal to \(2\,h^*\), where \(h^*\) thus indicates the half-height of the channel. The curvilinear coordinate system is aligned such that \(\xi=\theta\) is the azimuthal (streamwise) direction, \(\eta=r\) is the radial (wall-normal) direction, and \(\zeta=z\) is the axial (spanwise) direction. The velocity components along the streamwise, wall-normal and spanwise directions are denoted by \(\tilde{u},\,\tilde{v},\,\tilde{w}\), respectively. The flow is driven by an azimuthal mean-pressure gradient, \((\partial P/\partial \theta)/r\).

Bulk quantites are indicated with \(B\) subscript and are defined as:

  • bulk density

\[\rho^*_B = \frac{1}{V^*} \int_{V^*} \rho^*\, \mathrm{d}V^*\]
  • bulk velocity

\[U^*_B = \frac{1}{\rho^*_B\,V^*} \int_{V^*} \rho^*\,\tilde{u}^*\, \mathrm{d}V^*\]
  • bulk temperature

\[T^*_B = \frac{1}{\rho^*_B\,U^*_B\,V^*} \int_{V^*} \rho^*\,\tilde{u}^*\,T^*\, \mathrm{d}V^*\]

where \(V^*\) is the volume of the computational domain, \(\rho^*\) is the density, \(\tilde{u}^*\) is the streamwise velocity, and \(T^*\) is the temperature.

Since wall curvature breaks the symmetry of the mean velocity profile, the wall friction changes when evaluated at the inner or outer wall. A global friction velocity can be defined based on the mean-pressure gradient. Inner, outer and global friction velocities are defined as:

\[u_{\tau, i}=\sqrt{\left.\nu \frac{\partial U}{\partial r}\right|_{r_i}}, \quad u_{\tau, o}=\sqrt{\left.\nu \frac{\partial U}{\partial r}\right|_{r_o}}, \quad u_{\tau, g}=\sqrt{\frac{u_{\tau, i}^2 r_i^2+u_{\tau, o}^2 r_o^2}{2 r_c^2}},\]

where \(U\) is the average of \(\tilde{u}\) over time and the two homogeneous directions, and the subscripts \(i\) and \(o\) denote the inner and outer wall, respectively.

Relevant non-dimensional parameters for the compressible channel flow case are:

  • friction Reynolds number

\[Re_\tau = \frac{u^*_{\tau,g}\,h^*}{\nu^*_w}\]
  • bulk Reynolds number based on the bulk temperature

\[Re_B = \frac{\rho^*_B\,U^*_B\,h^*}{\mu^*(T^*_B)}\]
  • bulk Reynolds number based on the wall temperature

\[Re^w_B = \frac{\rho^*_B\,U^*_B\,h^*}{\mu^*(T^*_w)}\]
  • bulk Mach number based on the bulk temperature

\[M_B = \frac{U^*_B}{\sqrt{\gamma\,R^*\,T^*_B}}\]
  • bulk Mach number based on the wall temperature

\[M^w_B = \frac{U^*_B}{\sqrt{\gamma\,R^*\,T^*_w}}\]
  • non-dimensional temperature

\[\Theta = \frac{T^*_w - T^*_B}{T^*_r - T^*_B}\]

where \(u^*_{\tau,g}\) is the global friction velocity, \(\nu^*_w\) is the kinematic viscosity at the wall, \(\mu^*(T^*)\) is the dynamic viscosity at temperature \(T^*\), \(T^*_w\) is the wall temperature, \(\gamma = C^*_p/C^*_v\) is the heat capacity ratio, and \(T^*_r\) is the recovery temperature, defined as

\[T^*_r = T_B^* \, \left(1 + \frac{\gamma-1}{2}\, r\, M^2_B \right)\]

\(r = Pr^{1/3}\) being the recovery factor.

For channel flow computations, the primary reference quantities are:

Primary reference quantities for channel flow case

\(R^*\)

\(\rho^*_R\)

\(T^*_R\)

\(L^*_R\)

\(R^*\)

\(\rho_B^*\)

\(T_w^*\)

\(h^*\)

The other reference quantities are derived as explained in the previous section. Note that, as a consequence of this choice, the non-dimensional bulk velocity is not equal to one, but rather:

\[U_B = \frac{U_B^*}{U^*_R} = \frac{U_B^*}{\sqrt{R^* T_w^*}} = \sqrt{\gamma} M_B^w \,.\]

Furthermore, the non dimensional viscosity at the reference temperature is:

\[\mu(T=1) = \frac{\mu^*(T_w^*)}{\rho_B^* h^* \sqrt{R^* T_w^*}} \frac{U_B^*}{U_B^*} = \frac{\sqrt{\gamma} M_B^w}{Re_B^w}\,.\]

Simulations of the compressible plane channel flow are carried out imposing a constant flow rate, implying that both the bulk density and velocity are constant in time. Furthermore, the wall temperature is constant during the simulation.

For what concerns the bulk temperature, STREAmS can run channel flow simulations according to two possible options (see input section):

Freely-evolving bulk temperature. This classic setup, see [2] and [9], corresponds to the case of a channel where the bulk temperature continuously increases up to the achievement of balance between aerodynamic heating and wall heat transfer. In this case, the user must supply the code with the desired values of \(M_B^w\) and \(Re_B^w\) in the input file.

Fixed bulk temperature. In this case, see [10], the bulk temperature is kept constant in time thanks to the use of a bulk cooling term added to the total energy equation. The user must supply the code with the desired values of \(M_B\), \(Re_B\), and \(\Theta\) in the input file.

Concerning curvilinear flow cases, this is the curbed channel is the only one in which the computational grid is directly generated by STREAmS. An estimate of the friction Reynolds number must be specified in the input file to impose a suitable value of near-wall grid spacing in the radial direction.

External compressible flow on C-meshes - Airfoil

../_images/Airfoil_case.png

The new version of STREAmS allows the user to perform simulations of a compressible flow over an airfoil wing. The computational grid, as sketched in the figure, must have a C-topology, and can be generated using the open-source code Construct2D [14] starting from the airfoil geometry. The two-dimensional grid in the x-y plane, with radius \(R\), is then extruded in the z direction.

Relevant non-dimensional parameters for the airfoil flow are:

  • free-stream Reynolds number

\[Re_\infty = \frac{U_{\infty}^*\, c^*}{\nu_\infty^*}\]
  • free-stream Mach number

\[M_\infty = \frac{U_\infty^*}{\sqrt{\gamma_\infty\,R^*\,T_\infty^*}}\]
  • non-dimensional temperature

\[\Theta = \frac{T^*_w - T^*_{\infty}}{T^*_r - T^*_{\infty}}\]
  • Eckert number

\[Ec = \frac{(\gamma -1 ) \, M^2_\infty \, T^*_\infty}{T^*_r - T^*_w}\]

where \(c^*\) is the airfoil chord length, \(\nu^*\) is the kinematic viscosity, \(T^*_r\) is the recovery temperature and the subscript \(\infty\) indicates that quantities are referred to free-stream conditions.

For airfoil flow computations, the primary reference quantities are:

Primary reference quantities for boundary layer flow case

\(R^*\)

\(\rho^*_R\)

\(T^*_R\)

\(L^*_R\)

\(R^*\)

\(\rho_\infty^*\)

\(T_\infty^*\)

\(c^*\)

The other reference quantities are derived as explained in the first section. Note that, as a consequence of this choice, the non-dimensional free-stream velocity is not equal to one, but rather:

\[U_\infty = \frac{U_\infty^*}{U^*_R} = \frac{U_\infty^*}{\sqrt{R^* T_\infty^*}} = \sqrt{\gamma} M_\infty\,.\]

Furthermore, the non dimensional viscosity at the reference temperature is:

\[\mu(T=1) = \frac{\mu^*(T_\infty^*)}{\rho_\infty^* c^* \sqrt{R^* T_\infty^*}} \frac{U_\infty^*}{U_\infty^*} = \frac{\sqrt{\gamma} M_\infty}{Re_\infty}\,.\]

Spatially developing boundary layer on curved walls - Compression corner SBLI

../_images/Ramp_case.png

Simulations of the shock wave/boundary layer interaction on a compression corner can also be simulated. Similarly to the airfoil flow case, the required input is a two-dimensional grid, which consists of a flat plate followed by a corner where the compression ramp begins with a certain deflection angle. The grid in the x-y plane is then extruded in the third dimension.

An inviscid representation of the shock system is sketched in the figure, where \(x_c\) is the corner location. The flow deflection angle (\(\theta\)) is defined by the ramp geometry, and the angle of the oblique shock (\(\beta\)) in the inviscid limit is given by the Theta-Beta-Mach analytic relation.

Relevant non-dimensional parameters for the compressible boundary layer over a compression ramp are:

  • friction Reynolds number

\[Re_\tau = \frac{u_\tau^*\,\delta_0^*}{\nu_w^*}\]
  • Reynolds number based on the boundary layer thickness and the free-stream viscosity

\[Re_\delta = \frac{U_{\infty}^*\, \delta_0^*}{\nu_\infty^*}\]
  • Reynolds number based on the momentum thickness and the wall viscosity

\[Re_{\delta_2} = \frac{\rho_\infty^*\, U_\infty^*\, \theta_0^*}{\mu_w^*}\]
  • Reynolds number based on the momentum thickness and the free-stream viscosity

\[Re_\theta = \frac{U_{\infty}^*\, \theta_0^*}{\nu_\infty^*}\]
  • free-stream Mach number

\[M_\infty = \frac{U_\infty^*}{\sqrt{\gamma_\infty\,R^*\,T_\infty^*}}\]
  • non-dimensional temperature

\[\Theta = \frac{T^*_w - T^*_{\infty}}{T^*_r - T^*_{\infty}}\]
  • Eckert number

\[Ec = \frac{(\gamma -1 ) \, M^2_\infty \, T^*_\infty}{T^*_r - T^*_w}\]

where \(u_\tau^*\) is the friction velocity, \(\delta_0^*\) is the boundary layer thickness (based on 99% of the free-stream velocity) at the inflow, \(\theta_0^*\) is the boundary layer momentum thickness at the inflow, \(\nu_w^*\) and \(\mu^*_w\) are the kinematic and dynamic viscosity at the wall respectively, \(T^*_r\) is the recovery temperature and the subscript \(\infty\) indicates that quantities are referred to free-stream conditions.

The primary reference quantities are:

Primary reference quantities for compression ramp flow case

\(R^*\)

\(\rho^*_R\)

\(T^*_R\)

\(L^*_R\)

\(R^*\)

\(\rho_\infty^*\)

\(T_\infty^*\)

\(\delta_0^*\)

The other reference quantities are derived as explained in the first section. Note that, as a consequence of this choice, the non-dimensional free-stream velocity is not equal to one, but rather:

\[U_\infty = \frac{U_\infty^*}{U^*_R} = \frac{U_\infty^*}{\sqrt{R^* T_\infty^*}} = \sqrt{\gamma} M_\infty\,.\]

Furthermore, the non dimensional viscosity at the reference temperature is:

\[\mu(T=1) = \frac{\mu^*(T_\infty^*)}{\rho_\infty^* \delta_0^* \sqrt{R^* T_\infty^*}} \frac{U_\infty^*}{U_\infty^*} = \frac{\sqrt{\gamma} M_\infty}{Re_\delta}\,.\]