Boundary layer stability and transition analysis using the nonlinear One-Way Navier-Stokes approach

Michael K. Sleeman111PhD Candidate, Mechanical and Civil Engineering. and Tim Colonius222Frank and Ora Lee Marble Professor of Mechanical Engineering and Medical Engineering. California Institute of Technology, Pasadena, CA, USA Matthew T. Lakebrink333Boeing Associated Technical Fellow. Boeing Research & Technology, Hazelwood, MO, 63042, United States
Abstract

We extend the One-Way Navier Stokes (OWNS) approach to support nonlinear interactions between waves of different frequencies, which will enable nonlinear analysis of instability and transition. In OWNS, the linearized Navier-Stokes equations are parabolized and solved in the frequency domain as a spatial initial-value (marching) problem. OWNS yields a reduced computational cost compared to direct numerical simulation (DNS), while also conferring numerous advantages over the parabolized stability equations (PSE), despite its higher computational cost relative to PSE, that we seek to extend to nonlinear analysis. We validate the nonlinear OWNS (NOWNS) method by examining nonlinear evolution of two- and three-dimensional disturbances in a low-speed Blasius boundary layer compared to nonlinear PSE (NPSE) and DNS results from the literature. We demonstrate that NOWNS supports non-modal instabilities, is more robust to numerical noise, and converges for stronger nonlinearities, as compared to NPSE.

Nomenclature

(x,y,z)𝑥𝑦𝑧(x,y,z)( italic_x , italic_y , italic_z )  = streamwise, wall-normal, and spanwise coordinates
ν𝜈\nuitalic_ν  = specific volume
(u,v,w)𝑢𝑣𝑤(u,v,w)( italic_u , italic_v , italic_w )  = velocity (streamwise, wall-normal, and spanwise)
p𝑝pitalic_p  = pressure
μ𝜇\muitalic_μ  = dynamic viscosity
a𝑎aitalic_a  = sound speed
MaMa\mathrm{Ma}roman_Ma  = Mach number
cpsubscript𝑐𝑝c_{p}italic_c start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT  = specific heat capacity at constant pressure
γ𝛾\gammaitalic_γ  = heat capacity ratio
k𝑘kitalic_k  = thermal conductivity
δ0superscriptsubscript𝛿0\delta_{0}^{*}italic_δ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT  = inlet Blasius length scale, defined as δ0=x0μνUsuperscriptsubscript𝛿0superscriptsubscript𝑥0superscriptsubscript𝜇superscriptsubscript𝜈superscriptsubscript𝑈\delta_{0}^{*}=\sqrt{\frac{x_{0}^{*}\mu_{\infty}^{*}\nu_{\infty}^{*}}{U_{% \infty}^{*}}}italic_δ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = square-root start_ARG divide start_ARG italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_ν start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG end_ARG
Re𝑅𝑒Reitalic_R italic_e  = Reynolds number in terms of δ0superscriptsubscript𝛿0\delta_{0}^{*}italic_δ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT, defined as Re=aδ0νμ𝑅𝑒superscriptsubscript𝑎superscriptsubscript𝛿0superscriptsubscript𝜈superscriptsubscript𝜇Re=\frac{a_{\infty}^{*}\delta_{0}^{*}}{\nu_{\infty}^{*}\mu_{\infty}^{*}}italic_R italic_e = divide start_ARG italic_a start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_δ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_ν start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG
Pr𝑃𝑟Pritalic_P italic_r  = Prandtl number, defined as Pr=δ0μk𝑃𝑟superscriptsubscript𝛿0superscriptsubscript𝜇superscript𝑘Pr=\frac{\delta_{0}^{*}\mu_{\infty}^{*}}{k^{*}}italic_P italic_r = divide start_ARG italic_δ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_k start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG
ω𝜔\omegaitalic_ω  = temporal frequency
F𝐹Fitalic_F  = dimensionless temporal frequency, defined as F=ωνμU2𝐹superscript𝜔superscriptsubscript𝜈superscriptsubscript𝜇superscriptsubscript𝑈absent2F=\frac{\omega^{*}\nu_{\infty}^{*}\mu_{\infty}^{*}}{U_{\infty}^{*2}}italic_F = divide start_ARG italic_ω start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_ν start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ 2 end_POSTSUPERSCRIPT end_ARG
β𝛽\betaitalic_β  = spanwise wavenumber
b𝑏bitalic_b  = dimensionless spanwise wavenumber, defined as b=βνμU𝑏superscript𝛽superscriptsubscript𝜈superscriptsubscript𝜇superscriptsubscript𝑈b=\frac{\beta^{*}\nu_{\infty}^{*}\mu_{\infty}^{*}}{U_{\infty}^{*}}italic_b = divide start_ARG italic_β start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_ν start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG
α𝛼\alphaitalic_α  = streamwise wave number (complex-valued, where αrsubscript𝛼𝑟\alpha_{r}italic_α start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT is the phase and αisubscript𝛼𝑖\alpha_{i}italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is the growth rate)
RexsubscriptRe𝑥\mathrm{Re}_{x}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT  = Reynolds number in terms of x𝑥xitalic_x, defined as Rex=UxνμsubscriptRe𝑥superscriptsubscript𝑈superscript𝑥superscriptsubscript𝜈superscriptsubscript𝜇\mathrm{Re}_{x}=\frac{U_{\infty}^{*}x^{*}}{\nu_{\infty}^{*}\mu_{\infty}^{*}}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = divide start_ARG italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_x start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_ν start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG
M𝑀Mitalic_M  = denotes the number of temporal Fourier modes
N𝑁Nitalic_N  = denotes the number of spanwise Fourier modes
(m,n)𝑚𝑛(m,n)( italic_m , italic_n )  = denotes Fourier mode with temporal frequency mω𝑚𝜔m\omegaitalic_m italic_ω and spanwise wavenumber nβ𝑛𝛽n\betaitalic_n italic_β
Subscripts
\infty  = free-stream value
mn𝑚𝑛mnitalic_m italic_n  = a quantity associated with temporal frequency mω𝑚𝜔m\omegaitalic_m italic_ω and spanwise wavenumber nβ𝑛𝛽n\betaitalic_n italic_β
+0+-0+ - 0  = plus, minus, and zero characteristics
Superscripts
*  = dimensional quantity
\prime  = a disturbance to the equilibrium solution
\ddagger  = a matrix or a vector containing the OWNS auxiliary values
Other symbols
()¯¯\bar{(\cdot)}over¯ start_ARG ( ⋅ ) end_ARG  = a quantity associated with the equilibrium solution (e.g., Blasius base flow)
()¯¯\overline{(\cdot)}over¯ start_ARG ( ⋅ ) end_ARG  = a complex conjugate value
()^^\hat{(\cdot)}over^ start_ARG ( ⋅ ) end_ARG  = a quantity in Fourier space

1 Introduction

Modern industry tools for transition prediction involve extrapolation from linear amplification through the eNsuperscript𝑒𝑁e^{N}italic_e start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT-method [1, 2] or the variable N𝑁Nitalic_N-factor approach [3]. Fundamentally, transition can be studied using DNS [4, 5, 6, 7] or Large Eddy Simulation (LES) [8, 9], but these approaches are limited by their high computational cost. The NPSE entail a much lower computational cost [10], but convergence issues limit their use to the early stages of transition [11, 12]. Even in the linear case, however, PSE cannot accurately model non-modal and multi-modal instabilities [12], and its minimum step size for stability prevents capturing all length scales in the streamwise direction, which is particularly problematic when extending to the nonlinear regime.

OWNS overcomes these limitations, but at a greater computational cost. In particular, it properly removes all upstream-going waves so that the regularizations used by PSE are not required, thus allowing it to capture properly non-modal and multi-modal instabilities, and to take arbitrarily small steps to resolve all length scales [12]. The linear OWNS approach has previously been applied to two-dimensional (2D) and three-dimensional (3D) boundary-layer flows [13], and has proven useful hypersonic boundary layer flows [14, 15, 16] where classical stability analysis methods often fail.

The NOWNS methodology has been validated for Blasius boundary layer flows [17], and demonstrated to support non-modal instabilities, as well as stronger nonlinearities than NPSE [18]. In this paper, we refine the NOWNS methodology, validate it, and demonstrate its benefits with respect to the NPSE framework by showing that it is more robust to numerical noise and supports stronger nonlinearitie than NPSE, and that it supports non-modal instabilities.

2 Method

The OWNS procedure was first developed as a method for constructing well-posed one-way approximations of linear hyperbolic systems with slowly-varying coefficients in the direction of integration [19], allowing the equations to be solved as a spatial-initial-value problem, leading to a reduced computational cost. The framework has also been applied to the Navier-Stokes equations, linearized about a slowly-varying baseflow, to perform linear stability analysis of jets and boundary layer flows [19, 20, 14, 15, 16, 13]. Here we generalize the OWNS methodology to support nonlinear effects.

The non-dimensional, compressible Navier-Stokes equations for an ideal gas can be written as

DνDtν(𝒖)𝐷𝜈𝐷𝑡𝜈𝒖\displaystyle\frac{D\nu}{Dt}-\nu(\nabla\cdot\bm{u})divide start_ARG italic_D italic_ν end_ARG start_ARG italic_D italic_t end_ARG - italic_ν ( ∇ ⋅ bold_italic_u ) =0,absent0\displaystyle=0,= 0 , (1a)
D𝒖Dt+νp𝐷𝒖𝐷𝑡𝜈𝑝\displaystyle\frac{D\bm{u}}{Dt}+\nu\nabla pdivide start_ARG italic_D bold_italic_u end_ARG start_ARG italic_D italic_t end_ARG + italic_ν ∇ italic_p =1Reντ,absent1𝑅𝑒𝜈𝜏\displaystyle=\frac{1}{Re}\nu\nabla\cdot\tau,= divide start_ARG 1 end_ARG start_ARG italic_R italic_e end_ARG italic_ν ∇ ⋅ italic_τ , (1b)
DpDt+γp(𝒖)𝐷𝑝𝐷𝑡𝛾𝑝𝒖\displaystyle\frac{Dp}{Dt}+\gamma p(\nabla\cdot\bm{u})divide start_ARG italic_D italic_p end_ARG start_ARG italic_D italic_t end_ARG + italic_γ italic_p ( ∇ ⋅ bold_italic_u ) =1Re(γ1)[(𝒖):τ]+γPrRe(ν2p+2νp+p2ν),\displaystyle=\frac{1}{Re}(\gamma-1)[(\nabla\bm{u}):\tau]+\frac{\gamma}{PrRe}(% \nu\nabla^{2}p+2\nabla\nu\cdot\nabla p+p\nabla^{2}\nu),= divide start_ARG 1 end_ARG start_ARG italic_R italic_e end_ARG ( italic_γ - 1 ) [ ( ∇ bold_italic_u ) : italic_τ ] + divide start_ARG italic_γ end_ARG start_ARG italic_P italic_r italic_R italic_e end_ARG ( italic_ν ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_p + 2 ∇ italic_ν ⋅ ∇ italic_p + italic_p ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_ν ) , (1c)

for the stress tensor

τ=μ(𝒖+(𝒖)T)(23μκ)(𝒖)I,𝜏𝜇𝒖superscript𝒖𝑇23𝜇𝜅𝒖𝐼\tau=\mu\Big{(}\nabla\bm{u}+(\nabla\bm{u})^{T}\Big{)}-\Big{(}\frac{2}{3}\mu-% \kappa\Big{)}(\nabla\cdot\bm{u})I,italic_τ = italic_μ ( ∇ bold_italic_u + ( ∇ bold_italic_u ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ) - ( divide start_ARG 2 end_ARG start_ARG 3 end_ARG italic_μ - italic_κ ) ( ∇ ⋅ bold_italic_u ) italic_I ,

where μ𝜇\muitalic_μ is the dynamic viscosity and κ𝜅\kappaitalic_κ is the bulk viscosity. We take the bulk viscosity to be zero (κ=0𝜅0\kappa=0italic_κ = 0) and we introduce the Reynolds number, the Prandtl number, and the Blasius length scale

Re=δ0aνμ,Pr=cp,μk,δ0=νx0U.formulae-sequence𝑅𝑒superscriptsubscript𝛿0superscriptsubscript𝑎superscriptsubscript𝜈superscriptsubscript𝜇formulae-sequence𝑃𝑟superscriptsubscript𝑐𝑝superscriptsubscript𝜇superscriptsubscript𝑘superscriptsubscript𝛿0superscriptsubscript𝜈superscriptsubscript𝑥0superscriptsubscript𝑈Re=\frac{\delta_{0}^{*}a_{\infty}^{*}}{\nu_{\infty}^{*}\mu_{\infty}^{*}},\quad Pr% =\frac{c_{p,\infty}^{*}\mu_{\infty}^{*}}{k_{\infty}^{*}},\quad\delta_{0}^{*}=% \frac{\nu_{\infty}^{*}x_{0}^{*}}{U_{\infty}^{*}}.italic_R italic_e = divide start_ARG italic_δ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_a start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_ν start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG , italic_P italic_r = divide start_ARG italic_c start_POSTSUBSCRIPT italic_p , ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_k start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG , italic_δ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = divide start_ARG italic_ν start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG .

Here νsuperscriptsubscript𝜈\nu_{\infty}^{*}italic_ν start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT denotes the free-stream specific volume, μsuperscriptsubscript𝜇\mu_{\infty}^{*}italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT the free-stream dynamic viscosity, ksuperscriptsubscript𝑘k_{\infty}^{*}italic_k start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT the free-stream thermal diffusivity, cp,superscriptsubscript𝑐𝑝c_{p,\infty}^{*}italic_c start_POSTSUBSCRIPT italic_p , ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT the free-stream specific heat capacity at constant pressure, asuperscriptsubscript𝑎a_{\infty}^{*}italic_a start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT the free-stream sound speed, while x𝑥xitalic_x, y𝑦yitalic_y, z𝑧zitalic_z, correspond to the streamwise, transverse and spanwise directions, respectively. At low Mach numbers, temperature fluctuations are minimal, so we take the fluid properties (μ𝜇\muitalic_μ, k𝑘kitalic_k, and cpsubscript𝑐𝑝c_{p}italic_c start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT) to be constant.

2.1 Linear OWNS

The NOWNS procedure follows closely the linear OWNS procedure, which we introduce first. We wish to study the evolution of a time-varying disturbance, 𝒒superscript𝒒\bm{q}^{\prime}bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, to a time-invariant equilibrium solution, 𝒒¯¯𝒒\bar{\bm{q}}over¯ start_ARG bold_italic_q end_ARG, so we decompose the flow into terms associated with 𝒒¯¯𝒒\bar{\bm{q}}over¯ start_ARG bold_italic_q end_ARG and 𝒒superscript𝒒\bm{q}^{\prime}bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, as described in appendix A, yielding the stability equations (31), for the vector of primitive variables 𝒒=(ν,u,v,w,p)𝒒𝜈𝑢𝑣𝑤𝑝\bm{q}=(\nu,u,v,w,p)bold_italic_q = ( italic_ν , italic_u , italic_v , italic_w , italic_p ). To simplify the exposition, we temporarily neglect the streamwise diffusion terms by introducing the exogeneous forcing function 𝒇=𝒇forcing+𝒇viscous𝒇subscript𝒇forcingsubscript𝒇viscous\bm{f}=\bm{f}_{\mathrm{forcing}}+\bm{f}_{\mathrm{viscous}}bold_italic_f = bold_italic_f start_POSTSUBSCRIPT roman_forcing end_POSTSUBSCRIPT + bold_italic_f start_POSTSUBSCRIPT roman_viscous end_POSTSUBSCRIPT where

𝒇viscous=Bx(𝒒¯)𝒒xBxx(𝒒¯)2𝒒x2Bxy(𝒒¯)2𝒒xyBxz(𝒒¯)2𝒒xz,subscript𝒇viscoussubscript𝐵𝑥¯𝒒superscript𝒒𝑥subscript𝐵𝑥𝑥¯𝒒superscript2superscript𝒒superscript𝑥2subscript𝐵𝑥𝑦¯𝒒superscript2superscript𝒒𝑥𝑦subscript𝐵𝑥𝑧¯𝒒superscript2superscript𝒒𝑥𝑧\bm{f}_{\mathrm{viscous}}=-B_{x}(\bar{\bm{q}})\frac{\partial\bm{q}^{\prime}}{% \partial x}-B_{xx}(\bar{\bm{q}})\frac{\partial^{2}\bm{q}^{\prime}}{\partial x^% {2}}-B_{xy}(\bar{\bm{q}})\frac{\partial^{2}\bm{q}^{\prime}}{\partial x\partial y% }-B_{xz}(\bar{\bm{q}})\frac{\partial^{2}\bm{q}^{\prime}}{\partial x\partial z},bold_italic_f start_POSTSUBSCRIPT roman_viscous end_POSTSUBSCRIPT = - italic_B start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG - italic_B start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG - italic_B start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x ∂ italic_y end_ARG - italic_B start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x ∂ italic_z end_ARG ,

represents streamwise diffusion terms associated with the disturbance variable, while 𝒇forcingsubscript𝒇forcing\bm{f}_{\mathrm{forcing}}bold_italic_f start_POSTSUBSCRIPT roman_forcing end_POSTSUBSCRIPT is an arbitrary forcing function. We then neglect the nonlinear term and re-write equation (31) to obtain the linear stability equation

Ax(𝒒¯)𝒒x=(𝒒¯)𝒒+𝒇.subscript𝐴𝑥¯𝒒superscript𝒒𝑥¯𝒒superscript𝒒𝒇A_{x}(\bar{\bm{q}})\frac{\partial\bm{q}^{\prime}}{\partial x}=\mathcal{L}(\bar% {\bm{q}})\bm{q}^{\prime}+\bm{f}.italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG = caligraphic_L ( over¯ start_ARG bold_italic_q end_ARG ) bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT + bold_italic_f . (2)

Previous work OWNS has often neglected 𝒇viscoussubscript𝒇viscous\bm{f}_{\mathrm{viscous}}bold_italic_f start_POSTSUBSCRIPT roman_viscous end_POSTSUBSCRIPT because this simplifies the procedure without significantly impacting its accuracy [19, 13, 14], but we have found that this term impacts more significantly the nonlinear calculation, as discussed in appendix C, so we re-introduce it (approximately) in section 2.1.5.

In NOWNS, we consider a system of linear OWNS equations coupled together through the nonlinear term, which acts as an inhomogeneous forcing function taking the place of 𝒇𝒇\bm{f}bold_italic_f in (2). The OWNS outflow (OWNS-O) approach [19] supports only homogeneous equations, so we must instead consider either the OWNS projection (OWNS-P) approach [20] or the OWNS recursive (OWNS-R) approach [21], which both support inhomogeneous equations. OWNS-R entails a reduced computational cost compared to OWNS-P, but we have found OWNS-P to be more robust, so we use it to develop the NOWNS approach.

2.1.1 Semi-discrete equations

Throughout this work, we assume that our disturbances are periodic in the spanwise direction with wavenumber β𝛽\betaitalic_β and in time with frequency ω𝜔\omegaitalic_ω so that we can expand our disturbances as Fourier series

𝒒(x,y,z,t)=m,n=𝒒^mn(x,y)ei(nβzmωt).superscript𝒒𝑥𝑦𝑧𝑡superscriptsubscript𝑚𝑛subscript^𝒒𝑚𝑛𝑥𝑦superscript𝑒𝑖𝑛𝛽𝑧𝑚𝜔𝑡\bm{q}^{\prime}(x,y,z,t)=\sum_{m,n=-\infty}^{\infty}\hat{\bm{q}}_{mn}(x,y)e^{i% (n\beta z-m\omega t)}.bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_x , italic_y , italic_z , italic_t ) = ∑ start_POSTSUBSCRIPT italic_m , italic_n = - ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT ( italic_x , italic_y ) italic_e start_POSTSUPERSCRIPT italic_i ( italic_n italic_β italic_z - italic_m italic_ω italic_t ) end_POSTSUPERSCRIPT . (3)

In the linear case, all Fourier modes evolve independently, and we consider a single disturbance of the form 𝒒(x,y,z,t)=𝒒^(x,y)ei(nβzmωt)superscript𝒒𝑥𝑦𝑧𝑡^𝒒𝑥𝑦superscript𝑒𝑖𝑛𝛽𝑧𝑚𝜔𝑡\bm{q}^{\prime}(x,y,z,t)=\hat{\bm{q}}(x,y)e^{i(n\beta z-m\omega t)}bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_x , italic_y , italic_z , italic_t ) = over^ start_ARG bold_italic_q end_ARG ( italic_x , italic_y ) italic_e start_POSTSUPERSCRIPT italic_i ( italic_n italic_β italic_z - italic_m italic_ω italic_t ) end_POSTSUPERSCRIPT, while we discretize in the wall-normal direction using a 4th-order central finite differences which we represent using D/y𝐷𝑦D\approx\partial/\partial yitalic_D ≈ ∂ / ∂ italic_y. Our semi-discrete linear operator is then

L(𝒒¯)=iωI[Ay(𝒒¯)+By(𝒒¯)]Diβ[Az(𝒒¯)+Bz(𝒒¯)]C(𝒒¯)Byy(𝒒¯)D2+β2Bzz(𝒒¯)iβByz(𝒒¯)=0,𝐿¯𝒒𝑖𝜔𝐼delimited-[]subscript𝐴𝑦¯𝒒subscript𝐵𝑦¯𝒒𝐷𝑖𝛽delimited-[]subscript𝐴𝑧¯𝒒subscript𝐵𝑧¯𝒒𝐶¯𝒒subscript𝐵𝑦𝑦¯𝒒superscript𝐷2superscript𝛽2subscript𝐵𝑧𝑧¯𝒒𝑖𝛽subscript𝐵𝑦𝑧¯𝒒0L(\bar{\bm{q}})=i\omega I-[A_{y}(\bar{\bm{q}})+B_{y}(\bar{\bm{q}})]D-i\beta[A_% {z}(\bar{\bm{q}})+B_{z}(\bar{\bm{q}})]-C(\bar{\bm{q}})-B_{yy}(\bar{\bm{q}})D^{% 2}+\beta^{2}B_{zz}(\bar{\bm{q}})-i\beta B_{yz}(\bar{\bm{q}})=0,italic_L ( over¯ start_ARG bold_italic_q end_ARG ) = italic_i italic_ω italic_I - [ italic_A start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) + italic_B start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) ] italic_D - italic_i italic_β [ italic_A start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) + italic_B start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) ] - italic_C ( over¯ start_ARG bold_italic_q end_ARG ) - italic_B start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) italic_D start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_β start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_B start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) - italic_i italic_β italic_B start_POSTSUBSCRIPT italic_y italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) = 0 , (4)

and we obtain

Ax(𝒒¯)𝒒x=L(𝒒¯)𝒒+𝒇,subscript𝐴𝑥¯𝒒superscript𝒒𝑥𝐿¯𝒒superscript𝒒𝒇A_{x}(\bar{\bm{q}})\frac{\partial\bm{q}^{\prime}}{\partial x}=L(\bar{\bm{q}})% \bm{q}^{\prime}+\bm{f},italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG = italic_L ( over¯ start_ARG bold_italic_q end_ARG ) bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT + bold_italic_f , (5)

a system of ODEs in x𝑥xitalic_x comprising Nvsubscript𝑁𝑣N_{v}italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT variables, where Nv=5Nysubscript𝑁𝑣5subscript𝑁𝑦N_{v}=5N_{y}italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT = 5 italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT (Nv=4Nysubscript𝑁𝑣4subscript𝑁𝑦N_{v}=4N_{y}italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT = 4 italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT) in 3D (2D), for the Nysubscript𝑁𝑦N_{y}italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT grid points in y𝑦yitalic_y.

2.1.2 Parabolization using the OWNS projection procedure

The above ODEs in x𝑥xitalic_x contain components that propagate both upstream and downstream, and cannot be stably integrated without further intervention. Therefore, we remove upstream effects using a projection operator that we apply in the characteristic variables, ϕ=T𝒒bold-italic-ϕ𝑇superscript𝒒\bm{\phi}=T\bm{q}^{\prime}bold_italic_ϕ = italic_T bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, where T𝑇Titalic_T are the eigenvectors of Axsubscript𝐴𝑥A_{x}italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT, while A~x=TAxT1subscript~𝐴𝑥𝑇subscript𝐴𝑥superscript𝑇1\tilde{A}_{x}=TA_{x}T^{-1}over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = italic_T italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_T start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT are the eigenvalues. Here we have dropped the argument 𝒒¯¯𝒒\bar{\bm{q}}over¯ start_ARG bold_italic_q end_ARG for brevity. We transform our equations to characteristic variables as

A~xϕ^x=L~ϕ^+𝒇^ϕ.subscript~𝐴𝑥^bold-italic-ϕ𝑥~𝐿^bold-italic-ϕsubscript^𝒇italic-ϕ\tilde{A}_{x}\frac{\partial\hat{\bm{\phi}}}{\partial x}=\tilde{L}\hat{\bm{\phi% }}+\hat{\bm{f}}_{\phi}.over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT divide start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG end_ARG start_ARG ∂ italic_x end_ARG = over~ start_ARG italic_L end_ARG over^ start_ARG bold_italic_ϕ end_ARG + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ end_POSTSUBSCRIPT . (6)

with L~=TLT1TAxT1x~𝐿𝑇𝐿superscript𝑇1𝑇subscript𝐴𝑥superscript𝑇1𝑥\tilde{L}=TLT^{-1}-TA_{x}\frac{\partial T^{-1}}{\partial x}over~ start_ARG italic_L end_ARG = italic_T italic_L italic_T start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT - italic_T italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT divide start_ARG ∂ italic_T start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG and 𝒇^ϕ=T𝒇^subscript^𝒇italic-ϕ𝑇^𝒇\hat{\bm{f}}_{\phi}=T\hat{\bm{f}}over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ end_POSTSUBSCRIPT = italic_T over^ start_ARG bold_italic_f end_ARG, and re-organize the diagonal matrix A~xsubscript~𝐴𝑥\tilde{A}_{x}over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT

A~x=[A~++000A~000A~00],subscript~𝐴𝑥matrixsubscript~𝐴absent000subscript~𝐴absent000subscript~𝐴00\tilde{A}_{x}=\begin{bmatrix}\tilde{A}_{++}&0&0\\ 0&\tilde{A}_{--}&0\\ 0&0&\tilde{A}_{00}\end{bmatrix},over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT + + end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT - - end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , (7)

