Strawberry Fields v0.16.0 Released

We’re very excited to announce the release of Strawberry Fields version 0.16. :strawberry: :confetti_ball:

This release is focused on supporting time domain algorithms via the new sf.TDMProgram class and extending the apps.qchem module with new functions.


Time Domain :robot: :hourglass:

Highly scalable simulation of Gaussian states is now available with native support for time-domain multiplexing algorithms via the new TDMProgram class.

The following is an example for time domain program with 2 concurrent modes:

Code example
import strawberryfields as sf
from strawberryfields import ops

prog = sf.TDMProgram(N=2)

with prog.context([1, 2], [3, 4], copies=3) as (p, q):
    ops.Sgate(0.7, 0) | q[1]
    ops.BSgate(p[0]) | (q[0], q[1])
    ops.MeasureHomodyne(p[1]) | q[0]

eng = sf.Engine("gaussian")
results = eng.run(prog)

print(results.all_samples)
{0: [array([1.26208025]), array([1.53910032]), array([-1.29648336]),
array([0.75743215]), array([-0.17850101]), array([-1.44751996])]}


For more details see the Time-domain photonic circuits demonstration.


Vibronic Transition :atom_symbol:

The ability to apply the Doktorov operator on a given state is now available by using the VibronicTransition function from the apps.qchem.dynamics module.

Code example
from strawberryfields.apps.qchem.vibronic import VibronicTransition

modes = 2
p = sf.Program(modes)

with p.context as q:
    VibronicTransition(U1, r, U2, alpha) | q


Time evolution :clock8: :clock830: :clock9:

The time evolution operator can be applied on a given state using the TimeEvolution function from the apps.qchem.dynamics module.

Code example
modes = 2
p = sf.Program(modes)

with p.context as q:
    sf.ops.Fock(1) | q[0]
    sf.ops.Interferometer(Ul.T) | q
    TimeEvolution(w, t) | q
    sf.ops.Interferometer(Ul) | q

The full release notes are available at https://strawberryfields.readthedocs.io/en/stable/development/release_notes.html.

As always, this release would not have been possible without all the help from our contributors:

@jmarrazola , @Tom_Bromley, @theodor, @josh, @sjahangiri, @nathan, Fabian Laudenbach, @Nicolas_Quesada, @antalszava, ‪Ilan Tzitrin.

1 Like