Complex Ginzburg-Landau Equation

In this suite of examples, we perform several linear analyses of the linearized complex Ginzburg-Landau (CGL) equation:

\[\partial_t q = \left(-\nu \partial_x + \ \gamma\partial_x^2 + \mu\right)q,\quad q(x,t)\in\mathbb{C}.\]

The parameters \(\nu\), \(\gamma\) and \(\mu\) are chosen so that the origin \(q(x) = 0\) is stable, as in Table 1 of [IBB+10]. The spatial discretization is performed using a fourth-order central difference scheme (see cgl.py for details), and the discretized system may then be written compactly as

\[\frac{d}{dt} q = A q,\quad q\in\mathbb{C}^n,\]

where now \(q\) denotes the spatially-discretized state vector. This examples included here are:

  • demonstrate_eigendecomposition.py for linear stability analysis

  • demonstrate_rsvd.py for resolvent analysis in the frequency domain

  • demonstrate_rsvd_dt.py for resolvent analysis in the time domain

  • demonstrate_balanced_truncation.py for balanced model reduction

Instructions

  1. Generate the data matrices with

    mpiexec -n 1 python -u generate_matrices.py
    

    This script must be run in series, and its outputs will be written in data/.

  2. Run any script demonstrate_*.py with

    mpiexec -n 2 python -u demonstrate_*.py
    

    These script can be run with any number of processors (although the dimension of the system is rather small, so there might not be any benefit in running it in parallel).

  3. Navigate to the results/ directory to check out the results.

Scripts

Balanced Truncation Demonstration

Balanced Truncation Demonstration

Resolvent Analysis Demonstration

Resolvent Analysis Demonstration

Eigendecomposition Demonstration

Eigendecomposition Demonstration

Resolvent Analysis Demonstration via Time Stepping

Resolvent Analysis Demonstration via Time Stepping

Gallery generated by Sphinx-Gallery