{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Quantum states\n", "Useful for working examples and problems with photon quantum states. You may notice some similarity to the Jones Calculus ;-)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from numpy import sqrt\n", "from qutip import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These are the polarization states:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "H = Qobj([[1],[0]])\n", "V = Qobj([[0],[1]])\n", "P45 = Qobj([[1/sqrt(2)],[1/sqrt(2)]])\n", "M45 = Qobj([[1/sqrt(2)],[-1/sqrt(2)]])\n", "R = Qobj([[1/sqrt(2)],[-1j/sqrt(2)]])\n", "L = Qobj([[1/sqrt(2)],[1j/sqrt(2)]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Devices:\n", "\n", "HWP - Half-wave plate axis at $\\theta$ to the horizontal\n", "\n", "LP - Linear polarizer, axis at $\\theta$\n", "\n", "QWP - Quarter-wave plate, axis at $\\theta$\n", "\n", "Note, these are functions so you need to call them with a specific value of theta." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def HWP(theta):\n", " return Qobj([[cos(2*theta),sin(2*theta)],[sin(2*theta),-cos(2*theta)]]).tidyup()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def LP(theta):\n", " return Qobj([[cos(theta)**2,cos(theta)*sin(theta)],[sin(theta)*cos(theta),sin(theta)**2]]).tidyup()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def QWP(theta):\n", " return Qobj([[cos(theta)**2 + 1j*sin(theta)**2,\n", " (1-1j)*sin(theta)*cos(theta)],\n", " [(1-1j)*sin(theta)*cos(theta),\n", " sin(theta)**2 + 1j*cos(theta)**2]]).tidyup()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 1) Check that the $|H\\rangle$ state is normalized" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[1], [1]], shape = [1, 1], type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[1], [1]], shape = [1, 1], type = oper, isherm = True\n", "Qobj data =\n", "[[ 1.]]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "H.dag()*H" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2], [1]], shape = [2, 1], type = ket\\begin{equation*}\\left(\\begin{array}{*{11}c}(1.0+1.0j)\\\\(2.0-1.0j)\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [1]], shape = [2, 1], type = ket\n", "Qobj data =\n", "[[ 1.+1.j]\n", " [ 2.-1.j]]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "psi = Qobj([[1+1j], [2-1j]])\n", "psi" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[1], [2]], shape = [1, 2], type = bra\\begin{equation*}\\left(\\begin{array}{*{11}c}(1.0-1.0j) & (2.0+1.0j)\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[1], [2]], shape = [1, 2], type = bra\n", "Qobj data =\n", "[[ 1.-1.j 2.+1.j]]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "psi.dag()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2], [1]], shape = [2, 1], type = ket\\begin{equation*}\\left(\\begin{array}{*{11}c}(1.0+1.0j)\\\\(2.0-1.0j)\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [1]], shape = [2, 1], type = ket\n", "Qobj data =\n", "[[ 1.+1.j]\n", " [ 2.-1.j]]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "psi.dag().dag()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1) verify that the $|V\\rangle$ state is normalized" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2) Verify that the $|H\\rangle$ and $|V\\rangle$ states are orthogonal. Repeat for the other pairs of states." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3) Find the horizontal component $c_H$ of the state $\\psi = \\frac{1}{\\sqrt{5}}|H\\rangle + \\frac{2}{\\sqrt{5}}|V\\rangle$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4) Verify Eq. (3.18) " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 1 }