We will now perform transient growth analysis with a Krylov subspace of kdim=4
. The parameters and
properties needed for this are present in the file bfs_tg.xml
in BackwardStep/Stability
. In this case the
Arpack
library was used to compute the largest eigenvalue of the system and the corresponding
eigenmode. We will compute the maximum growth for a time horizon of τ = 1, usually denoted
G(1).
bfs_tg.xml
session for performing transient growth analysis:
EvolutionOperator
to TransientGrowth
.
FinalTime
that is equal to 1 (this is the time horizon τ).
NumSteps
) to be the ratio between the final time and the time
step.
bfs_tg.rst
for the initial condition. This file contains an eigenmode of the system.Now run the simulation
IncNavierStokesSolver bfs_tg.xml
The terminal screen should look like this:
Initially, the solution will be evolved forward in time using the operator , then backward in time through the adjoint operator ∗.
The leading eigenvalue corresponds to the largest possible transient growth at the time horizon τ = 1. The leading eigenmode is shown in figures 6 and 7. This is the optimal initial condition which will lead to the greatest growth when evolved under the linearised Navier-Stokes equations.
We can visualise graphically the optimal growth, recalling that the energy of the perturbation field at any given time t is defined by means of the inner product:
| (8) |
The solver can output the evolution of the energy of the perturbation in time by using the ModalEnergy
filter (defined in the FILTERS
section of the XML file):
This will write the energy of the perturbation every 10 time steps to the file energy.mld
. Repeating these
simulations for different τ with the optimal initial perturbation as the initial condition, it is possible to
create a plot similar to figure 8. Each curve necessarily meets the optimal growth envelope (denoted by the
circles) at its corresponding value of τ, and never exceeds it.
The BackwardStep/Energy
folder contains the files bfs_energy_tau01.xml
and bfs_energy_tau20.xml
,
as well as the pre-computed optimal initial condition for τ = 20 (bfs_energy_tau20.rst
), with
corresponding optimal growth of 2172.9.
Standard
driver. You should also use the Direct
evolution
operator for this task, similar to the channel example.
Examine your plot. Verify the energy at time t = τ matches the optimal growth in each case. Now examine the plot at time t = 1. Note that although the overall energy growth for the τ = 20 curve is far greater than the corresponding τ = 1 curve, the τ = 1 curve has greater growth at t = τ = 1.