The Gaussian device¶
The Gaussian device gives access to Strawberry Field’s Gaussian simulator backend. This backend exploits the compact (and fully classically tractable) representation of socalled Gaussian continuousvariable operations. However, the backend cannot simulate nonGaussian gates, such as a Cubic Phase or a Kerr gate.
The Gaussian device does not require a cutoff dimensions and simulations are exact up to numerical precision.
Usage¶
You can instantiate the Gaussian device in PennyLane as follows:
import pennylane as qml
dev = qml.device('strawberryfields.gaussian', wires=2)
The device can then be used just like other devices for the definition and evaluation of QNodes within PennyLane.
For instance, the following simple example defines a quantum_function
circuit that first displaces
the vacuum state, applies a beamsplitter, and then returns the photon number expectation.
This function is converted into a QNode which is placed on the strawberryfields.gaussian
device:
@qml.qnode(dev)
def quantum_function(x, theta):
qml.Displacement(x, 0, wires=0)
qml.Beamsplitter(theta, 0, wires=[0, 1])
return qml.expval(qml.NumberOperator(0))
We can evaluate the QNode for arbitrary values of the circuit parameters:
>>> quantum_function(1., 0.543)
0.7330132578095255
We can also evaluate the derivative with respect to any parameter(s):
>>> dqfunc = qml.grad(quantum_function, argnum=0)
>>> dqfunc(1., 0.543)
1.4660265156190515
Note
The qml.state
, qml.sample
and qml.density_matrix
measurements
are not supported on the strawberryfields.gaussian
device.
The continuousvariable QNodes available via Strawberry Fields can also be combined with qubitbased QNodes and classical nodes to build up a hybrid computational model. Such hybrid models can be optimized using the builtin optimizers provided by PennyLane.
Device options¶
The Strawberry Fields Gaussian device accepts additional arguments beyond the PennyLane default device arguments.
hbar=2
The convention chosen in the canonical commutation relation \([x, p] = i \hbar\). Default value is \(\hbar=2\).
cutoff_dim
the Fock basis truncation to be applied when computing quantities in the Fock basis (such as probabilities)
shots=None
The number of circuit evaluations/random samples used to estimate expectation values of observables. The default value of
None
means that the exact expectation value is returned.If shots is a positive integer or a list of integers, the Gaussian device calculates the variance of the expectation value(s), and use the BerryEsseen theorem to estimate the sampled expectation value.
Supported operations¶
The Strawberry Fields Gaussian device supports all Gaussian continuousvariable (CV) operations and observables provided by PennyLane.
Supported operations:
Beamsplitter interaction. 

Prepares a coherent state. 

Controlled addition operation. 

Controlled phase operation. 

Prepares a displaced squeezed vacuum state. 

Phase space displacement. 

Prepare subsystems in a given Gaussian state. 

Quadratic phase shift. 

Phase space rotation. 

Prepares a squeezed vacuum state. 

Phase space squeezing. 

Prepares a thermal state. 

Phase space twomode squeezing. 
Supported observables:
The identity observable \(\I\). 

The photon number observable \(\langle \hat{n}\rangle\). 

The tensor product of the 

The position quadrature observable \(\hat{x}\). 

The momentum quadrature observable \(\hat{p}\). 

The generalized quadrature observable \(\x_\phi = \x cos\phi+\p\sin\phi\). 

An arbitrary secondorder polynomial observable. 

The tensor product of the 