License: CC BY 4.0
arXiv:2312.05766v1 [physics.flu-dyn] 10 Dec 2023

Efficient harmonic resolvent analysis via time-stepping

Ali Farghadan Department of Mechanical Engineering, University of Michigan, Ann Arbor, MI, USA Junoh Jung Department of Mechanical Engineering, University of Michigan, Ann Arbor, MI, USA Rutvij Bhagwat Department of Mechanical Engineering, University of Michigan, Ann Arbor, MI, USA Aaron Towne Email address for correspondence: towne@umich.edu Department of Mechanical Engineering, University of Michigan, Ann Arbor, MI, USA
Abstract

We present an extension of the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm initially developed for resolvent analysis of statistically stationary flows to handle harmonic resolvent analysis of time-periodic flows. The harmonic resolvent operator, as proposed by Padovan et al. (2020), characterizes the linearized dynamics of time-periodic flows in the frequency domain, and its singular value decomposition reveals forcing and response modes with optimal energetic gain. However, computing harmonic resolvent modes poses challenges due to (i)𝑖(i)( italic_i ) the coupling of all Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT retained frequencies into a single harmonic resolvent operator and (ii)𝑖𝑖(ii)( italic_i italic_i ) the singularity or near-singularity of the operator, making harmonic resolvent analysis considerably more computationally expensive than a standard resolvent analysis. To overcome these challenges, the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm leverages time stepping of the underlying time-periodic linearized Navier-Stokes operator, which is Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT times smaller than the harmonic resolvent operator, to compute the action of the harmonic resolvent operator. We develop strategies to minimize the algorithm’s CPU and memory consumption, and our results demonstrate that these costs scale linearly with the problem dimension. We validate the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm by computing modes for a periodically varying Ginzburg-Landau equation and demonstrate its performance using the flow over an airfoil.

1 Introduction

Model reduction plays a critical role in the study of fluid mechanics due to the complex and high-dimensional nature of fluid flows, especially turbulent ones. In particular, modal decompositions, both data-driven and equation-based, have proven to be effective at identifying low-dimensional sets of modes associated with interpretable coherent structures that significantly influence quantities of engineering interest such as kinetic energy, heat and mass transfer, and noise emissions (Taira et al., 2017; Towne et al., 2018). In particular, resolvent analysis has been extensively employed to comprehend, model, and control statistically stationary turbulent flows such as wall-bounded turbulence (Dawson & McKeon, 2019), turbulent boundary layer (Sipp & Marquet, 2013), and jet flows (Pickering et al., 2021). However, real-world fluid systems often exhibit non-stationary behavior, including periodicity, rendering resolvent analysis less effective. Examples of flows exhibiting periodic behavior include internal waves in a stratified fluid (Troy & Koseff, 2005), vortex shedding in the wake of a bluff body (Giannenas et al., 2022), and pulsatile blood flow (Farghadan & Arzani, 2019). Recently, an extension of resolvent analysis, known as harmonic resolvent analysis, has been developed by Padovan et al. (2020). This extension characterizes the perturbation forcing and responses around a periodic base flow, providing a more effective tool for analyzing, modeling, and controlling periodically time-varying flows. The harmonic resolvent operator can be considered a special case of the harmonic transfer function introduced by Wereley (1990), wherein the operator exhibits a dominant frequency.

Investigating the harmonic resolvent operator is one way to identify the optimal spatio-temporal perturbations and their corresponding responses in fluid systems. Unlike the resolvent operator, the harmonic resolvent operator takes into consideration the periodicity of the base flow by representing it in the form of a Fourier series. This allows for characterization of the dynamic behavior of the system, particularly with respect to its spectral components and it provides a means to understand and explore the interactions between input and output modes through the linearized dynamics. Harmonic resolvent analysis determines the triadic interactions between the input frequency ω1subscript𝜔1\omega_{1}italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, the base flow frequency ω1ω2subscript𝜔1subscript𝜔2\omega_{1}-\omega_{2}italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_ω start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT, and the response frequency ω2subscript𝜔2\omega_{2}italic_ω start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. The number of Fourier modes of the base flow is determined by its power spectral density (PSD), which in turn determines the number of triads interacting with the forcing. Typically, periodic flows with a dominant periodicity exhibit a multimodal nature with their most energetic modes being harmonics of the base frequency. When the base flow is statistically stationary, linearization around the temporal average is sufficient, and traditional resolvent analysis arises as a special case.

Recent studies have expanded on this research area to model and control the dynamics of turbulent flows with periodic motions. Lin et al. (2023) applied the harmonic resolvent framework for linear time-periodic systems with more than one dominant frequency, offering a tool to study the flow control of a plunging cylinder. In a distinct approach, Franceschini et al. (2022) proposed a novel method aimed at capturing the phase dependency of small-scale turbulent phenomena in flows exhibiting a periodic limit cycle. This method builds upon classical spectral proper orthogonal decomposition (SPOD) and resolvent analyses but introduces a quasi-steady approximation that effectively separates the high-frequency turbulent component from the slow periodic oscillation. Moreover, Heidt & Colonius (2023) have pioneered the theory and algorithm for cyclostationary SPOD (CS-SPOD). This innovative approach extends the conventional SPOD algorithm to effectively capture the characteristics of flows characterized by periodic motions. CS-SPOD is closely tied to harmonic resolvent analysis, akin to the relationship between SPOD and resolvent analysis (Towne et al., 2018).

From a computational standpoint, computing harmonic resolvent modes presents similar challenges to resolvent analysis, including the need to invert sparse matrices in Fourier space. This challenge is further exacerbated in harmonic resolvent analysis due to expanded system size, where all relevant frequencies are merged into a unified operator, in contrast to resolvent analysis, where each frequency has its own independent system. The second shared challenge involves performing the singular value decomposition (SVD). Specifically, turbulent flows characterized by periodic motions require a high-resolution mesh, presenting both challenges as formidable obstacles. A modified randomized SVD (RSVD) can be used to simultaneously overcome both computational challenges (Moarref et al., 2013; Ribeiro et al., 2020; Padovan et al., 2020). Nevertheless, the modified RSVD, referred to as “RSVD-LU” in this study, becomes impractical for tackling large-scale turbulent flows since it requires the lower-upper (LU) decomposition of the harmonic resolvent operator. Recently, RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t, an improvement to RSVD-LU, addresses bottlenecks in resolvent analysis (Farghadan et al., 2023). The approach of time-stepping, initially developed by Monokrousos et al. (2010) and further optimized by Martini et al. (2021), allows for computing the action of an operator on a vector without solving a linear system in Fourier space, making it a key component of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t.

The main objective of this study is to expand the applicability of the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm, initially crafted for resolvent analysis, to facilitate the computation of harmonic resolvent modes. A streaming approach is adopted for time integration, reducing memory usage while maintaining computational efficiency. Moreover, an efficient transient removal strategy is introduced, cutting the temporal length of the integration and thereby minimizing the CPU cost of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t for achieving a desired accuracy. The RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm for periodic flows maintains linear scalability in both CPU time and memory consumption. This scalability enables the efficient computation of harmonic resolvent modes for large-scale turbulent flows that were previously out of reach.

The structure of our paper unfolds as follows. We begin by explaining resolvent analysis in §§\lx@sectionsign§2, followed by the formulation of harmonic resolvent analysis in §§\lx@sectionsign§3, where the computation of harmonic resolvent modes using RSVD-LU is briefly described. The RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm is introduced in §§\lx@sectionsign§4. A comparison of the computational complexity of algorithms and suggested improvements appear in §§\lx@sectionsign§5. Further details on performance and error analysis are presented in §§\lx@sectionsign§6. In §§\lx@sectionsign§7, we conduct two test cases to demonstrate the accuracy and cost efficiency of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t for two periodic systems, and we conclude with final remarks in §§\lx@sectionsign§8.

2 Resolvent analysis

Before considering the time-periodic case, we briefly review standard resolvent analysis for stationary flows. The Navier-Stokes equations can be linearized around a base flow via Reynolds decomposition of the state, 𝒒=𝒒¯+𝒒𝒒¯𝒒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, where 𝒒¯¯𝒒\bar{\bm{q}}over¯ start_ARG bold_italic_q end_ARG represents the temporal average of the flow, and 𝒒superscript𝒒\bm{q}^{\prime}bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT denotes the time-varying fluctuations. The dynamics of perturbations are then described by the linear time-invariant system

d𝒒dt=𝑨(𝒒¯)𝒒+𝒇(𝒒¯,𝒒),𝑑superscript𝒒𝑑𝑡𝑨¯𝒒superscript𝒒superscript𝒇¯𝒒superscript𝒒\frac{d\bm{q}^{\prime}}{dt}=\bm{A}(\bar{\bm{q}})\bm{q}^{\prime}+\bm{f}^{\prime% }(\bar{\bm{q}},\bm{q}^{\prime}),divide start_ARG italic_d bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG italic_d italic_t end_ARG = bold_italic_A ( over¯ start_ARG bold_italic_q end_ARG ) bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT + bold_italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( over¯ start_ARG bold_italic_q end_ARG , bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) , (2.1)

where 𝑨N×N𝑨superscript𝑁𝑁\bm{A}\in\mathbb{C}^{N\times N}bold_italic_A ∈ blackboard_C start_POSTSUPERSCRIPT italic_N × italic_N end_POSTSUPERSCRIPT is the linearized Navier-Stokes (LNS) operator, N𝑁Nitalic_N is the state dimension of the discretized system, and 𝒇superscript𝒇\bm{f}^{\prime}bold_italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT represents an external forcing as well as nonlinear terms that are treated as an additional forcing, as suggested by McKeon & Sharma (2010). It should be noted that 𝑨𝑨\bm{A}bold_italic_A is time-independent because the base flow is time-invariant. By taking the Fourier transform

()=()^(ω)=+()eiωt𝑑t^𝜔superscriptsubscriptsuperscript𝑒𝑖𝜔𝑡differential-d𝑡\mathcal{F}(\cdot)=\hat{(\cdot)}(\omega)=\int_{-\infty}^{+\infty}(\cdot)e^{-i% \omega t}\,dtcaligraphic_F ( ⋅ ) = over^ start_ARG ( ⋅ ) end_ARG ( italic_ω ) = ∫ start_POSTSUBSCRIPT - ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + ∞ end_POSTSUPERSCRIPT ( ⋅ ) italic_e start_POSTSUPERSCRIPT - italic_i italic_ω italic_t end_POSTSUPERSCRIPT italic_d italic_t (2.2)

in time, we obtain

𝒒^(ω)=𝑹(ω)𝒇^(ω),^𝒒𝜔𝑹𝜔^𝒇𝜔\hat{\bm{q}}(\omega)=\bm{R}(\omega)\hat{\bm{f}}(\omega),over^ start_ARG bold_italic_q end_ARG ( italic_ω ) = bold_italic_R ( italic_ω ) over^ start_ARG bold_italic_f end_ARG ( italic_ω ) , (2.3)

where ω𝜔\omegaitalic_ω represents the frequency and ()^^\hat{(\cdot)}over^ start_ARG ( ⋅ ) end_ARG denotes the frequency-domain representation of the time-domain vector. The resolvent operator

𝑹=(iω𝑰𝑨)1N×N𝑹superscripti𝜔𝑰𝑨1superscript𝑁𝑁\bm{R}=(\text{i}\omega\bm{I}-\bm{A})^{-1}\in\mathbb{C}^{N\times N}bold_italic_R = ( i italic_ω bold_italic_I - bold_italic_A ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_N × italic_N end_POSTSUPERSCRIPT (2.4)

is a transfer function that maps the input forcing to the output response. Here, i=1i1\text{i}=\sqrt{-1}i = square-root start_ARG - 1 end_ARG and 𝑰𝑰\bm{I}bold_italic_I is the identity matrix of appropriate dimension.

To analyze the perturbation characteristics of a system, the transfer function can be examined across a range of frequencies. Typically, the most amplified responses are identified by computing the left singular vectors 𝐔Rsubscript𝐔𝑅\textbf{U}_{R}U start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT of the resolvent operator,

𝑹=𝐔R𝚺R𝐕R*,𝑹subscript𝐔𝑅subscript𝚺𝑅superscriptsubscript𝐕𝑅\bm{R}=\textbf{U}_{R}\bm{\Sigma}_{R}\textbf{V}_{R}^{*},bold_italic_R = U start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT bold_Σ start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT V start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT , (2.5)

where ()*superscript(\cdot)^{*}( ⋅ ) start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT denotes complex conjugate transpose. The optimal forcing inputs that lead to the highest amplifications comprise the right singular vectors 𝐕Rsubscript𝐕𝑅\textbf{V}_{R}V start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT, and the degree of amplifications are determined by the singular values 𝚺Rsubscript𝚺𝑅\bm{\Sigma}_{R}bold_Σ start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT.

The SVD in 2.5 implies that disturbance amplitudes are measured in a Euclidean norm. More generally, 𝒙f2=𝒙,𝒙f=𝒙*𝑾f𝒙subscriptsuperscriptnorm𝒙2𝑓subscript𝒙𝒙𝑓superscript𝒙subscript𝑾𝑓𝒙||\bm{x}||^{2}_{f}=\langle\bm{x},\bm{x}\rangle_{f}=\bm{x}^{*}\bm{W}_{f}\bm{x}| | bold_italic_x | | start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = ⟨ bold_italic_x , bold_italic_x ⟩ start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = bold_italic_x start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT bold_italic_W start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT bold_italic_x computes the f𝑓fitalic_f-norm of any vector 𝒙𝒙\bm{x}bold_italic_x, and input and output norms can be different, i.e., ||||q=||||f||\cdot||_{q}=||\cdot||_{f}| | ⋅ | | start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT = | | ⋅ | | start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT is not necessary. Additionally, one can define an input matrix 𝑩𝑩\bm{B}bold_italic_B to restrict the forcing and an output matrix 𝑪𝑪\bm{C}bold_italic_C to extract the output of interest from the state. For the sake of notational brevity, we assumed the weight, input, and output matrices to be the identity, i.e., 𝑾=𝑩=𝑪=𝑰𝑾𝑩𝑪𝑰\bm{W}=\bm{B}=\bm{C}=\bm{I}bold_italic_W = bold_italic_B = bold_italic_C = bold_italic_I, throughout this paper. However, our algorithm, with minor adjustments, can accommodate non-identity weight, input, and output matrices by computing the modes of the modified resolvent operator

𝑹~=𝑾q1/2𝑪𝑹𝑩𝑾f1/2.~𝑹subscriptsuperscript𝑾12𝑞𝑪𝑹𝑩subscriptsuperscript𝑾12𝑓\tilde{\bm{R}}=\bm{W}^{1/2}_{q}\bm{C}\bm{R}\bm{B}\bm{W}^{-1/2}_{f}.over~ start_ARG bold_italic_R end_ARG = bold_italic_W start_POSTSUPERSCRIPT 1 / 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT bold_italic_C bold_italic_R bold_italic_B bold_italic_W start_POSTSUPERSCRIPT - 1 / 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT . (2.6)

For more details, please refer to Farghadan et al. (2023).

3 Harmonic resolvent analysis

In this section, we provide an overview of harmonic resolvent analysis. After reviewing its basic formulation, we discuss the singularity issue that can arise in some special flows, the truncation of the harmonic resolvent operator, and two variations of harmonic resolvent analysis, namely cross-frequency amplification and subharmonic resolvent. Lastly, a brief overview is provided for the state-of-the-art algorithm used to compute the harmonic resolvent modes and gains.

3.1 Formulation

Analogous to resolvent analysis, by inserting the generalized Reynolds decomposition 𝒒(t)=𝒒¯(t)+𝒒(t)𝒒𝑡¯𝒒𝑡superscript𝒒𝑡\bm{q}(t)=\bar{\bm{q}}(t)+\bm{q}^{\prime}(t)bold_italic_q ( italic_t ) = over¯ start_ARG bold_italic_q end_ARG ( italic_t ) + bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_t ) into the Navier-Stokes equations, the linearization around a periodic base flow 𝒒¯(t)=𝒒¯(t+T)¯𝒒𝑡¯𝒒𝑡𝑇\bar{\bm{q}}(t)=\bar{\bm{q}}(t+T)over¯ start_ARG bold_italic_q end_ARG ( italic_t ) = over¯ start_ARG bold_italic_q end_ARG ( italic_t + italic_T ) leads to the linear time-periodic system

d𝒒dt=𝑨p𝒒+𝒇,𝑑superscript𝒒𝑑𝑡subscript𝑨𝑝superscript𝒒𝒇\frac{d\bm{q}^{\prime}}{dt}=\bm{A}_{p}\bm{q}^{\prime}+\bm{f},divide start_ARG italic_d bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG italic_d italic_t end_ARG = bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT + bold_italic_f , (3.1)

where 𝑨p(t)=𝑨p(t+T)N×Nsubscript𝑨𝑝𝑡subscript𝑨𝑝𝑡𝑇superscript𝑁𝑁\bm{A}_{p}(t)=\bm{A}_{p}(t+T)\in\mathbb{C}^{N\times N}bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_t ) = bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_t + italic_T ) ∈ blackboard_C start_POSTSUPERSCRIPT italic_N × italic_N end_POSTSUPERSCRIPT is the periodic LNS operator, ωfsubscript𝜔𝑓\omega_{f}italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT is the fundamental frequency, and T=2π/ωf𝑇2𝜋subscript𝜔𝑓T=2\pi/\omega_{f}italic_T = 2 italic_π / italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT is defined as the fundamental cycle length. As both 𝑨psubscript𝑨𝑝\bm{A}_{p}bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT and 𝒒superscript𝒒\bm{q}^{\prime}bold_italic_q start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT are time-periodic, the Fourier transform of (3.1) incorporates interactions between all pairs of frequencies. For simplicity, we drop the prime notation for fluctuations from here on out.

Expanding 𝑨p(t)subscript𝑨𝑝𝑡\bm{A}_{p}(t)bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_t ) and 𝒒(t)𝒒𝑡\bm{q}(t)bold_italic_q ( italic_t ) in terms of the Fourier series

𝑨p(t)=j=𝑨^p,jeijωft,𝒒(t)=j=𝒒^jeijωft,formulae-sequencesubscript𝑨𝑝𝑡superscriptsubscript𝑗subscript^𝑨𝑝𝑗superscript𝑒i𝑗subscript𝜔𝑓𝑡𝒒𝑡superscriptsubscript𝑗subscript^𝒒𝑗superscript𝑒i𝑗subscript𝜔𝑓𝑡\begin{gathered}\bm{A}_{p}(t)=\sum_{j=-\infty}^{\infty}\hat{\bm{A}}_{p,j}e^{% \text{i}j\omega_{f}t},\\ \bm{q}(t)=\sum_{j=-\infty}^{\infty}\hat{\bm{q}}_{j}e^{\text{i}j\omega_{f}t},% \end{gathered}start_ROW start_CELL bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_t ) = ∑ start_POSTSUBSCRIPT italic_j = - ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_j end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT i italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT italic_t end_POSTSUPERSCRIPT , end_CELL end_ROW start_ROW start_CELL bold_italic_q ( italic_t ) = ∑ start_POSTSUBSCRIPT italic_j = - ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT i italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT italic_t end_POSTSUPERSCRIPT , end_CELL end_ROW (3.2)