for the N+subscript𝑁N_{+}italic_N start_POSTSUBSCRIPT + end_POSTSUBSCRIPT positive eigenvalues A~++>0subscript~𝐴absent0\tilde{A}_{++}>0over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT + + end_POSTSUBSCRIPT > 0, the Nsubscript𝑁N_{-}italic_N start_POSTSUBSCRIPT - end_POSTSUBSCRIPT negative eigenvalues A~<0subscript~𝐴absent0\tilde{A}_{--}<0over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT - - end_POSTSUBSCRIPT < 0, and the N0subscript𝑁0N_{0}italic_N start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT zero eigenvalues A~00=0subscript~𝐴000\tilde{A}_{00}=0over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT = 0, where N0+N+N+=Nvsubscript𝑁0subscript𝑁subscript𝑁subscript𝑁𝑣N_{0}+N_{-}+N_{+}=N_{v}italic_N start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_N start_POSTSUBSCRIPT - end_POSTSUBSCRIPT + italic_N start_POSTSUBSCRIPT + end_POSTSUBSCRIPT = italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT. We further define

A~±±=[A~++00A~],L~±±=[L~++L~+L~+L~],L~±0=[L~+0L~0],L~0±=[L~0+L~0],ϕ^=[ϕ^±ϕ^0],𝒇^ϕ=[𝒇^ϕ,±𝒇^ϕ,0],formulae-sequencesubscript~𝐴plus-or-minusabsentplus-or-minusmatrixsubscript~𝐴absent00subscript~𝐴absentformulae-sequencesubscript~𝐿plus-or-minusabsentplus-or-minusmatrixsubscript~𝐿absentsubscript~𝐿absentsubscript~𝐿absentsubscript~𝐿absentformulae-sequencesubscript~𝐿plus-or-minus0matrixsubscript~𝐿0subscript~𝐿0formulae-sequencesubscript~𝐿limit-from0plus-or-minusmatrixsubscript~𝐿limit-from0subscript~𝐿limit-from0formulae-sequence^bold-italic-ϕmatrixsubscript^bold-italic-ϕplus-or-minussubscript^bold-italic-ϕ0subscript^𝒇italic-ϕmatrixsubscript^𝒇italic-ϕplus-or-minussubscript^𝒇italic-ϕ0\tilde{A}_{\pm\pm}=\begin{bmatrix}\tilde{A}_{++}&0\\ 0&\tilde{A}_{--}\end{bmatrix},\quad\tilde{L}_{\pm\pm}=\begin{bmatrix}\tilde{L}% _{++}&\tilde{L}_{+-}\\ \tilde{L}_{-+}&\tilde{L}_{--}\end{bmatrix},\quad\tilde{L}_{\pm 0}=\begin{% bmatrix}\tilde{L}_{+0}\\ \tilde{L}_{-0}\end{bmatrix},\quad\tilde{L}_{0\pm}=\begin{bmatrix}\tilde{L}_{0+% }&\tilde{L}_{0-}\end{bmatrix},\quad\hat{\bm{\phi}}=\begin{bmatrix}\hat{\bm{% \phi}}_{\pm}\\ \hat{\bm{\phi}}_{0}\end{bmatrix},\quad\hat{\bm{f}}_{\phi}=\begin{bmatrix}\hat{% \bm{f}}_{\phi,\pm}\\ \hat{\bm{f}}_{\phi,0}\end{bmatrix},over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT + + end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT - - end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT + + end_POSTSUBSCRIPT end_CELL start_CELL over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT + - end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT - + end_POSTSUBSCRIPT end_CELL start_CELL over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT - - end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT ± 0 end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT + 0 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT - 0 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 ± end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 + end_POSTSUBSCRIPT end_CELL start_CELL over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 - end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , over^ start_ARG bold_italic_ϕ end_ARG = [ start_ARG start_ROW start_CELL over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , ± end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , 0 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] ,

so that our equations become

A~±±ϕ^±xsubscript~𝐴plus-or-minusabsentplus-or-minussubscript^bold-italic-ϕplus-or-minus𝑥\displaystyle\tilde{A}_{\pm\pm}\frac{\partial\hat{\bm{\phi}}_{\pm}}{\partial x}over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT divide start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT end_ARG start_ARG ∂ italic_x end_ARG =L~±±ϕ^±+L~±0ϕ^0+𝒇^ϕ,±,absentsubscript~𝐿plus-or-minusabsentplus-or-minussubscript^bold-italic-ϕplus-or-minussubscript~𝐿plus-or-minus0subscript^bold-italic-ϕ0subscript^𝒇italic-ϕplus-or-minus\displaystyle=\tilde{L}_{\pm\pm}\hat{\bm{\phi}}_{\pm}+\tilde{L}_{\pm 0}\hat{% \bm{\phi}}_{0}+\hat{\bm{f}}_{\phi,\pm},= over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT + over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT ± 0 end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , ± end_POSTSUBSCRIPT , (8a)
00\displaystyle 0 =L~0±ϕ^±+L~00ϕ^0+𝒇^ϕ,0,absentsubscript~𝐿limit-from0plus-or-minussubscript^bold-italic-ϕplus-or-minussubscript~𝐿00subscript^bold-italic-ϕ0subscript^𝒇italic-ϕ0\displaystyle=\tilde{L}_{0\pm}\hat{\bm{\phi}}_{\pm}+\tilde{L}_{00}\hat{\bm{% \phi}}_{0}+\hat{\bm{f}}_{\phi,0},= over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 ± end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT + over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , 0 end_POSTSUBSCRIPT , (8b)

which is a differential algebraic equation (DAE) of index 1. We can use the algebraic constraint (8b) to obtain ϕ^0=L~001[L~0±ϕ^±+𝒇^ϕ,0]subscript^bold-italic-ϕ0superscriptsubscript~𝐿001delimited-[]subscript~𝐿limit-from0plus-or-minussubscript^bold-italic-ϕplus-or-minussubscript^𝒇italic-ϕ0\hat{\bm{\phi}}_{0}=-\tilde{L}_{00}^{-1}[\tilde{L}_{0\pm}\hat{\bm{\phi}}_{\pm}% +\hat{\bm{f}}_{\phi,0}]over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = - over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT [ over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 ± end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , 0 end_POSTSUBSCRIPT ] so that we can re-write our DAE as an ODE

ϕ^±x=Mϕ^±+𝒈^,subscript^bold-italic-ϕplus-or-minus𝑥𝑀subscript^bold-italic-ϕplus-or-minus^𝒈\frac{\partial\hat{\bm{\phi}}_{\pm}}{\partial x}=M\hat{\bm{\phi}}_{\pm}+\hat{% \bm{g}},divide start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT end_ARG start_ARG ∂ italic_x end_ARG = italic_M over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT + over^ start_ARG bold_italic_g end_ARG , (9)

for M=A~±±1[L~±±L~±0L~001L~0±]𝑀superscriptsubscript~𝐴plus-or-minusabsentplus-or-minus1delimited-[]subscript~𝐿plus-or-minusabsentplus-or-minussubscript~𝐿plus-or-minus0superscriptsubscript~𝐿001subscript~𝐿limit-from0plus-or-minusM=\tilde{A}_{\pm\pm}^{-1}[\tilde{L}_{\pm\pm}-\tilde{L}_{\pm 0}\tilde{L}_{00}^{% -1}\tilde{L}_{0\pm}]italic_M = over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT [ over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT - over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT ± 0 end_POSTSUBSCRIPT over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 ± end_POSTSUBSCRIPT ], and 𝒈^=A~±±1[𝒇^ϕ,±L~±0L001𝒇^ϕ,0]^𝒈superscriptsubscript~𝐴plus-or-minusabsentplus-or-minus1delimited-[]subscript^𝒇italic-ϕplus-or-minussubscript~𝐿plus-or-minus0superscriptsubscript𝐿001subscript^𝒇italic-ϕ0\hat{\bm{g}}=\tilde{A}_{\pm\pm}^{-1}[\hat{\bm{f}}_{\phi,\pm}-\tilde{L}_{\pm 0}% L_{00}^{-1}\hat{\bm{f}}_{\phi,0}]over^ start_ARG bold_italic_g end_ARG = over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT [ over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , ± end_POSTSUBSCRIPT - over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT ± 0 end_POSTSUBSCRIPT italic_L start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , 0 end_POSTSUBSCRIPT ].

The upstream- and downstream-going modes of (9) can be determined based on the eigenvalues of M𝑀Mitalic_M, according to Brigg’s criterion [22], which can then be used to introduce well-posed one-way equations, according to the criterion of Kreiss [23], as described in Towne and Colonius (2015) [19] and Towne et al. (2022) [20]. We expand the solution as a linear combination of the eigenvectors ϕ^±=V𝝍^=k=1N𝒗(k)ψ^k,subscript^bold-italic-ϕplus-or-minus𝑉^𝝍superscriptsubscript𝑘1𝑁superscript𝒗𝑘subscript^𝜓𝑘\hat{\bm{\phi}}_{\pm}=V\hat{\bm{\psi}}=\sum_{k=1}^{N}\bm{v}^{(k)}\hat{\psi}_{k},over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT = italic_V over^ start_ARG bold_italic_ψ end_ARG = ∑ start_POSTSUBSCRIPT italic_k = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT bold_italic_v start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT over^ start_ARG italic_ψ end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , where V𝑉Vitalic_V are the eigenvectors M=VDV1𝑀𝑉𝐷superscript𝑉1M=VDV^{-1}italic_M = italic_V italic_D italic_V start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT. From Brigg’s criterion, we know that M𝑀Mitalic_M has N+subscript𝑁N_{+}italic_N start_POSTSUBSCRIPT + end_POSTSUBSCRIPT downstream- and Nsubscript𝑁N_{-}italic_N start_POSTSUBSCRIPT - end_POSTSUBSCRIPT upstream-going modes, so that we can further partition V𝑉Vitalic_V into its downstream- (V+subscript𝑉V_{+}italic_V start_POSTSUBSCRIPT + end_POSTSUBSCRIPT) and upstream-going (Vsubscript𝑉V_{-}italic_V start_POSTSUBSCRIPT - end_POSTSUBSCRIPT) components yielding the downstream- and upstream-going solutions ϕ^±=V+𝝍^+superscriptsubscript^bold-italic-ϕplus-or-minussubscript𝑉subscript^𝝍\hat{\bm{\phi}}_{\pm}^{\prime}=V_{+}\hat{\bm{\psi}}_{+}over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = italic_V start_POSTSUBSCRIPT + end_POSTSUBSCRIPT over^ start_ARG bold_italic_ψ end_ARG start_POSTSUBSCRIPT + end_POSTSUBSCRIPT and ϕ^±′′=V𝝍^superscriptsubscript^bold-italic-ϕplus-or-minus′′subscript𝑉subscript^𝝍\hat{\bm{\phi}}_{\pm}^{\prime\prime}=V_{-}\hat{\bm{\psi}}_{-}over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT = italic_V start_POSTSUBSCRIPT - end_POSTSUBSCRIPT over^ start_ARG bold_italic_ψ end_ARG start_POSTSUBSCRIPT - end_POSTSUBSCRIPT, respectively. We then use the eigensystem of M𝑀Mitalic_M to define the projection operator

P=V[I++000]V1,𝑃𝑉matrixsubscript𝐼absent000superscript𝑉1P=V\begin{bmatrix}I_{++}&0\\ 0&0\end{bmatrix}V^{-1},italic_P = italic_V [ start_ARG start_ROW start_CELL italic_I start_POSTSUBSCRIPT + + end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] italic_V start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ,

which retains the downstream-going modes associated with 𝝍+subscript𝝍\bm{\psi}_{+}bold_italic_ψ start_POSTSUBSCRIPT + end_POSTSUBSCRIPT while removing the upstream-going modes associated with 𝝍subscript𝝍\bm{\psi}_{-}bold_italic_ψ start_POSTSUBSCRIPT - end_POSTSUBSCRIPT. We apply P𝑃Pitalic_P to our ODE (9) and use linearity to assert that

ϕ^±x+ϕ^±′′x=P[Mϕ^±+𝒈^]+[IP][Mϕ^±+𝒈^],subscriptsuperscript^bold-italic-ϕplus-or-minus𝑥superscriptsubscript^bold-italic-ϕplus-or-minus′′𝑥𝑃delimited-[]𝑀subscript^bold-italic-ϕplus-or-minus^𝒈delimited-[]𝐼𝑃delimited-[]𝑀subscript^bold-italic-ϕplus-or-minus^𝒈\frac{\partial\hat{\bm{\phi}}^{\prime}_{\pm}}{\partial x}+\frac{\partial\hat{% \bm{\phi}}_{\pm}^{\prime\prime}}{\partial x}=P[M\hat{\bm{\phi}}_{\pm}+\hat{\bm% {g}}]+[I-P][M\hat{\bm{\phi}}_{\pm}+\hat{\bm{g}}],divide start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT end_ARG start_ARG ∂ italic_x end_ARG + divide start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG = italic_P [ italic_M over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT + over^ start_ARG bold_italic_g end_ARG ] + [ italic_I - italic_P ] [ italic_M over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT + over^ start_ARG bold_italic_g end_ARG ] ,

yielding the equation for the downstream-going solution

ϕ^±x=P[Mϕ^±+𝒈^],superscriptsubscript^bold-italic-ϕplus-or-minus𝑥𝑃delimited-[]𝑀superscriptsubscript^bold-italic-ϕplus-or-minus^𝒈\frac{\partial\hat{\bm{\phi}}_{\pm}^{\prime}}{\partial x}=P[M\hat{\bm{\phi}}_{% \pm}^{\prime}+\hat{\bm{g}}],divide start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG = italic_P [ italic_M over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT + over^ start_ARG bold_italic_g end_ARG ] , (10)

where we used that P𝑃Pitalic_P and M𝑀Mitalic_M commute, as shown by Towne et al. [20].

2.1.3 Approximate projection operator

Explicitly using Brigg’s criterion to identify upstream- and downstream-going modes in a rigorous way would be computationally expensive and prone to numerical error, so we instead apply the projection operator approximately using a recursive filter [19, 20].

We define the residuals 𝒓^±(ϕ)=A~x,±±1[L~±±ϕ^±+L~±0ϕ^0+𝒇^ϕ,±],subscript^𝒓plus-or-minusbold-italic-ϕsuperscriptsubscript~𝐴𝑥plus-or-minusabsentplus-or-minus1delimited-[]subscript~𝐿plus-or-minusabsentplus-or-minussubscript^bold-italic-ϕplus-or-minussubscript~𝐿plus-or-minus0subscript^bold-italic-ϕ0subscript^𝒇italic-ϕplus-or-minus\hat{\bm{r}}_{\pm}(\bm{\phi})=\tilde{A}_{x,\pm\pm}^{-1}[\tilde{L}_{\pm\pm}\hat% {\bm{\phi}}_{\pm}+\tilde{L}_{\pm 0}\hat{\bm{\phi}}_{0}+\hat{\bm{f}}_{\phi,\pm}],over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT ( bold_italic_ϕ ) = over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT italic_x , ± ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT [ over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT + over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT ± 0 end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , ± end_POSTSUBSCRIPT ] , and 𝒓^0(ϕ)=L~0±ϕ^±+L~00ϕ^0+𝒇^ϕ,0subscript^𝒓0bold-italic-ϕsubscript~𝐿limit-from0plus-or-minussubscript^bold-italic-ϕplus-or-minussubscript~𝐿00subscript^bold-italic-ϕ0subscript^𝒇italic-ϕ0\hat{\bm{r}}_{0}(\bm{\phi})=\tilde{L}_{0\pm}\hat{\bm{\phi}}_{\pm}+\tilde{L}_{0% 0}\hat{\bm{\phi}}_{0}+\hat{\bm{f}}_{\phi,0}over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( bold_italic_ϕ ) = over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 ± end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT + over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , 0 end_POSTSUBSCRIPT based on (8), and following the approach of Towne et al. [20], we can apply P𝑃Pitalic_P approximately to the residual using the recursive filter

