{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Stochastic photo-current detection in a JC model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mixing stochastic and deterministic master equations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Copyright (C) 2011 and later, Paul D. Nation & Robert J. Johansson" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import qutip.settings \n", "from qutip import *" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from qutip.ipynbtools import HTMLProgressBar" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from matplotlib import rcParams\n", "rcParams['font.family'] = 'STIXGeneral'\n", "rcParams['mathtext.fontset'] = 'stix'\n", "rcParams['font.size'] = '14'" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "N = 15\n", "w0 = 1.0 * 2 * np.pi\n", "g = 0.2 * 2 * np.pi\n", "times = np.linspace(0, 15, 150)\n", "dt = times[1] - times[0]\n", "gamma = 0.01\n", "kappa = 0.1\n", "ntraj = 150" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "a = tensor(destroy(N), identity(2))\n", "sm = tensor(identity(N), destroy(2))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "H = w0 * a.dag() * a + w0 * sm.dag() * sm + g * (sm * a.dag() + sm.dag() * a)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "rho0 = tensor(fock(N, 5), fock(2, 0))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "e_ops = [a.dag() * a, a + a.dag(), sm.dag() * sm]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Highly efficient detection" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "c_ops = [np.sqrt(gamma) * sm] # collapse operator for qubit\n", "sc_ops = [np.sqrt(kappa) * a] # stochastic collapse for resonator" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "result_ref = mesolve(H, rho0, times, c_ops+sc_ops, e_ops)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total run time: 3.41s\n" ] } ], "source": [ "result1 = photocurrent_mesolve(H, rho0, times, c_ops=c_ops, sc_ops=sc_ops, e_ops=e_ops, \n", " ntraj=1, nsubsteps=100, \n", " store_measurement=True,\n", " options=Options(store_states=True))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Run the `smesolve` solver in parallel by passing the keyword argument `map_func=parallel_map`:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Software | Version |
---|---|
QuTiP | 4.4.0.dev0+ea5344d9 |
Numpy | 1.16.0 |
SciPy | 1.2.0 |
matplotlib | 3.0.2 |
Cython | 0.29.3 |
Number of CPUs | 1 |
BLAS Info | OPENBLAS |
IPython | 7.2.0 |
Python | 3.6.7 (default, Oct 22 2018, 11:32:17) \n", "[GCC 8.2.0] |
OS | posix [linux] |
Wed Jan 30 11:54:20 2019 JST |