where ()jsubscript𝑗(\cdot)_{j}( ⋅ ) start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT denotes jthsuperscript𝑗𝑡j^{th}italic_j start_POSTSUPERSCRIPT italic_t italic_h end_POSTSUPERSCRIPT harmonic of ωfsubscript𝜔𝑓\omega_{f}italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, and substituting these expansions into (3.1), we obtain

[𝑻𝒒^]k=ikωf𝒒^kj=𝑨^kj𝒒^j=𝒇^k.subscriptdelimited-[]𝑻^𝒒𝑘i𝑘subscript𝜔𝑓subscript^𝒒𝑘superscriptsubscript𝑗subscript^𝑨𝑘𝑗subscript^𝒒𝑗subscript^𝒇𝑘\left[\bm{T}\hat{\bm{q}}\right]_{k}=\text{i}k\omega_{f}\hat{\bm{q}}_{k}-\sum_{% j=-\infty}^{\infty}\hat{\bm{A}}_{k-j}\hat{\bm{q}}_{j}=\hat{\bm{f}}_{k}.[ bold_italic_T over^ start_ARG bold_italic_q end_ARG ] start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = i italic_k italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - ∑ start_POSTSUBSCRIPT italic_j = - ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_k - italic_j end_POSTSUBSCRIPT over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT . (3.3)

Here, 𝑻𝑻\bm{T}bold_italic_T is an infinite dimensional block matrix of the form

𝑻=[\udots𝑹11𝑨^1𝑨^2𝑨^3𝑨^1𝑹01𝑨^1𝑨^2𝑨^2𝑨^1𝑹11𝑨^1𝑨^3𝑨^2𝑨^1𝑹21\udots],𝑻matrix\udotssuperscriptsubscript𝑹11subscript^𝑨1subscript^𝑨2subscript^𝑨3subscript^𝑨1superscriptsubscript𝑹01subscript^𝑨1subscript^𝑨2subscript^𝑨2subscript^𝑨1superscriptsubscript𝑹11subscript^𝑨1subscript^𝑨3subscript^𝑨2subscript^𝑨1superscriptsubscript𝑹21\udots\bm{T}=\begin{bmatrix}\ddots&\vdots&\vdots&\vdots&\vdots&\udots\\ \dots&\bm{R}_{-1}^{-1}&\hat{\bm{A}}_{-1}&\hat{\bm{A}}_{-2}&\hat{\bm{A}}_{-3}&% \dots\\ \dots&\hat{\bm{A}}_{1}&\bm{R}_{0}^{-1}&\hat{\bm{A}}_{-1}&\hat{\bm{A}}_{-2}&% \dots\\ \dots&\hat{\bm{A}}_{2}&\hat{\bm{A}}_{1}&\bm{R}_{1}^{-1}&\hat{\bm{A}}_{-1}&% \dots\\ \dots&\hat{\bm{A}}_{3}&\hat{\bm{A}}_{2}&\hat{\bm{A}}_{1}&\bm{R}_{2}^{-1}&\dots% \\ \udots&\vdots&\vdots&\vdots&\vdots&\ddots\end{bmatrix},bold_italic_T = [ start_ARG start_ROW start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL … end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 3 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL end_ROW start_ROW start_CELL … end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL end_ROW start_ROW start_CELL … end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL end_ROW start_ROW start_CELL … end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL … end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL end_ROW end_ARG ] , (3.4)

where the diagonal entries are in fact the inverse of resolvent operators at various frequencies,

𝑹j1=ijωf𝑰𝑨^p,0,j.formulae-sequencesuperscriptsubscript𝑹𝑗1i𝑗subscript𝜔𝑓𝑰subscript^𝑨𝑝0for-all𝑗\bm{R}_{j}^{-1}=\text{i}j\omega_{f}\bm{I}-\hat{\bm{A}}_{p,0},\forall j\in% \mathbb{Z}.bold_italic_R start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT = i italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT bold_italic_I - over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , 0 end_POSTSUBSCRIPT , ∀ italic_j ∈ blackboard_Z . (3.5)

The harmonic resolvent operator

𝑯=𝑻1𝑯superscript𝑻1\bm{H}=\bm{T}^{-1}bold_italic_H = bold_italic_T start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT (3.6)

transfers the harmonic inputs to the outputs for periodic base flows,

𝒒^=𝑯𝒇^.^𝒒𝑯^𝒇\hat{\bm{q}}=\bm{H}\hat{\bm{f}}.over^ start_ARG bold_italic_q end_ARG = bold_italic_H over^ start_ARG bold_italic_f end_ARG . (3.7)

The SVD of the harmonic resolvent operator

𝑯=𝐔H𝚺H𝐕H*𝑯subscript𝐔𝐻subscript𝚺𝐻superscriptsubscript𝐕𝐻\bm{H}=\textbf{U}_{H}\bm{\Sigma}_{H}\textbf{V}_{H}^{*}bold_italic_H = U start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT bold_Σ start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT V start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT (3.8)

unveils the most amplified responses 𝐔Hsubscript𝐔𝐻\textbf{U}_{H}U start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT that correspond to optimal forcing 𝐕Hsubscript𝐕𝐻\textbf{V}_{H}V start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT, each accompanied by associated amplification magnitudes 𝚺Hsubscript𝚺𝐻\bm{\Sigma}_{H}bold_Σ start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT. The matrix 𝑯𝑯\bm{H}bold_italic_H encompasses the base flow, the fundamental frequency, and higher harmonics. Whereas individual frequencies can be analyzed separately in a standard resolvent analysis, all frequencies are coupled within 𝑯𝑯\bm{H}bold_italic_H in harmonic resolvent analysis and must be considered simultaneously. Furthermore, the modes of the modified harmonic resolvent operator, defined as

𝑯~=𝑾q1/2𝑪𝑯𝑩𝑾f1/2,~𝑯subscriptsuperscript𝑾12𝑞𝑪𝑯𝑩subscriptsuperscript𝑾12𝑓\tilde{\bm{H}}=\bm{W}^{1/2}_{q}\bm{C}\bm{H}\bm{B}\bm{W}^{-1/2}_{f},over~ start_ARG bold_italic_H end_ARG = bold_italic_W start_POSTSUPERSCRIPT 1 / 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT bold_italic_C bold_italic_H bold_italic_B bold_italic_W start_POSTSUPERSCRIPT - 1 / 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , (3.9)

can be computed using our algorithm with the same minor adjustments as detailed in Farghadan et al. (2023). In a special case where the base flow is time-independent, i.e., 𝑨^p,j=0subscript^𝑨𝑝𝑗0\hat{\bm{A}}_{p,j}=0over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_j end_POSTSUBSCRIPT = 0 for j0𝑗0j\neq 0italic_j ≠ 0, 𝑯𝑯\bm{H}bold_italic_H reduces to

𝑯=[\udots𝑹1000𝑹0000𝑹1\udots],𝑯matrix\udotssubscript𝑹1000subscript𝑹0000subscript𝑹1\udots\bm{H}=\begin{bmatrix}\ddots&\vdots&\vdots&\vdots&\udots\\ \dots&\bm{R}_{-1}&0&0&\dots\\ \dots&0&\bm{R}_{0}&0&\dots\\ \dots&0&0&\bm{R}_{1}&\dots\\ \udots&\vdots&\vdots&\vdots&\ddots\end{bmatrix},bold_italic_H = [ start_ARG start_ROW start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL … end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL … end_CELL end_ROW start_ROW start_CELL … end_CELL start_CELL 0 end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL … end_CELL end_ROW start_ROW start_CELL … end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL end_ROW end_ARG ] , (3.10)

so each frequency is decoupled. Therefore, resolvent analysis can be perceived as a special case of harmonic resolvent analysis.

3.2 Singular or near-singular nature of 𝑻𝑻\bm{T}bold_italic_T