𝒓^+(Nb)superscriptsubscript^𝒓subscript𝑁𝑏\displaystyle\hat{\bm{r}}_{+}^{(-N_{b})}over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT + end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( - italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT =0absent0\displaystyle=0= 0 (11a)
(L~iβ(j)A~)𝒓^(j)(L~iβ+(j)A~)𝒓^(j1)~𝐿𝑖superscriptsubscript𝛽𝑗~𝐴superscript^𝒓𝑗~𝐿𝑖superscriptsubscript𝛽𝑗~𝐴superscript^𝒓𝑗1\displaystyle(\tilde{L}-i\beta_{-}^{(j)}\tilde{A})\hat{\bm{r}}^{(-j)}-(\tilde{% L}-i\beta_{+}^{(j)}\tilde{A})\hat{\bm{r}}^{(-j-1)}( over~ start_ARG italic_L end_ARG - italic_i italic_β start_POSTSUBSCRIPT - end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT over~ start_ARG italic_A end_ARG ) over^ start_ARG bold_italic_r end_ARG start_POSTSUPERSCRIPT ( - italic_j ) end_POSTSUPERSCRIPT - ( over~ start_ARG italic_L end_ARG - italic_i italic_β start_POSTSUBSCRIPT + end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT over~ start_ARG italic_A end_ARG ) over^ start_ARG bold_italic_r end_ARG start_POSTSUPERSCRIPT ( - italic_j - 1 ) end_POSTSUPERSCRIPT =0,j=1,,Nb1formulae-sequenceabsent0𝑗1subscript𝑁𝑏1\displaystyle=0,\quad j=1,\dots,N_{b}-1= 0 , italic_j = 1 , … , italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT - 1 (11b)
(L~iβ(0)A~)𝒓^(0)(L~iβ+(0)A~)𝒓^(1)~𝐿𝑖superscriptsubscript𝛽0~𝐴superscript^𝒓0~𝐿𝑖superscriptsubscript𝛽0~𝐴superscript^𝒓1\displaystyle(\tilde{L}-i\beta_{-}^{(0)}\tilde{A})\hat{\bm{r}}^{(0)}-(\tilde{L% }-i\beta_{+}^{(0)}\tilde{A})\hat{\bm{r}}^{(-1)}( over~ start_ARG italic_L end_ARG - italic_i italic_β start_POSTSUBSCRIPT - end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT over~ start_ARG italic_A end_ARG ) over^ start_ARG bold_italic_r end_ARG start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT - ( over~ start_ARG italic_L end_ARG - italic_i italic_β start_POSTSUBSCRIPT + end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT over~ start_ARG italic_A end_ARG ) over^ start_ARG bold_italic_r end_ARG start_POSTSUPERSCRIPT ( - 1 ) end_POSTSUPERSCRIPT =(L~iβ(0)A~)𝒓^absent~𝐿𝑖superscriptsubscript𝛽0~𝐴^𝒓\displaystyle=(\tilde{L}-i\beta_{-}^{(0)}\tilde{A})\hat{\bm{r}}= ( over~ start_ARG italic_L end_ARG - italic_i italic_β start_POSTSUBSCRIPT - end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT over~ start_ARG italic_A end_ARG ) over^ start_ARG bold_italic_r end_ARG (11c)
𝒓^0(0)superscriptsubscript^𝒓00\displaystyle\hat{\bm{r}}_{0}^{(0)}over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT =𝒓^0,absentsubscript^𝒓0\displaystyle=\hat{\bm{r}}_{0},= over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , (11d)
(L~iβ+(j)A~)𝒓^(j)(L~iβ(j)A~)𝒓^(j+1)~𝐿𝑖superscriptsubscript𝛽𝑗~𝐴superscript^𝒓𝑗~𝐿𝑖superscriptsubscript𝛽𝑗~𝐴superscript^𝒓𝑗1\displaystyle(\tilde{L}-i\beta_{+}^{(j)}\tilde{A})\hat{\bm{r}}^{(j)}-(\tilde{L% }-i\beta_{-}^{(j)}\tilde{A})\hat{\bm{r}}^{(j+1)}( over~ start_ARG italic_L end_ARG - italic_i italic_β start_POSTSUBSCRIPT + end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT over~ start_ARG italic_A end_ARG ) over^ start_ARG bold_italic_r end_ARG start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT - ( over~ start_ARG italic_L end_ARG - italic_i italic_β start_POSTSUBSCRIPT - end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT over~ start_ARG italic_A end_ARG ) over^ start_ARG bold_italic_r end_ARG start_POSTSUPERSCRIPT ( italic_j + 1 ) end_POSTSUPERSCRIPT =0,j=0,,Nb1formulae-sequenceabsent0𝑗0subscript𝑁𝑏1\displaystyle=0,\quad j=0,\dots,N_{b}-1= 0 , italic_j = 0 , … , italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT - 1 (11e)
𝒓^(Nb)superscriptsubscript^𝒓subscript𝑁𝑏\displaystyle\hat{\bm{r}}_{-}^{(N_{b})}over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT - end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT =0,absent0\displaystyle=0,= 0 , (11f)

where 𝒓^0=0subscript^𝒓00\hat{\bm{r}}_{0}=0over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 0 when the algebraic constraint (8b) is satisfied. Here, {β±(j)}j=0Nb1superscriptsubscriptsuperscriptsubscript𝛽plus-or-minus𝑗𝑗0subscript𝑁𝑏1\{\beta_{\pm}^{(j)}\}_{j=0}^{N_{b}-1}{ italic_β start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_j = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT - 1 end_POSTSUPERSCRIPT are termed the recursion parameters, while {𝒓^(j)}j=NbNbsuperscriptsubscriptsuperscript^𝒓𝑗𝑗subscript𝑁𝑏subscript𝑁𝑏\{\hat{\bm{r}}^{(j)}\}_{j=-N_{b}}^{N_{b}}{ over^ start_ARG bold_italic_r end_ARG start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_j = - italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT end_POSTSUPERSCRIPT are termed the auxiliary variables, where Naux=(2Nv+1)Nbsubscript𝑁aux2subscript𝑁𝑣1subscript𝑁𝑏N_{\mathrm{aux}}=(2N_{v}+1)N_{b}italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT = ( 2 italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + 1 ) italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT. We introduce the vector auxiliary variables 𝒓^aux𝒞Nauxsubscript^𝒓auxsuperscript𝒞subscript𝑁aux\hat{\bm{r}}_{\mathrm{aux}}\in\mathcal{C}^{N_{\mathrm{aux}}}over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT ∈ caligraphic_C start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, and the approximate projection operators P1Naux×Nvsubscript𝑃1superscriptsubscript𝑁auxsubscript𝑁𝑣P_{1}\in\mathbb{C}^{N_{\mathrm{aux}}\times N_{v}}italic_P start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT × italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, P2Naux×Nauxsubscript𝑃2superscriptsubscript𝑁auxsubscript𝑁auxP_{2}\in\mathbb{C}^{N_{\mathrm{aux}}\times N_{\mathrm{aux}}}italic_P start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT × italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, P3N±×Nauxsubscript𝑃3superscriptsubscript𝑁plus-or-minussubscript𝑁auxP_{3}\in\mathbb{R}^{N_{\pm}\times N_{\mathrm{aux}}}italic_P start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT × italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, where P1𝒓^subscript𝑃1^𝒓P_{1}\hat{\bm{r}}italic_P start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT over^ start_ARG bold_italic_r end_ARG and P2𝒓^auxsubscript𝑃2subscript^𝒓auxP_{2}\hat{\bm{r}}_{\mathrm{aux}}italic_P start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT give the right- and left-hand sides of (11), respectively, while P3subscript𝑃3P_{3}italic_P start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT extracts 𝒓^±(0)superscriptsubscript^𝒓plus-or-minus0\hat{\bm{r}}_{\pm}^{(0)}over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT from 𝒓^auxsubscript^𝒓aux\hat{\bm{r}}_{\mathrm{aux}}over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT as 𝒓^±(0)=P3𝒓^auxsuperscriptsubscript^𝒓plus-or-minus0subscript𝑃3subscript^𝒓aux\hat{\bm{r}}_{\pm}^{(0)}=P_{3}\hat{\bm{r}}_{\mathrm{aux}}over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT = italic_P start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT. The action of the approximate projection operator on the DAE (8) can expressed compactly as

ϕ^±xsuperscriptsubscript^bold-italic-ϕplus-or-minus𝑥\displaystyle\frac{\partial\hat{\bm{\phi}}_{\pm}^{\prime}}{\partial x}divide start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG =P3𝒓^aux,absentsubscript𝑃3subscript^𝒓aux\displaystyle=P_{3}\hat{\bm{r}}_{\mathrm{aux}},= italic_P start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT , (12a)
P2𝒓^auxsubscript𝑃2subscript^𝒓aux\displaystyle P_{2}\hat{\bm{r}}_{\mathrm{aux}}italic_P start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT over^ start_ARG bold_italic_r end_ARG start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT =P1[A~±±1[L~±±ϕ^±+L~±0ϕ^0+𝒇^ϕ,±]L~0±ϕ^±+L~00ϕ^0+𝒇^ϕ,0],absentsubscript𝑃1matrixsuperscriptsubscript~𝐴plus-or-minusabsentplus-or-minus1delimited-[]subscript~𝐿plus-or-minusabsentplus-or-minussubscriptsuperscript^bold-italic-ϕplus-or-minussubscript~𝐿plus-or-minus0subscriptsuperscript^bold-italic-ϕ0subscript^𝒇italic-ϕplus-or-minussubscript~𝐿limit-from0plus-or-minussubscriptsuperscript^bold-italic-ϕplus-or-minussubscript~𝐿00subscriptsuperscript^bold-italic-ϕ0subscript^𝒇italic-ϕ0\displaystyle=P_{1}\begin{bmatrix}\tilde{A}_{\pm\pm}^{-1}[\tilde{L}_{\pm\pm}% \hat{\bm{\phi}}^{\prime}_{\pm}+\tilde{L}_{\pm 0}\hat{\bm{\phi}}^{\prime}_{0}+% \hat{\bm{f}}_{\phi,\pm}]\\ \tilde{L}_{0\pm}\hat{\bm{\phi}}^{\prime}_{\pm}+\tilde{L}_{00}\hat{\bm{\phi}}^{% \prime}_{0}+\hat{\bm{f}}_{\phi,0}\end{bmatrix},= italic_P start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT [ start_ARG start_ROW start_CELL over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT [ over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT + over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT ± 0 end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , ± end_POSTSUBSCRIPT ] end_CELL end_ROW start_ROW start_CELL over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 ± end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT + over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , 0 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , (12b)
00\displaystyle 0 =L~0±ϕ^±+L~00ϕ^0+𝒇^ϕ,0.absentsubscript~𝐿limit-from0plus-or-minussubscriptsuperscript^bold-italic-ϕplus-or-minussubscript~𝐿00subscriptsuperscript^bold-italic-ϕ0subscript^𝒇italic-ϕ0\displaystyle=\tilde{L}_{0\pm}\hat{\bm{\phi}}^{\prime}_{\pm}+\tilde{L}_{00}% \hat{\bm{\phi}}^{\prime}_{0}+\hat{\bm{f}}_{\phi,0}.= over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 ± end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT + over~ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , 0 end_POSTSUBSCRIPT . (12c)

2.1.4 Fully-discrete equations

We define A,L(Nv+Naux)×(Nv+Naux)superscript𝐴superscript𝐿superscriptsubscript𝑁𝑣subscript𝑁auxsubscript𝑁𝑣subscript𝑁auxA^{\ddagger},L^{\ddagger}\in\mathbb{R}^{(N_{v}+N_{\mathrm{aux}})\times(N_{v}+N% _{\mathrm{aux}})}italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT , italic_L start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT ( italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT ) × ( italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT and ϕ^,𝒇^ϕNv+Nauxsuperscript^bold-italic-ϕsuperscriptsubscript^𝒇italic-ϕsuperscriptsubscript𝑁𝑣subscript𝑁aux\hat{\bm{\phi}}^{\ddagger},\hat{\bm{f}}_{\phi}^{\ddagger}\in\mathbb{C}^{N_{v}+% N_{\mathrm{aux}}}over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT , over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT end_POSTSUPERSCRIPT such that

A=[I±±00000000],L=[00ΔxP3P1[A~±±1L±±L0±]P1[A~±±1L±0L00]P2L0±L000],ϕ^=[ϕ±ϕ0𝒓aux],𝒇^ϕ=[0P1[A~±±1𝒇^ϕ,±𝒇^ϕ,0]𝒇^ϕ,0],formulae-sequencesuperscript𝐴matrixsubscript𝐼plus-or-minusabsentplus-or-minus00000000formulae-sequencesuperscript𝐿matrix00Δ𝑥subscript𝑃3subscript𝑃1matrixsuperscriptsubscript~𝐴plus-or-minusabsentplus-or-minus1subscript𝐿plus-or-minusabsentplus-or-minussubscript𝐿limit-from0plus-or-minussubscript𝑃1matrixsuperscriptsubscript~𝐴plus-or-minusabsentplus-or-minus1subscript𝐿plus-or-minus0subscript𝐿00subscript𝑃2subscript𝐿limit-from0plus-or-minussubscript𝐿000formulae-sequencesuperscript^bold-italic-ϕmatrixsuperscriptsubscriptbold-italic-ϕplus-or-minussubscriptbold-italic-ϕ0subscript𝒓auxsuperscriptsubscript^𝒇italic-ϕmatrix0subscript𝑃1matrixsuperscriptsubscript~𝐴plus-or-minusabsentplus-or-minus1subscript^𝒇italic-ϕplus-or-minussubscript^𝒇italic-ϕ0subscript^𝒇italic-ϕ0A^{\ddagger}=\begin{bmatrix}I_{\pm\pm}&0&0\\ 0&0&0\\ 0&0&0\end{bmatrix},\quad L^{\ddagger}=\begin{bmatrix}0&0&\Delta xP_{3}\\ P_{1}\begin{bmatrix}\tilde{A}_{\pm\pm}^{-1}L_{\pm\pm}\\ L_{0\pm}\end{bmatrix}&P_{1}\begin{bmatrix}\tilde{A}_{\pm\pm}^{-1}L_{\pm 0}\\ L_{00}\end{bmatrix}&-P_{2}\\ L_{0\pm}&L_{00}&0\end{bmatrix},\quad\hat{\bm{\phi}}^{\ddagger}=\begin{bmatrix}% \bm{\phi}_{\pm}^{\prime}\\ \bm{\phi}_{0}\\ \bm{r}_{\mathrm{aux}}\end{bmatrix},\quad\hat{\bm{f}}_{\phi}^{\ddagger}=\begin{% bmatrix}0\\ P_{1}\begin{bmatrix}\tilde{A}_{\pm\pm}^{-1}\hat{\bm{f}}_{\phi,\pm}\\ \hat{\bm{f}}_{\phi,0}\end{bmatrix}\\ \hat{\bm{f}}_{\phi,0}\\ \end{bmatrix},italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL italic_I start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] , italic_L start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL roman_Δ italic_x italic_P start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_P start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT [ start_ARG start_ROW start_CELL over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_L start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_L start_POSTSUBSCRIPT 0 ± end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] end_CELL start_CELL italic_P start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT [ start_ARG start_ROW start_CELL over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_L start_POSTSUBSCRIPT ± 0 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_L start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] end_CELL start_CELL - italic_P start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_L start_POSTSUBSCRIPT 0 ± end_POSTSUBSCRIPT end_CELL start_CELL italic_L start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] , over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL bold_italic_ϕ start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL bold_italic_ϕ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL bold_italic_r start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL 0 end_CELL end_ROW start_ROW start_CELL italic_P start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT [ start_ARG start_ROW start_CELL over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , ± end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , 0 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , 0 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] ,

and apply an s𝑠sitalic_s-order BDF scheme to obtain the linear OWNS equation

[c(0)AL(k+1)]ϕ^(k+1)=l=1s1c(l)Aϕ^(k+1l)+𝒇^ϕ(k+1),delimited-[]superscript𝑐0superscript𝐴superscript𝐿absent𝑘1superscript^bold-italic-ϕabsent𝑘1superscriptsubscript𝑙1𝑠1superscript𝑐𝑙superscript𝐴superscript^bold-italic-ϕabsent𝑘1𝑙superscriptsubscript^𝒇italic-ϕabsent𝑘1[c^{(0)}A^{\ddagger}-L^{\ddagger(k+1)}]\hat{\bm{\phi}}^{\ddagger(k+1)}=-\sum_{% l=1}^{s-1}c^{(l)}A^{\ddagger}\hat{\bm{\phi}}^{\ddagger(k+1-l)}+\hat{\bm{f}}_{% \phi}^{\ddagger(k+1)},[ italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - italic_L start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT ] over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT = - ∑ start_POSTSUBSCRIPT italic_l = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_s - 1 end_POSTSUPERSCRIPT italic_c start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ‡ ( italic_k + 1 - italic_l ) end_POSTSUPERSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT , (13)

as has been done in previous work on linear OWNS [13, 14].

2.1.5 Streamwise diffusion terms

Following discretization in the wall-normal direction and trasnformation to characteristic variables, our streamwise diffusion terms become

𝒇^ϕ,viscous=B~xx2ϕ^x2B~xϕ^xB~ϕ^.subscript^𝒇italic-ϕviscoussubscript~𝐵𝑥𝑥superscript2^bold-italic-ϕsuperscript𝑥2subscript~𝐵𝑥^bold-italic-ϕ𝑥~𝐵^bold-italic-ϕ\hat{\bm{f}}_{\phi,\mathrm{viscous}}=-\tilde{B}_{xx}\frac{\partial^{2}\hat{\bm% {\phi}}}{\partial x^{2}}-\tilde{B}_{x}\frac{\partial\hat{\bm{\phi}}}{\partial x% }-\tilde{B}\hat{\bm{\phi}}.over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , roman_viscous end_POSTSUBSCRIPT = - over~ start_ARG italic_B end_ARG start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over^ start_ARG bold_italic_ϕ end_ARG end_ARG start_ARG ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG - over~ start_ARG italic_B end_ARG start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT divide start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG end_ARG start_ARG ∂ italic_x end_ARG - over~ start_ARG italic_B end_ARG over^ start_ARG bold_italic_ϕ end_ARG .

for B~xx=TBxxT1subscript~𝐵𝑥𝑥𝑇subscript𝐵𝑥𝑥superscript𝑇1\tilde{B}_{xx}=TB_{xx}T^{-1}over~ start_ARG italic_B end_ARG start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT = italic_T italic_B start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT italic_T start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT, B~x=2TBxxT1x+T[Bx+BxyD+iβBxz]T1subscript~𝐵𝑥2𝑇subscript𝐵𝑥𝑥superscript𝑇1𝑥𝑇delimited-[]subscript𝐵𝑥subscript𝐵𝑥𝑦𝐷𝑖𝛽subscript𝐵𝑥𝑧superscript𝑇1\tilde{B}_{x}=2TB_{xx}\frac{\partial T^{-1}}{\partial x}+T[B_{x}+B_{xy}D+i% \beta B_{xz}]T^{-1}over~ start_ARG italic_B end_ARG start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = 2 italic_T italic_B start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT divide start_ARG ∂ italic_T start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG + italic_T [ italic_B start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_B start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT italic_D + italic_i italic_β italic_B start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT ] italic_T start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT, and B~=TBxx2T1x2+T[Bx+BxyD+iβBxz]T1x~𝐵𝑇subscript𝐵𝑥𝑥superscript2superscript𝑇1superscript𝑥2𝑇delimited-[]subscript𝐵𝑥subscript𝐵𝑥𝑦𝐷𝑖𝛽subscript𝐵𝑥𝑧superscript𝑇1𝑥\tilde{B}=TB_{xx}\frac{\partial^{2}T^{-1}}{\partial x^{2}}+T[B_{x}+B_{xy}D+i% \beta B_{xz}]\frac{\partial T^{-1}}{\partial x}over~ start_ARG italic_B end_ARG = italic_T italic_B start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_T start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_T [ italic_B start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT + italic_B start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT italic_D + italic_i italic_β italic_B start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT ] divide start_ARG ∂ italic_T start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG. We discretize the second-derivative using a second-order backward difference, while we discretize the first-derivative using the BDF scheme to obtain

𝒇^ϕ,viscous(k+1)=B~xxϕ^(k+1)2ϕ^(k)+ϕ^(k1)(Δx)2(l=0s1c(l)B~xϕ^(k+1l))B~ϕ^(k+1),subscriptsuperscript^𝒇𝑘1italic-ϕviscoussubscript~𝐵𝑥𝑥superscript^bold-italic-ϕ𝑘12superscript^bold-italic-ϕ𝑘superscript^bold-italic-ϕ𝑘1superscriptΔ𝑥2superscriptsubscript𝑙0𝑠1superscript𝑐𝑙subscript~𝐵𝑥superscript^bold-italic-ϕ𝑘1𝑙~𝐵superscript^bold-italic-ϕ𝑘1\hat{\bm{f}}^{(k+1)}_{\phi,\mathrm{viscous}}=-\tilde{B}_{xx}\frac{\hat{\bm{% \phi}}^{(k+1)}-2\hat{\bm{\phi}}^{(k)}+\hat{\bm{\phi}}^{(k-1)}}{(\Delta x)^{2}}% -\Big{(}\sum_{l=0}^{s-1}c^{(l)}\tilde{B}_{x}\hat{\bm{\phi}}^{(k+1-l)}\Big{)}-% \tilde{B}\hat{\bm{\phi}}^{(k+1)},over^ start_ARG bold_italic_f end_ARG start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_ϕ , roman_viscous end_POSTSUBSCRIPT = - over~ start_ARG italic_B end_ARG start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT divide start_ARG over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT - 2 over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT + over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ( italic_k - 1 ) end_POSTSUPERSCRIPT end_ARG start_ARG ( roman_Δ italic_x ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG - ( ∑ start_POSTSUBSCRIPT italic_l = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_s - 1 end_POSTSUPERSCRIPT italic_c start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT over~ start_ARG italic_B end_ARG start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ( italic_k + 1 - italic_l ) end_POSTSUPERSCRIPT ) - over~ start_ARG italic_B end_ARG over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ( italic_k + 1 ) end_POSTSUPERSCRIPT ,

and we add this term back into the fully-discrete OWNS equations (13).

2.2 Nonlinear OWNS

Whereas infinitesimal disturbances (in the linear case) evolve independently from each other so that each Fourier mode can be considered separately, finite amplitude disturbances (in the nonlinear case) are coupled through the nonlinear term. Since it is not feasible to consider an infinite number of Fourier modes, we truncate the Fourier (3) series

𝒒(x,y,z,t)=m=MMn=NN𝒒^mnei(nβzmωt),superscript𝒒𝑥𝑦𝑧𝑡superscriptsubscript𝑚𝑀𝑀superscriptsubscript𝑛𝑁𝑁subscript^𝒒𝑚𝑛superscript𝑒𝑖𝑛𝛽𝑧𝑚𝜔𝑡\bm{q}^{\prime}(x,y,z,t)=\sum_{m=-M}^{M}\sum_{n=-N}^{N}\hat{\bm{q}}_{mn}e^{i(n% \beta z-m\omega t)},bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_x , italic_y , italic_z , italic_t ) = ∑ start_POSTSUBSCRIPT italic_m = - italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_n = - italic_N end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT italic_i ( italic_n italic_β italic_z - italic_m italic_ω italic_t ) end_POSTSUPERSCRIPT , (14)

resulting in (2M+1)×(2N+1)2𝑀12𝑁1(2M+1)\times(2N+1)( 2 italic_M + 1 ) × ( 2 italic_N + 1 ) Fourier modes. However, we require that 𝒒superscript𝒒\bm{q}^{\prime}bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT be real-valued, which yields the constraint q^mn=q^mn¯subscript^𝑞𝑚𝑛¯subscript^𝑞𝑚𝑛\hat{q}_{mn}=\overline{\hat{q}_{-mn}}over^ start_ARG italic_q end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT = over¯ start_ARG over^ start_ARG italic_q end_ARG start_POSTSUBSCRIPT - italic_m italic_n end_POSTSUBSCRIPT end_ARG, so that we need only track (M+1)×(2N+1)𝑀12𝑁1(M+1)\times(2N+1)( italic_M + 1 ) × ( 2 italic_N + 1 ) Fourier modes. We can additionally introduce a spanwise symmetry condition, as described in section 2.2.5, which further reduces the number of modes to (M+1)×(N+1)𝑀1𝑁1(M+1)\times(N+1)( italic_M + 1 ) × ( italic_N + 1 ).

We use our assumption of periodicity to obtain the Fourier series

L~(𝒒¯)ϕ=m=MMn=NNL^mnϕ^mnei(nβzmωt),𝑭~(ϕ)=m=MMn=NN𝑭^mn(ϕ)ei(nβzmωt),formulae-sequence~𝐿¯𝒒bold-italic-ϕsuperscriptsubscript𝑚𝑀𝑀superscriptsubscript𝑛𝑁𝑁subscript^𝐿𝑚𝑛subscript^bold-italic-ϕ𝑚𝑛superscript𝑒𝑖𝑛𝛽𝑧𝑚𝜔𝑡~𝑭bold-italic-ϕsuperscriptsubscript𝑚𝑀𝑀superscriptsubscript𝑛𝑁𝑁subscript^𝑭𝑚𝑛bold-italic-ϕsuperscript𝑒𝑖𝑛𝛽𝑧𝑚𝜔𝑡\tilde{L}(\bar{\bm{q}})\bm{\phi}=\sum_{m=-M}^{M}\sum_{n=-N}^{N}\hat{L}_{mn}% \hat{\bm{\phi}}_{mn}e^{i(n\beta z-m\omega t)},\quad\tilde{\bm{F}}(\bm{\phi})=% \sum_{m=-M}^{M}\sum_{n=-N}^{N}\hat{\bm{F}}_{mn}(\bm{\phi})e^{i(n\beta z-m% \omega t)},over~ start_ARG italic_L end_ARG ( over¯ start_ARG bold_italic_q end_ARG ) bold_italic_ϕ = ∑ start_POSTSUBSCRIPT italic_m = - italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_n = - italic_N end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT italic_i ( italic_n italic_β italic_z - italic_m italic_ω italic_t ) end_POSTSUPERSCRIPT , over~ start_ARG bold_italic_F end_ARG ( bold_italic_ϕ ) = ∑ start_POSTSUBSCRIPT italic_m = - italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_n = - italic_N end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT over^ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT ( bold_italic_ϕ ) italic_e start_POSTSUPERSCRIPT italic_i ( italic_n italic_β italic_z - italic_m italic_ω italic_t ) end_POSTSUPERSCRIPT ,

where the transformation of 𝑭(ϕ)𝑭bold-italic-ϕ\bm{F}(\bm{\phi})bold_italic_F ( bold_italic_ϕ ) to characteristic variables, 𝑭~(ϕ)~𝑭bold-italic-ϕ\tilde{\bm{F}}(\bm{\phi})over~ start_ARG bold_italic_F end_ARG ( bold_italic_ϕ ), mimics the transformation of L(𝒒¯)𝐿¯𝒒L(\bar{\bm{q}})italic_L ( over¯ start_ARG bold_italic_q end_ARG ). The Fourier modes are mutually orthogonal, yielding the following system of equations

A~ϕ^mnx=L^mnϕ^mn+𝑭^mn(ϕ)+𝒇^ϕ,mn,mM,nN,formulae-sequence~𝐴subscript^bold-italic-ϕ𝑚𝑛𝑥subscript^𝐿𝑚𝑛subscript^bold-italic-ϕ𝑚𝑛subscript^𝑭𝑚𝑛bold-italic-ϕsubscript^𝒇italic-ϕ𝑚𝑛formulae-sequencefor-all𝑚subscript𝑀for-all𝑛subscript𝑁\tilde{A}\frac{\partial\hat{\bm{\phi}}_{mn}}{\partial x}=\hat{L}_{mn}\hat{\bm{% \phi}}_{mn}+\hat{\bm{F}}_{mn}(\bm{\phi})+\hat{\bm{f}}_{\phi,mn},\quad\forall m% \in\mathbb{Z}_{M},\quad\forall n\in\mathbb{Z}_{N},over~ start_ARG italic_A end_ARG divide start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT end_ARG start_ARG ∂ italic_x end_ARG = over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT + over^ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT ( bold_italic_ϕ ) + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , italic_m italic_n end_POSTSUBSCRIPT , ∀ italic_m ∈ blackboard_Z start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT , ∀ italic_n ∈ blackboard_Z start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT , (15)

for M{x|MxM}subscript𝑀conditional-set𝑥𝑀𝑥𝑀\mathbb{Z}_{M}\equiv\{x\in\mathbb{Z}|-M\leq x\leq M\}blackboard_Z start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ≡ { italic_x ∈ blackboard_Z | - italic_M ≤ italic_x ≤ italic_M } and N{x|NxN}subscript𝑁conditional-set𝑥𝑁𝑥𝑁\mathbb{Z}_{N}\equiv\{x\in\mathbb{Z}|-N\leq x\leq N\}blackboard_Z start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ≡ { italic_x ∈ blackboard_Z | - italic_N ≤ italic_x ≤ italic_N }, where \mathbb{Z}blackboard_Z is the set of all integers. We follow a procedure that mimics the linear OWNS approach to obtain

ϕ±,mnx=P^mn[M^mnϕ^±,mn+𝒈^mn(Pϕ±)],mM,nN.formulae-sequencesuperscriptsubscriptbold-italic-ϕplus-or-minus𝑚𝑛𝑥subscript^𝑃𝑚𝑛delimited-[]subscript^𝑀𝑚𝑛subscriptsuperscript^bold-italic-ϕplus-or-minus𝑚𝑛subscript^𝒈𝑚𝑛𝑃superscriptsubscriptbold-italic-ϕplus-or-minusformulae-sequencefor-all𝑚subscript𝑀for-all𝑛subscript𝑁\frac{\partial\bm{\phi}_{\pm,mn}^{\prime}}{\partial x}=\hat{P}_{mn}[\hat{M}_{% mn}\hat{\bm{\phi}}^{\prime}_{\pm,mn}+\hat{\bm{g}}_{mn}(P\bm{\phi}_{\pm}^{% \prime})],\quad\forall m\in\mathbb{Z}_{M},\quad\forall n\in\mathbb{Z}_{N}.divide start_ARG ∂ bold_italic_ϕ start_POSTSUBSCRIPT ± , italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG = over^ start_ARG italic_P end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT [ over^ start_ARG italic_M end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT ± , italic_m italic_n end_POSTSUBSCRIPT + over^ start_ARG bold_italic_g end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT ( italic_P bold_italic_ϕ start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ] , ∀ italic_m ∈ blackboard_Z start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT , ∀ italic_n ∈ blackboard_Z start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT . (16)

In the linear case, P𝑃Pitalic_P and M𝑀Mitalic_M commute so that two one-way parabolic equations can be solved to recover the full elliptic solution [20]. However, this property does not apply in the nonlinear case because the P𝑃Pitalic_P does not commute with the nonlinear term (P𝒈(ϕ±)P𝒈(Pϕ±)𝑃𝒈subscriptbold-italic-ϕplus-or-minus𝑃𝒈𝑃subscriptbold-italic-ϕplus-or-minusP\bm{g}(\bm{\phi}_{\pm})\neq P\bm{g}(P\bm{\phi}_{\pm})italic_P bold_italic_g ( bold_italic_ϕ start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT ) ≠ italic_P bold_italic_g ( italic_P bold_italic_ϕ start_POSTSUBSCRIPT ± end_POSTSUBSCRIPT ) in general), so that (16) removes the upstream effect, ϕ′′superscriptbold-italic-ϕ′′\bm{\phi}^{\prime\prime}bold_italic_ϕ start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT, from the nonlinear term, and when we sum the upstream- and downstream-going equations together, we do not recover the elliptic equation. This is a reasonable choice for convective instabilities, where the disturbances travel primarily in one direction, and we verify a posteriori that we match closely DNS results in the literature.

2.2.1 Fully-discrete equations

We define Lmn(Nv+Naux)×(Nv+Naux)superscriptsubscript𝐿𝑚𝑛superscriptsubscript𝑁𝑣subscript𝑁auxsubscript𝑁𝑣subscript𝑁auxL_{mn}^{\ddagger}\in\mathbb{R}^{(N_{v}+N_{\mathrm{aux}})\times(N_{v}+N_{% \mathrm{aux}})}italic_L start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT ( italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT ) × ( italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT and ϕ^mn,𝒇^mn,ϕNv+Nauxsuperscriptsubscript^bold-italic-ϕ𝑚𝑛superscriptsubscript^𝒇𝑚𝑛italic-ϕsuperscriptsubscript𝑁𝑣subscript𝑁aux\hat{\bm{\phi}}_{mn}^{\ddagger},\hat{\bm{f}}_{mn,\phi}^{\ddagger}\in\mathbb{C}% ^{N_{v}+N_{\mathrm{aux}}}over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT , over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_m italic_n , italic_ϕ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, as in the linear case, for all mM𝑚subscript𝑀m\in\mathbb{Z}_{M}italic_m ∈ blackboard_Z start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT and nN𝑛subscript𝑁n\in\mathbb{Z}_{N}italic_n ∈ blackboard_Z start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT, and further introduce the nonlinear term 𝑭^mnNv+Nauxsuperscriptsubscript^𝑭𝑚𝑛superscriptsubscript𝑁𝑣subscript𝑁aux\hat{\bm{F}}_{mn}^{\ddagger}\in\mathbb{C}^{N_{v}+N_{\mathrm{aux}}}over^ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT end_POSTSUPERSCRIPT such that it mimics the definition of the forcing function 𝒇^mn,ϕsuperscriptsubscript^𝒇𝑚𝑛italic-ϕ\hat{\bm{f}}_{mn,\phi}^{\ddagger}over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_m italic_n , italic_ϕ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT. Then we discretize the first-derivatives in both the linear and nonlinear terms using the BDF scheme yielding the fully-discrete nonlinear system of equations

l=0s1c(l)Aϕ^mn(k+1l)=L^mn(k+1)ϕ^mn(k+1)+𝑭^mn(k+1)+𝒇^ϕ,mn(k+1),mM,nN.formulae-sequencesuperscriptsubscript𝑙0𝑠1superscript𝑐𝑙superscript𝐴superscriptsubscript^bold-italic-ϕ𝑚𝑛absent𝑘1𝑙superscriptsubscript^𝐿𝑚𝑛absent𝑘1superscriptsubscript^bold-italic-ϕ𝑚𝑛absent𝑘1superscriptsubscript^𝑭𝑚𝑛absent𝑘1superscriptsubscript^𝒇italic-ϕ𝑚𝑛absent𝑘1formulae-sequencefor-all𝑚subscript𝑀for-all𝑛subscript𝑁\sum_{l=0}^{s-1}c^{(l)}A^{\ddagger}\hat{\bm{\phi}}_{mn}^{\ddagger(k+1-l)}=\hat% {L}_{mn}^{\ddagger(k+1)}\hat{\bm{\phi}}_{mn}^{\ddagger(k+1)}+\hat{\bm{F}}_{mn}% ^{\ddagger(k+1)}+\hat{\bm{f}}_{\phi,mn}^{\ddagger(k+1)},\quad\forall m\in% \mathbb{Z}_{M},\quad\forall n\in\mathbb{Z}_{N}.∑ start_POSTSUBSCRIPT italic_l = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_s - 1 end_POSTSUPERSCRIPT italic_c start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 - italic_l ) end_POSTSUPERSCRIPT = over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT + over^ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_ϕ , italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT , ∀ italic_m ∈ blackboard_Z start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT , ∀ italic_n ∈ blackboard_Z start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT . (17)

2.2.2 Pseudo-spectral method

We employ a pseudo-spectral method whereby we solve our equations in Fourier space, while we evaluate the nonlinear terms in physical space. Given the Fourier coefficients ϕ^mnsubscript^bold-italic-ϕ𝑚𝑛\hat{\bm{\phi}}_{mn}over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT for m=0,,2M𝑚02𝑀m=0,\dots,2Mitalic_m = 0 , … , 2 italic_M and n=0,,N𝑛0𝑁n=0,\dots,Nitalic_n = 0 , … , italic_N, we can use the inverse discrete Fourier transform (iDFT) to compute the solution in physical space as

ϕmn=12M+112N+1k=02Ml=02Nϕ^klei2πmk/(2M+1)ei2πnl/(2N+1).subscriptbold-italic-ϕ𝑚𝑛12𝑀112𝑁1superscriptsubscript𝑘02𝑀superscriptsubscript𝑙02𝑁subscript^bold-italic-ϕ𝑘𝑙superscript𝑒𝑖2𝜋𝑚𝑘2𝑀1superscript𝑒𝑖2𝜋𝑛𝑙2𝑁1\bm{\phi}_{mn}=\frac{1}{2M+1}\frac{1}{2N+1}\sum_{k=0}^{2M}\sum_{l=0}^{2N}\hat{% \bm{\phi}}_{kl}e^{i2\pi mk/(2M+1)}e^{i2\pi nl/(2N+1)}.bold_italic_ϕ start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG 2 italic_M + 1 end_ARG divide start_ARG 1 end_ARG start_ARG 2 italic_N + 1 end_ARG ∑ start_POSTSUBSCRIPT italic_k = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 italic_M end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_l = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 italic_N end_POSTSUPERSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_k italic_l end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT italic_i 2 italic_π italic_m italic_k / ( 2 italic_M + 1 ) end_POSTSUPERSCRIPT italic_e start_POSTSUPERSCRIPT italic_i 2 italic_π italic_n italic_l / ( 2 italic_N + 1 ) end_POSTSUPERSCRIPT . (18)

Then, we can evaluate the nonlinear terms in physical space, 𝑭~mn=𝑭~(ϕmn)subscript~𝑭𝑚𝑛~𝑭subscriptbold-italic-ϕ𝑚𝑛\tilde{\bm{F}}_{mn}=\tilde{\bm{F}}(\bm{\phi}_{mn})over~ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT = over~ start_ARG bold_italic_F end_ARG ( bold_italic_ϕ start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT ), and employ the discrete Fourier transform (DFT) to compute the Fourier components of the nonlinear terms as

𝑭^kl=m=02Mn=02N𝑭~mnei2πmk/(2M+1)ei2πnl/(2N+1).subscript^𝑭𝑘𝑙superscriptsubscript𝑚02𝑀superscriptsubscript𝑛02𝑁subscript~𝑭𝑚𝑛superscript𝑒𝑖2𝜋𝑚𝑘2𝑀1superscript𝑒𝑖2𝜋𝑛𝑙2𝑁1\hat{\bm{F}}_{kl}=\sum_{m=0}^{2M}\sum_{n=0}^{2N}\tilde{\bm{F}}_{mn}e^{-i2\pi mk% /(2M+1)}e^{-i2\pi nl/(2N+1)}.over^ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_k italic_l end_POSTSUBSCRIPT = ∑ start_POSTSUBSCRIPT italic_m = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 italic_M end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_n = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 italic_N end_POSTSUPERSCRIPT over~ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT - italic_i 2 italic_π italic_m italic_k / ( 2 italic_M + 1 ) end_POSTSUPERSCRIPT italic_e start_POSTSUPERSCRIPT - italic_i 2 italic_π italic_n italic_l / ( 2 italic_N + 1 ) end_POSTSUPERSCRIPT . (19)

In practice, the DFT and iDFT are performed using fast Fourier transform (FFT) libraries. At each step, we require the Euclidean norm of the residual for (17) be converged in both an absolute and relative sense to a tolerance of 1010superscript101010^{-10}10 start_POSTSUPERSCRIPT - 10 end_POSTSUPERSCRIPT.

2.2.3 Nonlinear solution procedure and computational cost

We can take the derivative of the NOWNS equations with respect to the disturbance variable to obtain the Newton iteration (in 2D with M=1𝑀1M=1italic_M = 1)

[(c(0)AL^0)+J^0J^1¯J^1J^1(c(0)AL^1)+J^0J^1¯J^1¯J^1(c(0)AL^1)+J^0][Δϕ^0Δϕ^1Δϕ^1¯]=[r^0r^1r^1¯],matrixsuperscript𝑐0superscript𝐴superscriptsubscript^𝐿0subscriptsuperscript^𝐽0¯subscriptsuperscript^𝐽1subscriptsuperscript^𝐽1subscriptsuperscript^𝐽1superscript𝑐0superscript𝐴subscriptsuperscript^𝐿1subscriptsuperscript^𝐽0¯subscriptsuperscript^𝐽1¯subscriptsuperscript^𝐽1subscriptsuperscript^𝐽1superscript𝑐0superscript𝐴superscriptsubscript^𝐿1subscriptsuperscript^𝐽0matrixΔsuperscriptsubscript^bold-italic-ϕ0Δsuperscriptsubscript^bold-italic-ϕ1superscript¯Δsubscript^bold-italic-ϕ1matrixsuperscriptsubscript^𝑟0superscriptsubscript^𝑟1superscript¯subscript^𝑟1\begin{bmatrix}(c^{(0)}A^{\ddagger}-\hat{L}_{0}^{\ddagger})+\hat{J}^{\ddagger}% _{0}&\overline{\hat{J}^{\ddagger}_{1}}&\hat{J}^{\ddagger}_{1}\\ \hat{J}^{\ddagger}_{1}&(c^{(0)}A^{\ddagger}-\hat{L}^{\ddagger}_{1})+\hat{J}^{% \ddagger}_{0}&\overline{\hat{J}^{\ddagger}_{1}}\\ \overline{\hat{J}^{\ddagger}_{1}}&\hat{J}^{\ddagger}_{1}&(c^{(0)}A^{\ddagger}-% \hat{L}_{-1}^{\ddagger})+\hat{J}^{\ddagger}_{0}\end{bmatrix}\begin{bmatrix}% \Delta\hat{\bm{\phi}}_{0}^{\ddagger}\\ \Delta\hat{\bm{\phi}}_{1}^{\ddagger}\\ \overline{\Delta\hat{\bm{\phi}}_{1}}^{\ddagger}\end{bmatrix}=\begin{bmatrix}% \hat{r}_{0}^{\ddagger}\\ \hat{r}_{1}^{\ddagger}\\ \overline{\hat{r}_{1}}^{\ddagger}\end{bmatrix},[ start_ARG start_ROW start_CELL ( italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ) + over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL start_CELL over¯ start_ARG over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG end_CELL start_CELL over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL ( italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL start_CELL over¯ start_ARG over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG end_CELL end_ROW start_ROW start_CELL over¯ start_ARG over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG end_CELL start_CELL over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL ( italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ) + over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] [ start_ARG start_ROW start_CELL roman_Δ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL roman_Δ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over¯ start_ARG roman_Δ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] = [ start_ARG start_ROW start_CELL over^ start_ARG italic_r end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG italic_r end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over¯ start_ARG over^ start_ARG italic_r end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] , (36)

as discussed in appendix B, where Jpm=𝑭^m/ϕ^psuperscriptsubscript𝐽𝑝𝑚subscriptsuperscript^𝑭𝑚superscriptsubscript^bold-italic-ϕ𝑝J_{p-m}^{\ddagger}=-\partial\hat{\bm{F}}^{\ddagger}_{m}/\partial\hat{\bm{\phi}% }_{p}^{\ddagger}italic_J start_POSTSUBSCRIPT italic_p - italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT = - ∂ over^ start_ARG bold_italic_F end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT / ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT. If we neglect Jmsuperscriptsubscript𝐽𝑚J_{m}^{\ddagger}italic_J start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT for m0𝑚0m\neq 0italic_m ≠ 0, then we obtain

[(c(0)AL^0)+J^0000(c(0)AL^1)+J^0000(c(0)AL^1)+J^0][Δϕ^0Δϕ^1Δϕ^1¯]=[r^0r^1r^1¯].matrixsuperscript𝑐0superscript𝐴superscriptsubscript^𝐿0superscriptsubscript^𝐽0000superscript𝑐0superscript𝐴superscriptsubscript^𝐿1superscriptsubscript^𝐽0000superscript𝑐0superscript𝐴superscriptsubscript^𝐿1superscriptsubscript^𝐽0matrixΔsuperscriptsubscript^bold-italic-ϕ0Δsuperscriptsubscript^bold-italic-ϕ1superscript¯Δsubscript^bold-italic-ϕ1matrixsuperscriptsubscript^𝑟0superscriptsubscript^𝑟1superscript¯subscript^𝑟1\begin{bmatrix}(c^{(0)}A^{\ddagger}-\hat{L}_{0}^{\ddagger})+\hat{J}_{0}^{% \ddagger}&0&0\\ 0&(c^{(0)}A^{\ddagger}-\hat{L}_{1}^{\ddagger})+\hat{J}_{0}^{\ddagger}&0\\ 0&0&(c^{(0)}A^{\ddagger}-\hat{L}_{-1}^{\ddagger})+\hat{J}_{0}^{\ddagger}\end{% bmatrix}\begin{bmatrix}\Delta\hat{\bm{\phi}}_{0}^{\ddagger}\\ \Delta\hat{\bm{\phi}}_{1}^{\ddagger}\\ \overline{\Delta\hat{\bm{\phi}}_{1}}^{\ddagger}\end{bmatrix}=\begin{bmatrix}% \hat{r}_{0}^{\ddagger}\\ \hat{r}_{1}^{\ddagger}\\ \overline{\hat{r}_{1}}^{\ddagger}\end{bmatrix}.[ start_ARG start_ROW start_CELL ( italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ) + over^ start_ARG italic_J end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL ( italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ) + over^ start_ARG italic_J end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL ( italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ) + over^ start_ARG italic_J end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] [ start_ARG start_ROW start_CELL roman_Δ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL roman_Δ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over¯ start_ARG roman_Δ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] = [ start_ARG start_ROW start_CELL over^ start_ARG italic_r end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG italic_r end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over¯ start_ARG over^ start_ARG italic_r end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] . (20)

An extension to 3D for Newton’s method (36) is straightforward, while system (21) can be written in 3D as

[c(0)AL^mn+J^0]ϕ^mn(k+1)=l=1s1c(l)Aϕ^mn(k+1l)+𝑭^mn(k+1)+𝒇^mn(k+1),delimited-[]superscript𝑐0superscript𝐴superscriptsubscript^𝐿𝑚𝑛superscriptsubscript^𝐽0superscriptsubscript^bold-italic-ϕ𝑚𝑛absent𝑘1superscriptsubscript𝑙1𝑠1superscript𝑐𝑙superscript𝐴superscriptsubscript^bold-italic-ϕ𝑚𝑛absent𝑘1𝑙superscriptsubscript^𝑭𝑚𝑛absent𝑘1superscriptsubscript^𝒇𝑚𝑛absent𝑘1[c^{(0)}A^{\ddagger}-\hat{L}_{mn}^{\ddagger}+\hat{J}_{0}^{\ddagger}]\hat{\bm{% \phi}}_{mn}^{\ddagger(k+1)}=-\sum_{l=1}^{s-1}c^{(l)}A^{\ddagger}\hat{\bm{\phi}% }_{mn}^{\ddagger(k+1-l)}+\hat{\bm{F}}_{mn}^{\ddagger(k+1)}+\hat{\bm{f}}_{mn}^{% \ddagger(k+1)},[ italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT + over^ start_ARG italic_J end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ] over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT = - ∑ start_POSTSUBSCRIPT italic_l = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_s - 1 end_POSTSUPERSCRIPT italic_c start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 - italic_l ) end_POSTSUPERSCRIPT + over^ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT , (21)

for m=M,,M𝑚𝑀𝑀m=-M,\dots,Mitalic_m = - italic_M , … , italic_M and n=N,,N𝑛𝑁𝑁n=-N,\dots,Nitalic_n = - italic_N , … , italic_N. If we neglect Jmsubscriptsuperscript𝐽𝑚J^{\ddagger}_{m}italic_J start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT entirely, then we obtain

[c(0)AL^mn]ϕ^mn(k+1)=l=1s1c(l)Aϕ^mn(k+1l)+𝑭^mn(k+1)+𝒇^mn(k+1),delimited-[]superscript𝑐0superscript𝐴superscriptsubscript^𝐿𝑚𝑛superscriptsubscript^bold-italic-ϕ𝑚𝑛absent𝑘1superscriptsubscript𝑙1𝑠1superscript𝑐𝑙superscript𝐴superscriptsubscript^bold-italic-ϕ𝑚𝑛absent𝑘1𝑙superscriptsubscript^𝑭𝑚𝑛absent𝑘1superscriptsubscript^𝒇𝑚𝑛absent𝑘1[c^{(0)}A^{\ddagger}-\hat{L}_{mn}^{\ddagger}]\hat{\bm{\phi}}_{mn}^{\ddagger(k+% 1)}=-\sum_{l=1}^{s-1}c^{(l)}A^{\ddagger}\hat{\bm{\phi}}_{mn}^{\ddagger(k+1-l)}% +\hat{\bm{F}}_{mn}^{\ddagger(k+1)}+\hat{\bm{f}}_{mn}^{\ddagger(k+1)},[ italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ] over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT = - ∑ start_POSTSUBSCRIPT italic_l = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_s - 1 end_POSTSUPERSCRIPT italic_c start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 - italic_l ) end_POSTSUPERSCRIPT + over^ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT + over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT , (22)

for m=M,,M𝑚𝑀𝑀m=-M,\dots,Mitalic_m = - italic_M , … , italic_M and n=N,,N𝑛𝑁𝑁n=-N,\dots,Nitalic_n = - italic_N , … , italic_N. To solve (21) or (22), we mimic the NPSE solution procedure [24, 25, 11]: we take the lower-upper (LU) decomposition of [c(0)AL^mn]delimited-[]superscript𝑐0superscript𝐴superscriptsubscript^𝐿𝑚𝑛[c^{(0)}A^{\ddagger}-\hat{L}_{mn}^{\ddagger}][ italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ] to solve for ϕ^m(k+1)superscriptsubscript^bold-italic-ϕ𝑚absent𝑘1\hat{\bm{\phi}}_{m}^{\ddagger(k+1)}over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT, then we update the nonlinear term, and repeat until the residual is converged. We typically prefer solving (21) over (22) because it reduces the number of iterations to convergence, without increasing the computational cost. Alternatively, if we accept a larger computational cost, then we can further reduce the number of iterations by solving (36).

The linear OWNS system (13) comprises Nv+Naux=Nv+(2Nv+1)Nbsubscript𝑁𝑣subscript𝑁auxsubscript𝑁𝑣2subscript𝑁𝑣1subscript𝑁𝑏N_{v}+N_{\mathrm{aux}}=N_{v}+(2N_{v}+1)N_{b}italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT = italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + ( 2 italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + 1 ) italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT equations, where Nvsubscript𝑁𝑣N_{v}italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT scales with Nysubscript𝑁𝑦N_{y}italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT, so that the computational cost to solve this system using a direct multifrontal solver (LU decomposition) scales as 𝒪(NyaNba)𝒪superscriptsubscript𝑁𝑦𝑎superscriptsubscript𝑁𝑏𝑎\mathcal{O}(N_{y}^{a}N_{b}^{a})caligraphic_O ( italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT ), where a𝑎aitalic_a is a problem dependent coefficients that depend on the sparsity pattern. Theoretically, 1<a31𝑎31<a\leq 31 < italic_a ≤ 3 and we typically observe a1.5𝑎1.5a\approx 1.5italic_a ≈ 1.5 for 2D problems and a2𝑎2a\approx 2italic_a ≈ 2 for 3D ones, see Towne et al. (2022) [20] for further details. The cost to integrate over Nxsubscript𝑁𝑥N_{x}italic_N start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT stations is then 𝒪(NxNyaNba)𝒪subscript𝑁𝑥superscriptsubscript𝑁𝑦𝑎superscriptsubscript𝑁𝑏𝑎\mathcal{O}(N_{x}N_{y}^{a}N_{b}^{a})caligraphic_O ( italic_N start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT ), while a global method entails a cost of 𝒪(NxaNya)𝒪superscriptsubscript𝑁𝑥𝑎superscriptsubscript𝑁𝑦𝑎\mathcal{O}(N_{x}^{a}N_{y}^{a})caligraphic_O ( italic_N start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT ), so that OWNS is more efficient for NbNxmuch-less-thansubscript𝑁𝑏subscript𝑁𝑥N_{b}\ll N_{x}italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ≪ italic_N start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT. The nonlinear OWNS system (17) comprises (M+1)×(2N+1)×(Nv+Naux)𝑀12𝑁1subscript𝑁𝑣subscript𝑁aux(M+1)\times(2N+1)\times(N_{v}+N_{\mathrm{aux}})( italic_M + 1 ) × ( 2 italic_N + 1 ) × ( italic_N start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT + italic_N start_POSTSUBSCRIPT roman_aux end_POSTSUBSCRIPT ) equations, and can be solved using Newton’s method (36), which entails a cost of 𝒪(MaNaNyaNba)𝒪superscript𝑀𝑎superscript𝑁𝑎superscriptsubscript𝑁𝑦𝑎superscriptsubscript𝑁𝑏𝑎\mathcal{O}(M^{a}N^{a}N_{y}^{a}N_{b}^{a})caligraphic_O ( italic_M start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT ). However, this cost can be reduced by instead solving (21) or (22), since we can perform the LU decomposition of [c(0)AL^m]delimited-[]superscript𝑐0superscript𝐴superscriptsubscript^𝐿𝑚[c^{(0)}A^{\ddagger}-\hat{L}_{m}^{\ddagger}][ italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ] separately for each Fourier mode, yielding a cost of 𝒪(MNNyaNba)𝒪𝑀𝑁superscriptsubscript𝑁𝑦𝑎superscriptsubscript𝑁𝑏𝑎\mathcal{O}(MNN_{y}^{a}N_{b}^{a})caligraphic_O ( italic_M italic_N italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT ). Therefore, the cost to integrate the NOWNS equations is 𝒪(NxMNNyaNb3)𝒪subscript𝑁𝑥𝑀𝑁superscriptsubscript𝑁𝑦𝑎superscriptsubscript𝑁𝑏3\mathcal{O}(N_{x}MNN_{y}^{a}N_{b}^{3})caligraphic_O ( italic_N start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_M italic_N italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ) using (21) or (22), while it increases to 𝒪(NxMaNaNyaNb3)𝒪subscript𝑁𝑥superscript𝑀𝑎superscript𝑁𝑎superscriptsubscript𝑁𝑦𝑎superscriptsubscript𝑁𝑏3\mathcal{O}(N_{x}M^{a}N^{a}N_{y}^{a}N_{b}^{3})caligraphic_O ( italic_N start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_M start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ) for Newton’s method (36), as compared to the cost 𝒪(NxaMaNaNya)𝒪superscriptsubscript𝑁𝑥𝑎superscript𝑀𝑎superscript𝑁𝑎superscriptsubscript𝑁𝑦𝑎\mathcal{O}(N_{x}^{a}M^{a}N^{a}N_{y}^{a})caligraphic_O ( italic_N start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_M start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT ) for nonlinear global methods.

Although (21) and (22) entail a lower computational cost, these methods fail for strong nonlinearities and we must instead employ Newton’s method (36). In practice we implement a hybrid approach whereby we first solve (21) to harness it’s reduced computational cost, and then if more than 𝒪(100)𝒪100\mathcal{O}(100)caligraphic_O ( 100 ) iterations have elapsed, we switch to Newton’s method to harness it’s better convergence properties. We compare the performance of these three methods in appendix E.

To reduce the computational cost of Newton’s method, we re-use the LU factors from the first iteration as a pre-conditioner for the Generalized Minimal Residual Method (GMRES), and we note that a similar procedure was performed for linear OWNS in Araya et al. [26]. We also tested the block-Jacobi relaxation method, which entails a cost of 𝒪(MNNyaNba)𝒪𝑀𝑁superscriptsubscript𝑁𝑦𝑎superscriptsubscript𝑁𝑏𝑎\mathcal{O}(MNN_{y}^{a}N_{b}^{a})caligraphic_O ( italic_M italic_N italic_N start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_a end_POSTSUPERSCRIPT ), and although we found this approach converged quickly in the early stages of the march, it failed as the nonlinearity grew stronger and we did not pursue relaxation methods further.

2.2.4 Special treatment of the zero-frequency modes

We have three options for obtaining a stable march for the zero-frequency modes, as depicted in table 2. In the first approach, which mimics how the zero-frequency modes are handled by NPSE [25, 11], we neglect the streamwise presssure gradient, p0n/xsubscript𝑝0𝑛𝑥\partial p_{0n}/\partial x∂ italic_p start_POSTSUBSCRIPT 0 italic_n end_POSTSUBSCRIPT / ∂ italic_x, and the streamwise diffusion terms, 2q0n/x2superscript2subscript𝑞0𝑛superscript𝑥2\partial^{2}q_{0n}/\partial x^{2}∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_q start_POSTSUBSCRIPT 0 italic_n end_POSTSUBSCRIPT / ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT, associated with the zero-frequency modes. However, in general we would prefer to avoid neglecting terms, and to instead parabolize these equations using the OWNS approach. In the second approach, we include the streamwise diffusion terms (but exclude the streamwise pressure gradient) associated with the zero-frequency modes, and parabolize the equations for all modes using OWNS. This approach yields a stable spatial march that agrees well with DNS, but offers no advantages over the first approach: for all of the cases examined in this paper, neglecting the streamwise diffusion terms associated with the zero-frequency modes does not change substantially the results of the NOWNS calculation. In the third approach, we include both the streamwise diffusion terms and the streamwise pressure gradient associated with the zero-frequency modes. Although the OWNS approach yields a stable spatial march, we have found that this approach produces inferior comparisons to DNS solutions from the literature, as discussed in appendix D.

In summary, including the streamwise pressure gradient for the zero-frequency modes worsens agreement with DNS, while including the streamwise diffusion terms for the zero-frequency modes has nearly no impact on the solution. Since neglecting these terms is more computationally efficient while still providing excellent agreement with DNS, we recommend that these terms be neglected.

Include p0n/xsubscript𝑝0𝑛𝑥\partial p_{0n}/\partial x∂ italic_p start_POSTSUBSCRIPT 0 italic_n end_POSTSUBSCRIPT / ∂ italic_x? Include 2q0n/x2superscript2subscript𝑞0𝑛superscript𝑥2\partial^{2}q_{0n}/\partial x^{2}∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_q start_POSTSUBSCRIPT 0 italic_n end_POSTSUBSCRIPT / ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT? Parabolized using OWNS? Agreement with DNS?
1 No No No Yes
2 No Yes Yes Yes
3 Yes Yes Yes No
Table 2: Three approaches to parabolizing the zero-frequency modes

2.2.5 Spanwise symmetry

If the disturbances are symmetric, then we can enforce a symmetry condition to reduce the number of equations from (M+1)×(2N+1)𝑀12𝑁1(M+1)\times(2N+1)( italic_M + 1 ) × ( 2 italic_N + 1 ) to (M+1)×(N+1)𝑀1𝑁1(M+1)\times(N+1)( italic_M + 1 ) × ( italic_N + 1 ). All variables have even-symmetry (ν^m,n=ν^m,nsuperscriptsubscript^𝜈𝑚𝑛superscriptsubscript^𝜈𝑚𝑛\hat{\nu}_{m,-n}^{\prime}=\hat{\nu}_{m,n}^{\prime}over^ start_ARG italic_ν end_ARG start_POSTSUBSCRIPT italic_m , - italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = over^ start_ARG italic_ν end_ARG start_POSTSUBSCRIPT italic_m , italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, u^m,n=u^m,nsuperscriptsubscript^𝑢𝑚𝑛superscriptsubscript^𝑢𝑚𝑛\hat{u}_{m,-n}^{\prime}=\hat{u}_{m,n}^{\prime}over^ start_ARG italic_u end_ARG start_POSTSUBSCRIPT italic_m , - italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = over^ start_ARG italic_u end_ARG start_POSTSUBSCRIPT italic_m , italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, v^m,n=v^m,nsuperscriptsubscript^𝑣𝑚𝑛superscriptsubscript^𝑣𝑚𝑛\hat{v}_{m,-n}^{\prime}=\hat{v}_{m,n}^{\prime}over^ start_ARG italic_v end_ARG start_POSTSUBSCRIPT italic_m , - italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = over^ start_ARG italic_v end_ARG start_POSTSUBSCRIPT italic_m , italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, p^m,n=p^m,nsuperscriptsubscript^𝑝𝑚𝑛superscriptsubscript^𝑝𝑚𝑛\hat{p}_{m,-n}^{\prime}=\hat{p}_{m,n}^{\prime}over^ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_m , - italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = over^ start_ARG italic_p end_ARG start_POSTSUBSCRIPT italic_m , italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT), with the exception of the w𝑤witalic_w-velocity which has odd-symmetry (w^m,n=w^m,nsuperscriptsubscript^𝑤𝑚𝑛superscriptsubscript^𝑤𝑚𝑛\hat{w}_{m,-n}^{\prime}=-\hat{w}_{m,n}^{\prime}over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_m , - italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = - over^ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_m , italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT).

2.2.6 Boundary conditions

At the wall, we impose no-slip isothermal boundary conditions (u=v=w=T=0superscript𝑢superscript𝑣superscript𝑤superscript𝑇0u^{\prime}=v^{\prime}=w^{\prime}=T^{\prime}=0italic_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = italic_v start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = italic_w start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = italic_T start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = 0) and solve for the specific volume, νsuperscript𝜈\nu^{\prime}italic_ν start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, using the (nonlinear) continuity equation. At the far-field boundary, we impose 1D (in y𝑦yitalic_y) inviscid Thompson characteristic boundary conditions to minimize spurious numerical reflections [27], which we implement using the linearized boundary-layer flow equations.

Some previous work on NPSE has used similar characteristic far-field boundary conditions [11]. Chang et al. (1993) [25] used the far-field boundary condition 𝒒^mn(ymax)=0superscriptsubscript^𝒒𝑚𝑛subscript𝑦0\hat{\bm{q}}_{mn}^{\prime}(y_{\max})=0over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_m italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_y start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT ) = 0 for m,n0𝑚𝑛0m,n\neq 0italic_m , italic_n ≠ 0. As the boundary layer must be allowed to grow in the wall-normal direction (due to nonlinear interactions), they used v^00/y=0superscriptsubscript^𝑣00𝑦0\partial\hat{v}_{00}^{\prime}/\partial y=0∂ over^ start_ARG italic_v end_ARG start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT / ∂ italic_y = 0 at ymaxsubscript𝑦y_{\max}italic_y start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT for the mean-flow distortion (MFD). The characteristic far-field boundary conditions are advantageous because they allow us to use the same boundary conditions for all Fouriers modes, instead of handling the MFD as a separate case.

2.2.7 Effects of the mean-flow distortion

In NOWNS, the disturbances interact to excite the MFD, so that the corrected mean flow, 𝒒¯+𝒒^00¯𝒒subscript^𝒒00\bar{\bm{q}}+\hat{\bm{q}}_{00}over¯ start_ARG bold_italic_q end_ARG + over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT, differs from the baseflow, 𝒒¯¯𝒒\bar{\bm{q}}over¯ start_ARG bold_italic_q end_ARG. We have experimented with linearizing about both the baseflow and the corrected mean flow and found that it does not have a large impact on the NOWNS calculation, as discussed in appendix F. Linearizing about the corrected mean flow increases the computational cost of NOWNS because the projection operators change between iterations, since the MFD changes, so the LU factorization must be updated. On the other hand, linearizing about the baseflow allows us to use the same LU factorization at each iteration because the baseflow is not affected by changes in the MFD. Since it is more computationally efficient to linearize only about the baseflow, we choose this approach moving forward.

2.2.8 Recursion parameters

The choice of recursion parameters is described in Sleeman et al. (2024) [18], and matches the recursion parameters used by Rigas et al. (2017) [13], which are based on the recursion parameters originally developed by Towne and Colonius (2015) [19]. We briefly discuss our strategy for selecting the recursion parameters when ω=0𝜔0\omega=0italic_ω = 0 in appendix G.

3 Validation

We validate NOWNS by applying it to 2D and 3D Blasius boundary layer flows for which there are existing DNS and NPSE results in the literature. We choose a Mach number of Ma=0.1subscriptMa0.1\mathrm{Ma}_{\infty}=0.1roman_Ma start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT = 0.1 to study flows near the incompressible limit. In what follows, we use the following dimensionless quantities:

Rex=Uxνμ,y=yδ0,F=ωνμU2,b=βνμU,formulae-sequencesubscriptRe𝑥superscriptsubscript𝑈superscript𝑥superscriptsubscript𝜈superscriptsubscript𝜇formulae-sequence𝑦superscript𝑦superscriptsubscript𝛿0formulae-sequence𝐹superscript𝜔superscriptsubscript𝜈superscriptsubscript𝜇superscriptsubscript𝑈absent2𝑏superscript𝛽superscriptsubscript𝜈superscriptsubscript𝜇superscriptsubscript𝑈\mathrm{Re}_{x}=\frac{U_{\infty}^{*}x^{*}}{\nu_{\infty}^{*}\mu_{\infty}^{*}},% \quad y=\frac{y^{*}}{\delta_{0}^{*}},\quad F=\frac{\omega^{*}\nu_{\infty}^{*}% \mu_{\infty}^{*}}{U_{\infty}^{*2}},\quad b=\frac{\beta^{*}\nu_{\infty}^{*}\mu_% {\infty}^{*}}{U_{\infty}^{*}},roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = divide start_ARG italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_x start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_ν start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG , italic_y = divide start_ARG italic_y start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_δ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG , italic_F = divide start_ARG italic_ω start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_ν start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ 2 end_POSTSUPERSCRIPT end_ARG , italic_b = divide start_ARG italic_β start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_ν start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_μ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG ,

where RexsubscriptRe𝑥\mathrm{Re}_{x}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT is the streamwise coordinate, F𝐹Fitalic_F is the temporal frequency, and b𝑏bitalic_b is the spanwise wavenumber. We refer to modes according to their temporal frequency and their spanwise wave number as (m,n)𝑚𝑛(m,n)( italic_m , italic_n ), where m𝑚mitalic_m refers to the frequency ωm=mωsubscript𝜔𝑚𝑚𝜔\omega_{m}=m\omegaitalic_ω start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT = italic_m italic_ω and n𝑛nitalic_n refers to the spanwise wave number βn=nβsubscript𝛽𝑛𝑛𝛽\beta_{n}=n\betaitalic_β start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = italic_n italic_β. To be consistent with previous literature, we measure the amplitude of disturbances as

umax(m,n)(x)=cm,nmaxy|um,n(x,y)|,cm,n={1m=n=0,2m=0,n0n=0,m0,2otherwise.formulae-sequencesubscriptsuperscript𝑢𝑚𝑛𝑥subscript𝑐𝑚𝑛subscript𝑦superscriptsubscript𝑢𝑚𝑛𝑥𝑦subscript𝑐𝑚𝑛cases1𝑚𝑛02m=0,n0n=0,m02otherwise\displaystyle u^{\prime(m,n)}_{\max}(x)=c_{m,n}\ \max_{y}|u_{m,n}^{\prime}(x,y% )|,\qquad c_{m,n}=\begin{cases}1&\mbox{$m=n=0$},\\ \sqrt{2}&\mbox{$m=0,n\neq 0$; $n=0,m\neq 0$},\\ 2&\mbox{otherwise}.\end{cases}italic_u start_POSTSUPERSCRIPT ′ ( italic_m , italic_n ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT ( italic_x ) = italic_c start_POSTSUBSCRIPT italic_m , italic_n end_POSTSUBSCRIPT roman_max start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT | italic_u start_POSTSUBSCRIPT italic_m , italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_x , italic_y ) | , italic_c start_POSTSUBSCRIPT italic_m , italic_n end_POSTSUBSCRIPT = { start_ROW start_CELL 1 end_CELL start_CELL italic_m = italic_n = 0 , end_CELL end_ROW start_ROW start_CELL square-root start_ARG 2 end_ARG end_CELL start_CELL italic_m = 0 , italic_n ≠ 0 ; italic_n = 0 , italic_m ≠ 0 , end_CELL end_ROW start_ROW start_CELL 2 end_CELL start_CELL otherwise . end_CELL end_ROW (23)

3.1 2D evolution of a Tollmien-Schlichting wave

We consider the test case developed by Bertolotti et al. [10] which has been widely used in the literature as a validation case for NPSE [28, 29, 30]. This case examines the evolution of a Tollmien-Schlichting (TS) wave excited at the inlet at a frequency F=86×106𝐹86superscript106F=86\times 10^{-6}italic_F = 86 × 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT and amplitude umax(1)(x0)=0.25%subscriptsuperscript𝑢1subscript𝑥0percent0.25u^{\prime(1)}_{\max}(x_{0})=0.25\%italic_u start_POSTSUPERSCRIPT ′ ( 1 ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = 0.25 %. All other Fourier components initially have zero-amplitude and are generated through nonlinear interactions with the TS wave. The grid extends over the domain Rex[1.6×105,106]subscriptRe𝑥1.6superscript105superscript106\mathrm{Re}_{x}\in[1.6\times 10^{5},10^{6}]roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ∈ [ 1.6 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT , 10 start_POSTSUPERSCRIPT 6 end_POSTSUPERSCRIPT ] and y[0,75]𝑦075y\in[0,75]italic_y ∈ [ 0 , 75 ] with 4000400040004000 stations evenly spaced in x𝑥xitalic_x and 150 grid points in y𝑦yitalic_y, with the majority of the grid points clustered towards the wall, while the Fourier series is truncated at M=5𝑀5M=5italic_M = 5 temporal modes.

Figure 1 compares NOWNS to DNS and NPSE for umax(m,n)(x)subscriptsuperscript𝑢𝑚𝑛𝑥u^{\prime(m,n)}_{\max}(x)italic_u start_POSTSUPERSCRIPT ′ ( italic_m , italic_n ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT ( italic_x ), while the u𝑢uitalic_u- and v𝑣vitalic_v-velocity profiles for the MFD and TS waves are shown in figure 2. Excellent agreement is obtained; the discrepancy for the MFD of v𝑣vitalic_v can be attributed to the Dirichlet boundary conditions used in the DNS.

Refer to caption
Figure 1: Amplitude of usuperscript𝑢u^{\prime}italic_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT v.s. streamwise coordinate, RexsubscriptRe𝑥\mathrm{Re}_{x}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT, for 2D evolution of TS wave.
Refer to caption
(a) u𝑢uitalic_u-velocity for MFD
Refer to caption
(b) u𝑢uitalic_u-velocity for TS wave
Refer to caption
(c) v𝑣vitalic_v-velocity for MFD
Refer to caption
(d) v𝑣vitalic_v-velocity for TS wave
Figure 2: u𝑢uitalic_u-and v𝑣vitalic_v-velocity profiles at streamwise coordinate Rex=7.80×105subscriptRe𝑥7.80superscript105\mathrm{Re}_{x}=7.80\times 10^{5}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = 7.80 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT for 2D evolution of TS wave.

3.2 3D oblique-wave breakdown

Next we consider the oblique-wave breakdown case studied by Joslin et al. (1993) [29], where transition is initiated by two oblique waves with opposite wave angle. They defined two cases–with small and large initial amplitude. In this section, for validation purposes, we consider the small amplitude case for which NPSE was previously successful. Oblique-wave breakdown has also been studied using both experiment and spatial DNS by Berlin et al. (1999) [31], while it was studied using NPSE for compressible flows by Chang and Malik (1994) [32]. We further note that whereas fundamental and subharmonic transition can be studied using Herbert’s secondary stability theory [33], no such theory exists for oblique-wave breakdown, so that either experiment or numerical simulation is necessary to study this transition scenario [29, 31].

The oblique waves have amplitude umax(1,1)(x0)=2×103superscriptsubscript𝑢11subscript𝑥02superscript103u_{\max}^{\prime(1,1)}(x_{0})=\sqrt{2}\times 10^{-3}italic_u start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ( 1 , 1 ) end_POSTSUPERSCRIPT ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = square-root start_ARG 2 end_ARG × 10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT at the inlet at a frequency F=86×106𝐹86superscript106F=86\times 10^{-6}italic_F = 86 × 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT and spanwise wavenumber b=2/9×103𝑏29superscript103b=2/9\times 10^{-3}italic_b = 2 / 9 × 10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT, while the grid extends over the domain Rex[2.74×105,6.08×105]subscriptRe𝑥2.74superscript1056.08superscript105\mathrm{Re}_{x}\in[2.74\times 10^{5},6.08\times 10^{5}]roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ∈ [ 2.74 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT , 6.08 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT ] and y[0,75]𝑦075y\in[0,75]italic_y ∈ [ 0 , 75 ] with 2000200020002000 stations evenly spaced in x𝑥xitalic_x and 150 grid points in y𝑦yitalic_y, while the Fourier series is truncated at M=3𝑀3M=3italic_M = 3 and N=4𝑁4N=4italic_N = 4. Figure 3 compares NOWNS to DNS and NPSE for umax(m,n)(x)superscriptsubscript𝑢𝑚𝑛𝑥u_{\max}^{\prime(m,n)}(x)italic_u start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ( italic_m , italic_n ) end_POSTSUPERSCRIPT ( italic_x ), while figure 4 compares the u𝑢uitalic_u-velocity profiles at Rex=4.69×105subscriptRe𝑥4.69superscript105\mathrm{Re}_{x}=4.69\times 10^{5}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = 4.69 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT; we see that we have excellent agreement for between the DNS and NOWNS results for all for modes.

Refer to caption
Figure 3: Amplitude of usuperscript𝑢u^{\prime}italic_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT v.s. streamwise coordinate, RexsubscriptRe𝑥\mathrm{Re}_{x}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT, for the small-amplitude oblique-wave breakdown case at frequency F=86×106𝐹86superscript106F=86\times 10^{-6}italic_F = 86 × 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT, spanwise wavenumber b=2/9×103𝑏29superscript103b=2/9\times 10^{-3}italic_b = 2 / 9 × 10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT, with initial amplitude of umax(1,1)(x0)=2×103superscriptsubscript𝑢11subscript𝑥02superscript103u_{\max}^{\prime(1,1)}(x_{0})=\sqrt{2}\times 10^{-3}italic_u start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ( 1 , 1 ) end_POSTSUPERSCRIPT ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = square-root start_ARG 2 end_ARG × 10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT.
Refer to caption
(a) MFD
Refer to caption
(b) Oblique mode
Refer to caption
(c) Vortex mode
Refer to caption
(d) First harmonic in z𝑧zitalic_z
Figure 4: u𝑢uitalic_u-velocity profiles at streamwise coordinate Rex=4.69×105subscriptRe𝑥4.69superscript105\mathrm{Re}_{x}=4.69\times 10^{5}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = 4.69 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT for small-amplitude oblique-wave breakdown.

4 Advantages of the NOWNS procedure

In this section, we apply NOWNS in three scenarios where NPSE is known to break down.

4.1 High amplitude oblique-wave breakdown

It is well-known that NPSE can fail for sufficiently strong nonlinearities [11, 12], as demonstrated in Joslin et al. (1993) for the oblique-wave breakdown case [29]. We modify the setup of section 3.2 by increasing the amplitude of the oblique wave at the inlet by a factor of 10 to umax(1,1)(x0)=(2)×102u_{\max}^{\prime(1,1)}(x_{0})=\sqrt{(}2)\times 10^{-2}italic_u start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ ( 1 , 1 ) end_POSTSUPERSCRIPT ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = square-root start_ARG ( end_ARG 2 ) × 10 start_POSTSUPERSCRIPT - 2 end_POSTSUPERSCRIPT, while we change the streamwise domain so that it comprises 2000 grid points over the domain Rex[2.73529×105,4.9×105]subscriptRe𝑥2.73529superscript1054.9superscript105\mathrm{Re}_{x}\in[2.73529\times 10^{5},4.9\times 10^{5}]roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ∈ [ 2.73529 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT , 4.9 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT ], and the Fourier series are truncated at M=N=7𝑀𝑁7M=N=7italic_M = italic_N = 7.

We plot the amplitudes of the u𝑢uitalic_u-velocity as a function of streamwise station in figure 5. First we note that we have excellent agreement between the amplitudes predicted by NOWNS, NPSE, and DNS for the early stages of transition. However, NPSE begins to fail towards the end of the domain, while NOWNS is able to march all the way to the end of the DNS calculation. The DNS calculation is under-resolved near the end of the domain [29], which may explain the discrepancy between the DNS and NOWNS calculations. We further note that although the oblique-wave, (1,1)11(1,1)( 1 , 1 ), is initially the dominant instability, it is rapidly overtaken by the vortex mode, (0,2)02(0,2)( 0 , 2 ), leading to streaks, which we observe in the contour plots of the u𝑢uitalic_u-velocity (u=u¯+u𝑢¯𝑢superscript𝑢u=\bar{u}+u^{\prime}italic_u = over¯ start_ARG italic_u end_ARG + italic_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT), shown figure 6. The maximum amplitude of the oblique-wave occurs at y=2.55𝑦2.55y=2.55italic_y = 2.55 (figure 6(a)), while the maximum amplitude of the vortex mode occurs at y=1.31𝑦1.31y=1.31italic_y = 1.31 (figure 6(b)).

Refer to caption
Figure 5: Amplitude of usuperscript𝑢u^{\prime}italic_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT v.s. streamwise coordinate, RexsubscriptRe𝑥\mathrm{Re}_{x}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT, for high amplitude oblique-wave breakdown.
Refer to caption
(a) y=2.55𝑦2.55y=2.55italic_y = 2.55
Refer to caption
(b) y=1.31𝑦1.31y=1.31italic_y = 1.31
Figure 6: Contours of the instantaneous u𝑢uitalic_u-velocity for high amplitude oblique-wave breakdown.

4.2 Low amplitude oblique-wave breakdown with random noise

Here we demonstrate for the low amplitude oblique wave breakdown case of section 3.2 that NOWNS is robust to random noise applied to the inlet boundary condition. Given the eigenfunction from the locally parallel linear stability theory, 𝒒LSTsubscript𝒒LST\bm{q}_{\mathrm{LST}}bold_italic_q start_POSTSUBSCRIPT roman_LST end_POSTSUBSCRIPT, we add random noise, 𝒒noisesubscript𝒒noise\bm{q}_{\mathrm{noise}}bold_italic_q start_POSTSUBSCRIPT roman_noise end_POSTSUBSCRIPT, to obtain the inlet condition 𝒒LST+ε𝒒~noisesubscript𝒒LST𝜀subscript~𝒒noise\bm{q}_{\mathrm{LST}}+\varepsilon\tilde{\bm{q}}_{\mathrm{noise}}bold_italic_q start_POSTSUBSCRIPT roman_LST end_POSTSUBSCRIPT + italic_ε over~ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT roman_noise end_POSTSUBSCRIPT. We choose complex random noise such that

𝒒~noise=𝒒~noise,r+i𝒒~noise,i,𝒒~noise,r,𝒒~noise,i𝒰[0,1],formulae-sequencesubscript~𝒒noisesubscript~𝒒noise𝑟𝑖subscript~𝒒noise𝑖subscript~𝒒noise𝑟similar-tosubscript~𝒒noise𝑖subscript𝒰01\tilde{\bm{q}}_{\mathrm{noise}}=\tilde{\bm{q}}_{\mathrm{noise},r}+i\tilde{\bm{% q}}_{\mathrm{noise},i},\quad\tilde{\bm{q}}_{\mathrm{noise},r},\tilde{\bm{q}}_{% \mathrm{noise},i}\sim\mathcal{U}_{[0,1]},over~ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT roman_noise end_POSTSUBSCRIPT = over~ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT roman_noise , italic_r end_POSTSUBSCRIPT + italic_i over~ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT roman_noise , italic_i end_POSTSUBSCRIPT , over~ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT roman_noise , italic_r end_POSTSUBSCRIPT , over~ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT roman_noise , italic_i end_POSTSUBSCRIPT ∼ caligraphic_U start_POSTSUBSCRIPT [ 0 , 1 ] end_POSTSUBSCRIPT ,

where 𝒰[a,b]subscript𝒰𝑎𝑏\mathcal{U}_{[a,b]}caligraphic_U start_POSTSUBSCRIPT [ italic_a , italic_b ] end_POSTSUBSCRIPT represents the uniform distribution over the interval [a,b]𝑎𝑏[a,b][ italic_a , italic_b ]. We then normalize the noise to obtain qnoisesubscript𝑞noiseq_{\mathrm{noise}}italic_q start_POSTSUBSCRIPT roman_noise end_POSTSUBSCRIPT, such that the maximum amplitude of the u𝑢uitalic_u-velocity noise is equal to the free-stream u𝑢uitalic_u-velocity, Usubscript𝑈U_{\infty}italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT. We recall that the amplitude of 𝒒LSTsubscript𝒒LST\bm{q}_{\mathrm{LST}}bold_italic_q start_POSTSUBSCRIPT roman_LST end_POSTSUBSCRIPT is 2×1032superscript103\sqrt{2}\times 10^{-3}square-root start_ARG 2 end_ARG × 10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT, and we choose ε=2×105𝜀2superscript105\varepsilon=\sqrt{2}\times 10^{-5}italic_ε = square-root start_ARG 2 end_ARG × 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT. In figure 7, we plot the profile of the u𝑢uitalic_u- and v𝑣vitalic_v-velocities, as well as the thermodynamic variables. We see that the random noise has a relatively small effect on the u𝑢uitalic_u-velocity, and a slightly more pronounced effect on the v𝑣vitalic_v-velocity, while it has a larger impact on the thermodynamic variables. Like the u𝑢uitalic_u-velocity profile, the random noise has a relatively small effect on the w𝑤witalic_w-velocity profile, so we omit this plot.

The NOWNS march succeeds even if we introduce large disturbances to the velocity fields, but the usuperscript𝑢u^{\prime}italic_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT amplitudes differ substantially from the noise-less case due to the large perturbations. Therefore, we instead introduce relatively large random disturbances to the thermodynamic variables, and relatively small ones to the velocity field. In figure 8, we see that the amplitudes predicted by NOWNS for the noisy inlet condition agree closely with those without noise. We also see that although NPSE initially is able to accurately predict the evolution of the u𝑢uitalic_u-velocity amplitudes, it eventually becomes inaccurate (especially for u(0,0)superscriptsubscript𝑢00u_{(0,0)}^{\prime}italic_u start_POSTSUBSCRIPT ( 0 , 0 ) end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT and u(1,1)superscriptsubscript𝑢11u_{(1,1)}^{\prime}italic_u start_POSTSUBSCRIPT ( 1 , 1 ) end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT) before failing. We also plot the contours of the real part of the u𝑢uitalic_u- and v𝑣vitalic_v-velocities of the oblique wave, with and without noise in figure 9. We see that despite the noisy inlet condition, NOWNS evolves the u𝑢uitalic_u-velocity of the oblique wave such that it matches closely the case without noise. On the other hand, the v𝑣vitalic_v-velocity is more affected by the numerical noise, yet we still obtain good qualitative agreement. The other modes (e.g., the vortex mode) are evolved accurately by the NOWNS calculation with noisy inlet condition, and the contour plots with and without the numerical noise are indistinguishable from each other, and so are not plotted here.

Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 7: Oblique-wave inlet boundary condition with and without random noise.
Refer to caption
Figure 8: Amplitude of usuperscript𝑢u^{\prime}italic_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT v.s. streamwise coordinate, RexsubscriptRe𝑥\mathrm{Re}_{x}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT, for low amplitude oblique-wave breakdown with and without random noise.
Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 9: Contour plots of the u𝑢uitalic_u- and v𝑣vitalic_v velocities of the oblique wave, with and without random noise.

4.3 Blowing/suction strip

Blowing/suction strips are frequently used to study laminar-turbulent boundary layer transition in low-speed boundary layer flows [4, 5, 6, 9, 34]. Here, we introduce disturbances by specifying a non-zero wall-normal velocity such that v(y=0)=f(x,z,t)𝑣𝑦0𝑓𝑥𝑧𝑡v(y=0)=f(x,z,t)italic_v ( italic_y = 0 ) = italic_f ( italic_x , italic_z , italic_t ), for some function f(x,z,t)𝑓𝑥𝑧𝑡f(x,z,t)italic_f ( italic_x , italic_z , italic_t ) that is periodic in t𝑡titalic_t and z𝑧zitalic_z. NPSE does not support blowing/suction strips because they introduce non-modal disturbances, demonstrating an advantage of NOWNS. However, we note that Herbert’s second stability theory yields an inlet boundary condition so that NPSE (and NOWNS) can be used to study fundamental (K-type) and subharmonic (H-type) transition [33, 35].

Rist and Fasel (1995) used DNS with a blowing/suction strip to study K-type transition [5], while similar studies were performed by Sayadi et al. (2013) using DNS [6], and by Rigas et al. (2021) using a harmonic balance method (HBM) [34]. The blowing/suction strip is given by

f(x,z,t)=5×103sin(ωt)va(x)+1.3×104cos(βz)vs(x),𝑓𝑥𝑧𝑡5superscript103𝜔𝑡subscript𝑣𝑎𝑥1.3superscript104𝛽𝑧subscript𝑣𝑠𝑥f(x,z,t)=5\times 10^{-3}\sin(\omega t)v_{a}(x)+1.3\times 10^{-4}\cos(\beta z)v% _{s}(x),italic_f ( italic_x , italic_z , italic_t ) = 5 × 10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT roman_sin ( italic_ω italic_t ) italic_v start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ( italic_x ) + 1.3 × 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT roman_cos ( italic_β italic_z ) italic_v start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT ( italic_x ) , (24)

where

va(Rex)={0,RexRex(x1)15.1875ξ535.4375ξ4+20.25ξ3,Rex(x1)<RexRex(xm)va(2Rex(xm)Rex),Rex(xm)<RexRex(x2)0,Rex(x2)<Rexsubscript𝑣𝑎subscriptRe𝑥cases0subscriptRe𝑥subscriptRe𝑥subscript𝑥115.1875superscript𝜉535.4375superscript𝜉420.25superscript𝜉3subscriptRe𝑥subscript𝑥1subscriptRe𝑥subscriptRe𝑥subscript𝑥𝑚subscript𝑣𝑎2Rsubscripte𝑥subscript𝑥𝑚subscriptRe𝑥subscriptRe𝑥subscript𝑥𝑚subscriptRe𝑥subscriptRe𝑥subscript𝑥20subscriptRe𝑥subscript𝑥2subscriptRe𝑥v_{a}(\mathrm{Re}_{x})=\left\{\begin{array}[]{cc}0,&\mathrm{Re}_{x}\leq\mathrm% {Re}_{x}(x_{1})\\ 15.1875\xi^{5}-35.4375\xi^{4}+20.25\xi^{3},&\mathrm{Re}_{x}(x_{1})<\mathrm{Re}% _{x}\leq\mathrm{Re}_{x}(x_{m})\\ -v_{a}\big{(}2\mathrm{Re}_{x}(x_{m})-\mathrm{Re}_{x}\big{)},&\mathrm{Re}_{x}(x% _{m})<\mathrm{Re}_{x}\leq\mathrm{Re}_{x}(x_{2})\\ 0,&\mathrm{Re}_{x}(x_{2})<\mathrm{Re}_{x}\end{array}\right.italic_v start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ( roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) = { start_ARRAY start_ROW start_CELL 0 , end_CELL start_CELL roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ≤ roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL 15.1875 italic_ξ start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT - 35.4375 italic_ξ start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT + 20.25 italic_ξ start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT , end_CELL start_CELL roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) < roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ≤ roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL - italic_v start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ( 2 roman_R roman_e start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ) - roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) , end_CELL start_CELL roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ) < roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ≤ roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL 0 , end_CELL start_CELL roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) < roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY (25a)
vs(Rex)={0,RRex(x1)3ξ4+4ξ3,Rex(x1)<RexRex(xm)vs(2Rex(xm)Rex),Rex(xm)<RexRex(x2)0,Rex(x2)<Rexsubscript𝑣𝑠subscriptRe𝑥cases0𝑅subscriptRe𝑥subscript𝑥13superscript𝜉44superscript𝜉3subscriptRe𝑥subscript𝑥1subscriptRe𝑥subscriptRe𝑥subscript𝑥𝑚subscript𝑣𝑠2Rsubscripte𝑥subscript𝑥𝑚subscriptRe𝑥subscriptRe𝑥subscript𝑥𝑚subscriptRe𝑥subscriptRe𝑥subscript𝑥20subscriptRe𝑥subscript𝑥2subscriptRe𝑥v_{s}(\mathrm{Re}_{x})=\left\{\begin{array}[]{cc}0,&R\leq\mathrm{Re}_{x}(x_{1}% )\\ -3\xi^{4}+4\xi^{3},&\mathrm{Re}_{x}(x_{1})<\mathrm{Re}_{x}\leq\mathrm{Re}_{x}(% x_{m})\\ v_{s}\big{(}2\mathrm{Re}_{x}(x_{m})-\mathrm{Re}_{x}\big{)},&\mathrm{Re}_{x}(x_% {m})<\mathrm{Re}_{x}\leq\mathrm{Re}_{x}(x_{2})\\ 0,&\mathrm{Re}_{x}(x_{2})<\mathrm{Re}_{x}\end{array}\right.italic_v start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT ( roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) = { start_ARRAY start_ROW start_CELL 0 , end_CELL start_CELL italic_R ≤ roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL - 3 italic_ξ start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT + 4 italic_ξ start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT , end_CELL start_CELL roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) < roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ≤ roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_v start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT ( 2 roman_R roman_e start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ) - roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) , end_CELL start_CELL roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ) < roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ≤ roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL 0 , end_CELL start_CELL roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) < roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL end_ROW end_ARRAY (25b)

for Rex(x1)=1.3438×105subscriptRe𝑥subscript𝑥11.3438superscript105\mathrm{Re}_{x}(x_{1})=1.3438\times 10^{5}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) = 1.3438 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT, Rex(x2)=1.5532×105subscriptRe𝑥subscript𝑥21.5532superscript105\mathrm{Re}_{x}(x_{2})=1.5532\times 10^{5}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = 1.5532 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT, xm=(x1+x2)/2subscript𝑥𝑚subscript𝑥1subscript𝑥22x_{m}=(x_{1}+x_{2})/2italic_x start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT = ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) / 2, and ξ=(RexRex(x1))/(Rex(xm)Rex(x1))𝜉subscriptRe𝑥subscriptRe𝑥subscript𝑥1subscriptRe𝑥subscript𝑥𝑚subscriptRe𝑥subscript𝑥1\xi=(\mathrm{Re}_{x}-\mathrm{Re}_{x}(x_{1}))/(\mathrm{Re}_{x}(x_{m})-\mathrm{% Re}_{x}(x_{1}))italic_ξ = ( roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT - roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) ) / ( roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ) - roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) ). We choose F=110×106𝐹110superscript106F=110\times 10^{-6}italic_F = 110 × 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT and b=0.423×103𝑏0.423superscript103b=0.423\times 10^{-3}italic_b = 0.423 × 10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT with M=N=4𝑀𝑁4M=N=4italic_M = italic_N = 4, while the grid extends over Rex[1.33956×105,2.72×105]subscriptRe𝑥1.33956superscript1052.72superscript105\mathrm{Re}_{x}\in[1.33956\times 10^{5},2.72\times 10^{5}]roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ∈ [ 1.33956 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT , 2.72 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT ] and y[0,60]𝑦060y\in[0,60]italic_y ∈ [ 0 , 60 ], with 1300 stations in x𝑥xitalic_x and 100 grid points in y𝑦yitalic_y.

