Core Concepts

This library models Gaussian continuous-variable (CV) systems using mean vectors and covariance matrices in phase space. The main abstractions are designed around three objects:

  • GaussianCVState — a Gaussian state

  • GaussianCVSystem — a dynamical generator

  • GaussianSolution — a time-resolved trajectory

Gaussian State Representation

An \(n\)-mode Gaussian state is represented by:

  • a mean vector \(\mathbf{r} \in \mathbb{R}^{2n}\)

  • a covariance matrix \(V \in \mathbb{R}^{2n \times 2n}\)

The phase-space ordering used throughout the library is

\[ (x_1, \dots, x_n, p_1, \dots, p_n) \]

This ordering is used consistently for:

  • state construction

  • subsystem extraction

  • Hamiltonian matrices

  • dissipative channels

  • metric evaluation

Mode Indexing

All public APIs use 1-indexed mode labels.

For an (n)-mode system:

  • valid mode labels are 1, 2, ..., n

  • index 0 is invalid by design

Subsystems are specified using physical mode labels, for example:

  • (1,) for a single-mode subsystem

  • (1, 2) for a two-mode subsystem

Internally, these are mapped to zero-based array positions.

Subsystem Ordering

Subsystems are always extracted in x-then-p form.

For subsystem (i_1, ..., i_k), the extracted ordering is

\[ (x_{i_1}, \dots, x_{i_k}, p_{i_1}, \dots, p_{i_k}) \]

This ordering is not interleaved.

State Mutation Model

GaussianCVState methods such as squeezing, displacement, and two-mode mixing act in place and return self.

For example:

state = GaussianCVState.vacuum(2)
state.single_mode_squeeze((1.0, 0.0), 1)
state.single_mode_squeeze((1.0, 0.0), 2)

Use copy_state() when an independent copy is needed.

System Construction

GaussianCVSystem stores the dynamical generator of the problem, not the state.

A system is defined by:

  • a quadratic Hamiltonian matrix

  • a Lindblad Gram matrix

These determine the drift and diffusion matrices governing Gaussian moment evolution.

Time Evolution

State evolution is computed exactly from the Gaussian channel generated by the system.

The equations of motion have the form

\[ \frac{d}{dt}\langle R \rangle = A \langle R \rangle \]
\[ \frac{d}{dt}V = A V + V A^T + D \]

where \(A\) is the drift matrix and \(D\) is the diffusion matrix.

The library evolves these moments using matrix exponentials.

Validation and Physicality

The library applies validation throughout construction and evolution.

This includes checks for:

  • finite numerical values

  • dimension consistency

  • valid subsystem indices

  • positive semidefinite covariance matrices

Two notions of validity are distinguished:

  • classical covariance validity: \(V \succeq 0\)

  • quantum physicality: \(V + \frac{i}{2}\Omega \succeq 0\)

Quantum physicality is enforced during evolution.

Finite-Memory Environments

The library supports a single-pole Ornstein–Uhlenbeck environment through an exact pseudomode embedding.

In this construction:

  • the system is enlarged by one auxiliary mode

  • the enlarged system is Markovian

  • the reduced dynamics reproduce finite-memory behavior

This provides a structured way to model non-Markovian effects while staying within the Gaussian formalism.