The operator 𝑻𝑻\bm{T}bold_italic_T tends to be ill-conditioned for many periodic systems (Padovan et al., 2020). A system is considered ill-conditioned when the ratio of the largest and smallest singular values is large (κ=σmax/σminO(104)(\kappa=\sigma_{\text{max}}/\sigma_{\text{min}}\sim O(10^{4})( italic_κ = italic_σ start_POSTSUBSCRIPT max end_POSTSUBSCRIPT / italic_σ start_POSTSUBSCRIPT min end_POSTSUBSCRIPT ∼ italic_O ( 10 start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT ) or higher). The smallest singular value of T𝑇Titalic_T can be shown to reach machine precision zero if the periodic base flow satisfies the Navier-Stokes equations (Padovan et al., 2020; Leclercq & Sipp, 2023), i.e., when

d𝒒¯dt=𝓝(𝒒¯),𝑑bold-¯𝒒𝑑𝑡𝓝bold-¯𝒒\frac{d\bm{\bar{q}}}{dt}=\bm{\mathcal{N}}(\bm{\bar{q}}),divide start_ARG italic_d overbold_¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG italic_d italic_t end_ARG = bold_caligraphic_N ( overbold_¯ start_ARG bold_italic_q end_ARG ) , (3.11)

where 𝓝𝓝\bm{\mathcal{N}}bold_caligraphic_N is the nonlinear Navier-Stokes operator. Taking a time derivative of both sides,

d(d𝒒¯dt)dt=d(𝓝(𝒒¯))dt=𝓝𝒒¯d𝒒¯dt=𝑨pd𝒒¯dt.𝑑𝑑bold-¯𝒒𝑑𝑡𝑑𝑡𝑑𝓝bold-¯𝒒𝑑𝑡𝓝bold-¯𝒒𝑑bold-¯𝒒𝑑𝑡subscript𝑨𝑝𝑑bold-¯𝒒𝑑𝑡\frac{d\left(\frac{d\bm{\bar{q}}}{dt}\right)}{dt}=\frac{d\left(\bm{\mathcal{N}% }(\bm{\bar{q}})\right)}{dt}=\frac{\partial\bm{\mathcal{N}}}{\partial\bm{\bar{q% }}}\frac{d\bm{\bar{q}}}{dt}=\bm{A}_{p}\frac{d\bm{\bar{q}}}{dt}.divide start_ARG italic_d ( divide start_ARG italic_d overbold_¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG italic_d italic_t end_ARG ) end_ARG start_ARG italic_d italic_t end_ARG = divide start_ARG italic_d ( bold_caligraphic_N ( overbold_¯ start_ARG bold_italic_q end_ARG ) ) end_ARG start_ARG italic_d italic_t end_ARG = divide start_ARG ∂ bold_caligraphic_N end_ARG start_ARG ∂ overbold_¯ start_ARG bold_italic_q end_ARG end_ARG divide start_ARG italic_d overbold_¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG italic_d italic_t end_ARG = bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT divide start_ARG italic_d overbold_¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG italic_d italic_t end_ARG . (3.12)

Taking a Fourier transform of (3.12) and recalling that 𝑻𝑻\bm{T}bold_italic_T is obtained as shown in (3.3), d𝒒¯/dt^^𝑑bold-¯𝒒𝑑𝑡\widehat{d\bm{\bar{q}}/dt}over^ start_ARG italic_d overbold_¯ start_ARG bold_italic_q end_ARG / italic_d italic_t end_ARG is a non-trivial solution of

𝑻𝒒=0,𝑻𝒒0\bm{T}\bm{q}=0,bold_italic_T bold_italic_q = 0 , (3.13)

residing within the null space of 𝑻𝑻\bm{T}bold_italic_T, thereby proving the singularity of 𝑻𝑻\bm{T}bold_italic_T. In systems where the base flow approximately satisfies (3.11), 𝑻𝑻\bm{T}bold_italic_T becomes nearly singular. Consequently, irrespective of the specific periodic system under consideration, 𝑻𝑻\bm{T}bold_italic_T might be poorly conditioned, presenting even more challenges when dealing with large systems.

Padovan et al. (2020) demonstrated that defining the harmonic resolvent operator in a manner that eliminates the phase shift imparted by the Fourier coefficients of d𝒒¯/dt𝑑bold-¯𝒒𝑑𝑡d\bm{\bar{q}}/dtitalic_d overbold_¯ start_ARG bold_italic_q end_ARG / italic_d italic_t is effective, without adversely affecting the other dominant amplification mechanisms. By constraining 𝑻𝑻\bm{T}bold_italic_T to a subspace 𝑼superscript𝑼perpendicular-to\bm{U}^{\perp}bold_italic_U start_POSTSUPERSCRIPT ⟂ end_POSTSUPERSCRIPT that is orthogonal to the direction of the phase shift d𝒒¯/dt^^𝑑bold-¯𝒒𝑑𝑡\widehat{d\bm{\bar{q}}/dt}over^ start_ARG italic_d overbold_¯ start_ARG bold_italic_q end_ARG / italic_d italic_t end_ARG, the range of the harmonic resolvent operator is limited to 𝑼superscript𝑼perpendicular-to\bm{U}^{\perp}bold_italic_U start_POSTSUPERSCRIPT ⟂ end_POSTSUPERSCRIPT. The key concept here is to eliminate the singular vectors associated with the smallest singular value of 𝑻𝑻\bm{T}bold_italic_T without affecting the other singular values and vectors of 𝑻𝑻\bm{T}bold_italic_T. Given that the phase shift resides in the null space of 𝑻𝑻\bm{T}bold_italic_T, the desired right singular vector 𝒗=d𝒒¯dt^/d𝒒¯dt^𝒗^𝑑bold-¯𝒒𝑑𝑡norm^𝑑bold-¯𝒒𝑑𝑡\bm{v}=\widehat{\frac{d\bm{\bar{q}}}{dt}}/||\widehat{\frac{d\bm{\bar{q}}}{dt}}||bold_italic_v = over^ start_ARG divide start_ARG italic_d overbold_¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG italic_d italic_t end_ARG end_ARG / | | over^ start_ARG divide start_ARG italic_d overbold_¯ start_ARG bold_italic_q end_ARG end_ARG start_ARG italic_d italic_t end_ARG end_ARG | | is readily available. We can also solve

𝑻*𝒖~=𝒗superscript𝑻bold-~𝒖𝒗\bm{T}^{*}\bm{\tilde{u}}=\bm{v}bold_italic_T start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT overbold_~ start_ARG bold_italic_u end_ARG = bold_italic_v (3.14)

and compute the corresponding left singular vector as 𝒖=𝒖~/𝒖~𝒖bold-~𝒖normbold-~𝒖\bm{u}=\bm{\tilde{u}}/||\bm{\tilde{u}}||bold_italic_u = overbold_~ start_ARG bold_italic_u end_ARG / | | overbold_~ start_ARG bold_italic_u end_ARG | |. Upon obtaining 𝒗𝒗\bm{v}bold_italic_v and 𝒖𝒖\bm{u}bold_italic_u, the process becomes straightforward: projecting out these modes from the forcing and response terms effectively restricts 𝑻𝑻\bm{T}bold_italic_T to 𝑼superscript𝑼perpendicular-to\bm{U}^{\perp}bold_italic_U start_POSTSUPERSCRIPT ⟂ end_POSTSUPERSCRIPT. These steps are elucidated in detail in Padovan et al. (2020).

To compute the action of the harmonic resolvent operator on a given vector (or matrix), our goal is to determine the vector (or matrix) 𝒒𝒒\bm{q}bold_italic_q that satisfies 𝒒=𝑯𝒇𝒒𝑯𝒇\bm{q}=\bm{H}\bm{f}bold_italic_q = bold_italic_H bold_italic_f. In brief, to compute the action of a singular 𝑯𝑯\bm{H}bold_italic_H on a vector 𝒇~~𝒇\tilde{\bm{f}}over~ start_ARG bold_italic_f end_ARG, the component along 𝒖𝒖\bm{u}bold_italic_u must be projected out as

𝒇~in=𝒇~𝒖(𝒖*𝒇~),subscript~𝒇𝑖𝑛~𝒇𝒖superscript𝒖~𝒇\tilde{\bm{f}}_{in}=\tilde{\bm{f}}-\bm{u}(\bm{u}^{*}\tilde{\bm{f}}),over~ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT = over~ start_ARG bold_italic_f end_ARG - bold_italic_u ( bold_italic_u start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT over~ start_ARG bold_italic_f end_ARG ) , (3.15)

and this will provide a response

𝑻𝒒~=𝒇~in𝒒~=𝑯𝒇~in,𝑻bold-~𝒒subscript~𝒇𝑖𝑛bold-~𝒒𝑯subscript~𝒇𝑖𝑛\bm{T}\bm{\tilde{q}}=\tilde{\bm{f}}_{in}\rightarrow\bm{\tilde{q}}=\bm{H}\tilde% {\bm{f}}_{in},bold_italic_T overbold_~ start_ARG bold_italic_q end_ARG = over~ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT → overbold_~ start_ARG bold_italic_q end_ARG = bold_italic_H over~ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT , (3.16)

which is orthogonal to the direction of the phase shift. Nevertheless, to mitigate potential round-off errors, it is advisable to refine the output by projecting out the component along 𝒗𝒗\bm{v}bold_italic_v as

𝒒~out=𝒒~𝒗(𝒗*𝒒~).subscript~𝒒𝑜𝑢𝑡bold-~𝒒𝒗superscript𝒗bold-~𝒒\tilde{\bm{q}}_{out}=\bm{\tilde{q}}-\bm{v}(\bm{v}^{*}\bm{\tilde{q}}).over~ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT = overbold_~ start_ARG bold_italic_q end_ARG - bold_italic_v ( bold_italic_v start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT overbold_~ start_ARG bold_italic_q end_ARG ) . (3.17)

Similarly, when computing the action of singular 𝑯*superscript𝑯\bm{H}^{*}bold_italic_H start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT on a vector, the initial step involves projecting out the component along 𝒗𝒗\bm{v}bold_italic_v. After the response is obtained, to mitigate round-off errors, the component along 𝒖𝒖\bm{u}bold_italic_u is projected out.

3.3 Truncating the harmonic resolvent operator

Computing harmonic resolvent modes is contingent upon 𝑻𝑻\bm{T}bold_italic_T being of finite size. The size and block sparsity pattern of 𝑻𝑻\bm{T}bold_italic_T are determined by two key variables: the number of frequencies within the base flow, Nbsubscript𝑁𝑏N_{b}italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT, and within the response, Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT. Here, we elucidate the impact of each variable on the operator.

The rows of 𝑻𝑻\bm{T}bold_italic_T consist of Nbsubscript𝑁𝑏N_{b}italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT-stencil blocks, dictated by the presence of non-zero elements in 𝑨^p,jsubscript^𝑨𝑝𝑗\hat{\bm{A}}_{p,j}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_j end_POSTSUBSCRIPT. In the context of periodic flows, the time-dependent base flow can be expressed using a Fourier series expansion

𝒒¯(t)=jωfΩq¯𝒒¯^jeijωft.¯𝒒𝑡subscript𝑗subscript𝜔𝑓subscriptΩ¯𝑞subscript^¯𝒒𝑗superscript𝑒i𝑗subscript𝜔𝑓𝑡\bar{\bm{q}}(t)=\sum_{j\omega_{f}\in\Omega_{\bar{q}}}\hat{\bar{\bm{q}}}_{j}e^{% \text{i}j\omega_{f}t}.over¯ start_ARG bold_italic_q end_ARG ( italic_t ) = ∑ start_POSTSUBSCRIPT italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ∈ roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT end_POSTSUBSCRIPT over^ start_ARG over¯ start_ARG bold_italic_q end_ARG end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT i italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT italic_t end_POSTSUPERSCRIPT . (3.18)

The set Ωq¯subscriptΩ¯𝑞\Omega_{\bar{q}}roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT encompasses the relevant frequencies associated with the dominant flow structures. Typically, Ωq¯subscriptΩ¯𝑞\Omega_{\bar{q}}roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT is a subset of jωf𝑗subscript𝜔𝑓j\omega_{f}italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT with j𝑗j\in\mathbb{Z}italic_j ∈ blackboard_Z and encapsulates the majority of energy within the periodic flows. By retaining the base periodicity and a limited number of higher harmonics, it becomes possible to simplify the base flow representation, resulting in Nbsubscript𝑁𝑏N_{b}italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT frequencies within Ωq¯subscriptΩ¯𝑞\Omega_{\bar{q}}roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT and Nbsubscript𝑁𝑏N_{b}italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT non-zero elements within each row of 𝑻𝑻\bm{T}bold_italic_T.

On the other hand, we aim to resolve perturbations occurring at temporal frequencies ωΩq𝜔subscriptΩ𝑞\omega\in\Omega_{q}italic_ω ∈ roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT, where ΩqsubscriptΩ𝑞\Omega_{q}roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT represents a subset of jωf𝑗subscript𝜔𝑓j\omega_{f}italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT with j𝑗j\in\mathbb{Z}italic_j ∈ blackboard_Z, although the specific choice of harmonics for ΩqsubscriptΩ𝑞\Omega_{q}roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT may vary, as further elucidated in §§\lx@sectionsign§3.5. Typically, Ωq¯subscriptΩ¯𝑞\Omega_{\bar{q}}roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT is a subset of ΩqsubscriptΩ𝑞\Omega_{q}roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT, i.e., the perturbation frequency content spans a wider range of harmonics (Padovan et al., 2020). The number of frequencies Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT expanding both 𝒇𝒇\bm{f}bold_italic_f and 𝒒𝒒\bm{q}bold_italic_q determines the dimensions of the block matrices, yielding a size of (NωN)×(NωN)subscript𝑁𝜔𝑁subscript𝑁𝜔𝑁(N_{\omega}N)\times(N_{\omega}N)( italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT italic_N ) × ( italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT italic_N ) for 𝑻𝑻\bm{T}bold_italic_T.

We provide a simple example to visually observe the harmonic resolvent operator. Suppose we use Ωq¯={2,1,0,1,2}ωfsubscriptΩ¯𝑞21012subscript𝜔𝑓\Omega_{\bar{q}}=\{-2,-1,0,1,2\}\omega_{f}roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT = { - 2 , - 1 , 0 , 1 , 2 } italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT to expand the LNS operator and Ωq={4,3,,3,4}ωfsubscriptΩ𝑞4334subscript𝜔𝑓\Omega_{q}=\{-4,-3,\dots,3,4\}\omega_{f}roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT = { - 4 , - 3 , … , 3 , 4 } italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT to expand the perturbations. In this case, the stencil length would be Nb=5subscript𝑁𝑏5N_{b}=5italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 5, and the size of the block matrix would be (9N)×(9N)9𝑁9𝑁(9N)\times(9N)( 9 italic_N ) × ( 9 italic_N ). The harmonic resolvent operator is then

𝑯=[𝑹41𝑨^1𝑨^2000000𝑨^1𝑹31𝑨^1𝑨^200000𝑨^2𝑨^1𝑹21𝑨^1𝑨^200000𝑨^2𝑨^1𝑹11𝑨^1𝑨^200000𝑨^2𝑨^1𝑹01𝑨^1𝑨^200000𝑨^2𝑨^1𝑹11𝑨^1𝑨^200000𝑨^2𝑨^1𝑹21𝑨^1𝑨^200000𝑨^2𝑨^1𝑹31𝑨^1000000𝑨^2𝑨^1𝑹41]1.𝑯superscriptmatrixsuperscriptsubscript𝑹41subscript^𝑨1subscript^𝑨2000000subscript^𝑨1superscriptsubscript𝑹31subscript^𝑨1subscript^𝑨200000subscript^𝑨2subscript^𝑨1superscriptsubscript𝑹21subscript^𝑨1subscript^𝑨200000subscript^𝑨2subscript^𝑨1superscriptsubscript𝑹11subscript^𝑨1subscript^𝑨200000subscript^𝑨2subscript^𝑨1superscriptsubscript𝑹01subscript^𝑨1subscript^𝑨200000subscript^𝑨2subscript^𝑨1superscriptsubscript𝑹11subscript^𝑨1subscript^𝑨200000subscript^𝑨2subscript^𝑨1superscriptsubscript𝑹21subscript^𝑨1subscript^𝑨200000subscript^𝑨2subscript^𝑨1superscriptsubscript𝑹31subscript^𝑨1000000subscript^𝑨2subscript^𝑨1superscriptsubscript𝑹411\bm{H}=\begin{bmatrix}\bm{R}_{-4}^{-1}&\hat{\bm{A}}_{-1}&\hat{\bm{A}}_{-2}&0&0% &0&0&0&0\\ \hat{\bm{A}}_{1}&\bm{R}_{-3}^{-1}&\hat{\bm{A}}_{-1}&\hat{\bm{A}}_{-2}&0&0&0&0&% 0\\ \hat{\bm{A}}_{2}&\hat{\bm{A}}_{1}&\bm{R}_{-2}^{-1}&\hat{\bm{A}}_{-1}&\hat{\bm{% A}}_{-2}&0&0&0&0\\ 0&\hat{\bm{A}}_{2}&\hat{\bm{A}}_{1}&\bm{R}_{-1}^{-1}&\hat{\bm{A}}_{-1}&\hat{% \bm{A}}_{-2}&0&0&0\\ 0&0&\hat{\bm{A}}_{2}&\hat{\bm{A}}_{1}&\bm{R}_{0}^{-1}&\hat{\bm{A}}_{-1}&\hat{% \bm{A}}_{-2}&0&0\\ 0&0&0&\hat{\bm{A}}_{2}&\hat{\bm{A}}_{1}&\bm{R}_{1}^{-1}&\hat{\bm{A}}_{-1}&\hat% {\bm{A}}_{-2}&0\\ 0&0&0&0&\hat{\bm{A}}_{2}&\hat{\bm{A}}_{1}&\bm{R}_{2}^{-1}&\hat{\bm{A}}_{-1}&% \hat{\bm{A}}_{-2}\\ 0&0&0&0&0&\hat{\bm{A}}_{2}&\hat{\bm{A}}_{1}&\bm{R}_{3}^{-1}&\hat{\bm{A}}_{-1}% \\ 0&0&0&0&0&0&\hat{\bm{A}}_{2}&\hat{\bm{A}}_{1}&\bm{R}_{4}^{-1}\end{bmatrix}^{-1}.bold_italic_H = [ start_ARG start_ROW start_CELL bold_italic_R start_POSTSUBSCRIPT - 4 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT end_CELL 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 start_CELL 0 end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT - 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT end_CELL 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 over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT 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 over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT 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 over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 2 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 start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 2 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 0 end_CELL start_CELL 0 end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT 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 start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT 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 start_CELL 0 end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_R start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT . (3.19)

The forcing and response vectors can be represented as

𝒇^=[𝒇^4𝒇^3𝒇^2𝒇^1𝒇^0𝒇^1𝒇^2𝒇^3𝒇^4],𝒒^=[𝒒^4𝒒^3𝒒^2𝒒^1𝒒^0𝒒^1𝒒^2𝒒^3𝒒^4].formulae-sequence^𝒇matrixsubscript^𝒇4subscript^𝒇3subscript^𝒇2subscript^𝒇1subscript^𝒇0subscript^𝒇1subscript^𝒇2subscript^𝒇3subscript^𝒇4^𝒒matrixsubscript^𝒒4subscript^𝒒3subscript^𝒒2subscript^𝒒1subscript^𝒒0subscript^𝒒1subscript^𝒒2subscript^𝒒3subscript^𝒒4\hat{\bm{f}}=\begin{bmatrix}\hat{\bm{f}}_{-4}\\ \hat{\bm{f}}_{-3}\\ \hat{\bm{f}}_{-2}\\ \hat{\bm{f}}_{-1}\\ \hat{\bm{f}}_{0}\\ \hat{\bm{f}}_{1}\\ \hat{\bm{f}}_{2}\\ \hat{\bm{f}}_{3}\\ \hat{\bm{f}}_{4}\\ \end{bmatrix},\hat{\bm{q}}=\begin{bmatrix}\hat{\bm{q}}_{-4}\\ \hat{\bm{q}}_{-3}\\ \hat{\bm{q}}_{-2}\\ \hat{\bm{q}}_{-1}\\ \hat{\bm{q}}_{0}\\ \hat{\bm{q}}_{1}\\ \hat{\bm{q}}_{2}\\ \hat{\bm{q}}_{3}\\ \hat{\bm{q}}_{4}\\ \end{bmatrix}.over^ start_ARG bold_italic_f end_ARG = [ start_ARG start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT - 4 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT - 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , over^ start_ARG bold_italic_q end_ARG = [ start_ARG start_ROW start_CELL over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT - 4 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT - 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] . (3.20)

The accuracy of the obtained resolvent system in Fourier space depends on how well the chosen frequencies capture the relevant flow information, and it is affected by the truncation limit imposed on the frequency range. Although it is feasible to reduce the infinite-dimensional harmonic operator to a finite dimension based on perturbation frequencies, the choice of frequency range is consequential. To demonstrate the influence of truncation on response modes, consider a periodic flow with a dominant first harmonic, such that the base flow can be expressed as

𝒒¯(t)=𝒒¯^0+𝒒¯^1eiωt+𝒒¯^1eiωt.¯𝒒𝑡subscript^¯𝒒0subscript^¯𝒒1superscript𝑒i𝜔𝑡subscript^¯𝒒1superscript𝑒i𝜔𝑡\bar{\bm{q}}(t)=\hat{\bar{\bm{q}}}_{0}+\hat{\bar{\bm{q}}}_{1}e^{\text{i}\omega t% }+\hat{\bar{\bm{q}}}_{-1}e^{-\text{i}\omega t}.over¯ start_ARG bold_italic_q end_ARG ( italic_t ) = over^ start_ARG over¯ start_ARG bold_italic_q end_ARG end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + over^ start_ARG over¯ start_ARG bold_italic_q end_ARG end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT i italic_ω italic_t end_POSTSUPERSCRIPT + over^ start_ARG over¯ start_ARG bold_italic_q end_ARG end_ARG start_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT - i italic_ω italic_t end_POSTSUPERSCRIPT . (3.21)

Assume that the LNS equations are subjected to a constant forcing 𝒇(t)=𝒇^0𝒇𝑡subscript^𝒇0\bm{f}(t)=\hat{\bm{f}}_{0}bold_italic_f ( italic_t ) = over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT. The LNS operator exhibits frequency content at 0 and ±ωplus-or-minus𝜔\pm\omega± italic_ω, indicating that a constant forcing will directly induce a response at these frequencies. However, higher harmonics are also indirectly stimulated, and the triggering of responses at higher harmonics follows a cascade pattern, with norms gradually decaying towards zero, i.e., limj𝒒^j=0subscript𝑗normsubscript^𝒒𝑗0\lim_{j\to\infty}||\hat{\bm{q}}_{j}||=0roman_lim start_POSTSUBSCRIPT italic_j → ∞ end_POSTSUBSCRIPT | | over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT | | = 0. Hence, the truncation must be set at a sufficiently high level to preserve the response norms.

In practice, by defining ΩqsubscriptΩ𝑞\Omega_{q}roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT for both input perturbation and the response, we compute accurate harmonic resolvent modes as long as the norms of higher frequency modes become less relevant within the spectrum. In other words, if we set both forcing and response frequencies sufficiently high and, upon computing harmonic resolvent modes, find that the norms of input and output modes with higher frequency content are relatively small, it indicates convergence, and including higher frequencies has negligible impact on the results. In a case, for instance, where response modes with higher frequency content remain relatively important, extending the frequency range of the output modes is necessary without changing the input frequency content. In our algorithm, the input and output frequency ranges are adjustable as needed.

3.4 Cross-frequency harmonic resolvent analysis

Harmonic resolvent analysis captures the interaction between various frequencies within Ωq¯subscriptΩ¯𝑞\Omega_{\bar{q}}roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT and ΩqsubscriptΩ𝑞\Omega_{q}roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT, and the typical objective is to identify the optimal forcing mode, potentially spanning various frequencies, that produces the optimal response across a range of frequencies. Alternatively, one can compute the unit-norm forcing at one frequency ω1Ωqsubscript𝜔1subscriptΩ𝑞\omega_{1}\in\Omega_{q}italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∈ roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT that triggers the most amplified response at another frequency ω2Ωqsubscript𝜔2subscriptΩ𝑞\omega_{2}\in\Omega_{q}italic_ω start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∈ roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT. This is achieved by defining

𝑯ω2,ω1=𝑪𝑯𝑩subscript𝑯subscript𝜔2subscript𝜔1𝑪𝑯𝑩\bm{H}_{\omega_{2},\omega_{1}}=\bm{C}\bm{H}\bm{B}bold_italic_H start_POSTSUBSCRIPT italic_ω start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT = bold_italic_C bold_italic_H bold_italic_B (3.22)

and computing the modes and gains following the same procedure as before. Here, matrices 𝑩𝑩\bm{B}bold_italic_B and 𝑪𝑪\bm{C}bold_italic_C are constructed to extract the ω1subscript𝜔1\omega_{1}italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and ω2subscript𝜔2\omega_{2}italic_ω start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT frequencies from the forcing and response modes, respectively. This represents a special case of the modified harmonic resolvent operator in (2.6).

3.5 Subharmonic resolvent analysis

The frequency content of the forcing inputs is typically composed of harmonics of the base flow frequency. However, Padovan & Rowley (2022) have shown that the harmonic resolvent system may exhibit sensitivity to subharmonic inputs. For instance, in the case where the fundamental base flow frequency is denoted by ωfsubscript𝜔𝑓\omega_{f}italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, the linearized system may be sensitive to forcing inputs with γ<ωf𝛾subscript𝜔𝑓\gamma<\omega_{f}italic_γ < italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, such as ωf/2subscript𝜔𝑓2\omega_{f}/2italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2. More generally, if the frequency content of a periodic LNS operator is limited to the frequency range Ωq¯subscriptΩ¯𝑞\Omega_{\bar{q}}roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT, it may be desirable to compute input-output modes with frequencies outside of this range, i.e., , γΩq¯𝛾subscriptΩ¯𝑞\gamma\notin\Omega_{\bar{q}}italic_γ ∉ roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT. In such cases, the subharmonic resolvent modes become relevant.

To identify unique subharmonic inputs, we can take advantage of the linear nature of the harmonic resolvent operator, which allows interaction with the fundamental frequency ωfsubscript𝜔𝑓\omega_{f}italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT and its harmonics. It can be demonstrated that the interval (ωf/2,ωf/2]subscript𝜔𝑓2subscript𝜔𝑓2(-\omega_{f}/2,\omega_{f}/2]( - italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2 , italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2 ] encompasses all sets of subharmonic frequencies where the input-output modes are unique. As discussed in §§\lx@sectionsign§3, a forcing with a frequency γ(ωf/2,ωf/2]𝛾subscript𝜔𝑓2subscript𝜔𝑓2\gamma\in(-\omega_{f}/2,\omega_{f}/2]italic_γ ∈ ( - italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2 , italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2 ] can only trigger responses at frequencies γ+jωf𝛾𝑗subscript𝜔𝑓\gamma+j\omega_{f}italic_γ + italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, where j𝑗jitalic_j is an integer. Therefore, the input and output modes exist within the frequency range Ωγ=γΩq¯subscriptΩ𝛾direct-sum𝛾subscriptΩ¯𝑞\Omega_{\gamma}=\gamma\oplus\Omega_{\bar{q}}roman_Ω start_POSTSUBSCRIPT italic_γ end_POSTSUBSCRIPT = italic_γ ⊕ roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT, where direct-sum\oplus denotes element-wise addition. Harmonics of γ𝛾\gammaitalic_γ trigger a unique set of outputs as long as jγ|ωf|𝑗𝛾subscript𝜔𝑓j\gamma\leq|\omega_{f}|italic_j italic_γ ≤ | italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT |. Due to the linear relationship, we can show that all harmonics are isolated sets that need to be studied separately. Note that ωf/2subscript𝜔𝑓2-\omega_{f}/2- italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2 is excluded since Ωωf/2=Ωωf/2subscriptΩsubscript𝜔𝑓2subscriptΩsubscript𝜔𝑓2\Omega_{-\omega_{f}/2}=\Omega_{\omega_{f}/2}roman_Ω start_POSTSUBSCRIPT - italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2 end_POSTSUBSCRIPT = roman_Ω start_POSTSUBSCRIPT italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2 end_POSTSUBSCRIPT, resulting in redundancy. For γΩγ𝛾subscriptΩ𝛾\gamma\in\Omega_{\gamma}italic_γ ∈ roman_Ω start_POSTSUBSCRIPT italic_γ end_POSTSUBSCRIPT, one can derive the subharmonic resolvent system as (Padovan & Rowley, 2022)

𝒒^=(iγ𝑰𝑻)1𝒇^.^𝒒superscripti𝛾𝑰𝑻1^𝒇\hat{\bm{q}}=(\text{i}\gamma\bm{I}-\bm{T})^{-1}\hat{\bm{f}}.over^ start_ARG bold_italic_q end_ARG = ( i italic_γ bold_italic_I - bold_italic_T ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT over^ start_ARG bold_italic_f end_ARG . (3.23)

To further elucidate the point, consider an example where the subharmonic frequency of interest is ωf/5subscript𝜔𝑓5\omega_{f}/5italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 5 along with its harmonics. Note that the valid harmonics are the ones that fulfill the condition jωf/5(ωf/2,ωf/2]𝑗subscript𝜔𝑓5subscript𝜔𝑓2subscript𝜔𝑓2j\omega_{f}/5\in(-\omega_{f}/2,\omega_{f}/2]italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 5 ∈ ( - italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2 , italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2 ], which includes the set {2/5,1/5,0,1/5,2/5}251501525\{-2/5,-1/5,0,1/5,2/5\}{ - 2 / 5 , - 1 / 5 , 0 , 1 / 5 , 2 / 5 }. While Ω0=0{Nb/2,,Nb/2}subscriptΩ0direct-sum0subscript𝑁𝑏2subscript𝑁𝑏2\Omega_{0}=0\oplus\{-N_{b}/2,\ldots,N_{b}/2\}roman_Ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 0 ⊕ { - italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT / 2 , … , italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT / 2 }, where Nbsubscript𝑁𝑏N_{b}italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT is the number of active frequencies within the base flow, is identical to harmonic inputs, the sets Ω2/5subscriptΩ25\Omega_{-2/5}roman_Ω start_POSTSUBSCRIPT - 2 / 5 end_POSTSUBSCRIPT, Ω1/5subscriptΩ15\Omega_{-1/5}roman_Ω start_POSTSUBSCRIPT - 1 / 5 end_POSTSUBSCRIPT, Ω1/5subscriptΩ15\Omega_{1/5}roman_Ω start_POSTSUBSCRIPT 1 / 5 end_POSTSUBSCRIPT, and Ω2/5subscriptΩ25\Omega_{2/5}roman_Ω start_POSTSUBSCRIPT 2 / 5 end_POSTSUBSCRIPT represent distinct input-output modes. In general, for any two distinct subharmonic frequencies γ1subscript𝛾1\gamma_{1}italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and γ2subscript𝛾2\gamma_{2}italic_γ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT within the interval (ωf/2,ωf/2]subscript𝜔𝑓2subscript𝜔𝑓2(-\omega_{f}/2,\omega_{f}/2]( - italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2 , italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 2 ], the corresponding subharmonic modes in Ωγ1subscriptΩsubscript𝛾1\Omega_{\gamma_{1}}roman_Ω start_POSTSUBSCRIPT italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT are decoupled from those in Ωγ2subscriptΩsubscript𝛾2\Omega_{\gamma_{2}}roman_Ω start_POSTSUBSCRIPT italic_γ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT as there exists no common frequency γ1γ2Ωq¯subscript𝛾1subscript𝛾2subscriptΩ¯𝑞\gamma_{1}-\gamma_{2}\in\Omega_{\bar{q}}italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_γ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∈ roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT. While our algorithm described in §§\lx@sectionsign§4 is described for harmonic resolvent analysis, it can be easily extended to compute subharmonic resolvent modes, as described in Appendix A.

3.6 Computing harmonic resolvent modes using RSVD-LU

The RSVD algorithm (Halko et al., 2011) is a randomized linear algebra technique developed to efficiently identify the singular vectors with the highest gains in a given matrix. In the context of harmonic resolvent analysis, the matrix of interest is the harmonic resolvent operator. This operator, similar to the resolvent operator, relies on the inverse of a sparse matrix, as shown in (3.6), making the computation of modes challenging. Modifying the original RSVD algorithm is necessary to address these challenges, enabling harmonic resolvent analysis. The modifications for resolvent analysis have been extensively documented in the literature by Ribeiro et al. (2020) and Farghadan et al. (2023), while the outline for the harmonic resolvent operator can be found in the appendix of Padovan et al. (2020).

In brief, the computation involves computing the action of 𝑯𝑯\bm{H}bold_italic_H and 𝑯*superscript𝑯\bm{H}^{*}bold_italic_H start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT for sketching the range and image of the harmonic resolvent operator, respectively, and approximating the leading harmonic modes. Computing actions of 𝑯𝑯\bm{H}bold_italic_H and 𝑯*superscript𝑯\bm{H}^{*}bold_italic_H start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT, however, requires solving linear systems

𝑻𝒒^=𝒇^,𝑻*𝒒^=𝒇^,formulae-sequence𝑻^𝒒^𝒇superscript𝑻^𝒒^𝒇\begin{gathered}\bm{T}\hat{\bm{q}}=\hat{\bm{f}},\\ \bm{T}^{*}\hat{\bm{q}}=\hat{\bm{f}},\end{gathered}start_ROW start_CELL bold_italic_T over^ start_ARG bold_italic_q end_ARG = over^ start_ARG bold_italic_f end_ARG , end_CELL end_ROW start_ROW start_CELL bold_italic_T start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT over^ start_ARG bold_italic_q end_ARG = over^ start_ARG bold_italic_f end_ARG , end_CELL end_ROW (3.24)

respectively, in Fourier space. These linear systems are solved via LU-decomposition of 𝑻𝑻\bm{T}bold_italic_T, but due to its large size and ill-conditioned nature, computing its LU decomposition can be a formidable computational obstacle, particularly for flows with three inhomogeneous directions. We propose an alternative way in the following section.

4 Computing harmonic resolvent modes using time stepping

In this section, we show how time stepping can be used to efficiently compute harmonic resolvent modes. The same concept was first used by Monokrousos et al. (2010) in the context of the resolvent analysis and further optimized by Martini et al. (2021) and Farghadan et al. (2023). Here, we introduce the extension of our algorithm to compute the harmonic resolvent modes and gains.

4.1 Computing the action of 𝑯𝑯\bm{H}bold_italic_H using time stepping

Refer to caption
Figure 1: Flowchart depicting the action of 𝑯𝑯\bm{H}bold_italic_H on a forcing comprised of Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT frequencies within the RSVD-LU (top route) and the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t (bottom route) algorithms. Both routes produce the same result, but the bottom route is computationally advantageous for large systems.

Computing the action of 𝑯𝑯\bm{H}bold_italic_H in the Fourier space poses a bottleneck within the RSVD-LU algorithm. To overcome this limitation, we propose to use time-stepping as an effective surrogate approach. Given that Ωq¯subscriptΩ¯𝑞\Omega_{\bar{q}}roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT represents the frequency content of the base flow around which 𝑻𝑻\bm{T}bold_italic_T is constructed, we define the time-domain linearized operator as

𝑨p(t)=jωfΩq¯𝑨^p,jeijωft.subscript𝑨𝑝𝑡subscript𝑗subscript𝜔𝑓subscriptΩ¯𝑞subscript^𝑨𝑝𝑗superscript𝑒i𝑗subscript𝜔𝑓𝑡\bm{A}_{p}(t)=\sum_{j\omega_{f}\in\Omega_{\bar{q}}}\hat{\bm{A}}_{p,j}e^{\text{% i}j\omega_{f}t}.bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_t ) = ∑ start_POSTSUBSCRIPT italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ∈ roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT end_POSTSUBSCRIPT over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_j end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT i italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT italic_t end_POSTSUPERSCRIPT . (4.1)

The action of 𝑯𝑯\bm{H}bold_italic_H on 𝒇^^𝒇\hat{\bm{f}}over^ start_ARG bold_italic_f end_ARG in Fourier space is expressed in (3.7), where the frequency content of the forcing lies within ΩqsubscriptΩ𝑞\Omega_{q}roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT.

The steady-state solution of (3.1) is given by

𝒒^s=𝑯𝒇^,subscript^𝒒𝑠𝑯^𝒇\hat{\bm{q}}_{s}=\bm{H}\hat{\bm{f}},over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT = bold_italic_H over^ start_ARG bold_italic_f end_ARG , (4.2)

when subjected to the forcing represented as

𝒇=jωfΩq𝒇^jeijωft.𝒇subscript𝑗subscript𝜔𝑓subscriptΩ𝑞subscript^𝒇𝑗superscript𝑒i𝑗subscript𝜔𝑓𝑡\bm{f}=\sum_{j\omega_{f}\in\Omega_{q}}\hat{\bm{f}}_{j}e^{\text{i}j\omega_{f}t}.bold_italic_f = ∑ start_POSTSUBSCRIPT italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ∈ roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT end_POSTSUBSCRIPT over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT i italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT italic_t end_POSTSUPERSCRIPT . (4.3)

The steady-state response can be obtained through time-stepping before taking a Fourier transform. The time-domain forcing is constructed to include frequencies identical to those present in 𝒇^^𝒇\hat{\bm{f}}over^ start_ARG bold_italic_f end_ARG. Since the time-domain and frequency-domain frequencies are the same, both approaches yield identical results, i.e., 𝒒^s=𝒒^subscript^𝒒𝑠^𝒒\hat{\bm{q}}_{s}=\hat{\bm{q}}over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT = over^ start_ARG bold_italic_q end_ARG. In practice, the time-stepping method is inherently discrete, and the frequencies are retained up to the maximum limit determined by the chosen time step (below the Nyquist frequency (Nyquist, 1928)). By employing a suitably small time step, we can capture frequencies up to the desired limit.

The equivalence between computing the action of 𝑯𝑯\bm{H}bold_italic_H in both the RSVD-LU and RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithms is depicted in figure 1. In the upper route, within the RSVD-LU algorithm, the LNS equations are first transformed into Fourier space before solving a coupled linear system in the frequency domain for a given forcing. In the lower route, within the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm, the LNS equations are initially integrated in the time domain before being transformed into Fourier space. Both routes produce identical outputs so long as numerical artifacts are minimized.

4.2 RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t for harmonic resolvent analysis

By recognizing the equivalence between time stepping and solving linear systems in the frequency domain, we can effectively address the limitations of the RSVD-LU algorithm, leading to the development of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t. The algorithmic steps for extending RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t to harmonic systems are presented in Algorithm 1.

Algorithm 1 RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t for harmonic resolvent analysis
1:Input parameters: 𝑨p,k,q,Ωq,Ωq¯,subscript𝑨𝑝𝑘𝑞subscriptΩ𝑞subscriptΩ¯𝑞\bm{A}_{p},k,q,\Omega_{q},\Omega_{\bar{q}},bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT , italic_k , italic_q , roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT , roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT ,TSS, dt,Tt𝑑𝑡subscript𝑇𝑡dt,T_{t}italic_d italic_t , italic_T start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT
2:𝚯^^𝚯absent\hat{\bm{\varTheta}}\leftarrow\;over^ start_ARG bold_Θ end_ARG ←randn(NNω,k)𝑁subscript𝑁𝜔𝑘(NN_{\omega},k)( italic_N italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT , italic_k ) \triangleright Create random test matrices
3:𝒀^^𝒀absent\hat{\bm{Y}}\leftarrow\;over^ start_ARG bold_italic_Y end_ARG ←DirectAction(𝑨p,𝚯^,(\bm{A}_{p},\hat{\bm{\varTheta}},( bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT , over^ start_ARG bold_Θ end_ARG ,TSS, dt,Tt)dt,T_{t})italic_d italic_t , italic_T start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) \triangleright Sample the range of 𝑯𝑯\bm{H}bold_italic_H
4:if q>0𝑞0q>0italic_q > 0 then \triangleright Optional power iteration
5:     𝒀^^𝒀absent\hat{\bm{Y}}\leftarrow\;over^ start_ARG bold_italic_Y end_ARG ←PI(𝑨p,𝒀^,q,(\bm{A}_{p},\hat{\bm{Y}},q,( bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT , over^ start_ARG bold_italic_Y end_ARG , italic_q ,TSS, dt,Tt)dt,T_{t})italic_d italic_t , italic_T start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) \triangleright Power iteration with time-stepping
6:𝑸^Ωsubscript^𝑸Ωabsent\hat{\bm{Q}}_{\varOmega}\leftarrow\;over^ start_ARG bold_italic_Q end_ARG start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ←qr(𝒀^Ω)subscript^𝒀Ω(\hat{\bm{Y}}_{\varOmega})( over^ start_ARG bold_italic_Y end_ARG start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ) \triangleright Build the orthonormal subspace 𝑸^Ωsubscript^𝑸Ω\hat{\bm{Q}}_{\varOmega}over^ start_ARG bold_italic_Q end_ARG start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT
7:𝑺^^𝑺absent\hat{\bm{S}}\leftarrow\;over^ start_ARG bold_italic_S end_ARG ← AdjointAction(𝑨p*,𝑸^,(\bm{A}_{p}^{*},\hat{\bm{Q}},( bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT , over^ start_ARG bold_italic_Q end_ARG ,TSS, dt,Tt)dt,T_{t})italic_d italic_t , italic_T start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) \triangleright Sample the image of 𝑯𝑯\bm{H}bold_italic_H
8:(𝑼~H,𝚺H,𝑽H)subscript~𝑼𝐻subscript𝚺𝐻subscript𝑽𝐻absent(\tilde{\bm{U}}_{H},\bm{\varSigma}_{H},\bm{V}_{H})\leftarrow\;( over~ start_ARG bold_italic_U end_ARG start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT , bold_Σ start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT , bold_italic_V start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT ) ←svd(𝑺^H)subscript^𝑺𝐻(\hat{\bm{S}}_{H})( over^ start_ARG bold_italic_S end_ARG start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT ) \triangleright Obtain 𝚺H,𝑽Hsubscript𝚺𝐻subscript𝑽𝐻\bm{\varSigma}_{H},\bm{V}_{H}bold_Σ start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT , bold_italic_V start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT
9:𝑼H𝑸^Ω𝑼~Hsubscript𝑼𝐻subscript^𝑸Ωsubscript~𝑼𝐻\bm{U}_{H}\leftarrow\;\hat{\bm{Q}}_{\varOmega}\tilde{\bm{U}}_{H}bold_italic_U start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT ← over^ start_ARG bold_italic_Q end_ARG start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT over~ start_ARG bold_italic_U end_ARG start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT \triangleright Recover 𝑼Hsubscript𝑼𝐻\bm{U}_{H}bold_italic_U start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT
10:Output parameters: 𝑼H,𝚺H,𝑽Hsubscript𝑼𝐻subscript𝚺𝐻subscript𝑽𝐻\bm{U}_{H},\bm{\varSigma}_{H},\bm{V}_{H}bold_italic_U start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT , bold_Σ start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT , bold_italic_V start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT
Algorithm 1: k,q,Ωq,Ωq¯𝑘𝑞subscriptΩ𝑞subscriptΩ¯𝑞k,q,\Omega_{q},\Omega_{\bar{q}}italic_k , italic_q , roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT , roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT are common parameters with RSVD-LU. ()ΩsubscriptΩ(\cdot)_{\varOmega}( ⋅ ) start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT indicates all frequencies are merged into a single column, and TSS is an abbreviation for time-stepping schemes (e.g., backward Euler). DirectAction and AdjointAction are functions that solve the direct and adjoint LNS equations, respectively, with a predefined forcing.

The algorithm proposed in this study is based on the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm introduced by Farghadan et al. (2023), and we will provide a concise overview of the key steps. Initially, a random matrix 𝚯^^𝚯\hat{\bm{\varTheta}}over^ start_ARG bold_Θ end_ARG is generated (line 2) to compute the sketch of 𝑯𝑯\bm{H}bold_italic_H through time stepping (line 3). DirectAction is a function that computes the action of 𝑯𝑯\bm{H}bold_italic_H onto a given forcing using time-stepping and transforms the steady-state responses to Fourier space. Next, an optional power iteration is performed (lines 4 and 5) via q𝑞qitalic_q successive applications of DirectAction and AdjointAction, enhancing the accuracy of harmonic resolvent modes. QR decomposition is performed to obtain 𝑸^Ωsubscript^𝑸Ω\hat{\bm{Q}}_{\varOmega}over^ start_ARG bold_italic_Q end_ARG start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT (line 6) before constructing 𝑺𝑺\bm{S}bold_italic_S via time stepping (line 7). AdjointAction is the function that computes the action of 𝑯*superscript𝑯\bm{H}^{*}bold_italic_H start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT onto a given forcing using time-stepping and transforms the steady-state responses to Fourier space. An SVD (line 8) is conducted to obtain the optimal forcing modes 𝑽HNNω×ksubscript𝑽𝐻superscript𝑁subscript𝑁𝜔𝑘\bm{V}_{H}\in\mathbb{C}^{NN_{\omega}\times k}bold_italic_V start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_N italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT × italic_k end_POSTSUPERSCRIPT and gains 𝚺Hk×ksubscript𝚺𝐻superscript𝑘𝑘\bm{\varSigma}_{H}\in\mathbb{R}^{k\times k}bold_Σ start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_k × italic_k end_POSTSUPERSCRIPT of 𝑯𝑯\bm{H}bold_italic_H. Lastly, the optimal response modes 𝑼HNNω×ksubscript𝑼𝐻superscript𝑁subscript𝑁𝜔𝑘\bm{U}_{H}\in\mathbb{C}^{NN_{\omega}\times k}bold_italic_U start_POSTSUBSCRIPT italic_H end_POSTSUBSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_N italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT × italic_k end_POSTSUPERSCRIPT are recovered in line 9.

Compared to the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm for resolvent analysis, two notable differences are present. In the extension of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t, the response modes at various frequencies are merged prior to both the QR decomposition and the SVD steps. This deviation from the original algorithm is motivated by the nature of the problem that requires interactions between frequencies, unlike in resolvent analysis where the QR decomposition and SVD are performed separately for each individual frequency of interest. The second difference is the generation of LNS operators over time, whereas in resolvent analysis, the LNS operator remains constant throughout the integration.

If 𝑻𝑻\bm{T}bold_italic_T approaches machine precision singularity, it is necessary to project out the forcing along the 𝒖𝒖\bm{u}bold_italic_u direction before the DirectAction and along 𝒗𝒗\bm{v}bold_italic_v before the AdjointAction, as described in §§\lx@sectionsign§3.2. Moreover, to mitigate numerical artifacts, it is advisable to project out the response along 𝒗𝒗\bm{v}bold_italic_v and 𝒖𝒖\bm{u}bold_italic_u after the DirectAction and AdjointAction, respectively.

5 Computational complexity

A brief comparison is conducted between memory requirements and CPU cost of the RSVD-LU and RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithms. We also propose strategies to minimize the memory consumption. For more detailed information on the CPU and memory scaling of the LU decomposition of the resolvent operator, we refer readers to Farghadan et al. (2023). To offer empirical insights and confirmation of the theoretical scalings discussed below, we present a two-dimensional test case in §§\lx@sectionsign§7.

5.1 Memory benefits of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t

In the case of resolvent analysis, the memory scaling of the LU decomposition is empirically O(N1.2)𝑂superscript𝑁1.2O(N^{1.2})italic_O ( italic_N start_POSTSUPERSCRIPT 1.2 end_POSTSUPERSCRIPT ) and O(N1.6)𝑂superscript𝑁1.6O(N^{1.6})italic_O ( italic_N start_POSTSUPERSCRIPT 1.6 end_POSTSUPERSCRIPT ) for two- and three-dimensional systems, respectively (Towne et al., 2022; Farghadan et al., 2023). The memory scaling of LU decomposition is expected to be worse for the harmonic resolvent operator, as the lower- and upper-triangular matrices are denser. When 𝑻𝑻\bm{T}bold_italic_T is singular or nearly singular, the computational task becomes even more challenging, as discussed in Padovan et al. (2020).

On the other hand, the memory usage of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t for harmonic resolvent analysis is contingent on the sizes of various matrices, specifically the sparse LNS operators 𝑨^pN×N×Nbsubscript^𝑨𝑝superscript𝑁𝑁subscript𝑁𝑏\hat{\bm{A}}_{p}\in\mathbb{C}^{N\times N\times N_{b}}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_N × italic_N × italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, and the dense forcing matrix 𝑭^NNω×k^𝑭superscript𝑁subscript𝑁𝜔𝑘\hat{\bm{F}}\in\mathbb{C}^{NN_{\omega}\times k}over^ start_ARG bold_italic_F end_ARG ∈ blackboard_C start_POSTSUPERSCRIPT italic_N italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT × italic_k end_POSTSUPERSCRIPT and response matrix 𝑸^NNω×k^𝑸superscript𝑁subscript𝑁𝜔𝑘\hat{\bm{Q}}\in\mathbb{C}^{NN_{\omega}\times k}over^ start_ARG bold_italic_Q end_ARG ∈ blackboard_C start_POSTSUPERSCRIPT italic_N italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT × italic_k end_POSTSUPERSCRIPT, all of which are stored in Fourier space. The scaling for resolvent analysis is O(NNω)𝑂𝑁subscript𝑁𝜔O(NN_{\omega})italic_O ( italic_N italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT ), and the sole extra space is for the storage of LNS operators.

One approach to generating LNS operators for all time points involves retaining Nbsubscript𝑁𝑏N_{b}italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT coefficients in Fourier space and subsequently constructing 𝑨Ω={𝑨p,1,𝑨p,2,𝑨p,3,,𝑨p,Nt}subscript𝑨Ωsubscript𝑨𝑝1subscript𝑨𝑝2subscript𝑨𝑝3subscript𝑨𝑝subscript𝑁𝑡\bm{A}_{\varOmega}=\{\bm{A}_{p,1},\bm{A}_{p,2},\bm{A}_{p,3},\dots,\bm{A}_{p,N_% {t}}\}bold_italic_A start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT = { bold_italic_A start_POSTSUBSCRIPT italic_p , 1 end_POSTSUBSCRIPT , bold_italic_A start_POSTSUBSCRIPT italic_p , 2 end_POSTSUBSCRIPT , bold_italic_A start_POSTSUBSCRIPT italic_p , 3 end_POSTSUBSCRIPT , … , bold_italic_A start_POSTSUBSCRIPT italic_p , italic_N start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT end_POSTSUBSCRIPT } once for all time steps within a period. However, this approach can be memory-intensive for large systems, especially when NtO(103105)similar-tosubscript𝑁𝑡𝑂superscript103superscript105N_{t}\sim O(10^{3}-10^{5})italic_N start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ∼ italic_O ( 10 start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT - 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT ). An alternative strategy to reduce memory consumption is to create LNS operators on the fly, as shown in figure 2. As a result, no time-domain LNS operator is permanently stored in memory. Each LNS operator is created on-the-fly using the discrete Fourier transform (DFT) of Nbsubscript𝑁𝑏N_{b}italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT Fourier coefficients,

𝑨p(t)=j=Nb/2Nb/2𝑨^p,jeijωft.subscript𝑨𝑝𝑡superscriptsubscript𝑗subscript𝑁𝑏2subscript𝑁𝑏2subscript^𝑨𝑝𝑗superscript𝑒i𝑗subscript𝜔𝑓𝑡\bm{A}_{p}(t)=\sum_{j=-N_{b}/2}^{N_{b}/2}\hat{\bm{A}}_{p,j}e^{\text{i}j\omega_% {f}t}.bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_t ) = ∑ start_POSTSUBSCRIPT italic_j = - italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT / 2 end_POSTSUPERSCRIPT over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_j end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT i italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT italic_t end_POSTSUPERSCRIPT . (5.1)

Typically, 𝑨psubscript𝑨𝑝\bm{A}_{p}bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT is very sparse, with 𝚗𝚗𝚣(𝑨p)O(N)similar-to𝚗𝚗𝚣subscript𝑨𝑝𝑂𝑁\texttt{nnz}(\bm{A}_{p})\sim O(N)nnz ( bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) ∼ italic_O ( italic_N ), where 𝚗𝚗𝚣()𝚗𝚗𝚣\texttt{nnz}(\cdot)nnz ( ⋅ ) represents the count of non-zero elements, resulting in an overall memory consumption of O(NNb)𝑂𝑁subscript𝑁𝑏O(NN_{b})italic_O ( italic_N italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ). The methods employed for generating LNS operators, both in the streaming and memory-intensive approaches, mirror those used for creating forcing terms in resolvent analysis, as elaborated in Farghadan et al. (2023). Additionally, the CPU cost of this procedure scales as O(𝚗𝚗𝚣(𝑨p)Nb)𝑂𝚗𝚗𝚣subscript𝑨𝑝subscript𝑁𝑏O(\texttt{nnz}(\bm{A}_{p})N_{b})italic_O ( nnz ( bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ) italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) or O(NNb)𝑂𝑁subscript𝑁𝑏O(NN_{b})italic_O ( italic_N italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ).

Refer to caption
Figure 2: Schematic of the action of 𝑯𝑯\bm{H}bold_italic_H with streaming DFT/iDFT to transform between the Fourier and time domains.

Streaming DFT is indeed effective in reducing memory consumption; nevertheless, additional memory savings can be specifically achieved for real-valued LNS operators. In many cases, 𝑨psubscript𝑨𝑝\bm{A}_{p}bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT is real-valued, i.e., confined to N×Nsuperscript𝑁𝑁\mathbb{R}^{N\times N}blackboard_R start_POSTSUPERSCRIPT italic_N × italic_N end_POSTSUPERSCRIPT, yielding 𝑨^p,jsubscript^𝑨𝑝𝑗\hat{\bm{A}}_{p,j}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_j end_POSTSUBSCRIPT = 𝑨^¯p,jsubscript¯^𝑨𝑝𝑗\bar{\hat{\bm{A}}}_{p,-j}over¯ start_ARG over^ start_ARG bold_italic_A end_ARG end_ARG start_POSTSUBSCRIPT italic_p , - italic_j end_POSTSUBSCRIPT, where ()¯¯\bar{(\cdot)}over¯ start_ARG ( ⋅ ) end_ARG denotes the complex conjugate. Hence, 𝑨^p,jsubscript^𝑨𝑝𝑗\hat{\bm{A}}_{p,j}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_j end_POSTSUBSCRIPT with j0𝑗0j\geq 0italic_j ≥ 0 suffices to construct 𝑨psubscript𝑨𝑝\bm{A}_{p}bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT as

𝑨p(t)=𝑨^p,0+2e(j=1Nb/2𝑨^p,jeijωft),subscript𝑨𝑝𝑡subscript^𝑨𝑝02𝑒superscriptsubscript𝑗1subscript𝑁𝑏2subscript^𝑨𝑝𝑗superscript𝑒i𝑗subscript𝜔𝑓𝑡\bm{A}_{p}(t)=\hat{\bm{A}}_{p,0}+2\mathcal{R}e\left(\sum_{j=1}^{N_{b}/2}\hat{% \bm{A}}_{p,j}e^{\text{i}j\omega_{f}t}\right),bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_t ) = over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , 0 end_POSTSUBSCRIPT + 2 caligraphic_R italic_e ( ∑ start_POSTSUBSCRIPT italic_j = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT / 2 end_POSTSUPERSCRIPT over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_j end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT i italic_j italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT italic_t end_POSTSUPERSCRIPT ) , (5.2)

resulting in halving the number of Fourier coefficients of the LNS operator to Nb/2+1subscript𝑁𝑏21\lfloor N_{b}/2\rfloor+1⌊ italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT / 2 ⌋ + 1. Here, e𝑒\mathcal{R}ecaligraphic_R italic_e represents the real part.

Another opportunity to reduce memory usage for real-valued LNS matrices arises from the symmetry between positive and negative frequencies. Rewriting (3.3) for kωf𝑘subscript𝜔𝑓-k\omega_{f}- italic_k italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT yields

i(kωf)𝒒^kj=𝑨^k+j𝒒^j=𝒇^k,i𝑘subscript𝜔𝑓subscript^𝒒𝑘superscriptsubscript𝑗subscript^𝑨𝑘𝑗subscript^𝒒𝑗subscript^𝒇𝑘\text{i}(-k\omega_{f})\hat{\bm{q}}_{-k}-\sum_{j=-\infty}^{\infty}\hat{\bm{A}}_% {-k+j}\hat{\bm{q}}_{-j}=\hat{\bm{f}}_{-k},i ( - italic_k italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ) over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT - italic_k end_POSTSUBSCRIPT - ∑ start_POSTSUBSCRIPT italic_j = - ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - italic_k + italic_j end_POSTSUBSCRIPT over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT - italic_j end_POSTSUBSCRIPT = over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT - italic_k end_POSTSUBSCRIPT , (5.3)

and the complex conjugate version of (3.3) becomes

ikωf𝒒^¯kj=𝑨^¯kj𝒒^¯j=𝒇^¯k.i𝑘subscript𝜔𝑓subscript¯^𝒒𝑘superscriptsubscript𝑗subscript¯^𝑨𝑘𝑗subscript¯^𝒒𝑗subscript¯^𝒇𝑘-\text{i}k\omega_{f}\bar{\hat{\bm{q}}}_{k}-\sum_{j=-\infty}^{\infty}\bar{\hat{% \bm{A}}}_{k-j}\bar{\hat{\bm{q}}}_{j}=\bar{\hat{\bm{f}}}_{k}.- i italic_k italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT over¯ start_ARG over^ start_ARG bold_italic_q end_ARG end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - ∑ start_POSTSUBSCRIPT italic_j = - ∞ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT over¯ start_ARG over^ start_ARG bold_italic_A end_ARG end_ARG start_POSTSUBSCRIPT italic_k - italic_j end_POSTSUBSCRIPT over¯ start_ARG over^ start_ARG bold_italic_q end_ARG end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = over¯ start_ARG over^ start_ARG bold_italic_f end_ARG end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT . (5.4)

Both equations (5.3) and (5.4) yield the same output for a given 𝒇^¯k=𝒇^ksubscript¯^𝒇𝑘subscript^𝒇𝑘\bar{\hat{\bm{f}}}_{k}=\hat{\bm{f}}_{-k}over¯ start_ARG over^ start_ARG bold_italic_f end_ARG end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = over^ start_ARG bold_italic_f end_ARG start_POSTSUBSCRIPT - italic_k end_POSTSUBSCRIPT since 𝑨^¯kj=𝑨^k+jsubscript¯^𝑨𝑘𝑗subscript^𝑨𝑘𝑗\bar{\hat{\bm{A}}}_{k-j}=\hat{\bm{A}}_{-k+j}over¯ start_ARG over^ start_ARG bold_italic_A end_ARG end_ARG start_POSTSUBSCRIPT italic_k - italic_j end_POSTSUBSCRIPT = over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT - italic_k + italic_j end_POSTSUBSCRIPT, inducing the harmonic resolvent response and forcing modes containing 𝑼H,j=𝑼¯H,jsubscript𝑼𝐻𝑗subscript¯𝑼𝐻𝑗\bm{U}_{H,j}=\bar{\bm{U}}_{H,-j}bold_italic_U start_POSTSUBSCRIPT italic_H , italic_j end_POSTSUBSCRIPT = over¯ start_ARG bold_italic_U end_ARG start_POSTSUBSCRIPT italic_H , - italic_j end_POSTSUBSCRIPT and 𝑽H,j=𝑽¯H,jsubscript𝑽𝐻𝑗subscript¯𝑽𝐻𝑗\bm{V}_{H,j}=\bar{\bm{V}}_{H,-j}bold_italic_V start_POSTSUBSCRIPT italic_H , italic_j end_POSTSUBSCRIPT = over¯ start_ARG bold_italic_V end_ARG start_POSTSUBSCRIPT italic_H , - italic_j end_POSTSUBSCRIPT for j0𝑗0j\neq 0italic_j ≠ 0, respectively. Hence, we only keep Nω/2+1subscript𝑁𝜔21\lfloor N_{\omega}/2\rfloor+1⌊ italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT / 2 ⌋ + 1 Fourier coefficients of the forcing and response modes, reducing memory consumption by half when storing these dense matrices.

5.2 CPU benefits of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t

The computational cost of computing harmonic resolvent modes using RSVD-LU is predominantly determined by the LU decomposition of 𝑻𝑻\bm{T}bold_italic_T. In the case of resolvent analysis, the CPU scaling of the LU decomposition is O(N1.5)𝑂superscript𝑁1.5O(N^{1.5})italic_O ( italic_N start_POSTSUPERSCRIPT 1.5 end_POSTSUPERSCRIPT ) and O(N2)𝑂superscript𝑁2O(N^{2})italic_O ( italic_N start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) for two- and three-dimensional systems, respectively (Towne et al., 2022; Farghadan et al., 2023). When, in general, block matrix 𝑻𝑻\bm{T}bold_italic_T contains 𝑨^p,isubscript^𝑨𝑝𝑖\hat{\bm{A}}_{p,i}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_i end_POSTSUBSCRIPT terms, and yields a denser matrix than block diagonal with a complex sparsity pattern, the scaling is expected to be O((NωN)1.5)𝑂superscriptsubscript𝑁𝜔𝑁1.5O((N_{\omega}N)^{1.5})italic_O ( ( italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT italic_N ) start_POSTSUPERSCRIPT 1.5 end_POSTSUPERSCRIPT ) or O((NωN)2)𝑂superscriptsubscript𝑁𝜔𝑁2O((N_{\omega}N)^{2})italic_O ( ( italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT italic_N ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) or worse.

The cost of using RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t is directly tied to the cost of computing the actions of 𝑯𝑯\bm{H}bold_italic_H and 𝑯*superscript𝑯\bm{H}^{*}bold_italic_H start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT. In resolvent analysis, the total CPU cost is proportional to the state dimension N𝑁Nitalic_N. This cost can be broken down into three main components: (i)𝑖(i)( italic_i ) time-stepping, e.g., Adams-Bashforth methods, which scales as O(N)𝑂𝑁O(N)italic_O ( italic_N ) when 𝑨𝑨\bm{A}bold_italic_A is sparse, (ii)𝑖𝑖(ii)( italic_i italic_i ) creating forcing from Fourier space to the time domain, which scales as O(NNtNω)𝑂𝑁subscript𝑁𝑡subscript𝑁𝜔O(NN_{t}N_{\omega})italic_O ( italic_N italic_N start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT ), (iii)𝑖𝑖𝑖(iii)( italic_i italic_i italic_i ) taking the response from the time domain to Fourier space, which scales as O(NNω2)𝑂𝑁superscriptsubscript𝑁𝜔2O(NN_{\omega}^{2})italic_O ( italic_N italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ). Among these components, the time-stepping part is the most significant contributor to the overall cost. The CPU cost of harmonic resolvent analysis can be assessed similarly to resolvent analysis, with one exception. For periodic flows, the LNS operator varies over time, whereas it remains constant for statistically stationary flows. We showed in §§\lx@sectionsign§5.1 that the cost of creating LNS operators over time scales as O(NNb)𝑂𝑁subscript𝑁𝑏O(NN_{b})italic_O ( italic_N italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) for sparse matrices.

In summary, the CPU and memory costs of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t exhibit linear scaling with respect to the state dimension N𝑁Nitalic_N, regardless of whether the base flow is steady or periodic. Moreover, the dominant terms in the CPU cost are independent of the number of retained frequencies Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT. Both of these properties make the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm considerably more scalable than RSVD-LU for harmonic resolvent analysis.

6 Minimizing the CPU cost of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t

Similar to time stepping in the context of resolvent analysis, periodic systems may also experience a slow decay of transient response, which is undesirable, since we require the steady-state response in isolation to compute the action of the harmonic resolvent operator using time stepping. This phenomenon might be linked to instances when 𝑻𝑻\bm{T}bold_italic_T is near singularity. Regardless, in cases where the LNS equations are absolutely stable but exhibit slowly decaying modes, we propose a strategy that can effectively reduce the CPU cost of time stepping.

6.1 Stability analysis: Floquet theorem and transient response

The steady-state response of the LNS equations, subject to forcing as described in equation (3.1), is of interest for our analysis. In the case of a linear time-invariant system where 𝑨𝑨\bm{A}bold_italic_A is independent of time, the decay rate is controlled by the least-damped eigenvalue of 𝑨𝑨\bm{A}bold_italic_A. This decay rate can be estimated by integrating a homogeneous system over a sufficiently long period. However, for a linear time-periodic system, the decay rate is determined by the least-damped Floquet exponent.

Assuming 𝚽(t)𝚽𝑡\bm{\Phi}(t)bold_Φ ( italic_t ) is the fundamental solution of (3.1), the monodromy matrix is constructed as

𝑴=𝚽(0)1𝚽(T),𝑴𝚽superscript01𝚽𝑇\bm{M}=\bm{\Phi}(0)^{-1}\bm{\Phi}(T),bold_italic_M = bold_Φ ( 0 ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT bold_Φ ( italic_T ) , (6.1)

where T𝑇Titalic_T is the period of the flow. When 𝚽(0)=𝑰,𝚽(t)𝚽0𝑰𝚽𝑡\bm{\Phi}(0)=\bm{I},\bm{\Phi}(t)bold_Φ ( 0 ) = bold_italic_I , bold_Φ ( italic_t ) is referred to as the principal fundamental matrix, and the monodromy matrix simplifies to 𝚽(T)𝚽𝑇\bm{\Phi}(T)bold_Φ ( italic_T ). In other words, we evaluate the principal fundamental matrix at the end of the first period. The eigenvalues of 𝑴𝑴\bm{M}bold_italic_M, known as Floquet multipliers μjsubscript𝜇𝑗\mu_{j}italic_μ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT, allow us to determine the Floquet exponents λj=log(μj)/Tsubscript𝜆𝑗subscript𝜇𝑗𝑇\lambda_{j}=\log(\mu_{j})/Titalic_λ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = roman_log ( italic_μ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) / italic_T. The least-damped Floquet exponent has the smallest real part and it determines the decay rate of the transient response. If any mode is located in the unstable half-plane, i.e., e(λj)>0𝑒subscript𝜆𝑗0\mathcal{R}e(\lambda_{j})>0caligraphic_R italic_e ( italic_λ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) > 0, the system is globally unstable.

It is worth noting that the transient length remains independent of the steady-state period. This characteristic is particularly important as it ensures that the length of integration does not rely on T𝑇Titalic_T, thereby avoiding potential deterioration in the performance of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t for flows with low periodicity. In practice, both finding the principal fundamental matrix and determining the Floquet exponents can be computationally expensive, especially for large-scale systems. As with autonomous cases, it is possible to run a homogeneous simulation to analyze the long-term behavior of the transient response for periodic flows. This equivalence has been illustrated on a test case in §§\lx@sectionsign§7.

If 𝑻𝑻\bm{T}bold_italic_T is singular but all other modes are stable, then the Floquet exponent with smallest real part will be zero with d𝒒¯/dt^^𝑑bold-¯𝒒𝑑𝑡\widehat{d\bm{\bar{q}}/dt}over^ start_ARG italic_d overbold_¯ start_ARG bold_italic_q end_ARG / italic_d italic_t end_ARG as the corresponding Floquet mode. This can be seen from (3.12), where the phase shift direction is a non-trivial solution of the homogenous system. Leclercq & Sipp (2023) have also shown that d𝒒¯/dt𝑑bold-¯𝒒𝑑𝑡d\bm{\bar{q}}/dtitalic_d overbold_¯ start_ARG bold_italic_q end_ARG / italic_d italic_t is associated with a zero Floquet exponent under the assumption that the base flow satisfies the Navier-Stokes equations as in (3.11).

6.2 Efficient transient removal

Our strategy leverages the periodic nature of the steady-state part and the linear evolution of the transient part of the solution to directly compute and eliminate the undesired transient portion. For a given pair of solutions 𝒒1subscript𝒒1\bm{q}_{1}bold_italic_q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and 𝒒2subscript𝒒2\bm{q}_{2}bold_italic_q start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT at times t1subscript𝑡1t_{1}italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and t2=t1+Tsubscript𝑡2subscript𝑡1𝑇t_{2}=t_{1}+Titalic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_T, respectively, they can be expressed as a sum of their steady-state and transient components as

𝒒1subscript𝒒1\displaystyle\bm{q}_{1}bold_italic_q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT =𝒒s,1+𝒒t,1,absentsubscript𝒒𝑠1subscript𝒒𝑡1\displaystyle=\bm{q}_{s,1}+\bm{q}_{t,1},= bold_italic_q start_POSTSUBSCRIPT italic_s , 1 end_POSTSUBSCRIPT + bold_italic_q start_POSTSUBSCRIPT italic_t , 1 end_POSTSUBSCRIPT , (6.2)
𝒒2subscript𝒒2\displaystyle\bm{q}_{2}bold_italic_q start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT =𝒒s,2+𝒒t,2,absentsubscript𝒒𝑠2subscript𝒒𝑡2\displaystyle=\bm{q}_{s,2}+\bm{q}_{t,2},= bold_italic_q start_POSTSUBSCRIPT italic_s , 2 end_POSTSUBSCRIPT + bold_italic_q start_POSTSUBSCRIPT italic_t , 2 end_POSTSUBSCRIPT ,

where 𝒒t,1subscript𝒒𝑡1\bm{q}_{t,1}bold_italic_q start_POSTSUBSCRIPT italic_t , 1 end_POSTSUBSCRIPT and 𝒒t,2subscript𝒒𝑡2\bm{q}_{t,2}bold_italic_q start_POSTSUBSCRIPT italic_t , 2 end_POSTSUBSCRIPT represent the transient part which decays to zero as t𝑡t\to\inftyitalic_t → ∞ and 𝒒s,1subscript𝒒𝑠1\bm{q}_{s,1}bold_italic_q start_POSTSUBSCRIPT italic_s , 1 end_POSTSUBSCRIPT and 𝒒s,2subscript𝒒𝑠2\bm{q}_{s,2}bold_italic_q start_POSTSUBSCRIPT italic_s , 2 end_POSTSUBSCRIPT denote the steady-state part which evolves periodically. The time distance between two snapshots is one period, hence

𝒒s,2=𝒒s,1.subscript𝒒𝑠2subscript𝒒𝑠1\bm{q}_{s,2}=\bm{q}_{s,1}.bold_italic_q start_POSTSUBSCRIPT italic_s , 2 end_POSTSUBSCRIPT = bold_italic_q start_POSTSUBSCRIPT italic_s , 1 end_POSTSUBSCRIPT . (6.3)

Also, the evolution of the transient part can be expressed as

𝒒t,2=𝚽(T)𝒒t,1,subscript𝒒𝑡2𝚽𝑇subscript𝒒𝑡1\bm{q}_{t,2}=\bm{\Phi}(T)\bm{q}_{t,1},bold_italic_q start_POSTSUBSCRIPT italic_t , 2 end_POSTSUBSCRIPT = bold_Φ ( italic_T ) bold_italic_q start_POSTSUBSCRIPT italic_t , 1 end_POSTSUBSCRIPT , (6.4)

where 𝚽𝚽\bm{\Phi}bold_Φ is the principal fundamental matrix of (3.1). Simplifying (6.2), (6.3), and (6.4) leads to

(𝚽(T)𝑰)𝒒t,1=𝒃,𝚽𝑇𝑰subscript𝒒𝑡1𝒃(\bm{\Phi}(T)-\bm{I})\bm{q}_{t,1}=\bm{b},( bold_Φ ( italic_T ) - bold_italic_I ) bold_italic_q start_POSTSUBSCRIPT italic_t , 1 end_POSTSUBSCRIPT = bold_italic_b , (6.5)

where 𝒃=𝒒2𝒒1𝒃subscript𝒒2subscript𝒒1\bm{b}=\bm{q}_{2}-\bm{q}_{1}bold_italic_b = bold_italic_q start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - bold_italic_q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is known.

By obtaining 𝒒t,1subscript𝒒𝑡1\bm{q}_{t,1}bold_italic_q start_POSTSUBSCRIPT italic_t , 1 end_POSTSUBSCRIPT from solving (6.5), the steady-state solution can be recovered as 𝒒s,1=𝒒1𝒒t,1subscript𝒒𝑠1subscript𝒒1subscript𝒒𝑡1\bm{q}_{s,1}=\bm{q}_{1}-\bm{q}_{t,1}bold_italic_q start_POSTSUBSCRIPT italic_s , 1 end_POSTSUBSCRIPT = bold_italic_q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - bold_italic_q start_POSTSUBSCRIPT italic_t , 1 end_POSTSUBSCRIPT. The central challenge in removing the transient is the computational cost associated with solving the linear system in (6.5). Instead, we employ Petrov-Galerkin (or Galerkin) projection to obtain an approximate solution to (6.5) in a more cost-effective manner.

A low-dimensional representation of the transient part can be expressed as

𝒒t,1=ϕ𝜷1,subscript𝒒𝑡1bold-italic-ϕsubscript𝜷1\bm{q}_{t,1}=\bm{\phi}\bm{\beta}_{1},bold_italic_q start_POSTSUBSCRIPT italic_t , 1 end_POSTSUBSCRIPT = bold_italic_ϕ bold_italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , (6.6)

where ϕN×rbold-italic-ϕsuperscript𝑁𝑟\bm{\phi}\in\mathbb{C}^{N\times r}bold_italic_ϕ ∈ blackboard_C start_POSTSUPERSCRIPT italic_N × italic_r end_POSTSUPERSCRIPT is an orthonormal low-dimensional test basis with rNmuch-less-than𝑟𝑁r\ll Nitalic_r ≪ italic_N, and 𝜷1rsubscript𝜷1superscript𝑟\bm{\beta}_{1}\in\mathbb{C}^{r}bold_italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT represents the coefficients describing the transient response in this basis. Substituting (6.6) into (6.5), the linear system

(𝚽(T)𝑰)ϕ𝜷1=𝒃𝚽𝑇𝑰bold-italic-ϕsubscript𝜷1𝒃(\bm{\Phi}(T)-\bm{I})\bm{\phi}\bm{\beta}_{1}=\bm{b}( bold_Φ ( italic_T ) - bold_italic_I ) bold_italic_ϕ bold_italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = bold_italic_b (6.7)

is overdetermined. We use Petrov-Galerkin projection with a low-dimensional trial basis 𝝍N×r𝝍superscript𝑁𝑟\bm{\psi}\in\mathbb{C}^{N\times r}bold_italic_ψ ∈ blackboard_C start_POSTSUPERSCRIPT italic_N × italic_r end_POSTSUPERSCRIPT to close (6.7), yielding

𝑴~𝜷1=𝝍*𝒃,~𝑴subscript𝜷1superscript𝝍𝒃\tilde{\bm{M}}\bm{\beta}_{1}=\bm{\psi}^{*}\bm{b},over~ start_ARG bold_italic_M end_ARG bold_italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = bold_italic_ψ start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT bold_italic_b , (6.8)

where

𝑴~=𝝍*(𝚽(T)𝑰)ϕ~𝑴superscript𝝍𝚽𝑇𝑰bold-italic-ϕ\tilde{\bm{M}}=\bm{\psi}^{*}(\bm{\Phi}(T)-\bm{I})\bm{\phi}over~ start_ARG bold_italic_M end_ARG = bold_italic_ψ start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT ( bold_Φ ( italic_T ) - bold_italic_I ) bold_italic_ϕ (6.9)

is the map between coefficients. Solving (6.8) for 𝜷1subscript𝜷1\bm{\beta}_{1}bold_italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is inexpensive due to its reduced dimension, and from (6.6) the transient estimate is obtained as

𝒒t,1=ϕ(𝝍*ϕ𝑴~)1𝝍*𝒃.subscript𝒒𝑡1bold-italic-ϕsuperscriptsuperscript𝝍bold-italic-ϕ~𝑴1superscript𝝍𝒃\bm{q}_{t,1}=\bm{\phi}(\bm{\psi}^{*}\bm{\phi}-\tilde{\bm{M}})^{-1}\bm{\psi}^{*% }\bm{b}.bold_italic_q start_POSTSUBSCRIPT italic_t , 1 end_POSTSUBSCRIPT = bold_italic_ϕ ( bold_italic_ψ start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT bold_italic_ϕ - over~ start_ARG bold_italic_M end_ARG ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT bold_italic_ψ start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT bold_italic_b . (6.10)

The reduced operator 𝑴~~𝑴\tilde{\bm{M}}over~ start_ARG bold_italic_M end_ARG is obtained by integrating the columns of ϕbold-italic-ϕ\bm{\phi}bold_italic_ϕ for one period, giving 𝚽(T)ϕ𝚽𝑇bold-italic-ϕ\bm{\Phi}(T)\bm{\phi}bold_Φ ( italic_T ) bold_italic_ϕ, and then projecting (𝚽(T)𝑰)ϕ𝚽𝑇𝑰bold-italic-ϕ(\bm{\Phi}(T)-\bm{I})\bm{\phi}( bold_Φ ( italic_T ) - bold_italic_I ) bold_italic_ϕ against the columns of 𝝍𝝍\bm{\psi}bold_italic_ψ. This integration happens once and its CPU cost is equivalent to integrating the LNS equations for r𝑟ritalic_r periods. The analogous process occurs for the adjoint equations.

How should the test and trial bases be selected? We have found a test basis spanning the least-damped modes to be effective. Rather than determining these modes through an exhaustive Floquet analysis, we employ a homogenous simulation as illustrated in the top row of the flowchart in figure 3. By initiating a sufficiently long simulation from a normalized random initial condition, the system asymptotically converges to the least-damped modes. The longer the integration length, the lower-dimensional the space becomes. As demonstrated in a test case in §§\lx@sectionsign§7, the dimension of the test bases can, in some cases, be as small as a single column. Our test cases employ Galerkin projection with identical test and trial bases.

Refer to caption
Figure 3: Flowchart depicting the action of 𝑯𝑯\bm{H}bold_italic_H using time stepping (a) with efficient transient removal strategy and (b) with natural transient decay.

The obtained test basis effectively captures the transient response at a specific phase θ𝜃\thetaitalic_θ. Utilizing ϕbold-italic-ϕ\bm{\phi}bold_italic_ϕ and performing Galerkin projection, we obtain 𝑴~~𝑴\tilde{\bm{M}}over~ start_ARG bold_italic_M end_ARG. The time-stepping is then carried out for a sufficiently long duration to allow the initial transients to vanish before applying (6.8) to determine the transient at phase θ𝜃\thetaitalic_θ as shown in the middle row of the flowchart in figure 3. Once the steady-state response at the same phase is updated as 𝒒s,1=𝒒1𝒒t,1subscript𝒒𝑠1subscript𝒒1subscript𝒒𝑡1\bm{q}_{s,1}=\bm{q}_{1}-\bm{q}_{t,1}bold_italic_q start_POSTSUBSCRIPT italic_s , 1 end_POSTSUBSCRIPT = bold_italic_q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - bold_italic_q start_POSTSUBSCRIPT italic_t , 1 end_POSTSUBSCRIPT, it is used as a new initial condition, which is synchronized with the forcing and will not excite a transient response (within the span of the bases used to construct 𝑴~~𝑴\tilde{\bm{M}}over~ start_ARG bold_italic_M end_ARG). Then, integration for one period is sufficient, and Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT steady-state snapshots are collected as desired. The resulting steady-state snapshots are identical to those obtained by a prolonged wait in the case of natural decay, as illustrated in the bottom row of the flowchart in figure 3. This procedure is also applicable to the adjoint LNS equations. Given that the adjoint equations differ from the LNS equations, a new basis needs to be constructed for them. Implementing this strategy can reduce the integration length by a factor of 10 or more, depending on the desired accuracy.

7 Test cases

We assess the effectiveness of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t in periodic systems using two test cases. First, we use a modified Ginzburg-Landau equation to validate the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm and to illustrate the transient removal strategy. Second, we consider a periodic flow around an airfoil, similar to a test case from Padovan et al. (2020), to evaluate the accuracy and cost-savings of the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm compared to RSVD-LU.

7.1 Periodically varying complex Ginzburg-Landau equation

The one-dimensional complex Ginzburg-Landau equations is a widely used model for understanding and controlling the non-modal growth of instabilities in transitional and turbulent shear flows (Chomaz et al., 1988; Hunt & Crighton, 1991; Bagheri et al., 2009; Chen & Rowley, 2011; Cavalieri et al., 2019). Here, a modified system is used as an inexpensive test case to validate our algorithm. The original complex Ginzburg-Landau system follows the form of (2.1) with

𝒜=νx+γ2x2+μ(x),μ(x)=(μ0cμ2)+μ22x2,𝑩=𝑪=𝑰.formulae-sequence𝒜𝜈𝑥𝛾superscript2superscript𝑥2𝜇𝑥formulae-sequence𝜇𝑥subscript𝜇0superscriptsubscript𝑐𝜇2subscript𝜇22superscript𝑥2𝑩𝑪𝑰\begin{gathered}\mathcal{A}=-\nu\frac{\partial}{\partial x}+\gamma\frac{% \partial^{2}}{\partial x^{2}}+\mu(x),\\ \mu(x)=(\mu_{0}-c_{\mu}^{2})+\frac{\mu_{2}}{2}x^{2},\\ \bm{B}=\bm{C}=\bm{I}.\end{gathered}start_ROW start_CELL caligraphic_A = - italic_ν divide start_ARG ∂ end_ARG start_ARG ∂ italic_x end_ARG + italic_γ divide start_ARG ∂ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_ARG ∂ italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG + italic_μ ( italic_x ) , end_CELL end_ROW start_ROW start_CELL italic_μ ( italic_x ) = ( italic_μ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - italic_c start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) + divide start_ARG italic_μ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , end_CELL end_ROW start_ROW start_CELL bold_italic_B = bold_italic_C = bold_italic_I . end_CELL end_ROW (7.1)

Following Bagheri et al. (2009), we set cμ=0.2,μ2=0.01,γ=1i,formulae-sequencesubscript𝑐𝜇0.2formulae-sequencesubscript𝜇20.01𝛾1ic_{\mu}=0.2,\mu_{2}=-0.01,\gamma=1-\text{i},italic_c start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT = 0.2 , italic_μ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = - 0.01 , italic_γ = 1 - i , and ν=2+0.2i𝜈20.2i\nu=2+0.2\text{i}italic_ν = 2 + 0.2 i. This system is globally stable when μ0<μ0,cr0.3977subscript𝜇0subscript𝜇0𝑐𝑟0.3977\mu_{0}<\mu_{0,cr}\approx 0.3977italic_μ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT < italic_μ start_POSTSUBSCRIPT 0 , italic_c italic_r end_POSTSUBSCRIPT ≈ 0.3977 (Bagheri et al., 2009). By substituting μ0(t)=μ¯0+μpsin(ωftπ/2)subscript𝜇0𝑡subscript¯𝜇0subscript𝜇𝑝𝑠𝑖𝑛subscript𝜔𝑓𝑡𝜋2\mu_{0}(t)=\bar{\mu}_{0}+\mu_{p}sin(\omega_{f}t-\pi/2)italic_μ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( italic_t ) = over¯ start_ARG italic_μ end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_μ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT italic_s italic_i italic_n ( italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT italic_t - italic_π / 2 ) in place of μ0subscript𝜇0\mu_{0}italic_μ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, we transform the Ginzburg-Landau equations to a periodically varying system with fundamental frequency ωfsubscript𝜔𝑓\omega_{f}italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, following the form of (3.1). We set μ0=0.395subscript𝜇00.395\mu_{0}=0.395italic_μ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 0.395, μp=0.1subscript𝜇𝑝0.1\mu_{p}=0.1italic_μ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = 0.1, and ωf=0.1subscript𝜔𝑓0.1\omega_{f}=0.1italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = 0.1; the mean value of μ(t)𝜇𝑡\mu(t)italic_μ ( italic_t ) is equal to μ0subscript𝜇0\mu_{0}italic_μ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, whose value is close to the critical value μ0,crsubscript𝜇0𝑐𝑟\mu_{0,cr}italic_μ start_POSTSUBSCRIPT 0 , italic_c italic_r end_POSTSUBSCRIPT to promote significant growth. The periodic linear operators 𝑨p,jsubscript𝑨𝑝𝑗\bm{A}_{p,j}bold_italic_A start_POSTSUBSCRIPT italic_p , italic_j end_POSTSUBSCRIPT are constructed using a central finite-difference method for x[50,50]𝑥5050x\in[-50,50]italic_x ∈ [ - 50 , 50 ] with N=1000𝑁1000N=1000italic_N = 1000 grid points, and we set 𝑾=𝑰𝑾𝑰\bm{W}=\bm{I}bold_italic_W = bold_italic_I on account of the uniform grid.

Nine operators are built within the interval [0,T)0𝑇[0,T)[ 0 , italic_T ), with T=2π/ω062.83𝑇2𝜋subscript𝜔062.83T=2\pi/\omega_{0}\approx 62.83italic_T = 2 italic_π / italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ≈ 62.83, such that 𝑨p(t)=𝑨p(t+T)subscript𝑨𝑝𝑡subscript𝑨𝑝𝑡𝑇\bm{A}_{p}(t)=\bm{A}_{p}(t+T)bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_t ) = bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_t + italic_T ), before conducting a DFT to obtain 𝑨^psubscript^𝑨𝑝\hat{\bm{A}}_{p}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT. Figure 4(a) depicts the Frobenius norm of 𝑨^psubscript^𝑨𝑝\hat{\bm{A}}_{p}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT up to the fourth harmonic, normalized relative to the maximum norm. The spectrum reveals that only the mean and the first harmonic are active, as expected since μ0(t)subscript𝜇0𝑡\mu_{0}(t)italic_μ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( italic_t ) oscillate at a single frequency. Accordingly, 𝑨psubscript𝑨𝑝\bm{A}_{p}bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT can be reconstructed at any given time using 𝑨^p,0subscript^𝑨𝑝0\hat{\bm{A}}_{p,0}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , 0 end_POSTSUBSCRIPT, and 𝑨^p,±1subscript^𝑨𝑝plus-or-minus1\hat{\bm{A}}_{p,\pm 1}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , ± 1 end_POSTSUBSCRIPT, and the harmonic resolvent operator is constructed around Ωq¯={1,0,1}ωf,subscriptΩ¯𝑞101subscript𝜔𝑓\Omega_{\bar{q}}=\{-1,0,1\}\omega_{f},roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT = { - 1 , 0 , 1 } italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , i.e., Nb=3subscript𝑁𝑏3N_{b}=3italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 3. Notably, the first harmonic’s norm is several orders of magnitude smaller than that of the base flow. Nonetheless, it should not be disregarded, as we will elucidate its significance in subsequent discussions.

Refer to caption
Figure 4: Ginzburg-Landau test case: (a) the normalized Frobenius norm of 𝑨^p,ωsubscript^𝑨𝑝𝜔\hat{\bm{A}}_{p,\omega}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_ω end_POSTSUBSCRIPT up to the fourth harmonic. (b) The norm of the transient response over time (blue) along with the expected decay rate from Floquet analysis (red).

An essential initial step involves ensuring the stability of 𝑨psubscript𝑨𝑝\bm{A}_{p}bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT. Typically, this is achieved by integrating the homogeneous system, i.e., integrating (3.1) with zero forcing, starting from a normalized random initial condition. However, the compact size of this system allows us to validate the time-stepping approach for computing the least-damped decaying mode against a Floquet stability analysis. The least-damped Floquet exponent, computed as λl=0.00210.0477isubscript𝜆𝑙0.00210.0477i\lambda_{l}=-0.0021-0.0477\text{i}italic_λ start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT = - 0.0021 - 0.0477 i, is expected to govern the decay rate of the transient response. Figure 4(b) displays the norm of snapshots of the homogeneous system response over time, along with a reference line representing eλltsuperscript𝑒subscript𝜆𝑙𝑡e^{\lambda_{l}t}italic_e start_POSTSUPERSCRIPT italic_λ start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT italic_t end_POSTSUPERSCRIPT. The natural decay rate aligns with the reference line, as expected, ensuring that the transient run will ultimately converge to the least-damped Floquet mode. Additionally, the system is not singular, as the transient dynamics never reach a naturally stable state, and none of the Floquet exponents have a zero real value.

Before proceeding to the computation of harmonic resolvent modes and gains using RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t and RSVD-LU, the transient removal strategy is demonstrated, and computing the actions of 𝑯𝑯\bm{H}bold_italic_H and 𝑯*superscript𝑯\bm{H}^{*}bold_italic_H start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT are validated for a given random forcing containing Ωq{10,9,,9,10}ωfsubscriptΩ𝑞109910subscript𝜔𝑓\Omega_{q}\in\{-10,-9,...,9,10\}\omega_{f}roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT ∈ { - 10 , - 9 , … , 9 , 10 } italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, i.e., ω[1,1]𝜔11\omega\in[-1,1]italic_ω ∈ [ - 1 , 1 ] with Δω=0.1Δ𝜔0.1\Delta\omega=0.1roman_Δ italic_ω = 0.1. The responses have been computed up to the 20thsuperscript20𝑡20^{th}20 start_POSTSUPERSCRIPT italic_t italic_h end_POSTSUPERSCRIPT harmonic, i.e., ω[2,2]𝜔22\omega\in[-2,2]italic_ω ∈ [ - 2 , 2 ], using both time stepping and directly in Fourier space as outlined in (3.7). We used a 4thsuperscript4𝑡4^{th}4 start_POSTSUPERSCRIPT italic_t italic_h end_POSTSUPERSCRIPT order Runge–Kutta (RK4) integration scheme and a time step of dt=0.001𝑑𝑡0.001dt=0.001italic_d italic_t = 0.001 and Tt=15000subscript𝑇𝑡15000T_{t}=15000italic_T start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = 15000 for this purpose.

Figure 5(a) depicts the spectrum of response norms. In order to highlight the substantial difference in output generated by the harmonic resolvent operator around the base flow (Ωq¯={0}ωf,Nb=1formulae-sequencesubscriptΩ¯𝑞0subscript𝜔𝑓subscript𝑁𝑏1\Omega_{\bar{q}}=\{0\}\omega_{f},N_{b}=1roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT = { 0 } italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 1), the norm of the responses for the same input forcing is also presented. Figure 5(b) displays the relative errors. The harmonic resolvent with Nb=1subscript𝑁𝑏1N_{b}=1italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 1 produces inaccurate results across the entire spectrum and has zero response for |ω|>1𝜔1|\omega|>1| italic_ω | > 1 since the modes at different frequencies are entirely decoupled. Therefore, neglecting 𝑨^p,±1subscript^𝑨𝑝plus-or-minus1\hat{\bm{A}}_{p,\pm 1}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , ± 1 end_POSTSUBSCRIPT is impractical, as mentioned earlier, and induces significant alterations in the harmonic resolvent modes and gains. On the other hand, the time-stepping output exhibits almost machine-precision accuracy within |ω|1𝜔1|\omega|\leq 1| italic_ω | ≤ 1, and its accuracy diminishes as response norms decrease within |ω|>1𝜔1|\omega|>1| italic_ω | > 1. The validation of 𝑯*superscript𝑯\bm{H}^{*}bold_italic_H start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT follows a similar procedure but is omitted here for brevity.

Refer to caption
Figure 5: Ginzburg-Landau test case: (a) the norms of the Fourier space response for Nb=3subscript𝑁𝑏3N_{b}=3italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 3 (black) and Nb=1subscript𝑁𝑏1N_{b}=1italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 1 (blue), along with the norm of the steady-state response obtained via time-stepping (red). (b) The relative errors of the norms, with the norms from Fourier space with Nb=3subscript𝑁𝑏3N_{b}=3italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 3 (black line in (a)) serving as the reference.

The transient norm decay rate, as shown in figure 4(b), follows e0.0021tsuperscript𝑒0.0021𝑡e^{-0.0021t}italic_e start_POSTSUPERSCRIPT - 0.0021 italic_t end_POSTSUPERSCRIPT. This indicates that approximately 40 periods are necessary for the transient norm to decay to 1%. However, we can significantly reduce this duration by employing our transient removal strategy. To begin, we precompute the test basis by conducting a sufficiently long homogeneous simulation, and we find that a single mode suffices. Next, we integrate the orthogonalized basis for one period to obtain M~~𝑀\tilde{M}over~ start_ARG italic_M end_ARG and complete the preprocessing step.

Employing the same forcing as the validation case, we obtain the responses in time at the identical phase (initiated at t=0𝑡0t=0italic_t = 0 or θ=0𝜃0\theta=0italic_θ = 0 with a time interval of Δt=TΔ𝑡𝑇\Delta t=Troman_Δ italic_t = italic_T), and compare them with the solutions after the removal of transients. Figure 6(a) presents the norm of the responses, which illustrates the effectiveness of our strategy commencing from the second period. This plot suggests that after two periods using our transient removal strategy with Galerkin projection, we obtain an accurate steady-state snapshot which can be used as the synchronized initial condition for the forced equations. Figure 6(b) demonstrates that the snapshots ultimately align perfectly with the updated snapshot. Hence, using our strategy, a total of three periods are required – two periods before transient removal and one period after the initial condition is obtained – to acquire all Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT steady-state snapshots, a 10-fold speed-up compared to the natural decay. A similar observation was made regarding the adjoint equations. In brief, our strategy can significantly reduce computational costs, potentially by one or more orders of magnitude, depending on the desired level of accuracy.

Refer to caption
Figure 6: Ginzburg-Landau test case: (a) the response norms before (black) and after (red) transient removal at the same phase, i.e., snapshots with Δt=TΔ𝑡𝑇\Delta t=Troman_Δ italic_t = italic_T interval. (b) Comparison of the normalized response at the second period in blue, the 50thsuperscript50𝑡50^{th}50 start_POSTSUPERSCRIPT italic_t italic_h end_POSTSUPERSCRIPT period in black, and the second period after transient removal in red.

Finally, RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t employing an RK4 integration scheme with dt=0.003𝑑𝑡0.003dt=0.003italic_d italic_t = 0.003 and Tt=2Tsubscript𝑇𝑡2𝑇T_{t}=2Titalic_T start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = 2 italic_T, is carried out along with our efficient transient removal strategy to compute the harmonic resolvent modes for k=5𝑘5k=5italic_k = 5 and q=1𝑞1q=1italic_q = 1. To establish a reference, the harmonic resolvent modes are also computed using RSVD-LU with an equivalent number of test vectors and power iterations. Figure 7(a) illustrates that RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t computes the five leading gains identically to RSVD-LU. The gain relative error in figure 7(b) confirms that relative errors remain below 109superscript10910^{-9}10 start_POSTSUPERSCRIPT - 9 end_POSTSUPERSCRIPT across all modes. The inner products of response and forcing modes, computed via RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t and RSVD-LU, demonstrate parallel directions as the relative errors remain below 108superscript10810^{-8}10 start_POSTSUPERSCRIPT - 8 end_POSTSUPERSCRIPT across all modes. The inner-product error between two unit-norm vectors 𝒗1subscript𝒗1\bm{v}_{1}bold_italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and 𝒗2subscript𝒗2\bm{v}_{2}bold_italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is defined as

eip=1𝒗𝟏,𝒗𝟐.subscript𝑒𝑖𝑝1subscript𝒗1subscript𝒗2e_{ip}=1-\langle\bm{\bm{v}_{1}},\bm{v_{2}}\rangle.italic_e start_POSTSUBSCRIPT italic_i italic_p end_POSTSUBSCRIPT = 1 - ⟨ bold_italic_v start_POSTSUBSCRIPT bold_1 end_POSTSUBSCRIPT , bold_italic_v start_POSTSUBSCRIPT bold_2 end_POSTSUBSCRIPT ⟩ . (7.2)
Refer to caption
Figure 7: Ginzburg-Landau test case: (a) the five leading gains using RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t (blue) and RSVD-LU (red). (b) The corresponding gain relative error (purple) and relative inner product errors (7.2) between the response modes (cyan) and the forcing modes (green) computed via RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t and RSVD-LU.

7.2 Flow over an airfoil

Our second test case consists of the flow over a NACA0012 airfoil at a low Reynolds number of Re=200𝑅𝑒200Re=200italic_R italic_e = 200 and a steep angle of attack of α=20𝛼superscript20\alpha=20^{\circ}italic_α = 20 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT, which is dominated by periodic motions. This problem serves as a benchmark for computational cost and accuracy comparisons. A direct numerical simulation is conducted using the “CharLES” compressible flow solver. To mimic the incompressible simulations by Padovan et al. (2020), we set the Mach number to 0.05. The simulation employs a C-shaped mesh with a total of 62,000 cells. The leading edge of the airfoil is located at the origin (x/Lc,y/Lc)=(0,0)𝑥subscript𝐿𝑐𝑦subscript𝐿𝑐00(x/L_{c},y/L_{c})=(0,0)( italic_x / italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT , italic_y / italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) = ( 0 , 0 ), where Lc=1subscript𝐿𝑐1L_{c}=1italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT = 1 is the chord length. The computational domain spans x/Lc×y/Lc[49,50]×[50,50]𝑥subscript𝐿𝑐𝑦subscript𝐿𝑐49505050x/L_{c}\times y/L_{c}\in[-49,50]\times[-50,50]italic_x / italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT × italic_y / italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ∈ [ - 49 , 50 ] × [ - 50 , 50 ]. A constant time step of ΔtU/Lc=6.88×105Δ𝑡subscript𝑈subscript𝐿𝑐6.88superscript105\Delta tU_{\infty}/L_{c}=6.88\times 10^{-5}roman_Δ italic_t italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT / italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT = 6.88 × 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT is used, corresponding to a Courant-Friedrichs-Lewy number of 0.91, where Usubscript𝑈U_{\infty}italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT is the inflow streamwise velocity. Integration continues for a sufficient duration until the flow reaches a periodic state. Figure 8(a) displays the power spectral density computed from the transverse velocity at (x/Lc,y/Lc)=(3.0,0.43)𝑥subscript𝐿𝑐𝑦subscript𝐿𝑐3.00.43(x/L_{c},y/L_{c})=(3.0,-0.43)( italic_x / italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT , italic_y / italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) = ( 3.0 , - 0.43 ), where a pronounced vortex shedding occurs behind the trailing edge. The shedding frequency is Stf=0.114𝑆subscript𝑡𝑓0.114St_{f}=0.114italic_S italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = 0.114, where the Strouhal number is defined as St=ωLcsin(α)2πU𝑆𝑡𝜔subscript𝐿𝑐𝑠𝑖𝑛𝛼2𝜋subscript𝑈St=\frac{\omega L_{c}sin(\alpha)}{2\pi U_{\infty}}italic_S italic_t = divide start_ARG italic_ω italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT italic_s italic_i italic_n ( italic_α ) end_ARG start_ARG 2 italic_π italic_U start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT end_ARG. The consistency between the dominant frequency identified in the power spectral density and obtained from our linearized code has been confirmed in our previous work (Jung et al., 2023).

Refer to caption
Figure 8: Airfoil test case: (a) the PSD spectrum based on transverse velocity at (x/Lc,y/Lc)=(3.0,0.43)𝑥subscript𝐿𝑐𝑦subscript𝐿𝑐3.00.43(x/L_{c},y/L_{c})=(3.0,-0.43)( italic_x / italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT , italic_y / italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) = ( 3.0 , - 0.43 ). (b) The normalized Frobenius norm of 𝑨^p,Stsubscript^𝑨𝑝𝑆𝑡\hat{\bm{A}}_{p,St}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_S italic_t end_POSTSUBSCRIPT up to the eighth harmonic.

The linearized operators are constructed at 100 time points within T=2π/Stf55𝑇2𝜋𝑆subscript𝑡𝑓55T=2\pi/St_{f}\approx 55italic_T = 2 italic_π / italic_S italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ≈ 55. Performing a DFT on the 𝑨isubscript𝑨𝑖\bm{A}_{i}bold_italic_A start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, we generate 100 LNS operators 𝑨^jsubscript^𝑨𝑗\hat{\bm{A}}_{j}over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT in Fourier space to be used for harmonic resolvent analysis. The Frobenius norms 𝑨^p,StFsubscriptnormsubscript^𝑨𝑝𝑆𝑡𝐹||\hat{\bm{A}}_{p,St}||_{F}| | over^ start_ARG bold_italic_A end_ARG start_POSTSUBSCRIPT italic_p , italic_S italic_t end_POSTSUBSCRIPT | | start_POSTSUBSCRIPT italic_F end_POSTSUBSCRIPT, depicted in figure 8, indicate that 𝑨p(t)subscript𝑨𝑝𝑡\bm{A}_{p}(t)bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_t ) can be accurately reconstructed using up to the 5th𝑡{}^{th}start_FLOATSUPERSCRIPT italic_t italic_h end_FLOATSUPERSCRIPT harmonic. Given that the linearized operator 𝑨p(t)subscript𝑨𝑝𝑡\bm{A}_{p}(t)bold_italic_A start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_t ) is real-valued for this problem, we retained only Nb/2+1=6subscript𝑁𝑏216\lfloor N_{b}/2\rfloor+1=6⌊ italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT / 2 ⌋ + 1 = 6 coefficients, i.e., the zeroth and 5 positive harmonics. For time stepping, dt=0.0045𝑑𝑡0.0045dt=0.0045italic_d italic_t = 0.0045 is chosen to ensure the stability and accuracy of the RK4 integration scheme. The input and output perturbation frequency range spans up to the 7thsuperscript7𝑡7^{th}7 start_POSTSUPERSCRIPT italic_t italic_h end_POSTSUPERSCRIPT harmonic, i.e., Nω=15subscript𝑁𝜔15N_{\omega}=15italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT = 15. The domain of interest is x/Lc×y/Lc[4,12]×[2.5,2.5]𝑥subscript𝐿𝑐𝑦subscript𝐿𝑐4122.52.5x/L_{c}\times y/L_{c}\in[-4,12]\times[-2.5,2.5]italic_x / italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT × italic_y / italic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ∈ [ - 4 , 12 ] × [ - 2.5 , 2.5 ], identical to that in Padovan et al. (2020). We seek optimal forcing and response under the Chu energy norm (Chu, 1965), which has been used in several previous studies (Towne et al., 2018; Schmidt et al., 2018; Heidt & Colonius, 2023).

A homogeneous simulation of the time-periodic system exhibits a slow decay rate, so we employ the transient removal strategy. Three snapshots constitute the test basis, obtained after a sufficiently long time interval where most initial transients are eliminated. A random forcing, encompassing the set Ωq{7,6,,6,7}StfsubscriptΩ𝑞7667𝑆subscript𝑡𝑓\Omega_{q}\in\{-7,-6,...,6,7\}St_{f}roman_Ω start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT ∈ { - 7 , - 6 , … , 6 , 7 } italic_S italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT frequencies, is applied to the LNS equations for over 30 periods. The snapshot norms slowly approach towards the steady-state norm but remain far from converging, as illustrated in figure 9. Utilizing our strategy, the relative norm error falls below the 1% threshold after 20-30 periods in most cases with different random forcings. The efficacy of our strategy is further emphasized in figure 9(b), where the 1% relative error is achieved before 10 periods for the optimal forcing (from RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t output). Ultimately, we set Tt=29Tsubscript𝑇𝑡29𝑇T_{t}=29Titalic_T start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT = 29 italic_T and conducted our simulations for a total duration of 30 periods to compute the actions of 𝑯𝑯\bm{H}bold_italic_H and 𝑯*superscript𝑯\bm{H}^{*}bold_italic_H start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT. Extrapolating the natural decay rate suggests that, in the absence of our transient-removal strategy, the norms reach the 1% threshold after around 2000 periods, demonstrating over a 60-fold acceleration in time stepping and overall algorithm performance with our strategy. This observation holds true for the adjoint equations as well.

Refer to caption
Figure 9: Airfoil test case: (a) the response norms before (black) and after (red) transient removal, and the true steady-state norm (blue), at the same phase, i.e., snapshots with Δt=TΔ𝑡𝑇\Delta t=Troman_Δ italic_t = italic_T interval, for a random forcing. (b) The relative error between steady-state response norm and the response norms before (black) and after (red) transient removal.

The number of test vectors is set to k=5𝑘5k=5italic_k = 5, and q=2𝑞2q=2italic_q = 2 power iteration proves sufficient for the convergence of both gains and modes. The suboptimal forcing and response modes are shown in figure 10. The results from RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t closely align with the existing data obtained from RSVD-LU by Padovan et al. (2020), despite variations in the CFD solver, boundary conditions, domain setup, and energy norm. The gain plot in figure 11(a) exhibits a similar pattern to Padovan et al. (2020), with the exception that we have retained the optimal gain associated with the phase shift (the exact values differ due to differences in the problem setup). We noted that the leading mode and gain, i.e., the mode associated with the phase shift, converged without power iterations due to a substantial two-orders-of-magnitude gap between the optimal and suboptimal gains.

Refer to caption
Figure 10: Airfoil test case: real part of the vorticity field computed from (a, c, e, g) the input mode and (b, d, f, h) the output mode associated with the first suboptimal gain.

From a computational standpoint, a fair comparison between the RSVD-LU and RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithms is feasible when both utilize the same parameters. However, the use of Nb=11subscript𝑁𝑏11N_{b}=11italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 11 proves to be excessively memory-intensive for the RSVD-LU algorithm, exceeding the available 3.5 TB of memory on our cluster. The CPU and memory scaling plots in figure 11(b) and (c), respectively, depict the LU decomposition of 𝑻𝑻\bm{T}bold_italic_T with Nb=3subscript𝑁𝑏3N_{b}=3italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 3, maintaining a constant N𝑁Nitalic_N while varying the number of blocks Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT from 5 to 15 with ΔNω=2Δsubscript𝑁𝜔2\Delta N_{\omega}=2roman_Δ italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT = 2. On the same plots, we present the cost of computing the action of 𝑯𝑯\bm{H}bold_italic_H on a vector using time-stepping. The total duration is set to 30 periods to obtain an accurate solution. We only vary Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT while keeping Nb=3subscript𝑁𝑏3N_{b}=3italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 3, the overall cost of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t remains constant and unaffected by changes in Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT. This implies that the creation of LNS operators and the time-stepping process incur significantly higher costs compared to the transformations between Fourier space and the time domain for forcing and response. The memory of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t to store LNS operators remains independent of Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT, as expected (see §§\lx@sectionsign§5.1), while storing 𝑸𝑸\bm{Q}bold_italic_Q and 𝑭𝑭\bm{F}bold_italic_F matrices grows linearly with number of frequencies Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT.

RSVD-LU is estimated to require 1543 CPU-hours for the LU decomposition of 𝑻𝑻\bm{T}bold_italic_T, and an additional 15 CPU-hours for solving the LU-decomposed system for each test vector, yielding a total cost of CPURSVD-LU1543+15×5×2×2=1843subscriptCPURSVD-LU1543155221843\text{CPU}_{\text{{RSVD-LU}}}\approx 1543+15\times 5\times 2\times 2=1843CPU start_POSTSUBSCRIPT RSVD-LU end_POSTSUBSCRIPT ≈ 1543 + 15 × 5 × 2 × 2 = 1843 CPU-hours for k=5,q=1formulae-sequence𝑘5𝑞1k=5,q=1italic_k = 5 , italic_q = 1. On the other hand, employing RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t with the aforementioned time-stepping parameters and Nb=11subscript𝑁𝑏11N_{b}=11italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = 11 and Nω=15subscript𝑁𝜔15N_{\omega}=15italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT = 15 incurs a cost of approximately 7 CPU-hours per period for a test vector, resulting in a total cost of CPURSVD-Δt30×7×5×2×2=4200subscriptCPURSVD-Δt3075224200\text{CPU}_{\text{{RSVD-$\Delta t$}}}\approx 30\times 7\times 5\times 2\times 2% =4200CPU start_POSTSUBSCRIPT RSVD- roman_Δ italic_t end_POSTSUBSCRIPT ≈ 30 × 7 × 5 × 2 × 2 = 4200 CPU-hours. The cost of QR decomposition and the final SVD are ignored as they are orders of magnitude faster. In terms of memory consumption, RSVD-LU peaks at RAMRSVD-LU2036GBsubscriptRAMRSVD-LU2036𝐺𝐵\text{RAM}_{\text{RSVD-LU}}\approx 2036GBRAM start_POSTSUBSCRIPT RSVD-LU end_POSTSUBSCRIPT ≈ 2036 italic_G italic_B for the LU decomposition of 𝑻𝑻\bm{T}bold_italic_T. RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t , on the other hand, stores Nb/2+1=6subscript𝑁𝑏216\lfloor N_{b}/2\rfloor+1=6⌊ italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT / 2 ⌋ + 1 = 6 sparse matrices, each of size 0.4 GB, and three dense matrices of size Nk(Nω/2+1)=313630×5×8𝑁𝑘subscript𝑁𝜔2131363058Nk(\lfloor N_{\omega}/2\rfloor+1)=313630\times 5\times 8italic_N italic_k ( ⌊ italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT / 2 ⌋ + 1 ) = 313630 × 5 × 8, totaling RAMRSVD-Δt0.4×6+0.185×33GBsubscriptRAMRSVD-Δt0.460.18533𝐺𝐵\text{RAM}_{\text{{RSVD-$\Delta t$}}}\approx 0.4\times 6+0.185\times 3\approx 3GBRAM start_POSTSUBSCRIPT RSVD- roman_Δ italic_t end_POSTSUBSCRIPT ≈ 0.4 × 6 + 0.185 × 3 ≈ 3 italic_G italic_B. This translates to a memory saving of approximately three orders of magnitude, even with an unbalanced number of base frequencies. Overcoming the memory consumption hurdle, which is typically the limiting factor in practice, RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t emerges as a viable tool for analyzing larger-scale flows compared to RSVD-LU.

Refer to caption
Figure 11: Airfoil test case: (a) the five leading gains using RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t . (b) The CPU-hour, and (c) memory usage scaling of RSVD-LU (red) and RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t (blue) to compute the action of 𝑯𝑯\bm{H}bold_italic_H onto a vector, i.e., k=1𝑘1k=1italic_k = 1. The memory usage of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t is decomposed into memory required to store LNS operators (solid) and forcing and response matrices (dashed).

8 Conclusions

This paper presents an extension of the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm that was originally developed for resolvent analysis of steady base flows to handle harmonic resolvent analysis of periodic flows. Specifically, we demonstrate that the time stepping technique employed within RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t can effectively replace the actions of 𝑯𝑯\bm{H}bold_italic_H and its complex conjugate 𝑯*superscript𝑯\bm{H}^{*}bold_italic_H start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT in Fourier space. In terms of CPU cost, the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm exhibits a scaling of O(N)𝑂𝑁O(N)italic_O ( italic_N ) for both resolvent and harmonic resolvent analyses. This offers a significant advantage, considering that the LU decomposition of 𝑻𝑻\bm{T}bold_italic_T scales as O((NωN)c)𝑂superscriptsubscript𝑁𝜔𝑁𝑐O((N_{\omega}N)^{c})italic_O ( ( italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT italic_N ) start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT ) with c1.5𝑐1.5c\geq 1.5italic_c ≥ 1.5. Regarding memory usage, our algorithm only stores relevant matrices in Fourier space and exhibits O(NNω)𝑂𝑁subscript𝑁𝜔O(NN_{\omega})italic_O ( italic_N italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT ) scaling; in contrast, the memory peak of LU decomposition of 𝑻𝑻\bm{T}bold_italic_T empirically scales with O((NωN)1.5)𝑂superscriptsubscript𝑁𝜔𝑁1.5O((N_{\omega}N)^{1.5})italic_O ( ( italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT italic_N ) start_POSTSUPERSCRIPT 1.5 end_POSTSUPERSCRIPT ) or worse. One difference between applying RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t to resolvent and harmonic resolvent analyses lies in the necessity to update the LNS operators during the time-stepping process for the latter. These operators are efficiently generated on the fly from their Nbsubscript𝑁𝑏N_{b}italic_N start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT Fourier components.

The error sources in our algorithm align with those in resolvent analysis, extensively investigated in Farghadan et al. (2023). A unique contribution of this paper is the introduction of a novel transient removal strategy for harmonic resolvent analysis. While reminiscent of our approach for resolvent operators, the challenge in harmonic resolvent analysis lies in the intertwining of all retained frequencies. Our strategy takes advantage of the differing evolution of the steady-state and transient components of the response and Petrov-Galrkin or Galerkin projections.

A validation of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t against RSVD-LU is conducted using a periodic Ginzburg-Landau system. Additionally, we verify the governing role of the Floquet exponent in determining the decay rate of the least-damped mode of the system. Extending the application of our algorithm, we analyze a two-dimensional flow passing an airfoil, providing insights into the CPU and memory complexities. Despite dealing with a mid-sized flow scenario, a substantial memory gap persists between RSVD-LU and RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithms. The computed forcing and response modes corresponding to the first suboptimal gain closely resemble those obtained by Padovan et al. (2020). The adaptation of the transient removal strategy for these test cases significantly enhanced the performance of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t, resulting in 10-fold speed-up for the Ginzburg-Landau problem and 60-fold speed-up for the airfoil to reach a 1% relative error. The speed-up is even greater for lower error tolerances.

Moreover, our algorithm exhibits versatility, accommodating non-identity weight, input, and output matrices. This capability extends to computing modes for the modified harmonic resolvent operator, and in particular, the analysis of cross-frequency amplification mechanisms via 𝑯ω2,ω1subscript𝑯subscript𝜔2subscript𝜔1\bm{H}_{\omega_{2},\omega_{1}}bold_italic_H start_POSTSUBSCRIPT italic_ω start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT. Our algorithm tackles the computation of subharmonic resolvent modes if desired. Implementation of the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t algorithm within Petsc (Balay et al., 2019) and Slepc (Hernandez et al., 2005) environments leverage parallel computations for enhanced efficiency. Our time-stepping approach allows for a matrix-free application. This can be implemented using any code equipped with linear direct and adjoint capabilities, bypassing the explicit formation of 𝑻𝑻\bm{T}bold_italic_T (de Pando et al., 2012; Martini et al., 2021). Finally, the time-stepping within our algorithm can also be used along with other SVD algorithms, e.g., Arnoldi and power iteration, if desired.

In turbulent flows, where the state dimension N𝑁Nitalic_N can become very large due to higher resolution requirements, CPU cost and memory requirements can swiftly impose constraints on the applicability of RSVD-LU. This limitation applies even to steady problems and is further exacerbated for harmonic resolvent analysis due to the inflated frequency-domain operators necessitated by triadic frequency coupling. Our algorithm circumvents this issue by strategically operating in the time domain, avoiding the need for limiting operations like LU decomposition, leading to linear cost scaling. Because of this key distinction, the RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t could enable harmonic resolvent analysis of previous intractable turbulent flows.

Acknowledgements

This work was funded in part by Air Force Office of Scientific Research (AFOSR) grant no. FA9550-20-1-0214 and by a Catalyst Grant from the Michigan Institute for Computational Discovery and Engineering (MICDE). We acknowledge the University of Michigan’s Great Lakes cluster for providing the essential computational resources to conduct all the simulations in this study.

Appendix A RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t for the subharmonic resolvent operator

In §§\lx@sectionsign§3.5, we provided an overview of subharmonic resolvent analysis. In this appendix, we briefly outline the application of RSVD-ΔtΔ𝑡\Delta troman_Δ italic_t in computing subharmonic resolvent modes and gains. Consider the frequency of interest as γΩγ𝛾subscriptΩ𝛾\gamma\in\Omega_{\gamma}italic_γ ∈ roman_Ω start_POSTSUBSCRIPT italic_γ end_POSTSUBSCRIPT. This set specifies the perturbation frequency, while the base flow frequency content is confined to Ωq¯subscriptΩ¯𝑞\Omega_{\bar{q}}roman_Ω start_POSTSUBSCRIPT over¯ start_ARG italic_q end_ARG end_POSTSUBSCRIPT.

To compute the actions of 𝑯𝑯\bm{H}bold_italic_H and 𝑯*superscript𝑯\bm{H}^{*}bold_italic_H start_POSTSUPERSCRIPT * end_POSTSUPERSCRIPT using time-stepping, we must adhere to both the base flow frequency, enforcing a duration of T=2π/ωf𝑇2𝜋subscript𝜔𝑓T=2\pi/\omega_{f}italic_T = 2 italic_π / italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, and the perturbation frequency, enforcing a duration of Tp=2π/γsubscript𝑇𝑝2𝜋𝛾T_{p}=2\pi/\gammaitalic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = 2 italic_π / italic_γ, in order to obtain Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT steady-state solutions to (3.1). Thus, we need to integrate for Tsubsubscript𝑇𝑠𝑢𝑏T_{sub}italic_T start_POSTSUBSCRIPT italic_s italic_u italic_b end_POSTSUBSCRIPT such that Tsub/Tsubscript𝑇𝑠𝑢𝑏𝑇T_{sub}/T\in\mathbb{N}italic_T start_POSTSUBSCRIPT italic_s italic_u italic_b end_POSTSUBSCRIPT / italic_T ∈ blackboard_N and Tsub/Tpsubscript𝑇𝑠𝑢𝑏subscript𝑇𝑝T_{sub}/T_{p}\in\mathbb{N}italic_T start_POSTSUBSCRIPT italic_s italic_u italic_b end_POSTSUBSCRIPT / italic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ∈ blackboard_N, during which Nωsubscript𝑁𝜔N_{\omega}italic_N start_POSTSUBSCRIPT italic_ω end_POSTSUBSCRIPT equidistant snapshots are saved. For instance, if we consider γ=ωf/5𝛾subscript𝜔𝑓5\gamma=\omega_{f}/5italic_γ = italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 5, requiring Tp=2π/(ωf/5)=5Tsubscript𝑇𝑝2𝜋subscript𝜔𝑓55𝑇T_{p}=2\pi/(\omega_{f}/5)=5Titalic_T start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = 2 italic_π / ( italic_ω start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT / 5 ) = 5 italic_T, integrating for Tsub=5Tsubscript𝑇𝑠𝑢𝑏5𝑇T_{sub}=5Titalic_T start_POSTSUBSCRIPT italic_s italic_u italic_b end_POSTSUBSCRIPT = 5 italic_T is sufficient to obtain the steady-state solutions. All the other steps remain the same as introduced in Algorithm 1.

References

  • Bagheri et al. (2009) Bagheri, S., Henningson, D. S., Hoepffner, J. & Schmid, P. J. 2009 Input-output analysis and control design applied to a linear model of spatially developing flows. Applied Mechanics Reviews 62 (2).
  • Balay et al. (2019) Balay, S., Abhyankar, S., Adams, M., Brown, J., Brune, P., Buschelman, K., Dalcin, L., Dener, A., Eijkhout, V., Gropp, W. & others 2019 PETSc users manual. Argonne National Laboratory.
  • Cavalieri et al. (2019) Cavalieri, A. V. G., Jordan, P. & Lesshafft, L. 2019 Wave-packet models for jet dynamics and sound radiation. Applied Mechanics Reviews 71 (2).
  • Chen & Rowley (2011) Chen, K. K. & Rowley, C. W. 2011 H2 optimal actuator and sensor placement in the linearised complex Ginzburg–Landau system. Journal of Fluid Mechanics 681, 241–260.
  • Chomaz et al. (1988) Chomaz, J. M., Huerre, P. & Redekopp, L. G. 1988 Bifurcations to local and global modes in spatially developing flows. Physical Review Letters 60 (1), 25.
  • Chu (1965) Chu, B.-T. 1965 On the energy transfer to small disturbances in fluid flow (part i). Acta Mechanica 1 (3), 215–234.
  • Dawson & McKeon (2019) Dawson, S. T. M. & McKeon, B. J. 2019 On the shape of resolvent modes in wall-bounded turbulence. Journal of Fluid Mechanics 877, 682–716.
  • Farghadan & Arzani (2019) Farghadan, A. & Arzani, A. 2019 The combined effect of wall shear stress topology and magnitude on cardiovascular mass transport. International Journal of Heat and Mass Transfer 131, 252–260.
  • Farghadan et al. (2023) Farghadan, A., Martini, E. & Towne, A. 2023 Scalable resolvent analysis for three-dimensional flows. arXiv preprint arXiv:2309.04617 .
  • Franceschini et al. (2022) Franceschini, L., Sipp, D., Marquet, O., Moulin, J. & Dandois, J. 2022 Identification and reconstruction of high-frequency fluctuations evolving on a low-frequency periodic limit cycle: application to turbulent cylinder flow. Journal of Fluid Mechanics 942, A28.
  • Giannenas et al. (2022) Giannenas, A. E., Laizet, S. & Rigas, G. 2022 Harmonic forcing of a laminar bluff body wake with rear pitching flaps. Journal of Fluid Mechanics 945, A5.
  • Halko et al. (2011) Halko, N., Martinsson, P. & Tropp, J. A. 2011 Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions. SIAM Review 53 (2), 217–288.
  • Heidt & Colonius (2023) Heidt, L. & Colonius, T. 2023 Spectral proper orthogonal decomposition of harmonically forced turbulent flows. arXiv preprint arXiv:2305.05628 .
  • Hernandez et al. (2005) Hernandez, V., Roman, J. E. & Vidal, V. 2005 Slepc: A scalable and flexible toolkit for the solution of eigenvalue problems. ACM Transactions on Mathematical Software (TOMS) 31 (3), 351–362.
  • Hunt & Crighton (1991) Hunt, R. E. & Crighton, D. G. 1991 Instability of flows in spatially developing media. Proceedings of the Royal Society of London. Series A: Mathematical and Physical Sciences 435 (1893), 109–128.
  • Jung et al. (2023) Jung, J., Bhagwat, R. & Towne, A. 2023 Resolvent-based estimation of laminar flow around an airfoil. AIAA Paper #normal-#\##2023-0077 .
  • Leclercq & Sipp (2023) Leclercq, C. & Sipp, D. 2023 Mean resolvent operator of a statistically steady flow. Journal of Fluid Mechanics 968, A13.
  • Lin et al. (2023) Lin, C.-T., Tsai, M.-L. & Tsai, H.-C. 2023 Flow control of a plunging cylinder based on resolvent analysis. Journal of Fluid Mechanics 967, A41.
  • Martini et al. (2021) Martini, E., Rodríguez, D., Towne, A. & Cavalieri, A. V. G. 2021 Efficient computation of global resolvent modes. Journal of Fluid Mechanics 919.
  • McKeon & Sharma (2010) McKeon, B. J. & Sharma, A. S. 2010 A critical-layer framework for turbulent pipe flow. Journal of Fluid Mechanics 658, 336–382.
  • Moarref et al. (2013) Moarref, R., Sharma, A. S., Tropp, J. A. & McKeon, B. J. 2013 Model-based scaling of the streamwise energy density in high-Reynolds-number turbulent channels. Journal of Fluid Mechanics 734, 275–316.
  • Monokrousos et al. (2010) Monokrousos, A., Åkervik, E., Brandt, L. & Henningson, D. S. 2010 Global three-dimensional optimal disturbances in the blasius boundary-layer flow using time-steppers. Journal of Fluid Mechanics 650, 181–214.
  • Nyquist (1928) Nyquist, H. 1928 Certain topics in telegraph transmission theory. Transactions of the American Institute of Electrical Engineers 47 (2), 617–644.
  • Padovan et al. (2020) Padovan, A., Otto, S. E. & Rowley, C. W. 2020 Analysis of amplification mechanisms and cross-frequency interactions in nonlinear flows via the harmonic resolvent. Journal of Fluid Mechanics 900.
  • Padovan & Rowley (2022) Padovan, A. & Rowley, C. W. 2022 Analysis of the dynamics of subharmonic flow structures via the harmonic resolvent: Application to vortex pairing in an axisymmetric jet. Physical Review Fluids 7 (7), 073903.
  • de Pando et al. (2012) de Pando, M. F., Sipp, D. & Schmid, P. J. 2012 Efficient evaluation of the direct and adjoint linearized dynamics from compressible flow solvers. Journal of Computational Physics 231 (23), 7739–7755.
  • Pickering et al. (2021) Pickering, E., Towne, A., Jordan, P. & Colonius, T. 2021 Resolvent-based modeling of turbulent jet noise. The Journal of the Acoustical Society of America 150 (4), 2421–2433.
  • Ribeiro et al. (2020) Ribeiro, J. H. M., Yeh, C.-A. & Taira, K. 2020 Randomized resolvent analysis. Physical Review Fluids 5 (3), 033902.
  • Schmidt et al. (2018) Schmidt, O. T., Towne, A., Rigas, G., Colonius, T. & Brès, G. A. 2018 Spectral analysis of jet turbulence. Journal of Fluid Mechanics 855, 953–982.
  • Sipp & Marquet (2013) Sipp, D. & Marquet, O. 2013 Characterization of noise amplifiers with global singular modes: the case of the leading-edge flat-plate boundary layer. Theoretical and Computational Fluid Dynamics 27 (5), 617–635.
  • Taira et al. (2017) Taira, K., Brunton, S. L., Dawson, S. T. M., Rowley, C. W., Colonius, T., McKeon, B. J., Schmidt, O. T., Gordeyev, S., Theofilis, V. & Ukeiley, L. S. 2017 Modal analysis of fluid flows: An overview. AIAA Journal 55 (12), 4013–4041.
  • Towne et al. (2022) Towne, A., Rigas, G., Kamal, O., Pickering, E. & Colonius, T. 2022 Efficient global resolvent analysis via the one-way Navier-Stokes equations. Journal of Fluid Mechanics 948, A9.
  • Towne et al. (2018) Towne, A., Schmidt, O. T. & Colonius, T. 2018 Spectral proper orthogonal decomposition and its relationship to dynamic mode decomposition and resolvent analysis. Journal of Fluid Mechanics 847, 821–867.
  • Troy & Koseff (2005) Troy, C. D. & Koseff, J. R. 2005 The instability and breaking of long internal waves. Journal of Fluid Mechanics 543, 107–136.
  • Wereley (1990) Wereley, N. M. 1990 Analysis and control of linear periodically time varying systems. PhD thesis, Massachusetts Institute of Technology.