Figure 10 shows excellent agreement between the usuperscript𝑢u^{\prime}italic_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT amplitudes of NOWNS and the DNS of Rist and Fasel (1995) [5]. We note that in the early stages of the march there is disagreement between the DNS and NOWNS calculations because the blowing/suction strip causes upstream effects that NOWNS neglects by construction. However, these disturbances are convective in nature, and the amplitudes predicted by NOWNS rapidly converge to those predicted by DNS as the march progresses downstream.

Refer to caption
Figure 10: Amplitude of usuperscript𝑢u^{\prime}italic_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT v.s. streamwise coordinate, RexsubscriptRe𝑥\mathrm{Re}_{x}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT, for K-type transition

5 Conclusion

We have extended the OWNS approach, a fast marching procedure previously developed for solving linear flow disturbance equations, to support nonlinear interactions. We have demonstrated that it is effective for 2D and 3D disturbances in a wall-bounded flow by comparing against the spatial DNS and NPSE studies of Joslin et al. (1993) [29]. Moreover, we have demonstrated that NOWNS is successful in cases where NPSE fails. In particular, we have shown that NOWNS can handle stronger nonlinearities and continues marching past the point where NPSE fails, and that NOWNS is robust to numerical noise. We further demonstrated that NOWNS supports non-modal instabilities in the form of a blowing/suction strip, which would not be supported by NPSE. Future work will extend the NOWNS procedure to support high-speed flows and will concentrate on studying optimal transition mechanisms, seeking to apply NOWNS in cases where spatial DNS and other global methods are too computationally expensive to be feasible.

