{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Some examples for QuantumAlgebra.jl" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "using QuantumAlgebra" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## General expressions" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$3$" ], "text/plain": [ "scal{Int64}(3)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\frac{3}{2}$" ], "text/plain": [ "scal{Rational{Int64}}(3//2)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$3$" ], "text/plain": [ "scal{Rational{Int64}}(3//1)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$1$" ], "text/plain": [ "scal{Rational{Int64}}(1//1)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$1$" ], "text/plain": [ "scal{Rational{Int64}}(1//1)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$1$" ], "text/plain": [ "scal{Float64}(1.0)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$1.5$" ], "text/plain": [ "scal{Float64}(1.5)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(scal(3))\n", "display(scal(3//2))\n", "display(scal(3//1))\n", "display(scal(3//3))\n", "display(scal(1//1))\n", "display(scal(1.5*2//3))\n", "display(scal(1.5))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$g$" ], "text/plain": [ "param{Tuple{}}(:g, 'n', ())" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(param(:g))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\sigma_{x,3}$" ], "text/plain": [ "QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (3,))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sigma_{z,3}$" ], "text/plain": [ "QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (3,))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\frac{1}{2} \\sigma_{x,1} + \\frac{1}{2}i \\sigma_{y,1}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Rational{Int64}}(1//2), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (1,))), QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 + 1//2*im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (1,))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(σx(3))\n", "display(σz(3))\n", "display(σp(1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simplification of products and sums" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$-1i \\sigma_{x,1}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 - 1//1*im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (1,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sigma_{y,2} \\sigma_{z,3}$" ], "text/plain": [ "QuantumAlgebra.OpProd(QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (2,)), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (3,)))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(σz(1)*σy(1))\n", "display(σz(3)*σy(2))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$a_{3} a_{4}$" ], "text/plain": [ "QuantumAlgebra.OpProd(a{Tuple{Int64}}((3,)), a{Tuple{Int64}}((4,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{3} a_{4}$" ], "text/plain": [ "QuantumAlgebra.OpProd(a{Tuple{Int64}}((3,)), a{Tuple{Int64}}((4,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{4}^\\dagger a_{5}^\\dagger a_{7}^\\dagger a_{1} a_{2} a_{3}$" ], "text/plain": [ "QuantumAlgebra.OpProd(adag{Tuple{Int64}}((4,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((5,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((7,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((3,)))))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(a(4)*a(3))\n", "display(a(3)*a(4))\n", "display(a(3)*adag(4)*adag(5)*a(1)*adag(7)*a(2))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$a_{7} a_{12} a_{14}$" ], "text/plain": [ "QuantumAlgebra.OpProd(a{Tuple{Int64}}((7,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((12,)), a{Tuple{Int64}}((14,))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{4}^\\dagger a_{5}^\\dagger a_{7}^\\dagger$" ], "text/plain": [ "QuantumAlgebra.OpProd(adag{Tuple{Int64}}((4,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((5,)), adag{Tuple{Int64}}((7,))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{4}^\\dagger a_{12} a_{14} + a_{4}^\\dagger a_{5}^\\dagger a_{5} a_{12} a_{14} + a_{4}^\\dagger a_{7}^\\dagger a_{7} a_{12} a_{14} + a_{4}^\\dagger a_{5}^\\dagger a_{7}^\\dagger a_{5} a_{7} a_{12} a_{14}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(adag{Tuple{Int64}}((4,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((12,)), a{Tuple{Int64}}((14,)))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(adag{Tuple{Int64}}((4,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((5,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((5,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((12,)), a{Tuple{Int64}}((14,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(adag{Tuple{Int64}}((4,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((7,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((7,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((12,)), a{Tuple{Int64}}((14,)))))), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((4,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((5,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((7,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((5,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((7,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((12,)), a{Tuple{Int64}}((14,)))))))))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(a(14)*a(12)*a(7))\n", "display(adag(4)*adag(5)*adag(7))\n", "display(a(14)*a(12)*a(7)*adag(4)*a(5)*adag(5)*adag(7))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$0$" ], "text/plain": [ "scal{Int64}(0)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{2}$" ], "text/plain": [ "a{Tuple{Int64}}((2,))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$2 a_{2}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Int64}(2), a{Tuple{Int64}}((2,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$0$" ], "text/plain": [ "scal{Int64}(0)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\frac{3}{5} a_{2}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Rational{Int64}}(3//5), a{Tuple{Int64}}((2,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{2}$" ], "text/plain": [ "a{Tuple{Int64}}((2,))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$g a_{2}$" ], "text/plain": [ "QuantumAlgebra.OpProd(param{Tuple{}}(:g, 'n', ()), a{Tuple{Int64}}((2,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$x^* a_{2}$" ], "text/plain": [ "QuantumAlgebra.OpProd(param{Tuple{}}(:x, 'c', ()), a{Tuple{Int64}}((2,)))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(scal(0)*a(2))\n", "display(scal(1)*a(2))\n", "tmp = scal(2)*a(2)\n", "display(tmp)\n", "display(tmp*scal(0))\n", "tmp = tmp*scal(1//2)*scal(3//5)\n", "display(tmp)\n", "display(scal(5//3)*tmp)\n", "display(a(2)*param(:g))\n", "display(a(2)*param(:x,'c'))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$4 + a_{2} + \\sigma_{x,1}$" ], "text/plain": [ "QuantumAlgebra.OpSum(scal{Int64}(4), QuantumAlgebra.OpSum(a{Tuple{Int64}}((2,)), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (1,))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(a(2) + σx(1) + scal(1) + scal(3))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$2 + a_{2} + 2 \\sigma_{x,1}$" ], "text/plain": [ "QuantumAlgebra.OpSum(scal{Int64}(2), QuantumAlgebra.OpSum(a{Tuple{Int64}}((2,)), QuantumAlgebra.OpProd(scal{Int64}(2), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (1,)))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$4 + 2 a_{2} + 4 \\sigma_{x,1}$" ], "text/plain": [ "QuantumAlgebra.OpSum(scal{Int64}(4), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(2), a{Tuple{Int64}}((2,))), QuantumAlgebra.OpProd(scal{Int64}(4), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (1,)))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tmp = a(2) + σx(1) + σx(1) + scal(2)\n", "display(tmp)\n", "display(scal(2)*tmp)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\sigma_{y,1}$" ], "text/plain": [ "QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (1,))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sigma_{y,1}$" ], "text/plain": [ "QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (1,))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{5}^\\dagger$" ], "text/plain": [ "adag{Tuple{Int64}}((5,))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{3}$" ], "text/plain": [ "a{Tuple{Int64}}((3,))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "true" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sigma_{y,1} + a_{1}^\\dagger a_{1} \\sigma_{y,1}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (1,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((1,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (1,)))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(adjoint(σy(1)))\n", "display(σy(1)')\n", "display(a(5)')\n", "display(adag(3)')\n", "display((adag(1)*a(1))' == adag(1)*a(1))\n", "display(a(1) * (σy(1) * a(1))')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analytic sums" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\sum_{i}1 + \\sum_{i}a_{i}^\\dagger a_{i}$" ], "text/plain": [ "QuantumAlgebra.OpSum(OpSumAnalytic(:i, scal{Int64}(1)), OpSumAnalytic(:i, QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:i,)))))" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "OpSumAnalytic(:i, a(:i)*adag(:i))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\sum_{i}a_{i}^\\dagger a_{i}$" ], "text/plain": [ "OpSumAnalytic(:i, QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:i,))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sum_{i}a_{i}^\\dagger a_{n}^\\dagger a_{i}$" ], "text/plain": [ "OpSumAnalytic(:i, QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), a{Tuple{Symbol}}((:i,)))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{n} + \\sum_{i}a_{i}^\\dagger a_{i} a_{n}$" ], "text/plain": [ "QuantumAlgebra.OpSum(a{Tuple{Symbol}}((:n,)), OpSumAnalytic(:i, QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:n,))))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sum_{i}a_{i}^\\dagger a_{i} \\sigma_{z,n}$" ], "text/plain": [ "OpSumAnalytic(:i, QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:n,)))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$2 \\sum_{i}a_{i}^\\dagger a_{i}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Int64}(2), OpSumAnalytic(:i, QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:i,)))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sum_{i}g_{n} a_{i}^\\dagger a_{i}$" ], "text/plain": [ "OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:g, 'n', (:n,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:i,)))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sum_{i}a_{i}^\\dagger a_{i} a_{n}$" ], "text/plain": [ "OpSumAnalytic(:i, QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:n,)))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{n}^\\dagger + \\sum_{i}a_{i}^\\dagger a_{n}^\\dagger a_{i}$" ], "text/plain": [ "QuantumAlgebra.OpSum(adag{Tuple{Symbol}}((:n,)), OpSumAnalytic(:i, QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), a{Tuple{Symbol}}((:i,))))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$2 a_{n}^\\dagger a_{n}^\\dagger + \\sum_{i}a_{i}^\\dagger a_{n}^\\dagger a_{n}^\\dagger a_{i}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(2), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), adag{Tuple{Symbol}}((:n,)))), OpSumAnalytic(:i, QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), a{Tuple{Symbol}}((:i,)))))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{n}^\\dagger a_{n} + \\sum_{i}a_{i}^\\dagger a_{n}^\\dagger a_{i} a_{n}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), a{Tuple{Symbol}}((:n,))), OpSumAnalytic(:i, QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:n,)))))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tmp = OpSumAnalytic(:i,adag(:i)*a(:i))\n", "display(tmp)\n", "display(adag(:n)*tmp)\n", "display(a(:n)*tmp)\n", "display(σz(:n)*tmp)\n", "display(tmp*scal(2))\n", "display(tmp*param(:g,:n))\n", "display(tmp*a(:n))\n", "display(tmp*adag(:n))\n", "display(tmp*(adag(:n)*adag(:n)))\n", "display(tmp*(adag(:n)*a(:n)))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$a_{1i} a_{2k}$" ], "text/plain": [ "QuantumAlgebra.OpProd(a{Tuple{Int64,Symbol}}((1, :i)), a{Tuple{Int64,Symbol}}((2, :k)))" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a(1,:i)*a(2,:k)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\sum_{i}\\sigma_{x,i} \\sigma_{y,j}$" ], "text/plain": [ "OpSumAnalytic(:i, QuantumAlgebra.OpProd(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:j,))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$2i \\sigma_{z,a} + \\sum_{i}\\sigma_{y,a} \\sigma_{x,i}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 + 2//1*im), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:a,))), OpSumAnalytic(:i, QuantumAlgebra.OpProd(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:a,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:i,)))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sum_{i}\\sigma_{y,a} \\sigma_{x,i}$" ], "text/plain": [ "OpSumAnalytic(:i, QuantumAlgebra.OpProd(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:a,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:i,))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tmp1 = OpSumAnalytic(:i,σx(:i))*σy(:j)\n", "tmp2 = OpSumAnalytic(:i,σx(:i))*σy(:a)\n", "tmp3 = OpSumAnalytic(:i,σx(:i)*σy(:a))\n", "display(tmp1)\n", "display(tmp2)\n", "display(tmp3)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$0$" ], "text/plain": [ "scal{Int64}(0)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$0$" ], "text/plain": [ "scal{Int64}(0)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$-2i \\sigma_{y,1}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (1,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$4i \\sigma_{z,5}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 + 4im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (5,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$-4 \\sigma_{x,5}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Complex{Int64}}(-4 + 0im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (5,)))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(comm(σx(5),σy(3)))\n", "display(comm(σx(5),σx(5)))\n", "display(comm(σx(1),σz(1)))\n", "display(scal(2)*comm(σx(5),σy(5)))\n", "display(comm(σy(5),comm(σx(5),σy(5))))" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\frac{12}{5}i g h \\sigma_{z,5}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 + 12//5*im), QuantumAlgebra.OpProd(param{Tuple{}}(:g, 'n', ()), QuantumAlgebra.OpProd(param{Tuple{}}(:h, 'n', ()), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (5,)))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(comm(scal(2//5)*param(:h)*σx(5),scal(3)*param(:g)*σy(5)))" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$1i \\sigma_{z,1}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 + 1//1*im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sigma_{x,3}$" ], "text/plain": [ "QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (3,))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(σx(1)*σy(1))\n", "display(σx(3)*σy(2)*σy(2))" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$1i$" ], "text/plain": [ "scal{Complex{Rational{Int64}}}(0//1 + 1//1*im)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$-1 \\sigma_{y,5}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(-1//1 + 0//1*im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (5,)))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(σx(5)*σy(5)*σz(5))\n", "display(σx(5)*σy(5)*σx(5))" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$a b d_{3}^* f_{1} g_{1} g_{2} g_{3}^*$" ], "text/plain": [ "QuantumAlgebra.OpProd(param{Tuple{}}(:a, 'n', ()), QuantumAlgebra.OpProd(param{Tuple{}}(:b, 'n', ()), QuantumAlgebra.OpProd(param{Tuple{Int64}}(:d, 'c', (3,)), QuantumAlgebra.OpProd(param{Tuple{Int64}}(:f, 'r', (1,)), QuantumAlgebra.OpProd(param{Tuple{Int64}}(:g, 'n', (1,)), QuantumAlgebra.OpProd(param{Tuple{Int64}}(:g, 'n', (2,)), param{Tuple{Int64}}(:g, 'c', (3,))))))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a^* b^* d_{3} f_{1} g_{1}^* g_{2}^* g_{3}$" ], "text/plain": [ "QuantumAlgebra.OpProd(param{Tuple{}}(:a, 'c', ()), QuantumAlgebra.OpProd(param{Tuple{}}(:b, 'c', ()), QuantumAlgebra.OpProd(param{Tuple{Int64}}(:d, 'n', (3,)), QuantumAlgebra.OpProd(param{Tuple{Int64}}(:f, 'r', (1,)), QuantumAlgebra.OpProd(param{Tuple{Int64}}(:g, 'c', (1,)), QuantumAlgebra.OpProd(param{Tuple{Int64}}(:g, 'c', (2,)), param{Tuple{Int64}}(:g, 'n', (3,))))))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tmp = param(:g,2)*param(:g,1)*param(:g,'c',3)*param(:b)*param(:a)*param(:d,'c',3)*param(:f,'r',1)\n", "display(tmp)\n", "display(tmp')" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\sigma_{z,1}$" ], "text/plain": [ "QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,))" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "σz(1)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$2i a_{2}^\\dagger a_{3}^\\dagger a_{3}^\\dagger a_{4}^\\dagger a_{2} \\sigma_{x,1} + 1i a_{2}^\\dagger a_{2}^\\dagger a_{3}^\\dagger a_{3}^\\dagger a_{4}^\\dagger a_{2} a_{2} \\sigma_{x,1}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 + 2//1*im), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((2,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((3,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((3,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((4,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (1,)))))))), QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 + 1//1*im), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((2,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((2,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((3,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((3,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((4,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (1,)))))))))))" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a(2)*adag(2)*adag(3)*σy(1)*adag(2)*adag(4)*σz(1)*a(2)*adag(3)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$2 g_{1}^* + a_{2}^\\dagger \\sigma_{y,1} + a_{2}^\\dagger a_{2}^\\dagger a_{2} \\sigma_{y,1}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(2), param{Tuple{Int64}}(:g, 'c', (1,))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(adag{Tuple{Int64}}((2,)), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (1,))), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((2,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((2,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (1,)))))))" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "adag(2)*a(2)*adag(2)*σy(1) + scal(2)*param(:g,'c',1)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\frac{1}{2} \\sigma_{z,1}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(1//2 + 0//1*im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,)))" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "scal(-1/2) + σp(1) * σm(1)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\frac{1}{2} \\sigma_{x,2} + \\frac{1}{2}i \\sigma_{y,2}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Rational{Int64}}(1//2), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (2,))), QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 + 1//2*im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (2,))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\frac{1}{2} \\sigma_{x,2} + \\frac{-1}{2}i \\sigma_{y,2}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Rational{Int64}}(1//2), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (2,))), QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 - 1//2*im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (2,))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\frac{1}{2} + \\frac{1}{2} \\sigma_{z,1}$" ], "text/plain": [ "QuantumAlgebra.OpSum(scal{Complex{Rational{Int64}}}(1//2 + 0//1*im), QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(1//2 + 0//1*im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(σp(2))\n", "display(σm(2))\n", "display(σp(1)*σm(1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Commutators" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$0$" ], "text/plain": [ "scal{Complex{Rational{Int64}}}(0//1 + 0//1*im)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sigma_{z,1}$" ], "text/plain": [ "QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$-1 \\sigma_{z,1}$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(-1//1 + 0//1*im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$0$" ], "text/plain": [ "scal{Complex{Rational{Int64}}}(0//1 + 0//1*im)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$0$" ], "text/plain": [ "scal{Complex{Rational{Int64}}}(0//1 + 0//1*im)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(comm(σp(1),σp(1)))\n", "display(comm(σp(1),σm(1)))\n", "display(comm(σm(1),σp(1)))\n", "display(comm(σm(1),σm(1)))\n", "display(comm(σm(1),σp(2)))" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\sigma_{x,1} + -1i \\sigma_{y,1}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.x, (1,)), QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 - 1//1*im), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.y, (1,))))" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "comm(σm(1),σz(1))" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$0$" ], "text/plain": [ "scal{Int64}(0)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "comm(a(2),adag(1))" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$a_{1}$" ], "text/plain": [ "a{Tuple{Int64}}((1,))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{1} a_{2}$" ], "text/plain": [ "QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), a{Tuple{Int64}}((2,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$a_{1} + a_{2}^\\dagger a_{1} a_{2}$" ], "text/plain": [ "QuantumAlgebra.OpSum(a{Tuple{Int64}}((1,)), QuantumAlgebra.OpProd(adag{Tuple{Int64}}((2,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), a{Tuple{Int64}}((2,)))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(comm(a(1),adag(1)*a(1)))\n", "display(comm(a(1),adag(1)*a(2)*a(1)))\n", "display(comm(a(1),a(2)*adag(1)*a(1)*adag(2)))" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(σp(1)*σz(1) + σp(1) == scal(0))" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\sum_{i}ω_{i} a_{ii}^\\dagger$" ], "text/plain": [ "OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:i,)), adag{Tuple{Symbol,Symbol}}((:i, :i))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$ω_{k} + \\sum_{i}ω_{i} a_{ii}^\\dagger a_{kk}$" ], "text/plain": [ "QuantumAlgebra.OpSum(param{Tuple{Symbol}}(:ω, 'r', (:k,)), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:i,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol,Symbol}}((:i, :i)), a{Tuple{Symbol,Symbol}}((:k, :k))))))" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H = OpSumAnalytic(:i,param(:ω,'r',:i)*adag(:i,:i))\n", "display(H)\n", "a(:k,:k)*H" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\sum_{i}ω_{i} a_{i}^\\dagger a_{i}$" ], "text/plain": [ "OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:i,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:i,)))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$ω_{k} a_{k} + \\sum_{i}ω_{i} a_{i}^\\dagger a_{i} a_{k}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:k,)), a{Tuple{Symbol}}((:k,))), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:i,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:k,)))))))" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H = OpSumAnalytic(:i,param(:ω,'r',:i)*adag(:i)*a(:i))\n", "display(H)\n", "a(:k)*H" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Many-mode Tavis-Cummings" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\frac{1}{2} \\sum_{j}ωe_{j} \\sigma_{z,j} + \\sum_{i}ω_{i} a_{i}^\\dagger a_{i} + \\sum_{i}\\sum_{j}g_{ij} a_{i}^\\dagger \\sigma_{x,j} + \\sum_{i}\\sum_{j}g_{ij} a_{i} \\sigma_{x,j}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Rational{Int64}}(1//2), OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ωe, 'r', (:j,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:j,))))), QuantumAlgebra.OpSum(OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:i,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:i,))))), QuantumAlgebra.OpSum(OpSumAnalytic(:i, OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :j)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,)))))), OpSumAnalytic(:i, OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :j)), QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,)))))))))" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H = OpSumAnalytic(:i,param(:ω,'r',:i)*adag(:i)*a(:i)) + OpSumAnalytic(:j,scal(1//2)*param(:ωe,'r',:j)*σz(:j)) +\n", " OpSumAnalytic(:i,OpSumAnalytic(:j,param(:g,'r',:i,:j)*(adag(:i)+a(:i))*σx(:j)))" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$ω_{m} a_{n}^\\dagger a_{m} + -1 ω_{n} a_{n}^\\dagger a_{m} + \\sum_{j}g_{mj} a_{n}^\\dagger \\sigma_{x,j} + -1 \\sum_{j}g_{nj} a_{m} \\sigma_{x,j}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:m,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), a{Tuple{Symbol}}((:m,)))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(-1), QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:n,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), a{Tuple{Symbol}}((:m,))))), QuantumAlgebra.OpSum(OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:m, :j)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,))))), QuantumAlgebra.OpProd(scal{Int64}(-1), OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:n, :j)), QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:m,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,)))))))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\sum_{j}g_{nj} a_{n}^\\dagger \\sigma_{x,j} + -1 \\sum_{j}g_{nj} a_{n} \\sigma_{x,j}$" ], "text/plain": [ "QuantumAlgebra.OpSum(OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:n, :j)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,))))), QuantumAlgebra.OpProd(scal{Int64}(-1), OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:n, :j)), QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,)))))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$0$" ], "text/plain": [ "scal{Int64}(0)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tmp1 = comm(adag(:n)*a(:m),H)\n", "tmp2 = comm(adag(:n)*a(:n),H)\n", "display(tmp1)\n", "display(tmp2)\n", "display(tmp2 - QuantumAlgebra.replace_index(tmp1,:m,:n))" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$[a_{n},H] = ω_{n} a_{n} + \\sum_{j}g_{nj} \\sigma_{x,j}$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$[a_{n}^\\dagger,H] = -1 ω_{n} a_{n}^\\dagger + -1 \\sum_{j}g_{nj} \\sigma_{x,j}$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$[\\sigma_{x,k},H] = -1i ωe_{k} \\sigma_{y,k}$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$[\\sigma_{y,k},H] = 1i ωe_{k} \\sigma_{x,k} + -2i \\sum_{i}g_{ik} a_{i}^\\dagger \\sigma_{z,k} + -2i \\sum_{i}g_{ik} a_{i} \\sigma_{z,k}$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$[\\sigma_{z,k},H] = 2i \\sum_{i}g_{ik} a_{i}^\\dagger \\sigma_{y,k} + 2i \\sum_{i}g_{ik} a_{i} \\sigma_{y,k}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for op in [a(:n),adag(:n),σx(:k),σy(:k),σz(:k)]\n", " display(\"text/latex\",string(\"\\$[\",latex(op),\",H] = \",latex(comm(op,H)),\"\\$\"))\n", "end" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$[a_{n}^\\dagger \\sigma_{z,k},H] = -1 ω_{n} a_{n}^\\dagger \\sigma_{z,k} + -1 \\sum_{j}g_{nj} \\sigma_{x,j} \\sigma_{z,k} + 2i \\sum_{i}g_{ik} a_{i}^\\dagger a_{n}^\\dagger \\sigma_{y,k} + 2i \\sum_{i}g_{ik} a_{n}^\\dagger a_{i} \\sigma_{y,k}$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$[a_{n} \\sigma_{z,k},H] = 2i g_{nk} \\sigma_{y,k} + ω_{n} a_{n} \\sigma_{z,k} + \\sum_{j}g_{nj} \\sigma_{x,j} \\sigma_{z,k} + 2i \\sum_{i}g_{ik} a_{i}^\\dagger a_{n} \\sigma_{y,k} + 2i \\sum_{i}g_{ik} a_{i} a_{n} \\sigma_{y,k}$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for op in [adag(:n)*σz(:k),a(:n)*σz(:k)]\n", " display(\"text/latex\",string(\"\\$[\",latex(op),\",H] = \",latex(comm(op,H)),\"\\$\"))\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cumulant expansions\n", "Expresses expectation values of operator products in terms of correlators and products of single-operator expectation values" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\frac{1}{2} \\sum_{j}ωe_{j} \\langle \\sigma_{z,j} \\rangle + \\sum_{i}ω_{i} \\langle a_{i}^\\dagger a_{i} \\rangle + \\sum_{i}\\sum_{j}g_{ij} \\langle a_{i}^\\dagger \\sigma_{x,j} \\rangle + \\sum_{i}\\sum_{j}g_{ij} \\langle a_{i} \\sigma_{x,j} \\rangle$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Rational{Int64}}(1//2), OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ωe, 'r', (:j,)), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:j,)))))), QuantumAlgebra.OpSum(OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:i,)), ExpVal(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:i,)))))), QuantumAlgebra.OpSum(OpSumAnalytic(:i, OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :j)), ExpVal(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,))))))), OpSumAnalytic(:i, OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :j)), ExpVal(QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,))))))))))" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ExpVal(H)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\frac{1}{2} \\sum_{j}ωe_{j} \\langle \\sigma_{z,j} \\rangle + \\sum_{i}ω_{i} \\langle a_{i}^\\dagger \\rangle \\langle a_{i} \\rangle + \\sum_{i}ω_{i} \\langle a_{i}^\\dagger a_{i} \\rangle_{c} + \\sum_{i}\\sum_{j}g_{ij} \\langle a_{i}^\\dagger \\rangle \\langle \\sigma_{x,j} \\rangle + \\sum_{i}\\sum_{j}g_{ij} \\langle a_{i} \\rangle \\langle \\sigma_{x,j} \\rangle + \\sum_{i}\\sum_{j}g_{ij} \\langle a_{i}^\\dagger \\sigma_{x,j} \\rangle_{c} + \\sum_{i}\\sum_{j}g_{ij} \\langle a_{i} \\sigma_{x,j} \\rangle_{c}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Rational{Int64}}(1//2), OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ωe, 'r', (:j,)), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:j,)))))), QuantumAlgebra.OpSum(OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:i,)), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Symbol}}((:i,))), ExpVal(a{Tuple{Symbol}}((:i,)))))), QuantumAlgebra.OpSum(OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:i,)), Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), a{Tuple{Symbol}}((:i,)))))), QuantumAlgebra.OpSum(OpSumAnalytic(:i, OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :j)), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Symbol}}((:i,))), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,))))))), QuantumAlgebra.OpSum(OpSumAnalytic(:i, OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :j)), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Symbol}}((:i,))), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,))))))), QuantumAlgebra.OpSum(OpSumAnalytic(:i, OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :j)), Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,))))))), OpSumAnalytic(:i, OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :j)), Corr(QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,)))))))))))))" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ascorr(H)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$3$" ], "text/plain": [ "scal{Int64}(3)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\langle a_{2} \\rangle$" ], "text/plain": [ "ExpVal(a{Tuple{Int64}}((2,)))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$3 \\langle a_{2} \\rangle$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Int64}(3), ExpVal(a{Tuple{Int64}}((2,))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(ascorr(scal(3)))\n", "display(ascorr(a(2)))\n", "display(ascorr(scal(3)*a(2)))" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\langle a_{2} a_{2} \\rangle_{c} + \\langle a_{2} \\rangle \\langle a_{2} \\rangle$" ], "text/plain": [ "QuantumAlgebra.OpSum(Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((2,)))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((2,))), ExpVal(a{Tuple{Int64}}((2,)))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$2 \\langle a_{1} a_{2} a_{3} \\rangle_{c} + 2 \\langle a_{1} \\rangle \\langle a_{2} \\rangle \\langle a_{3} \\rangle + 2 \\langle a_{1} \\rangle \\langle a_{2} a_{3} \\rangle_{c} + 2 \\langle a_{2} \\rangle \\langle a_{1} a_{3} \\rangle_{c} + 2 \\langle a_{3} \\rangle \\langle a_{1} a_{2} \\rangle_{c}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(2), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((3,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(2), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((1,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((2,))), ExpVal(a{Tuple{Int64}}((3,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(2), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((1,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((3,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(2), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((2,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), a{Tuple{Int64}}((3,)))))), QuantumAlgebra.OpProd(scal{Int64}(2), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((3,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), a{Tuple{Int64}}((2,))))))))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\langle a_{1} a_{2} a_{3} a_{4} \\rangle_{c} + \\langle a_{1} \\rangle \\langle a_{2} \\rangle \\langle a_{3} \\rangle \\langle a_{4} \\rangle + \\langle a_{1} \\rangle \\langle a_{2} \\rangle \\langle a_{3} a_{4} \\rangle_{c} + \\langle a_{1} \\rangle \\langle a_{3} \\rangle \\langle a_{2} a_{4} \\rangle_{c} + \\langle a_{1} \\rangle \\langle a_{4} \\rangle \\langle a_{2} a_{3} \\rangle_{c} + \\langle a_{1} \\rangle \\langle a_{2} a_{3} a_{4} \\rangle_{c} + \\langle a_{2} \\rangle \\langle a_{3} \\rangle \\langle a_{1} a_{4} \\rangle_{c} + \\langle a_{2} \\rangle \\langle a_{4} \\rangle \\langle a_{1} a_{3} \\rangle_{c} + \\langle a_{2} \\rangle \\langle a_{1} a_{3} a_{4} \\rangle_{c} + \\langle a_{3} \\rangle \\langle a_{4} \\rangle \\langle a_{1} a_{2} \\rangle_{c} + \\langle a_{3} \\rangle \\langle a_{1} a_{2} a_{4} \\rangle_{c} + \\langle a_{4} \\rangle \\langle a_{1} a_{2} a_{3} \\rangle_{c} + \\langle a_{1} a_{2} \\rangle_{c} \\langle a_{3} a_{4} \\rangle_{c} + \\langle a_{1} a_{3} \\rangle_{c} \\langle a_{2} a_{4} \\rangle_{c} + \\langle a_{1} a_{4} \\rangle_{c} \\langle a_{2} a_{3} \\rangle_{c}$" ], "text/plain": [ "QuantumAlgebra.OpSum(Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((3,)), a{Tuple{Int64}}((4,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((1,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((2,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((3,))), ExpVal(a{Tuple{Int64}}((4,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((1,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((2,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((3,)), a{Tuple{Int64}}((4,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((1,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((3,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((4,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((1,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((4,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((3,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((1,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((3,)), a{Tuple{Int64}}((4,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((2,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((3,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), a{Tuple{Int64}}((4,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((2,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((4,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), a{Tuple{Int64}}((3,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((2,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((3,)), a{Tuple{Int64}}((4,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((3,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((4,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), a{Tuple{Int64}}((2,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((3,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((4,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((4,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((3,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), a{Tuple{Int64}}((2,)))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((3,)), a{Tuple{Int64}}((4,))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), a{Tuple{Int64}}((3,)))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((4,))))), QuantumAlgebra.OpProd(Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), a{Tuple{Int64}}((4,)))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((3,)))))))))))))))))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\langle a_{2}^\\dagger a_{1} \\sigma_{z,1} \\rangle_{c} + \\langle a_{2}^\\dagger \\rangle \\langle a_{1} \\rangle \\langle \\sigma_{z,1} \\rangle + \\langle a_{2}^\\dagger \\rangle \\langle a_{1} \\sigma_{z,1} \\rangle_{c} + \\langle a_{1} \\rangle \\langle a_{2}^\\dagger \\sigma_{z,1} \\rangle_{c} + \\langle \\sigma_{z,1} \\rangle \\langle a_{2}^\\dagger a_{1} \\rangle_{c}$" ], "text/plain": [ "QuantumAlgebra.OpSum(Corr(QuantumAlgebra.OpProd(adag{Tuple{Int64}}((2,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Int64}}((2,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((1,))), ExpVal(QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Int64}}((2,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((1,)), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((1,))), Corr(QuantumAlgebra.OpProd(adag{Tuple{Int64}}((2,)), QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,))))), QuantumAlgebra.OpProd(ExpVal(QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,))), Corr(QuantumAlgebra.OpProd(adag{Tuple{Int64}}((2,)), a{Tuple{Int64}}((1,)))))))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(ascorr(a(2)*a(2)))\n", "display(ascorr(scal(2)*a(1)*a(2)*a(3)))\n", "display(ascorr(a(1)*a(2)*a(3)*a(4)))\n", "display(ascorr(adag(2)*a(1)*σz(1)))" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$g \\langle a_{3}^\\dagger \\rangle \\langle a_{2} \\rangle \\langle a_{2} \\rangle + g \\langle a_{3}^\\dagger \\rangle \\langle a_{2} a_{2} \\rangle_{c} + 2 g \\langle a_{2} \\rangle \\langle a_{3}^\\dagger a_{2} \\rangle_{c} + g \\langle a_{3}^\\dagger a_{2} a_{2} \\rangle_{c}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(param{Tuple{}}(:g, 'r', ()), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Int64}}((3,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((2,))), ExpVal(a{Tuple{Int64}}((2,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(param{Tuple{}}(:g, 'r', ()), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Int64}}((3,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((2,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(2), QuantumAlgebra.OpProd(param{Tuple{}}(:g, 'r', ()), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Int64}}((2,))), Corr(QuantumAlgebra.OpProd(adag{Tuple{Int64}}((3,)), a{Tuple{Int64}}((2,))))))), QuantumAlgebra.OpProd(param{Tuple{}}(:g, 'r', ()), Corr(QuantumAlgebra.OpProd(adag{Tuple{Int64}}((3,)), QuantumAlgebra.OpProd(a{Tuple{Int64}}((2,)), a{Tuple{Int64}}((2,)))))))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$-1 g_{1} \\langle \\sigma_{z,1} \\rangle$" ], "text/plain": [ "QuantumAlgebra.OpProd(scal{Int64}(-1), QuantumAlgebra.OpProd(param{Tuple{Int64}}(:g, 'r', (1,)), ExpVal(QuantumAlgebra.σ{Tuple{Int64}}(QuantumAlgebra.z, (1,)))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(ascorr(param(:g,'r')*adag(3)*a(2)*a(2)))\n", "display(ascorr(scal(-1)*param(:g,'r',1)*σz(1)))" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\langle a_{n}^\\dagger \\sigma_{y,k} \\rangle_{c} + \\langle a_{n}^\\dagger \\rangle \\langle \\sigma_{y,k} \\rangle$" ], "text/plain": [ "QuantumAlgebra.OpSum(Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:k,)))), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Symbol}}((:n,))), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:k,)))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$1i ωe_{k} a_{n}^\\dagger \\sigma_{x,k} + -1 ω_{n} a_{n}^\\dagger \\sigma_{y,k} + -1 \\sum_{j}g_{nj} \\sigma_{x,j} \\sigma_{y,k} + -2i \\sum_{i}g_{ik} a_{i}^\\dagger a_{n}^\\dagger \\sigma_{z,k} + -2i \\sum_{i}g_{ik} a_{n}^\\dagger a_{i} \\sigma_{z,k}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 + 1//1*im), QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ωe, 'r', (:k,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:k,))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(-1), QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:n,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:k,))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(-1), OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:n, :j)), QuantumAlgebra.OpProd(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:k,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,))))))), QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,)))))))))))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$-1i g_{nk} \\langle \\sigma_{z,k} \\rangle + 1i g_{nk} \\langle \\sigma_{z,k} \\rangle_{c} + 1i ωe_{k} \\langle a_{n}^\\dagger \\rangle \\langle \\sigma_{x,k} \\rangle + -1 ω_{n} \\langle a_{n}^\\dagger \\rangle \\langle \\sigma_{y,k} \\rangle + g_{nk} \\langle \\sigma_{x,k} \\rangle \\langle \\sigma_{y,k} \\rangle + 1i ωe_{k} \\langle a_{n}^\\dagger \\sigma_{x,k} \\rangle_{c} + -1 ω_{n} \\langle a_{n}^\\dagger \\sigma_{y,k} \\rangle_{c} + -1 \\sum_{j}g_{nj} \\langle \\sigma_{x,j} \\rangle \\langle \\sigma_{y,k} \\rangle + -1 \\sum_{j}g_{nj} \\langle \\sigma_{x,j} \\sigma_{y,k} \\rangle_{c} + -2i \\sum_{i}g_{ik} \\langle a_{i}^\\dagger \\rangle \\langle a_{n}^\\dagger \\rangle \\langle \\sigma_{z,k} \\rangle + -2i \\sum_{i}g_{ik} \\langle a_{i}^\\dagger \\rangle \\langle a_{n}^\\dagger \\sigma_{z,k} \\rangle_{c} + -2i \\sum_{i}g_{ik} \\langle a_{n}^\\dagger \\rangle \\langle a_{i} \\rangle \\langle \\sigma_{z,k} \\rangle + -2i \\sum_{i}g_{ik} \\langle a_{n}^\\dagger \\rangle \\langle a_{i}^\\dagger \\sigma_{z,k} \\rangle_{c} + -2i \\sum_{i}g_{ik} \\langle a_{n}^\\dagger \\rangle \\langle a_{i} \\sigma_{z,k} \\rangle_{c} + -2i \\sum_{i}g_{ik} \\langle a_{i} \\rangle \\langle a_{n}^\\dagger \\sigma_{z,k} \\rangle_{c} + -2i \\sum_{i}g_{ik} \\langle \\sigma_{z,k} \\rangle \\langle a_{i}^\\dagger a_{n}^\\dagger \\rangle_{c} + -2i \\sum_{i}g_{ik} \\langle \\sigma_{z,k} \\rangle \\langle a_{n}^\\dagger a_{i} \\rangle_{c} + -2i \\sum_{i}g_{ik} \\langle a_{i}^\\dagger a_{n}^\\dagger \\sigma_{z,k} \\rangle_{c} + -2i \\sum_{i}g_{ik} \\langle a_{n}^\\dagger a_{i} \\sigma_{z,k} \\rangle_{c}$" ], "text/plain": [ "QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 - 1//1*im), QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:n, :k)), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 + 1//1*im), QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:n, :k)), Corr(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 + 1//1*im), QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ωe, 'r', (:k,)), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Symbol}}((:n,))), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:k,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(-1), QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:n,)), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Symbol}}((:n,))), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:k,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:n, :k)), QuantumAlgebra.OpProd(ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:k,))), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:k,))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Rational{Int64}}}(0//1 + 1//1*im), QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ωe, 'r', (:k,)), Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:k,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(-1), QuantumAlgebra.OpProd(param{Tuple{Symbol}}(:ω, 'r', (:n,)), Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:k,)))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(-1), OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:n, :j)), QuantumAlgebra.OpProd(ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,))), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:k,))))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Int64}(-1), OpSumAnalytic(:j, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:n, :j)), Corr(QuantumAlgebra.OpProd(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.x, (:j,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.y, (:k,))))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Symbol}}((:i,))), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Symbol}}((:n,))), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,)))))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Symbol}}((:i,))), Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,)))))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Symbol}}((:n,))), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Symbol}}((:i,))), ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,)))))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Symbol}}((:n,))), Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,)))))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), QuantumAlgebra.OpProd(ExpVal(adag{Tuple{Symbol}}((:n,))), Corr(QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,)))))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), QuantumAlgebra.OpProd(ExpVal(a{Tuple{Symbol}}((:i,))), Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,)))))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), QuantumAlgebra.OpProd(ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,))), Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), adag{Tuple{Symbol}}((:n,)))))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), QuantumAlgebra.OpProd(ExpVal(QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,))), Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), a{Tuple{Symbol}}((:i,)))))))), QuantumAlgebra.OpSum(QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:i,)), QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,)))))))), QuantumAlgebra.OpProd(scal{Complex{Int64}}(0 - 2im), OpSumAnalytic(:i, QuantumAlgebra.OpProd(param{Tuple{Symbol,Symbol}}(:g, 'r', (:i, :k)), Corr(QuantumAlgebra.OpProd(adag{Tuple{Symbol}}((:n,)), QuantumAlgebra.OpProd(a{Tuple{Symbol}}((:i,)), QuantumAlgebra.σ{Tuple{Symbol}}(QuantumAlgebra.z, (:k,))))))))))))))))))))))))))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "op = adag(:n)*σy(:k)\n", "dop = comm(op,H)\n", "display(ascorr(op))\n", "display(dop)\n", "display(ascorr(dop))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Vacuum expectation values" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$0$" ], "text/plain": [ "scal{Complex{Rational{Int64}}}(0//1 + 0//1*im)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$1$" ], "text/plain": [ "scal{Complex{Rational{Int64}}}(1//1 + 0//1*im)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(vacA(Avac(σp(1)*σm(1))))\n", "display(vacA(Avac(σm(1)*σp(1))))" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$|\\psi\\rangle = (0.707107 a_{n}^\\dagger + 0.288675 a_{n}^\\dagger a_{n}^\\dagger a_{n}^\\dagger)|0\\rangle$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\langle\\psi|1|\\psi\\rangle = 1$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\langle\\psi|a_{n}^\\dagger a_{n}|\\psi\\rangle = 2$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\langle\\psi|a_{n}^\\dagger a_{n}^\\dagger a_{n} a_{n}|\\psi\\rangle = 3$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$|\\psi\\rangle = (0.707107 a_{m}^\\dagger + 0.288675 a_{n}^\\dagger a_{n}^\\dagger a_{n}^\\dagger)|0\\rangle$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\langle\\psi|1|\\psi\\rangle = 1$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\langle\\psi|a_{n}^\\dagger a_{n}|\\psi\\rangle = 1.5$" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\langle\\psi|a_{n}^\\dagger a_{n}^\\dagger a_{n} a_{n}|\\psi\\rangle = 3$" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nphotstate(n,ind) = scal(1/sqrt(factorial(n))) * *((adag(ind) for i=1:n)...)\n", "for i2 = (:n,:m)\n", " stateop = scal(1/√2)*nphotstate(3,:n) + scal(1/√2)*nphotstate(1,i2)\n", " display(\"text/latex\",string(\"\\$|\\\\psi\\\\rangle = (\",latex(stateop),\")|0\\\\rangle\\$\"))\n", " for A in [scal(1),adag(:n)*a(:n),adag(:n)*adag(:n)*a(:n)*a(:n)]\n", " display(\"text/latex\",string(\"\\$\\\\langle\\\\psi|\",latex(A),\"|\\\\psi\\\\rangle = \",latex(vacExpVal(A,stateop)),\"\\$\"))\n", " end\n", "end" ] } ], "metadata": { "@webio": { "lastCommId": null, "lastKernelId": null }, "hide_input": false, "kernelspec": { "display_name": "Julia 1.2.0", "language": "julia", "name": "julia-1.2" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.2.0" } }, "nbformat": 4, "nbformat_minor": 2 }