API Reference
SLH type
SLHQuantumSystems.SLH — Type
SLH(name, inputs, outputs, S, L, H)
An SLH triple describes an open quantum system. See Combes, arXiv.1611.00375
The name of the system should be unique. When multiple systems are combined, the names of their inputs and outputs will have the system name appended to them. The inputs and outputs describe 'ports' where signals leave and enter the system. Quantum systems must have the same number of inputs and outputs, which we denote by n.
size(S) = (n, n) <- S is an nxn matrix
size(L) = (n,)
size(H) = ()
The two ways of combining SLH systems are concatenate() and feedbackreduce()
sourceSLH Operations
SLHQuantumSystems.concatenate — Function
concatenate(name, syslist::Vector{SLH})
creates a composite system with no interconnections. Combes eq. 59
When systems are concatenated, the names of their inputs, outputs, operators, parameters, and Hilbert spaces are 'promoted' by prepending the name of the system to the existing name. This prevents name collisions as long as all SLHSystems are created with a unique name.
sourceSLHQuantumSystems.feedbackreduce — Function
feedbackreduce(A::SLH,output,input)
Connects the output port to the input port, reducing the number of outputs and inputs by one each. Combes eq 61.
sourceSLHQuantumSystems.operators — Function
SLHQuantumSystems.parameters — Function
parameters(sys)
returns all the symbolic numbers contained in the system's Hamiltonian and coupling vector L.
sourceConversion
SLHQuantumSystems.slh2abcd — Function
slh2abcd(sys::SLH)Convert a linear quantum system from SLH representation to ABCD representation.
The name of the new system, as well as the names of its imputs and outputs will be directly inherited from the input system.
sourceSymbolic Utilities
SLHQuantumSystems.get_qnumbers — Function
get_qnumbers(expr)Extract all quantum operators from an expression.
Arguments
expr: A symbolic expression
Returns
Set: Set of quantum operators found in the expression
SLHQuantumSystems.get_cnumbers — Function
get_numsymbols(expr)Extract all symbolic parameters from an expression.
Arguments
expr: A symbolic expression
Returns
Set: Set of symbolic parameters found in the expression
SLHQuantumSystems.get_additive_terms — Function
get_additive_terms(expr)Extract additive terms from a quantum operator expression.
Takes an expression containing quantum operators and returns a list of terms that contain no addition, only multiplication. Summing all returned terms results in the original expression.
Arguments
expr: A symbolic expression containing quantum operators
Returns
Vector: List of terms without addition operators
Component Library
SLHQuantumSystems.cavity — Function
cavity(name)Create a basic optical cavity SLH system.
Creates a single-mode cavity with detuning and decay. The cavity has one input and one output port with direct transmission (S=1).
Arguments
name: Symbol identifying the cavity (used for operator and parameter naming)
Returns
SLH: System with Hamiltonian H = Δ·a†a and coupling L = [κa]
Parameters
κ: Cavity decay rateΔ: Cavity detuning from driving field
SLHQuantumSystems.squeezing_cavity — Function
squeezing_cavity(name)Create a squeezing cavity SLH system.
Creates a cavity that generates squeezed light through a parametric interaction (two-mode squeezing Hamiltonian).
Arguments
name: Symbol identifying the cavity (used for operator and parameter naming)
Returns
SLH: System with squeezing Hamiltonian H = iϵ(a†² - a²) and coupling L = [√κ·a]
Parameters
κ: Cavity decay rateϵ: Squeezing strength
Function Index
SLHQuantumSystems.SLHSLHQuantumSystems.cavitySLHQuantumSystems.concatenateSLHQuantumSystems.feedbackreduceSLHQuantumSystems.get_additive_termsSLHQuantumSystems.get_cnumbersSLHQuantumSystems.get_qnumbersSLHQuantumSystems.operatorsSLHQuantumSystems.parametersSLHQuantumSystems.slh2abcdSLHQuantumSystems.squeezing_cavity