Appendix A Navier-Stokes Equations

Given the non-dimensional Navier-Stokes equations 1, we define the vector 𝒒=(ν,u,v,w,p)𝒒𝜈𝑢𝑣𝑤𝑝\bm{q}=(\nu,u,v,w,p)bold_italic_q = ( italic_ν , italic_u , italic_v , italic_w , italic_p ) and write

𝒒t+[Ax(𝒒)+Bx(𝒒)]𝒒x+[Ay(𝒒)+By(𝒒)]𝒒y+[Az(𝒒)+Bz(𝒒)]𝒒z+Bxx(𝒒)2𝒒x2+Byy(𝒒)2𝒒y2+Bzz(𝒒)2𝒒z2+Bxy(𝒒)2𝒒xy+Bxz(𝒒)2𝒒xz+Byz(𝒒)2𝒒yz=0.𝒒𝑡delimited-[]subscript𝐴𝑥𝒒subscript𝐵𝑥𝒒𝒒𝑥delimited-[]subscript𝐴𝑦𝒒subscript𝐵𝑦𝒒𝒒𝑦delimited-[]subscript𝐴𝑧𝒒subscript𝐵𝑧𝒒𝒒𝑧subscript𝐵𝑥𝑥𝒒superscript2𝒒superscript𝑥2subscript𝐵𝑦𝑦𝒒superscript2𝒒superscript𝑦2subscript𝐵𝑧𝑧𝒒superscript2𝒒superscript𝑧2subscript𝐵𝑥𝑦𝒒superscript2𝒒𝑥𝑦subscript𝐵𝑥𝑧𝒒superscript2𝒒𝑥𝑧subscript𝐵𝑦𝑧𝒒superscript2𝒒𝑦𝑧0\displaystyle\begin{split}\frac{\partial\bm{q}}{\partial t}&+[A_{x}(\bm{q})+B_% {x}(\bm{q})]\frac{\partial\bm{q}}{\partial x}+[A_{y}(\bm{q})+B_{y}(\bm{q})]% \frac{\partial\bm{q}}{\partial y}+[A_{z}(\bm{q})+B_{z}(\bm{q})]\frac{\partial% \bm{q}}{\partial z}\\ &+B_{xx}(\bm{q})\frac{\partial^{2}\bm{q}}{\partial x^{2}}+B_{yy}(\bm{q})\frac{% \partial^{2}\bm{q}}{\partial y^{2}}+B_{zz}(\bm{q})\frac{\partial^{2}\bm{q}}{% \partial z^{2}}+B_{xy}(\bm{q})\frac{\partial^{2}\bm{q}}{\partial x\partial y}+% B_{xz}(\bm{q})\frac{\partial^{2}\bm{q}}{\partial x\partial z}+B_{yz}(\bm{q})% \frac{\partial^{2}\bm{q}}{\partial y\partial z}=0.\end{split}start_ROW start_CELL divide start_ARG ∂ bold_italic_q end_ARG start_ARG ∂ italic_t end_ARG end_CELL start_CELL + [ italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( bold_italic_q ) + italic_B start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( bold_italic_q ) ] divide start_ARG ∂ bold_italic_q end_ARG start_ARG ∂ italic_x end_ARG + [ italic_A start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( bold_italic_q ) + italic_B start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( bold_italic_q ) ] divide start_ARG ∂ bold_italic_q end_ARG start_ARG ∂ italic_y end_ARG + [ italic_A start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( bold_italic_q ) + italic_B start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( bold_italic_q ) ] divide start_ARG ∂ bold_italic_q end_ARG start_ARG ∂ italic_z end_ARG end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL + italic_B start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT ( bold_italic_q ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q end_ARG start_ARG ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_B start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT ( bold_italic_q ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q end_ARG start_ARG ∂ italic_y start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_B start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT ( bold_italic_q ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q end_ARG start_ARG ∂ italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_B start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ( bold_italic_q ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q end_ARG start_ARG ∂ italic_x ∂ italic_y end_ARG + italic_B start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT ( bold_italic_q ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q end_ARG start_ARG ∂ italic_x ∂ italic_z end_ARG + italic_B start_POSTSUBSCRIPT italic_y italic_z end_POSTSUBSCRIPT ( bold_italic_q ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q end_ARG start_ARG ∂ italic_y ∂ italic_z end_ARG = 0 . end_CELL end_ROW (26)

where B𝐵Bitalic_B denotes viscous terms while A𝐴Aitalic_A denotes inviscid terms. Next we decompose the flow into a time-invariant equilibrium solution, 𝒒¯¯𝒒\bar{\bm{q}}over¯ start_ARG bold_italic_q end_ARG, and a time-varying disturbance variable, 𝒒superscript𝒒\bm{q}^{\prime}bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, such that 𝒒=𝒒¯+𝒒𝒒¯𝒒superscript𝒒\bm{q}=\bar{\bm{q}}+\bm{q}^{\prime}bold_italic_q = over¯ start_ARG bold_italic_q end_ARG + bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, which we use to obtain

𝒒t+[Ax(𝒒¯)+Bx(𝒒¯)]𝒒x+[Ay(𝒒¯)+By(𝒒¯)]𝒒y+[Az(𝒒¯)+Bz(𝒒¯)]𝒒z+C(𝒒¯)𝒒+Bxx(𝒒¯)2𝒒x2+Byy(𝒒¯)2𝒒y2+Bzz(𝒒¯)2𝒒z2+Bxy(𝒒¯)2𝒒xy+Bxz(𝒒¯)2𝒒xz+Byz(𝒒¯)2𝒒yz=𝑭(𝒒),superscript𝒒𝑡delimited-[]subscript𝐴𝑥¯𝒒subscript𝐵𝑥¯𝒒superscript𝒒𝑥delimited-[]subscript𝐴𝑦¯𝒒subscript𝐵𝑦¯𝒒superscript𝒒𝑦delimited-[]subscript𝐴𝑧¯𝒒subscript𝐵𝑧¯𝒒superscript𝒒𝑧𝐶¯𝒒superscript𝒒subscript𝐵𝑥𝑥¯𝒒superscript2superscript𝒒superscript𝑥2subscript𝐵𝑦𝑦¯𝒒superscript2superscript𝒒superscript𝑦2subscript𝐵𝑧𝑧¯𝒒superscript2superscript𝒒superscript𝑧2subscript𝐵𝑥𝑦¯𝒒superscript2superscript𝒒𝑥𝑦subscript𝐵𝑥𝑧¯𝒒superscript2superscript𝒒𝑥𝑧subscript𝐵𝑦𝑧¯𝒒superscript2superscript𝒒𝑦𝑧𝑭superscript𝒒\displaystyle\begin{split}\frac{\partial\bm{q}^{\prime}}{\partial t}&+[A_{x}(% \bar{\bm{q}})+B_{x}(\bar{\bm{q}})]\frac{\partial\bm{q}^{\prime}}{\partial x}+[% A_{y}(\bar{\bm{q}})+B_{y}(\bar{\bm{q}})]\frac{\partial\bm{q}^{\prime}}{% \partial y}+[A_{z}(\bar{\bm{q}})+B_{z}(\bar{\bm{q}})]\frac{\partial\bm{q}^{% \prime}}{\partial z}+C(\bar{\bm{q}})\bm{q}^{\prime}\\ &+B_{xx}(\bar{\bm{q}})\frac{\partial^{2}\bm{q}^{\prime}}{\partial x^{2}}+B_{yy% }(\bar{\bm{q}})\frac{\partial^{2}\bm{q}^{\prime}}{\partial y^{2}}+B_{zz}(\bar{% \bm{q}})\frac{\partial^{2}\bm{q}^{\prime}}{\partial z^{2}}+B_{xy}(\bar{\bm{q}}% )\frac{\partial^{2}\bm{q}^{\prime}}{\partial x\partial y}+B_{xz}(\bar{\bm{q}})% \frac{\partial^{2}\bm{q}^{\prime}}{\partial x\partial z}+B_{yz}(\bar{\bm{q}})% \frac{\partial^{2}\bm{q}^{\prime}}{\partial y\partial z}=\bm{F}(\bm{q}^{\prime% }),\end{split}start_ROW start_CELL divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_t end_ARG end_CELL start_CELL + [ italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) + italic_B start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) ] divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG + [ italic_A start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) + italic_B start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) ] divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_y end_ARG + [ italic_A start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) + italic_B start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) ] divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_z end_ARG + italic_C ( over¯ start_ARG bold_italic_q end_ARG ) bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL + italic_B start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_B start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_y start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_B start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_B start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x ∂ italic_y end_ARG + italic_B start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x ∂ italic_z end_ARG + italic_B start_POSTSUBSCRIPT italic_y italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_y ∂ italic_z end_ARG = bold_italic_F ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) , end_CELL end_ROW (27)

where we have defined C(𝒒¯)𝐶¯𝒒C(\bar{\bm{q}})italic_C ( over¯ start_ARG bold_italic_q end_ARG ) such that

C(𝒒¯)𝒒=[Ax(𝒒)+Bx(𝒒)]𝒒¯x+[Ay(𝒒)+By(𝒒)]𝒒¯y+[Az(𝒒)+Bz(𝒒)]𝒒¯z+Bxx(𝒒)2𝒒¯x2+Byy(𝒒)2𝒒¯y2+Bzz(𝒒)2𝒒¯z2+Bxy(𝒒)2𝒒¯xy+Bxz(𝒒)2𝒒¯xz+Byz(𝒒)2𝒒¯yz,𝐶¯𝒒superscript𝒒delimited-[]subscript𝐴𝑥superscript𝒒subscript𝐵𝑥superscript𝒒¯𝒒𝑥delimited-[]subscript𝐴𝑦superscript𝒒subscript𝐵𝑦superscript𝒒¯𝒒𝑦delimited-[]subscript𝐴𝑧superscript𝒒subscript𝐵𝑧superscript𝒒¯𝒒𝑧subscript𝐵𝑥𝑥superscript𝒒superscript2¯𝒒superscript𝑥2subscript𝐵𝑦𝑦superscript𝒒superscript2¯𝒒superscript𝑦2subscript𝐵𝑧𝑧superscript𝒒superscript2¯𝒒superscript𝑧2subscript𝐵𝑥𝑦superscript𝒒superscript2¯𝒒𝑥𝑦subscript𝐵𝑥𝑧superscript𝒒superscript2¯𝒒𝑥𝑧subscript𝐵𝑦𝑧superscript𝒒superscript2¯𝒒𝑦𝑧\displaystyle\begin{split}C(\bar{\bm{q}})\bm{q}^{\prime}&=[A_{x}(\bm{q}^{% \prime})+B_{x}(\bm{q}^{\prime})]\frac{\partial\bar{\bm{q}}}{\partial x}+[A_{y}% (\bm{q}^{\prime})+B_{y}(\bm{q}^{\prime})]\frac{\partial\bar{\bm{q}}}{\partial y% }+[A_{z}(\bm{q}^{\prime})+B_{z}(\bm{q}^{\prime})]\frac{\partial\bar{\bm{q}}}{% \partial z}\\ &+B_{xx}(\bm{q}^{\prime})\frac{\partial^{2}\bar{\bm{q}}}{\partial x^{2}}+B_{yy% }(\bm{q}^{\prime})\frac{\partial^{2}\bar{\bm{q}}}{\partial y^{2}}+B_{zz}(\bm{q% }^{\prime})\frac{\partial^{2}\bar{\bm{q}}}{\partial z^{2}}+B_{xy}(\bm{q}^{% \prime})\frac{\partial^{2}\bar{\bm{q}}}{\partial x\partial y}+B_{xz}(\bm{q}^{% \prime})\frac{\partial^{2}\bar{\bm{q}}}{\partial x\partial z}+B_{yz}(\bm{q}^{% \prime})\frac{\partial^{2}\bar{\bm{q}}}{\partial y\partial z},\end{split}start_ROW start_CELL italic_C ( over¯ start_ARG bold_italic_q end_ARG ) bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_CELL start_CELL = [ italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) + italic_B start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ] divide start_ARG ∂ over¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG ∂ italic_x end_ARG + [ italic_A start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) + italic_B start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ] divide start_ARG ∂ over¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG ∂ italic_y end_ARG + [ italic_A start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) + italic_B start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ] divide start_ARG ∂ over¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG ∂ italic_z end_ARG end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL + italic_B start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_B start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG ∂ italic_y start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_B start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG ∂ italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_B start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG ∂ italic_x ∂ italic_y end_ARG + italic_B start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG ∂ italic_x ∂ italic_z end_ARG + italic_B start_POSTSUBSCRIPT italic_y italic_z end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG ∂ italic_y ∂ italic_z end_ARG , end_CELL end_ROW (28)

and the nonlinear term

𝑭(𝒒)=[Ax(𝒒)+Bx(𝒒)]𝒒x[Ay(𝒒)+By(𝒒)]𝒒y[Az(𝒒)+Bz(𝒒)]𝒒zBxx(𝒒)2𝒒x2Byy(𝒒)2𝒒y2Byy(𝒒)2𝒒z2Bxy(𝒒)2𝒒xyBxz(𝒒)2𝒒xzByz(𝒒)2𝒒yz.𝑭superscript𝒒delimited-[]subscript𝐴𝑥superscript𝒒subscript𝐵𝑥superscript𝒒superscript𝒒𝑥delimited-[]subscript𝐴𝑦superscript𝒒subscript𝐵𝑦superscript𝒒superscript𝒒𝑦delimited-[]subscript𝐴𝑧superscript𝒒subscript𝐵𝑧superscript𝒒superscript𝒒𝑧subscript𝐵𝑥𝑥superscript𝒒superscript2superscript𝒒superscript𝑥2subscript𝐵𝑦𝑦superscript𝒒superscript2superscript𝒒superscript𝑦2subscript𝐵𝑦𝑦superscript𝒒superscript2superscript𝒒superscript𝑧2subscript𝐵𝑥𝑦superscript𝒒superscript2superscript𝒒𝑥𝑦subscript𝐵𝑥𝑧superscript𝒒superscript2superscript𝒒𝑥𝑧subscript𝐵𝑦𝑧superscript𝒒superscript2superscript𝒒𝑦𝑧\displaystyle\begin{split}\bm{F}(\bm{q}^{\prime})&=-[A_{x}(\bm{q}^{\prime})+B_% {x}(\bm{q}^{\prime})]\frac{\partial\bm{q}^{\prime}}{\partial x}-[A_{y}(\bm{q}^% {\prime})+B_{y}(\bm{q}^{\prime})]\frac{\partial\bm{q}^{\prime}}{\partial y}-[A% _{z}(\bm{q}^{\prime})+B_{z}(\bm{q}^{\prime})]\frac{\partial\bm{q}^{\prime}}{% \partial z}\\ &-B_{xx}(\bm{q}^{\prime})\frac{\partial^{2}\bm{q}^{\prime}}{\partial x^{2}}-B_% {yy}(\bm{q}^{\prime})\frac{\partial^{2}\bm{q}^{\prime}}{\partial y^{2}}-B_{yy}% (\bm{q}^{\prime})\frac{\partial^{2}\bm{q}^{\prime}}{\partial z^{2}}-B_{xy}(\bm% {q}^{\prime})\frac{\partial^{2}\bm{q}^{\prime}}{\partial x\partial y}-B_{xz}(% \bm{q}^{\prime})\frac{\partial^{2}\bm{q}^{\prime}}{\partial x\partial z}-B_{yz% }(\bm{q}^{\prime})\frac{\partial^{2}\bm{q}^{\prime}}{\partial y\partial z}.% \end{split}start_ROW start_CELL bold_italic_F ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) end_CELL start_CELL = - [ italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) + italic_B start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ] divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG - [ italic_A start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) + italic_B start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ] divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_y end_ARG - [ italic_A start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) + italic_B start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ] divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_z end_ARG end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL - italic_B start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG - italic_B start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_y start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG - italic_B start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG - italic_B start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x ∂ italic_y end_ARG - italic_B start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x ∂ italic_z end_ARG - italic_B start_POSTSUBSCRIPT italic_y italic_z end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_y ∂ italic_z end_ARG . end_CELL end_ROW (29)

We further define the linear operator

(𝒒¯)=t[Ay(𝒒¯)+By(𝒒¯)]𝒒y[Az(𝒒¯)+Bz(𝒒¯)]𝒒zC(𝒒¯)𝒒Byy(𝒒¯)2𝒒y2Bzz(𝒒¯)2𝒒z2Byz(𝒒¯)2𝒒yz=0,¯𝒒𝑡delimited-[]subscript𝐴𝑦¯𝒒subscript𝐵𝑦¯𝒒superscript𝒒𝑦delimited-[]subscript𝐴𝑧¯𝒒subscript𝐵𝑧¯𝒒superscript𝒒𝑧𝐶¯𝒒superscript𝒒subscript𝐵𝑦𝑦¯𝒒superscript2superscript𝒒superscript𝑦2subscript𝐵𝑧𝑧¯𝒒superscript2superscript𝒒superscript𝑧2subscript𝐵𝑦𝑧¯𝒒superscript2superscript𝒒𝑦𝑧0\displaystyle\begin{split}\mathcal{L}(\bar{\bm{q}})=&-\frac{\partial}{\partial t% }-[A_{y}(\bar{\bm{q}})+B_{y}(\bar{\bm{q}})]\frac{\partial\bm{q}^{\prime}}{% \partial y}-[A_{z}(\bar{\bm{q}})+B_{z}(\bar{\bm{q}})]\frac{\partial\bm{q}^{% \prime}}{\partial z}-C(\bar{\bm{q}})\bm{q}^{\prime}\\ &-B_{yy}(\bar{\bm{q}})\frac{\partial^{2}\bm{q}^{\prime}}{\partial y^{2}}-B_{zz% }(\bar{\bm{q}})\frac{\partial^{2}\bm{q}^{\prime}}{\partial z^{2}}-B_{yz}(\bar{% \bm{q}})\frac{\partial^{2}\bm{q}^{\prime}}{\partial y\partial z}=0,\end{split}start_ROW start_CELL caligraphic_L ( over¯ start_ARG bold_italic_q end_ARG ) = end_CELL start_CELL - divide start_ARG ∂ end_ARG start_ARG ∂ italic_t end_ARG - [ italic_A start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) + italic_B start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) ] divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_y end_ARG - [ italic_A start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) + italic_B start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) ] divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_z end_ARG - italic_C ( over¯ start_ARG bold_italic_q end_ARG ) bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL - italic_B start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_y start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG - italic_B start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG - italic_B start_POSTSUBSCRIPT italic_y italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_y ∂ italic_z end_ARG = 0 , end_CELL end_ROW (30)

yielding

Ax(𝒒¯)𝒒x=(𝒒¯)𝒒+𝑭(𝒒)Bx(𝒒¯)𝒒xBxx(𝒒¯)2𝒒x2Bxy(𝒒¯)2𝒒xyBxz(𝒒¯)2𝒒xz.subscript𝐴𝑥¯𝒒superscript𝒒𝑥¯𝒒superscript𝒒𝑭superscript𝒒subscript𝐵𝑥¯𝒒superscript𝒒𝑥subscript𝐵𝑥𝑥¯𝒒superscript2superscript𝒒superscript𝑥2subscript𝐵𝑥𝑦¯𝒒superscript2superscript𝒒𝑥𝑦subscript𝐵𝑥𝑧¯𝒒superscript2superscript𝒒𝑥𝑧A_{x}(\bar{\bm{q}})\frac{\partial\bm{q}^{\prime}}{\partial x}=\mathcal{L}(\bar% {\bm{q}})\bm{q}^{\prime}+\bm{F}(\bm{q}^{\prime})-B_{x}(\bar{\bm{q}})\frac{% \partial\bm{q}^{\prime}}{\partial x}-B_{xx}(\bar{\bm{q}})\frac{\partial^{2}\bm% {q}^{\prime}}{\partial x^{2}}-B_{xy}(\bar{\bm{q}})\frac{\partial^{2}\bm{q}^{% \prime}}{\partial x\partial y}-B_{xz}(\bar{\bm{q}})\frac{\partial^{2}\bm{q}^{% \prime}}{\partial x\partial z}.italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG = caligraphic_L ( over¯ start_ARG bold_italic_q end_ARG ) bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT + bold_italic_F ( bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) - italic_B start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x end_ARG - italic_B start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG - italic_B start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x ∂ italic_y end_ARG - italic_B start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG ) divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x ∂ italic_z end_ARG . (31)

The operators for the first derivatives (without viscous terms), Axsubscript𝐴𝑥A_{x}italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT, Aysubscript𝐴𝑦A_{y}italic_A start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT, and Azsubscript𝐴𝑧A_{z}italic_A start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT, are given by

Ax(𝒒)=[uν0000u00ν00u00000u00γp00u],Ay(𝒒)=[v0ν000v00000v0ν000v000γp0v],Az(𝒒)=[w00ν00w00000w00000wν000γpw],formulae-sequencesubscript𝐴𝑥𝒒delimited-[]𝑢𝜈0000𝑢00𝜈00𝑢00000𝑢00𝛾𝑝00𝑢formulae-sequencesubscript𝐴𝑦𝒒delimited-[]𝑣0𝜈000𝑣00000𝑣0𝜈000𝑣000𝛾𝑝0𝑣subscript𝐴𝑧𝒒delimited-[]𝑤00𝜈00𝑤00000𝑤00000𝑤𝜈000𝛾𝑝𝑤A_{x}(\bm{q})=\left[\begin{array}[]{ccccc}u&-\nu&0&0&0\\ 0&u&0&0&\nu\\ 0&0&u&0&0\\ 0&0&0&u&0\\ 0&\gamma p&0&0&u\end{array}\right],\quad A_{y}(\bm{q})=\left[\begin{array}[]{% ccccc}v&0&-\nu&0&0\\ 0&v&0&0&0\\ 0&0&v&0&\nu\\ 0&0&0&v&0\\ 0&0&\gamma p&0&v\end{array}\right],\quad A_{z}(\bm{q})=\left[\begin{array}[]{% ccccc}w&0&0&-\nu&0\\ 0&w&0&0&0\\ 0&0&w&0&0\\ 0&0&0&w&\nu\\ 0&0&0&\gamma p&w\end{array}\right],italic_A start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( bold_italic_q ) = [ start_ARRAY start_ROW start_CELL italic_u end_CELL start_CELL - italic_ν end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_u end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_ν end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_u end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_u end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_γ italic_p end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_u end_CELL end_ROW end_ARRAY ] , italic_A start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( bold_italic_q ) = [ start_ARRAY start_ROW start_CELL italic_v end_CELL start_CELL 0 end_CELL start_CELL - italic_ν end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_v end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_v end_CELL start_CELL 0 end_CELL start_CELL italic_ν end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_v end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_γ italic_p end_CELL start_CELL 0 end_CELL start_CELL italic_v end_CELL end_ROW end_ARRAY ] , italic_A start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( bold_italic_q ) = [ start_ARRAY start_ROW start_CELL italic_w end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - italic_ν end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_w end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_w end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_w end_CELL start_CELL italic_ν end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_γ italic_p end_CELL start_CELL italic_w end_CELL end_ROW end_ARRAY ] ,

while the operators for the first derivatives (with viscous terms) Bxsubscript𝐵𝑥B_{x}italic_B start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT, Bysubscript𝐵𝑦B_{y}italic_B start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT, and Bzsubscript𝐵𝑧B_{z}italic_B start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT, are given by

Bx(𝒒)=2γPrRe[00000000000000000000px000νx],By(𝒒)=2γPrRe[00000000000000000000py000νy],formulae-sequencesubscript𝐵𝑥𝒒2𝛾𝑃𝑟𝑅𝑒delimited-[]00000000000000000000𝑝𝑥000𝜈𝑥subscript𝐵𝑦𝒒2𝛾𝑃𝑟𝑅𝑒delimited-[]00000000000000000000𝑝𝑦000𝜈𝑦B_{x}(\bm{q})=-\frac{2\gamma}{PrRe}\left[\begin{array}[]{ccccc}0&0&0&0&0\\ 0&0&0&0&0\\ 0&0&0&0&0\\ 0&0&0&0&0\\ \frac{\partial p}{\partial x}&0&0&0&\frac{\partial\nu}{\partial x}\end{array}% \right],\quad B_{y}(\bm{q})=-\frac{2\gamma}{PrRe}\left[\begin{array}[]{ccccc}0% &0&0&0&0\\ 0&0&0&0&0\\ 0&0&0&0&0\\ 0&0&0&0&0\\ \frac{\partial p}{\partial y}&0&0&0&\frac{\partial\nu}{\partial y}\end{array}% \right],italic_B start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ( bold_italic_q ) = - divide start_ARG 2 italic_γ end_ARG start_ARG italic_P italic_r italic_R italic_e end_ARG [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_x end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL divide start_ARG ∂ italic_ν end_ARG start_ARG ∂ italic_x end_ARG end_CELL end_ROW end_ARRAY ] , italic_B start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ( bold_italic_q ) = - divide start_ARG 2 italic_γ end_ARG start_ARG italic_P italic_r italic_R italic_e end_ARG [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_y end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL divide start_ARG ∂ italic_ν end_ARG start_ARG ∂ italic_y end_ARG end_CELL end_ROW end_ARRAY ] ,

and

Bz(𝒒)=2γPrRe[00000000000000000000pz000νz],subscript𝐵𝑧𝒒2𝛾𝑃𝑟𝑅𝑒delimited-[]00000000000000000000𝑝𝑧000𝜈𝑧B_{z}(\bm{q})=-\frac{2\gamma}{PrRe}\left[\begin{array}[]{ccccc}0&0&0&0&0\\ 0&0&0&0&0\\ 0&0&0&0&0\\ 0&0&0&0&0\\ \frac{\partial p}{\partial z}&0&0&0&\frac{\partial\nu}{\partial z}\end{array}% \right],italic_B start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ( bold_italic_q ) = - divide start_ARG 2 italic_γ end_ARG start_ARG italic_P italic_r italic_R italic_e end_ARG [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_z end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL divide start_ARG ∂ italic_ν end_ARG start_ARG ∂ italic_z end_ARG end_CELL end_ROW end_ARRAY ] ,

For the second derivatives Bxxsubscript𝐵𝑥𝑥B_{xx}italic_B start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT and Byysubscript𝐵𝑦𝑦B_{yy}italic_B start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT we have

Bxx(𝒒)=[00000043νRe00000νRe00000νRe0γpRePr000γνRePr],Byy(𝒒)=[000000νRe0000043νRe00000νRe0γpRePr000γνRePr],formulae-sequencesubscript𝐵𝑥𝑥𝒒delimited-[]00000043𝜈𝑅𝑒00000𝜈𝑅𝑒00000𝜈𝑅𝑒0𝛾𝑝𝑅𝑒𝑃𝑟000𝛾𝜈𝑅𝑒𝑃𝑟subscript𝐵𝑦𝑦𝒒delimited-[]000000𝜈𝑅𝑒0000043𝜈𝑅𝑒00000𝜈𝑅𝑒0𝛾𝑝𝑅𝑒𝑃𝑟000𝛾𝜈𝑅𝑒𝑃𝑟B_{xx}(\bm{q})=\left[\begin{array}[]{ccccc}0&0&0&0&0\\ 0&-\frac{4}{3}\frac{\nu}{Re}&0&0&0\\ 0&0&-\frac{\nu}{Re}&0&0\\ 0&0&0&-\frac{\nu}{Re}&0\\ -\frac{\gamma p}{RePr}&0&0&0&-\frac{\gamma\nu}{RePr}\end{array}\right],\quad B% _{yy}(\bm{q})=\left[\begin{array}[]{ccccc}0&0&0&0&0\\ 0&-\frac{\nu}{Re}&0&0&0\\ 0&0&-\frac{4}{3}\frac{\nu}{Re}&0&0\\ 0&0&0&-\frac{\nu}{Re}&0\\ -\frac{\gamma p}{RePr}&0&0&0&-\frac{\gamma\nu}{RePr}\end{array}\right],italic_B start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT ( bold_italic_q ) = [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL - divide start_ARG 4 end_ARG start_ARG 3 end_ARG divide start_ARG italic_ν end_ARG start_ARG italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL - divide start_ARG italic_γ italic_p end_ARG start_ARG italic_R italic_e italic_P italic_r end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG italic_γ italic_ν end_ARG start_ARG italic_R italic_e italic_P italic_r end_ARG end_CELL end_ROW end_ARRAY ] , italic_B start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT ( bold_italic_q ) = [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG 4 end_ARG start_ARG 3 end_ARG divide start_ARG italic_ν end_ARG start_ARG italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL - divide start_ARG italic_γ italic_p end_ARG start_ARG italic_R italic_e italic_P italic_r end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG italic_γ italic_ν end_ARG start_ARG italic_R italic_e italic_P italic_r end_ARG end_CELL end_ROW end_ARRAY ] ,

while for Bzzsubscript𝐵𝑧𝑧B_{zz}italic_B start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT and Bxysubscript𝐵𝑥𝑦B_{xy}italic_B start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT we have

Bzz(𝒒)=[000000νRe00000νRe0000043νRe0γpRePr000γνRePr],Bxy(𝒒)=[0000000ν3Re000ν3Re0000000000000],formulae-sequencesubscript𝐵𝑧𝑧𝒒delimited-[]000000𝜈𝑅𝑒00000𝜈𝑅𝑒0000043𝜈𝑅𝑒0𝛾𝑝𝑅𝑒𝑃𝑟000𝛾𝜈𝑅𝑒𝑃𝑟subscript𝐵𝑥𝑦𝒒delimited-[]0000000𝜈3𝑅𝑒000𝜈3𝑅𝑒0000000000000B_{zz}(\bm{q})=\left[\begin{array}[]{ccccc}0&0&0&0&0\\ 0&-\frac{\nu}{Re}&0&0&0\\ 0&0&-\frac{\nu}{Re}&0&0\\ 0&0&0&-\frac{4}{3}\frac{\nu}{Re}&0\\ -\frac{\gamma p}{RePr}&0&0&0&-\frac{\gamma\nu}{RePr}\end{array}\right],\quad B% _{xy}(\bm{q})=\left[\begin{array}[]{ccccc}0&0&0&0&0\\ 0&0&-\frac{\nu}{3Re}&0&0\\ 0&-\frac{\nu}{3Re}&0&0&0\\ 0&0&0&0&0\\ 0&0&0&0&0\end{array}\right],italic_B start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT ( bold_italic_q ) = [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG 4 end_ARG start_ARG 3 end_ARG divide start_ARG italic_ν end_ARG start_ARG italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL - divide start_ARG italic_γ italic_p end_ARG start_ARG italic_R italic_e italic_P italic_r end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG italic_γ italic_ν end_ARG start_ARG italic_R italic_e italic_P italic_r end_ARG end_CELL end_ROW end_ARRAY ] , italic_B start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT ( bold_italic_q ) = [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG 3 italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG 3 italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARRAY ] ,

and for Bxzsubscript𝐵𝑥𝑧B_{xz}italic_B start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT and Byzsubscript𝐵𝑦𝑧B_{yz}italic_B start_POSTSUBSCRIPT italic_y italic_z end_POSTSUBSCRIPT we have

Bxz(𝒒)=[00000000ν3Re0000000ν3Re00000000],Byz(𝒒)=[0000000000000ν3Re000ν3Re0000000].formulae-sequencesubscript𝐵𝑥𝑧𝒒delimited-[]00000000𝜈3𝑅𝑒0000000𝜈3𝑅𝑒00000000subscript𝐵𝑦𝑧𝒒delimited-[]0000000000000𝜈3𝑅𝑒000𝜈3𝑅𝑒0000000B_{xz}(\bm{q})=\left[\begin{array}[]{ccccc}0&0&0&0&0\\ 0&0&0&-\frac{\nu}{3Re}&0\\ 0&0&0&0&0\\ 0&-\frac{\nu}{3Re}&0&0&0\\ 0&0&0&0&0\end{array}\right],\quad B_{yz}(\bm{q})=\left[\begin{array}[]{ccccc}0% &0&0&0&0\\ 0&0&0&0&0\\ 0&0&0&-\frac{\nu}{3Re}&0\\ 0&0&-\frac{\nu}{3Re}&0&0\\ 0&0&0&0&0\end{array}\right].italic_B start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT ( bold_italic_q ) = [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG 3 italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG 3 italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARRAY ] , italic_B start_POSTSUBSCRIPT italic_y italic_z end_POSTSUBSCRIPT ( bold_italic_q ) = [ start_ARRAY start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG 3 italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - divide start_ARG italic_ν end_ARG start_ARG 3 italic_R italic_e end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARRAY ] .

Finally, the operator C𝐶Citalic_C is given by

C(𝒒)=[𝒖νxνyνz0px1Re2u13Re[xxu+xyv+xzw]uxuyuz0py1Re2v13Re[xyu+yyv+yzw]vxvyvz0pz1Re2w13Re[xzu+yzv+zzw]wxwywz0γRePr2ppxpypzγ𝒖γRePr2ν],𝐶𝒒delimited-[]𝒖𝜈𝑥𝜈𝑦𝜈𝑧0𝑝𝑥1𝑅𝑒superscript2𝑢13𝑅𝑒delimited-[]subscript𝑥𝑥𝑢subscript𝑥𝑦𝑣subscript𝑥𝑧𝑤𝑢𝑥𝑢𝑦𝑢𝑧0𝑝𝑦1𝑅𝑒superscript2𝑣13𝑅𝑒delimited-[]subscript𝑥𝑦𝑢subscript𝑦𝑦𝑣subscript𝑦𝑧𝑤𝑣𝑥𝑣𝑦𝑣𝑧0𝑝𝑧1𝑅𝑒superscript2𝑤13𝑅𝑒delimited-[]subscript𝑥𝑧𝑢subscript𝑦𝑧𝑣subscript𝑧𝑧𝑤𝑤𝑥𝑤𝑦𝑤𝑧0𝛾𝑅𝑒𝑃𝑟superscript2𝑝𝑝𝑥𝑝𝑦𝑝𝑧𝛾𝒖𝛾𝑅𝑒𝑃𝑟superscript2𝜈C(\bm{q})=\left[\begin{array}[]{ccccc}-\nabla\cdot\bm{u}&\frac{\partial\nu}{% \partial x}&\frac{\partial\nu}{\partial y}&\frac{\partial\nu}{\partial z}&0\\ \frac{\partial p}{\partial x}-\frac{1}{Re}\nabla^{2}u-\frac{1}{3Re}[\partial_{% xx}u+\partial_{xy}v+\partial_{xz}w]&\frac{\partial u}{\partial x}&\frac{% \partial u}{\partial y}&\frac{\partial u}{\partial z}&0\\ \frac{\partial p}{\partial y}-\frac{1}{Re}\nabla^{2}v-\frac{1}{3Re}[\partial_{% xy}u+\partial_{yy}v+\partial_{yz}w]&\frac{\partial v}{\partial x}&\frac{% \partial v}{\partial y}&\frac{\partial v}{\partial z}&0\\ \frac{\partial p}{\partial z}-\frac{1}{Re}\nabla^{2}w-\frac{1}{3Re}[\partial_{% xz}u+\partial_{yz}v+\partial_{zz}w]&\frac{\partial w}{\partial x}&\frac{% \partial w}{\partial y}&\frac{\partial w}{\partial z}&0\\ -\frac{\gamma}{RePr}\nabla^{2}p&\frac{\partial p}{\partial x}&\frac{\partial p% }{\partial y}&\frac{\partial p}{\partial z}&\gamma\nabla\cdot\bm{u}-\frac{% \gamma}{RePr}\nabla^{2}\nu\end{array}\right],italic_C ( bold_italic_q ) = [ start_ARRAY start_ROW start_CELL - ∇ ⋅ bold_italic_u end_CELL start_CELL divide start_ARG ∂ italic_ν end_ARG start_ARG ∂ italic_x end_ARG end_CELL start_CELL divide start_ARG ∂ italic_ν end_ARG start_ARG ∂ italic_y end_ARG end_CELL start_CELL divide start_ARG ∂ italic_ν end_ARG start_ARG ∂ italic_z end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_x end_ARG - divide start_ARG 1 end_ARG start_ARG italic_R italic_e end_ARG ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_u - divide start_ARG 1 end_ARG start_ARG 3 italic_R italic_e end_ARG [ ∂ start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT italic_u + ∂ start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT italic_v + ∂ start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT italic_w ] end_CELL start_CELL divide start_ARG ∂ italic_u end_ARG start_ARG ∂ italic_x end_ARG end_CELL start_CELL divide start_ARG ∂ italic_u end_ARG start_ARG ∂ italic_y end_ARG end_CELL start_CELL divide start_ARG ∂ italic_u end_ARG start_ARG ∂ italic_z end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_y end_ARG - divide start_ARG 1 end_ARG start_ARG italic_R italic_e end_ARG ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_v - divide start_ARG 1 end_ARG start_ARG 3 italic_R italic_e end_ARG [ ∂ start_POSTSUBSCRIPT italic_x italic_y end_POSTSUBSCRIPT italic_u + ∂ start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT italic_v + ∂ start_POSTSUBSCRIPT italic_y italic_z end_POSTSUBSCRIPT italic_w ] end_CELL start_CELL divide start_ARG ∂ italic_v end_ARG start_ARG ∂ italic_x end_ARG end_CELL start_CELL divide start_ARG ∂ italic_v end_ARG start_ARG ∂ italic_y end_ARG end_CELL start_CELL divide start_ARG ∂ italic_v end_ARG start_ARG ∂ italic_z end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_z end_ARG - divide start_ARG 1 end_ARG start_ARG italic_R italic_e end_ARG ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_w - divide start_ARG 1 end_ARG start_ARG 3 italic_R italic_e end_ARG [ ∂ start_POSTSUBSCRIPT italic_x italic_z end_POSTSUBSCRIPT italic_u + ∂ start_POSTSUBSCRIPT italic_y italic_z end_POSTSUBSCRIPT italic_v + ∂ start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT italic_w ] end_CELL start_CELL divide start_ARG ∂ italic_w end_ARG start_ARG ∂ italic_x end_ARG end_CELL start_CELL divide start_ARG ∂ italic_w end_ARG start_ARG ∂ italic_y end_ARG end_CELL start_CELL divide start_ARG ∂ italic_w end_ARG start_ARG ∂ italic_z end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL - divide start_ARG italic_γ end_ARG start_ARG italic_R italic_e italic_P italic_r end_ARG ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_p end_CELL start_CELL divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_x end_ARG end_CELL start_CELL divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_y end_ARG end_CELL start_CELL divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_z end_ARG end_CELL start_CELL italic_γ ∇ ⋅ bold_italic_u - divide start_ARG italic_γ end_ARG start_ARG italic_R italic_e italic_P italic_r end_ARG ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_ν end_CELL end_ROW end_ARRAY ] ,

while the nonlinear term is a vector comprising the following components

F1(𝒒)subscript𝐹1𝒒\displaystyle F_{1}(\bm{q})italic_F start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( bold_italic_q ) =uνx+vνy+wνzνuxνvyνwz,absent𝑢𝜈𝑥𝑣𝜈𝑦𝑤𝜈𝑧𝜈𝑢𝑥𝜈𝑣𝑦𝜈𝑤𝑧\displaystyle=u\frac{\partial\nu}{\partial x}+v\frac{\partial\nu}{\partial y}+% w\frac{\partial\nu}{\partial z}-\nu\frac{\partial u}{\partial x}-\nu\frac{% \partial v}{\partial y}-\nu\frac{\partial w}{\partial z},= italic_u divide start_ARG ∂ italic_ν end_ARG start_ARG ∂ italic_x end_ARG + italic_v divide start_ARG ∂ italic_ν end_ARG start_ARG ∂ italic_y end_ARG + italic_w divide start_ARG ∂ italic_ν end_ARG start_ARG ∂ italic_z end_ARG - italic_ν divide start_ARG ∂ italic_u end_ARG start_ARG ∂ italic_x end_ARG - italic_ν divide start_ARG ∂ italic_v end_ARG start_ARG ∂ italic_y end_ARG - italic_ν divide start_ARG ∂ italic_w end_ARG start_ARG ∂ italic_z end_ARG ,
F2(𝒒)subscript𝐹2𝒒\displaystyle F_{2}(\bm{q})italic_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( bold_italic_q ) =νpxuuxvuywuz+1Reν2u+13Re(2ux2+2vxy+2wxz),absent𝜈𝑝𝑥𝑢𝑢𝑥𝑣𝑢𝑦𝑤𝑢𝑧1𝑅𝑒𝜈superscript2𝑢13𝑅𝑒superscript2𝑢superscript𝑥2superscript2𝑣𝑥𝑦superscript2𝑤𝑥𝑧\displaystyle=\nu\frac{\partial p}{\partial x}-u\frac{\partial u}{\partial x}-% v\frac{\partial u}{\partial y}-w\frac{\partial u}{\partial z}+\frac{1}{Re}\nu% \nabla^{2}u+\frac{1}{3Re}\Big{(}\frac{\partial^{2}u}{\partial x^{2}}+\frac{% \partial^{2}v}{\partial x\partial y}+\frac{\partial^{2}w}{\partial x\partial z% }\Big{)},= italic_ν divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_x end_ARG - italic_u divide start_ARG ∂ italic_u end_ARG start_ARG ∂ italic_x end_ARG - italic_v divide start_ARG ∂ italic_u end_ARG start_ARG ∂ italic_y end_ARG - italic_w divide start_ARG ∂ italic_u end_ARG start_ARG ∂ italic_z end_ARG + divide start_ARG 1 end_ARG start_ARG italic_R italic_e end_ARG italic_ν ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_u + divide start_ARG 1 end_ARG start_ARG 3 italic_R italic_e end_ARG ( divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_u end_ARG start_ARG ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_v end_ARG start_ARG ∂ italic_x ∂ italic_y end_ARG + divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_w end_ARG start_ARG ∂ italic_x ∂ italic_z end_ARG ) ,
F3(𝒒)subscript𝐹3𝒒\displaystyle F_{3}(\bm{q})italic_F start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( bold_italic_q ) =νpyuvxvvywvz+1Reν2u+13Re(2uxy+2vy2+2wyz),absent𝜈𝑝𝑦𝑢𝑣𝑥𝑣𝑣𝑦𝑤𝑣𝑧1𝑅𝑒𝜈superscript2𝑢13𝑅𝑒superscript2𝑢𝑥𝑦superscript2𝑣superscript𝑦2superscript2𝑤𝑦𝑧\displaystyle=\nu\frac{\partial p}{\partial y}-u\frac{\partial v}{\partial x}-% v\frac{\partial v}{\partial y}-w\frac{\partial v}{\partial z}+\frac{1}{Re}\nu% \nabla^{2}u+\frac{1}{3Re}\Big{(}\frac{\partial^{2}u}{\partial x\partial y}+% \frac{\partial^{2}v}{\partial y^{2}}+\frac{\partial^{2}w}{\partial y\partial z% }\Big{)},= italic_ν divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_y end_ARG - italic_u divide start_ARG ∂ italic_v end_ARG start_ARG ∂ italic_x end_ARG - italic_v divide start_ARG ∂ italic_v end_ARG start_ARG ∂ italic_y end_ARG - italic_w divide start_ARG ∂ italic_v end_ARG start_ARG ∂ italic_z end_ARG + divide start_ARG 1 end_ARG start_ARG italic_R italic_e end_ARG italic_ν ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_u + divide start_ARG 1 end_ARG start_ARG 3 italic_R italic_e end_ARG ( divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_u end_ARG start_ARG ∂ italic_x ∂ italic_y end_ARG + divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_v end_ARG start_ARG ∂ italic_y start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_w end_ARG start_ARG ∂ italic_y ∂ italic_z end_ARG ) ,
F4(𝒒)subscript𝐹4𝒒\displaystyle F_{4}(\bm{q})italic_F start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ( bold_italic_q ) =νpzuwxvwywwz+1Reν2u+13Re(2uxz+2vyz+2wz2),absent𝜈𝑝𝑧𝑢𝑤𝑥𝑣𝑤𝑦𝑤𝑤𝑧1𝑅𝑒𝜈superscript2𝑢13𝑅𝑒superscript2𝑢𝑥𝑧superscript2𝑣𝑦𝑧superscript2𝑤superscript𝑧2\displaystyle=\nu\frac{\partial p}{\partial z}-u\frac{\partial w}{\partial x}-% v\frac{\partial w}{\partial y}-w\frac{\partial w}{\partial z}+\frac{1}{Re}\nu% \nabla^{2}u+\frac{1}{3Re}\Big{(}\frac{\partial^{2}u}{\partial x\partial z}+% \frac{\partial^{2}v}{\partial y\partial z}+\frac{\partial^{2}w}{\partial z^{2}% }\Big{)},= italic_ν divide start_ARG ∂ italic_p end_ARG start_ARG ∂ italic_z end_ARG - italic_u divide start_ARG ∂ italic_w end_ARG start_ARG ∂ italic_x end_ARG - italic_v divide start_ARG ∂ italic_w end_ARG start_ARG ∂ italic_y end_ARG - italic_w divide start_ARG ∂ italic_w end_ARG start_ARG ∂ italic_z end_ARG + divide start_ARG 1 end_ARG start_ARG italic_R italic_e end_ARG italic_ν ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_u + divide start_ARG 1 end_ARG start_ARG 3 italic_R italic_e end_ARG ( divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_u end_ARG start_ARG ∂ italic_x ∂ italic_z end_ARG + divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_v end_ARG start_ARG ∂ italic_y ∂ italic_z end_ARG + divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_w end_ARG start_ARG ∂ italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG ) ,
F5(𝒒)subscript𝐹5𝒒\displaystyle F_{5}(\bm{q})italic_F start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT ( bold_italic_q ) =γRePr[ν2p+2pν+p2ν]𝒖pγp𝒖.absent𝛾𝑅𝑒𝑃𝑟delimited-[]𝜈superscript2𝑝2𝑝𝜈𝑝superscript2𝜈𝒖𝑝𝛾𝑝𝒖\displaystyle=\frac{\gamma}{RePr}[\nu\nabla^{2}p+2\nabla p\cdot\nabla\nu+p% \nabla^{2}\nu]-\bm{u}\cdot\nabla p-\gamma p\nabla\cdot{\bm{u}}.= divide start_ARG italic_γ end_ARG start_ARG italic_R italic_e italic_P italic_r end_ARG [ italic_ν ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_p + 2 ∇ italic_p ⋅ ∇ italic_ν + italic_p ∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_ν ] - bold_italic_u ⋅ ∇ italic_p - italic_γ italic_p ∇ ⋅ bold_italic_u .

Appendix B Jacobian of the NOWNS equations

Here we derive the Jacobian of the fully-discrete system of NOWNS equations (17) for 2D disturbances. However, this analysis readily extends to 3D disturbances as well. We first introduce the NOWNS residual

𝒓^m(k+1)=l=0s1c(l)Aϕ^m(k+1l)L^mϕ^m(k+1)𝑭^m(k+1)𝒇^m(k+1)=0,m=0,,2M,formulae-sequencesubscriptsuperscript^𝒓absent𝑘1𝑚superscriptsubscript𝑙0𝑠1superscript𝑐𝑙superscript𝐴superscriptsubscript^bold-italic-ϕ𝑚absent𝑘1𝑙superscriptsubscript^𝐿𝑚superscriptsubscript^bold-italic-ϕ𝑚absent𝑘1superscriptsubscript^𝑭𝑚absent𝑘1superscriptsubscript^𝒇𝑚absent𝑘10𝑚02𝑀\hat{\bm{r}}^{\ddagger(k+1)}_{m}=\sum_{l=0}^{s-1}c^{(l)}A^{\ddagger}\hat{\bm{% \phi}}_{m}^{\ddagger(k+1-l)}-\hat{L}_{m}^{\ddagger}\hat{\bm{\phi}}_{m}^{% \ddagger(k+1)}-\hat{\bm{F}}_{m}^{\ddagger(k+1)}-\hat{\bm{f}}_{m}^{\ddagger(k+1% )}=0,\quad m=0,\dots,2M,over^ start_ARG bold_italic_r end_ARG start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT = ∑ start_POSTSUBSCRIPT italic_l = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_s - 1 end_POSTSUPERSCRIPT italic_c start_POSTSUPERSCRIPT ( italic_l ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 - italic_l ) end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT - over^ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT - over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT = 0 , italic_m = 0 , … , 2 italic_M , (32)

and take it’s derivative with respect to ϕ^p(k+1)superscriptsubscript^bold-italic-ϕ𝑝absent𝑘1\hat{\bm{\phi}}_{p}^{\ddagger(k+1)}over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT to obtain

𝒓^m(k+1)ϕ^p(k+1)=(c(0)AL^m)δmp𝑭^m(k+1)ϕ^p(k+1),m,p=0,,2M,formulae-sequencesubscriptsuperscript^𝒓absent𝑘1𝑚superscriptsubscript^bold-italic-ϕ𝑝absent𝑘1superscript𝑐0superscript𝐴superscriptsubscript^𝐿𝑚subscript𝛿𝑚𝑝superscriptsubscript^𝑭𝑚absent𝑘1superscriptsubscript^bold-italic-ϕ𝑝absent𝑘1𝑚𝑝02𝑀\frac{\partial\hat{\bm{r}}^{\ddagger(k+1)}_{m}}{\partial\hat{\bm{\phi}}_{p}^{% \ddagger(k+1)}}=(c^{(0)}A^{\ddagger}-\hat{L}_{m}^{\ddagger})\delta_{mp}-\frac{% \partial\hat{\bm{F}}_{m}^{\ddagger(k+1)}}{\partial\hat{\bm{\phi}}_{p}^{% \ddagger(k+1)}},\quad m,p=0,\dots,2M,divide start_ARG ∂ over^ start_ARG bold_italic_r end_ARG start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT end_ARG start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT end_ARG = ( italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ) italic_δ start_POSTSUBSCRIPT italic_m italic_p end_POSTSUBSCRIPT - divide start_ARG ∂ over^ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT end_ARG start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT end_ARG , italic_m , italic_p = 0 , … , 2 italic_M , (33)

Using the definition DFT, it can be shown (for 2D disturbances) that

𝑭^m(k+1)ϕ^p(k+1)=12M+1l=02M𝑭~(k+1)ϕ(k+1)|ϕ=ϕlei2πlpm2M+1,subscriptsuperscript^𝑭absent𝑘1𝑚subscriptsuperscript^bold-italic-ϕabsent𝑘1𝑝evaluated-at12𝑀1superscriptsubscript𝑙02𝑀superscript~𝑭absent𝑘1superscriptbold-italic-ϕabsent𝑘1bold-italic-ϕsubscriptbold-italic-ϕ𝑙superscript𝑒𝑖2𝜋𝑙𝑝𝑚2𝑀1\frac{\partial\hat{\bm{F}}^{\ddagger(k+1)}_{m}}{\partial\hat{\bm{\phi}}^{% \ddagger(k+1)}_{p}}=\frac{1}{2M+1}\sum_{l=0}^{2M}\frac{\partial\tilde{\bm{F}}^% {\ddagger(k+1)}}{\partial\bm{\phi}^{\ddagger(k+1)}}\Big{|}_{\bm{\phi}=\bm{\phi% }_{l}}e^{i2\pi l\frac{p-m}{2M+1}},divide start_ARG ∂ over^ start_ARG bold_italic_F end_ARG start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT end_ARG start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_ARG = divide start_ARG 1 end_ARG start_ARG 2 italic_M + 1 end_ARG ∑ start_POSTSUBSCRIPT italic_l = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 italic_M end_POSTSUPERSCRIPT divide start_ARG ∂ over~ start_ARG bold_italic_F end_ARG start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT end_ARG start_ARG ∂ bold_italic_ϕ start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT end_ARG | start_POSTSUBSCRIPT bold_italic_ϕ = bold_italic_ϕ start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT italic_i 2 italic_π italic_l divide start_ARG italic_p - italic_m end_ARG start_ARG 2 italic_M + 1 end_ARG end_POSTSUPERSCRIPT , (34)

which allows us to write

J^pm=𝑭^m(k+1)ϕ^p(k+1)=[000P1,m[A~±±1J^±±,pmJ^0±,pm]P1,m[A~±±1J^±0,pmJ^00,pm]0J^0±,pmJ^00,pm0],m,p=0,,2M.formulae-sequencesuperscriptsubscript^𝐽𝑝𝑚superscriptsubscript^𝑭𝑚absent𝑘1superscriptsubscript^bold-italic-ϕ𝑝absent𝑘1matrix000subscript𝑃1𝑚matrixsuperscriptsubscript~𝐴plus-or-minusabsentplus-or-minus1subscript^𝐽plus-or-minusabsentplus-or-minus𝑝𝑚subscript^𝐽limit-from0plus-or-minus𝑝𝑚subscript𝑃1𝑚matrixsuperscriptsubscript~𝐴plus-or-minusabsentplus-or-minus1subscript^𝐽plus-or-minus0𝑝𝑚subscript^𝐽00𝑝𝑚0subscript^𝐽limit-from0plus-or-minus𝑝𝑚subscript^𝐽00𝑝𝑚0𝑚𝑝02𝑀\hat{J}_{p-m}^{\ddagger}=-\frac{\partial\hat{\bm{F}}_{m}^{\ddagger(k+1)}}{% \partial\hat{\bm{\phi}}_{p}^{\ddagger(k+1)}}=-\begin{bmatrix}0&0&0\\ P_{1,m}\begin{bmatrix}\tilde{A}_{\pm\pm}^{-1}\hat{J}_{\pm\pm,p-m}\\ \hat{J}_{0\pm,p-m}\end{bmatrix}&P_{1,m}\begin{bmatrix}\tilde{A}_{\pm\pm}^{-1}% \hat{J}_{\pm 0,p-m}\\ \hat{J}_{00,p-m}\end{bmatrix}&0\\ \hat{J}_{0\pm,p-m}&\hat{J}_{00,p-m}&0\end{bmatrix},\quad m,p=0,\dots,2M.over^ start_ARG italic_J end_ARG start_POSTSUBSCRIPT italic_p - italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT = - divide start_ARG ∂ over^ start_ARG bold_italic_F end_ARG start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT end_ARG start_ARG ∂ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ ( italic_k + 1 ) end_POSTSUPERSCRIPT end_ARG = - [ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL italic_P start_POSTSUBSCRIPT 1 , italic_m end_POSTSUBSCRIPT [ start_ARG start_ROW start_CELL over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT over^ start_ARG italic_J end_ARG start_POSTSUBSCRIPT ± ± , italic_p - italic_m end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG italic_J end_ARG start_POSTSUBSCRIPT 0 ± , italic_p - italic_m end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] end_CELL start_CELL italic_P start_POSTSUBSCRIPT 1 , italic_m end_POSTSUBSCRIPT [ start_ARG start_ROW start_CELL over~ start_ARG italic_A end_ARG start_POSTSUBSCRIPT ± ± end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT over^ start_ARG italic_J end_ARG start_POSTSUBSCRIPT ± 0 , italic_p - italic_m end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG italic_J end_ARG start_POSTSUBSCRIPT 00 , italic_p - italic_m end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL over^ start_ARG italic_J end_ARG start_POSTSUBSCRIPT 0 ± , italic_p - italic_m end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG italic_J end_ARG start_POSTSUBSCRIPT 00 , italic_p - italic_m end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] , italic_m , italic_p = 0 , … , 2 italic_M . (35)

We drop the (k+1)𝑘1(k+1)( italic_k + 1 ) superscript for simplicity, and for M=1𝑀1M=1italic_M = 1 we can write

[(c(0)AL^0)+J^0J^1¯J^1J^1(c(0)AL^1)+J^0J^1¯J^1¯J^1(c(0)AL^1)+J^0][Δϕ^0Δϕ^1Δϕ^1¯]=[r^0r^1r^1¯].matrixsuperscript𝑐0superscript𝐴superscriptsubscript^𝐿0subscriptsuperscript^𝐽0¯subscriptsuperscript^𝐽1subscriptsuperscript^𝐽1subscriptsuperscript^𝐽1superscript𝑐0superscript𝐴subscriptsuperscript^𝐿1subscriptsuperscript^𝐽0¯subscriptsuperscript^𝐽1¯subscriptsuperscript^𝐽1subscriptsuperscript^𝐽1superscript𝑐0superscript𝐴superscriptsubscript^𝐿1subscriptsuperscript^𝐽0matrixΔsuperscriptsubscript^bold-italic-ϕ0Δsuperscriptsubscript^bold-italic-ϕ1superscript¯Δsubscript^bold-italic-ϕ1matrixsuperscriptsubscript^𝑟0superscriptsubscript^𝑟1superscript¯subscript^𝑟1\begin{bmatrix}(c^{(0)}A^{\ddagger}-\hat{L}_{0}^{\ddagger})+\hat{J}^{\ddagger}% _{0}&\overline{\hat{J}^{\ddagger}_{1}}&\hat{J}^{\ddagger}_{1}\\ \hat{J}^{\ddagger}_{1}&(c^{(0)}A^{\ddagger}-\hat{L}^{\ddagger}_{1})+\hat{J}^{% \ddagger}_{0}&\overline{\hat{J}^{\ddagger}_{1}}\\ \overline{\hat{J}^{\ddagger}_{1}}&\hat{J}^{\ddagger}_{1}&(c^{(0)}A^{\ddagger}-% \hat{L}_{-1}^{\ddagger})+\hat{J}^{\ddagger}_{0}\end{bmatrix}\begin{bmatrix}% \Delta\hat{\bm{\phi}}_{0}^{\ddagger}\\ \Delta\hat{\bm{\phi}}_{1}^{\ddagger}\\ \overline{\Delta\hat{\bm{\phi}}_{1}}^{\ddagger}\end{bmatrix}=\begin{bmatrix}% \hat{r}_{0}^{\ddagger}\\ \hat{r}_{1}^{\ddagger}\\ \overline{\hat{r}_{1}}^{\ddagger}\end{bmatrix}.[ start_ARG start_ROW start_CELL ( italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ) + over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL start_CELL over¯ start_ARG over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG end_CELL start_CELL over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL ( italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) + over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL start_CELL over¯ start_ARG over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG end_CELL end_ROW start_ROW start_CELL over¯ start_ARG over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG end_CELL start_CELL over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL ( italic_c start_POSTSUPERSCRIPT ( 0 ) end_POSTSUPERSCRIPT italic_A start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT - over^ start_ARG italic_L end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT ) + over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] [ start_ARG start_ROW start_CELL roman_Δ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL roman_Δ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over¯ start_ARG roman_Δ over^ start_ARG bold_italic_ϕ end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] = [ start_ARG start_ROW start_CELL over^ start_ARG italic_r end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG italic_r end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over¯ start_ARG over^ start_ARG italic_r end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] . (36)

where we have used J^m=J^m+2M+1subscriptsuperscript^𝐽𝑚subscriptsuperscript^𝐽𝑚2𝑀1\hat{J}^{\ddagger}_{m}=\hat{J}^{\ddagger}_{m+2M+1}over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT = over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_m + 2 italic_M + 1 end_POSTSUBSCRIPT and J^m=J^m¯subscriptsuperscript^𝐽𝑚¯subscriptsuperscript^𝐽𝑚\hat{J}^{\ddagger}_{m}=\overline{\hat{J}^{\ddagger}_{-m}}over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT = over¯ start_ARG over^ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ‡ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT - italic_m end_POSTSUBSCRIPT end_ARG for m=0,,M𝑚0𝑀m=0,\dots,Mitalic_m = 0 , … , italic_M.

Appendix C Streamwise diffusion terms

Here we demonstrate for the 2D validation case discussed in section 3.1 that although streamwise diffusion effects have a minimal impact on the linear calculation (figure 11(a)), the impact is more pronounced in the nonlinear case (figure 11(b)). We see that prior to the second neutral stability point, the calculations with and without the streamwise diffusion terms yield similar amplitudes, but that downstream of this point, the amplitudes of the calculation including the streamwise viscous terms has much lower amplitudes (particularly for the higher harmonics in the nonlinear case).

Refer to caption
(a) Linear calculation
Refer to caption
(b) Nonlinear calculation
Figure 11: u𝑢uitalic_u-velocity amplitudes with and without streamwise diffusion terms for the 2D evolution of the TS wave.

Appendix D Inclusion of the streamwise pressure gradient

Unlike the NPSE approach, the NOWNS approach has no minimum step size requirement for the march to be numerically stable, but it is still necessary to neglect the streamwise pressure gradient for the zero-frequency modes. If the streamwise pressure gradient for these modes is retained, the NOWNS march remains stable but becomes inaccurate, as demonstrated in figure 12. We plot the u𝑢uitalic_u-velocity amplitudes with and without xp0subscript𝑥subscript𝑝0\partial_{x}p_{0}∂ start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT in figure 12(a), where we see that we have reasonable agreement for m0𝑚0m\neq 0italic_m ≠ 0, but disagreement for m=0𝑚0m=0italic_m = 0. In figure 12(b) we plot the profile of the v0subscript𝑣0v_{0}italic_v start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, and we notice that the profile predicted by NOWNS when xp0subscript𝑥subscript𝑝0\partial_{x}p_{0}∂ start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT is included is substantially different from the profiles predicted by NPSE and DNS.

If we neglect xp0subscript𝑥subscript𝑝0\partial_{x}p_{0}∂ start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, but include the streamwise diffusion terms xxq0subscript𝑥𝑥subscript𝑞0\partial_{xx}q_{0}∂ start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT italic_q start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, then we must project the MFD and we find that we have good agreement between the DNS and NOWNS calculations. Therefore, we can conclude that the recursion parameters we are using for the zero-frequency modes are valid. However, as discussed above, the calculation remains stable but becomes inaccurate when we include xp0subscript𝑥subscript𝑝0\partial_{x}p_{0}∂ start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT. Although our march remains stable, there including xp0subscript𝑥subscript𝑝0\partial_{x}p_{0}∂ start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT leads to inaccuracies in the march for unknown reasons.

In figure 13(a), we plot the u𝑢uitalic_u-velocity amplitudes computed by NOWNS with and without the pressure gradient for the zero-frequency modes. Mode (1,0) is tracked reasonably accurately, but the other modes are not. In particularly, the (1,2), (1,1), and (0,1) modes and the MFD have higher amplitudes than they should. In figure 13(b), we see that we have better qualitative agreement in the early stages of the march between the NOWNNS and DNS calculations when the streamwise pressure gradient terms are include for the zero-frequency modes. However, we have worse quantitative agreement in the later stages of the march, which in turn causes the larger amplitudes of the (1,2), (1,1) and (0,1) modes observed in figure 13(a).

Refer to caption
(a) u𝑢uitalic_u-velocity amplitudes
Refer to caption
(b) v𝑣vitalic_v-velocity profile
Figure 12: 2D validation case with and without streamwise pressure gradient for zero-frequency modes.
Refer to caption
(a) u𝑢uitalic_u-velocity amplitudes
Refer to caption
(b) u𝑢uitalic_u-velocity amplitudes for MFD
Figure 13: K-type transition case with and without streamwise pressure gradient for zero-frequency modes.

Appendix E Comparison of nonlinear solution procedures

We have discussed three procedures for solving the nonlinear system of equations: (i) Newton’s method, (ii) a quasi-Newton method that includes part of the nonlinear Jacobian, and (iii) a quasi-Newton method that excludes the Jacobian of the nonlinear term. We plot the iterations to converge as a function of streamwise station in figure 14. For the 2D validation case, we compare the iterations to convergence for the quasi-Newton method and Newton’s method in figure 14(a), which shows that Newton’s method converges in fewer iterations. In figure 14(b), we make the same comparison for linear and nonlinear quasi-Newton methods for K-type transition. We see that farther downstream, where the nonlinearity is stronger, the nonlinear quasi-Newton method converges in fewer iterations than the linear version. However, for sufficiently strong nonlinearities, it is necessary to use Newton’s method.

Refer to caption
(a) Comparison of Newton’s method and the quasi-Newton method for the 2D validation case
Refer to caption
(b) Comparison of the linear and nonlinear quasi-Newton methods for K-type transition
Figure 14: Comparison of solution procedures for the nonlinear system of equations

Appendix F Linearization about the baseflow vs. the corrected mean flow

Whereas in linear stability analysis, the mean flow is determined only by the baseflow, 𝒒¯¯𝒒\bar{\bm{q}}over¯ start_ARG bold_italic_q end_ARG, in the nonlinear case the disturbances interact to excite the MFD, 𝒒00superscriptsubscript𝒒00\bm{q}_{00}^{\prime}bold_italic_q start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, which yields the corrected mean flow, 𝒒¯+𝒒00¯𝒒superscriptsubscript𝒒00\bar{\bm{q}}+\bm{q}_{00}^{\prime}over¯ start_ARG bold_italic_q end_ARG + bold_italic_q start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT. In linear OWNS, we linearize the projection operators about the baseflow, while in nonlinear OWNS, we can choose to instead linearize about the corrected mean flow. For the K-type transition case of section 4.3, we perform the NOWNS calculation again, but we instead linearize about the corrected mean flow. In figure 15, we compare the amplitudes computed by the two approaches to NOWNS and we see that in the early stages of the march, when the amplitudes are small, the two calculations are nearly identical, but that they begin to differ slightly as the disturbance amplitudes increase. The differences are small, but are most notable for the MFD, 𝒒00superscriptsubscript𝒒00\bm{q}_{00}^{\prime}bold_italic_q start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, and the vortex mode, q01superscriptsubscript𝑞01q_{01}^{\prime}italic_q start_POSTSUBSCRIPT 01 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, after Rex=2.5×105subscriptRe𝑥2.5superscript105\mathrm{Re}_{x}=2.5\times 10^{5}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = 2.5 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT, which corresponds to an MFD amplitude of roughly 3% of Usubscript𝑈U_{\infty}italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT. The two NOWNS marches continue to yield similar results until the end of the calculation at Rex=2.74×105subscriptRe𝑥2.74superscript105\mathrm{Re}_{x}=2.74\times 10^{5}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT = 2.74 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT, where the MFD amplitude is 11% of Usubscript𝑈U_{\infty}italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT.

Linearizing about the baseflow is more computationally efficient because the projection operators do not change between iterations. Moreover, the choice to linearize about the corrected mean flow instead of the baseflow does not appear to substantially affect the stability calculations, for MFD amplitudes less than roughly 10% of Usubscript𝑈U_{\infty}italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT. Therefore, we recommend that NOWNS calculations be linearized about the baseflow rather than the corrected mean flow.

Refer to caption
Figure 15: Amplitude of usuperscript𝑢u^{\prime}italic_u start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT v.s. streamwise coordinate, RexsubscriptRe𝑥\mathrm{Re}_{x}roman_Re start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT, for fundamental breakdown. Compare linearizing NOWNS about 𝒒¯¯𝒒\bar{\bm{q}}over¯ start_ARG bold_italic_q end_ARG vs. 𝒒¯+𝒒00¯𝒒subscriptsuperscript𝒒00\bar{\bm{q}}+\bm{q}^{\prime}_{00}over¯ start_ARG bold_italic_q end_ARG + bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT.

Appendix G Recursion parameter sets

The recursion parameter sets for non-zero frequency modes match those used in [18]. They depend on ω𝜔\omegaitalic_ω through the streamwise wave number k=ω/c¯𝑘𝜔¯𝑐k=\omega/\bar{c}italic_k = italic_ω / over¯ start_ARG italic_c end_ARG, and when k=0𝑘0k=0italic_k = 0, the recursion parameters associated with the vortical and prpagating acoustic waves go to zero, leaving only the evanscent acoustic waves.

Acknowledgments

This work has been supported by The Boeing Company through the Strategic Research and Development Relationship Agreement CT-BA-GTA-1.

References

  • Smith et al. [1956] Smith, A., Company, D. A., Gamberoni, N., Sub-Committee, A. R. C. F. M., and Department, D. A. C. E. S. D. E., Transition, Pressure Gradient and Stability Theory, ARC-19322, Douglas Aircraft Company, El Segundo Division, 1956.
  • Van Ingen et al. [1956] Van Ingen, J., Sub-Committee, A. R. C. F. M., and Technische Hogeschool Delft, V., A Suggested Semi-empirical Method for the Calculation of the Boundary Layer Transition Region, ARC-19337, TH Delft, Delft, 1956.
  • Crouch and Ng [2000] Crouch, J. D., and Ng, L. L., “Variable N-Factor Method for Transition Prediction in Three-Dimensional Boundary Layers,” AIAA Journal, Vol. 38, No. 2, 2000, pp. 211–216. 10.2514/2.973.
  • Fasel et al. [1990] Fasel, H. F., Rist, U., and Konzelmann, U., “Numerical investigation of the three-dimensional development in boundary-layer transition,” AIAA Journal, Vol. 28, No. 1, 1990, pp. 29–37. 10.2514/3.10349.
  • Rist and Fasel [1995] Rist, U., and Fasel, H., “Direct numerical simulation of controlled transition in a flat-plate boundary layer,” Journal of Fluid Mechanics, Vol. 298, 1995, p. 211–248. 10.1017/S0022112095003284.
  • Sayadi et al. [2013] Sayadi, T., Hamman, C. W., and Moin, P., “Direct numerical simulation of complete H-type and K-type transitions with implications for the dynamics of turbulent boundary layers,” Journal of Fluid Mechanics, Vol. 724, 2013, p. 480–509. 10.1017/jfm.2013.142.
  • WU and MOIN [2009] WU, X., and MOIN, P., “Direct numerical simulation of turbulence in a nominally zero-pressure-gradient flat-plate boundary layer,” Journal of Fluid Mechanics, Vol. 630, 2009, p. 5–41. 10.1017/S0022112009006624.
  • Voke and Yang [1995] Voke, P. R., and Yang, Z., “Numerical study of bypass transition,” Physics of Fluids, Vol. 7, No. 9, 1995, pp. 2256–2264. 10.1063/1.868473, URL https://doi.org/10.1063/1.868473.
  • Huai et al. [1997] Huai, X., Joslin, R. D., and Piomelli, U., “Large-Eddy Simulation of Transition to Turbulence in Boundary Layers,” Theoretical and Computational Fluid Dynamics, Vol. 9, 1997, pp. 149–163.
  • Bertolotti et al. [1992] Bertolotti, F. P., Herbert, T., and Spalart, P. R., “Linear and nonlinear stability of the Blasius boundary layer,” Journal of Fluid Mechanics, Vol. 242, 1992, p. 441–474. 10.1017/S0022112092002453.
  • Day [1999] Day, M. J., “Structure and stability of compressible reacting mixing layers,” Ph.D. thesis, Stanford University, California, Nov. 1999.
  • Towne et al. [2019] Towne, A., Rigas, G., and Colonius, T., “A critical assessment of the parabolized stability equations,” Theoretical and Computational Fluid Dynamics, Vol. 33, 2019. 10.1007/s00162-019-00498-8.
  • Rigas et al. [2017] Rigas, G., Colonius, T., and Beyar, M., “Stability of wall-bounded fows using one-way spatial integration of Navier-Stokes equations,” 55th AIAA Aerospace Sciences Meeting, 2017. 10.2514/6.2017-1881.
  • Kamal et al. [2020] Kamal, O., Rigas, G., Lakebrink, M. T., and Colonius, T., “Application of the One-Way Navier-Stokes (OWNS) Equations to Hypersonic Boundary Layers,” AIAA AVIATION 2020 FORUM, 2020. 10.2514/6.2020-2986.
  • Kamal et al. [2021] Kamal, O., Rigas, G., Lakebrink, M., and Colonius, T., “Input/Output Analysis of Hypersonic Boundary Layers using the One-Way Navier-Stokes (OWNS) Equations,” AIAA AVIATION 2021 FORUM, 2021. 10.2514/6.2021-2827.
  • Kamal et al. [2022] Kamal, O., Rigas, G., Lakebrink, M. T., and Colonius, T., “Input/output analysis of a Mach-6 cooled-wall hypersonic boundary layer using the One-Way Navier-Stokes (OWNS) Equations,” AIAA AVIATION 2022 Forum, 2022. 10.2514/6.2022-3556.
  • Sleeman et al. [2023] Sleeman, M. K., Lakebrink, M. T., and Colonius, T., “Nonlinear stability of wall-bounded flows using the One-Way Navier-Stokes (OWNS) Equations,” AIAA AVIATION 2023 Forum, 2023. 10.2514/6.2023-3273.
  • Sleeman et al. [2024] Sleeman, M. K., Lakebrink, M. T., and Colonius, T., “The Nonlinear One-Way Navier-Stokes (NOWNS) Approach for Boundary-Layer Transition,” AIAA AVIATION FORUM AND ASCEND 2024, 2024. 10.2514/6.2024-3530.
  • Towne and Colonius [2015] Towne, A., and Colonius, T., “One-way spatial integration of hyperbolic equations,” Journal of Computational Physics, Vol. 300, 2015, pp. 844–861. https://doi.org/10.1016/j.jcp.2015.08.015.
  • Towne et al. [2022] Towne, A., Rigas, G., Kamal, O., Pickering, E., and Colonius, T., “Efficient global resolvent analysis via the one-way Navier–Stokes equations,” Journal of Fluid Mechanics, Vol. 948, 2022, p. A9. 10.1017/jfm.2022.647.
  • Zhu and Towne [2023] Zhu, M., and Towne, A., “Recursive one-way Navier-Stokes equations with PSE-like cost,” Journal of Computational Physics, Vol. 473, 2023, p. 111744. https://doi.org/10.1016/j.jcp.2022.111744, URL https://www.sciencedirect.com/science/article/pii/S0021999122008075.
  • Briggs [1964] Briggs, R. J., “Electron-stream interaction with plasmas,” , 1964.
  • Kreiss [1970] Kreiss, H.-O., “Initial boundary value problems for hyperbolic systems,” Communications on Pure and Applied Mathematics, Vol. 23, No. 3, 1970, pp. 277–298. https://doi.org/10.1002/cpa.3160230304.
  • Bertolotti [1991] Bertolotti, F. P., “Linear and nonlinear stability of boundary layers with streamwise varying properties,” Ph.D. thesis, The Ohio State University, Jan. 1991.
  • Chang et al. [1993] Chang, C.-L., Malik, M. R., Erlebacher, G., and Hussaini, M. Y., “Linear and nonlinear PSE for compressible boundary layers,” NASA Contractor Report 191537. Institute for Computer Applications in Science and Engineering (ICASE), September 1993.
  • Araya et al. [2022] Araya, D., Bitter, N., Wheaton, B. M., Kamal, O., Colonius, T., Knutson, A., Johnson, H., Nichols, J., Candler, G. V., Russo, V., and Brehm, C., Assessment of Linear Methods for Analysis of Boundary Layer Instabilities on a Finned Cone at Mach 6, 2022. 10.2514/6.2022-3247, URL https://arc.aiaa.org/doi/abs/10.2514/6.2022-3247.
  • Thompson [1987] Thompson, K. W., “Time dependent boundary conditions for hyperbolic systems,” Journal of Computational Physics, Vol. 68, No. 1, 1987, pp. 1–24. https://doi.org/10.1016/0021-9991(87)90041-6, URL https://www.sciencedirect.com/science/article/pii/0021999187900416.
  • Joslin et al. [1991] Joslin, R., Streett, C., and Chang, C.-L., “Validation of three-dimensional incompressible spatial direct numerical simulation code: a comparison with linear stability and parabolic stability equation theories for boundary-layer transition on a flat plate,” NASA Technical Paper TP-3205, January 1991.
  • Joslin et al. [1993] Joslin, R. D., Streett, C. L., and Chang, C. L., “Spatial direct numerical simulation of boundary-layer transition mechanisms: Validation of PSE theory,” Theoretical and Computational Fluid Dynamics, Vol. 4, No. 6, 1993, pp. 271–288. 10.1007/BF00418777.
  • Paredes et al. [2015] Paredes, P., Hanifi, A., Theofilis, V., and Henningson, D. S., “The Nonlinear PSE-3D Concept for Transition Prediction in Flows with a Single Slowly-varying Spatial Direction,” Procedia IUTAM, Vol. 14, 2015, pp. 36–44. https://doi.org/10.1016/j.piutam.2015.03.021, URL https://www.sciencedirect.com/science/article/pii/S2210983815000474.
  • Berlin et al. [1999] Berlin, S., Wiegel, M., and Henningson, D. S., “Numerical and experimental investigations of oblique boundary layer transition,” Journal of Fluid Mechanics, Vol. 393, 1999, p. 23–57. 10.1017/S002211209900511X.
  • Chang and Malik [1994] Chang, C.-L., and Malik, M. R., “Oblique-mode breakdown and secondary instability in supersonic boundary layers,” Journal of Fluid Mechanics, Vol. 273, 1994, p. 323–360. 10.1017/S0022112094001965.
  • Herbert [1988] Herbert, T., “Secondary Instability of Boundary Layers,” Annual Review of Fluid Mechanics, Vol. 20, No. 1, 1988, pp. 487–526. 10.1146/annurev.fl.20.010188.002415.
  • Rigas et al. [2021] Rigas, G., Sipp, D., and Colonius, T., “Nonlinear input/output analysis: application to boundary layer transition,” Journal of Fluid Mechanics, Vol. 911, 2021, p. A15. 10.1017/jfm.2020.982.
  • Herbert [1997] Herbert, T., “Parabolized Stability Equations,” Annual Review of Fluid Mechanics, Vol. 29, No. 1, 1997, pp. 245–283. 10.1146/annurev.fluid.29.1.245.