Qutip: Quantum Toolbox in Python Release 4.0.2
Total Page:16
File Type:pdf, Size:1020Kb
QuTiP: Quantum Toolbox in Python Release 4.0.2 P.D. Nation, J.R. Johansson, A.J.G. Pitchford, C. Granade, and A.L. Grimsmo Jan 11, 2017 Contents 1 Frontmatter 3 1.1 About This Documentation.....................................3 1.2 Citing This Project..........................................3 1.3 Funding................................................3 1.4 About QuTiP.............................................4 1.5 Contributing to QuTiP........................................5 2 Installation 7 2.1 General Requirements........................................7 2.2 Platform-independent Installation..................................7 2.2.1 Building your Conda environment.............................8 2.2.2 Adding the conda-forge channel..............................8 2.3 Installing via pip...........................................9 2.4 Installing from Source........................................9 2.5 Verifying the Installation.......................................9 2.6 Checking Version Information using the About Function......................9 2.7 Installation on MS Windows..................................... 10 3 Users Guide 11 3.1 Guide Overview........................................... 11 3.1.1 Organization........................................ 11 3.2 Basic Operations on Quantum Objects................................ 11 3.2.1 First things first....................................... 11 3.2.2 The quantum object class.................................. 13 3.2.3 Functions operating on Qobj class............................. 17 3.3 Manipulating States and Operators................................. 20 3.3.1 Introduction......................................... 20 3.3.2 State Vectors (kets or bras)................................. 20 3.3.3 Density matrices...................................... 24 3.3.4 Qubit (two-level) systems.................................. 26 3.3.5 Expectation values..................................... 27 3.3.6 Superoperators and Vectorized Operators......................... 29 3.3.7 Choi, Kraus, Stinespring and 휒 Representations...................... 31 3.3.8 Properties of Quantum Maps................................ 36 3.4 Using Tensor Products and Partial Traces.............................. 37 3.4.1 Tensor products....................................... 37 3.4.2 Example: Constructing composite Hamiltonians...................... 39 3.4.3 Partial trace......................................... 40 3.4.4 Superoperators and Tensor Manipulations......................... 41 3.5 Time Evolution and Quantum System Dynamics.......................... 42 3.5.1 Dynamics Simulation Results................................ 42 3.5.2 Lindblad Master Equation Solver.............................. 44 3.5.3 Monte Carlo Solver..................................... 50 3.5.4 Bloch-Redfield master equation.............................. 56 3.5.5 Solving Problems with Time-dependent Hamiltonians................... 60 3.5.6 Floquet Formalism..................................... 66 3.5.7 Setting Options for the Dynamics Solvers......................... 75 i 3.6 Solving for Steady-State Solutions.................................. 77 3.6.1 Introduction......................................... 77 3.6.2 Steady State solvers in QuTiP............................... 77 3.6.3 Using the Steadystate Solver................................ 78 3.6.4 Additional Solver Arguments................................ 79 3.6.5 Example: Harmonic Oscillator in Thermal Bath...................... 79 3.7 An Overview of the Eseries Class.................................. 81 3.7.1 Exponential-series representation of time-dependent quantum objects.......... 81 3.7.2 Applications of exponential series............................. 83 3.8 Two-time correlation functions................................... 85 3.8.1 Steadystate correlation function.............................. 86 3.8.2 Emission spectrum..................................... 87 3.8.3 Non-steadystate correlation function............................ 88 3.9 Quantum Optimal Control...................................... 93 3.9.1 Introduction......................................... 93 3.9.2 Closed Quantum Systems.................................. 93 3.9.3 The GRAPE algorithm................................... 94 3.9.4 The CRAB Algorithm................................... 95 3.9.5 Optimal Quantum Control in QuTiP............................ 95 3.9.6 Using the pulseoptim functions............................... 96 3.10 Plotting on the Bloch Sphere..................................... 97 3.10.1 Introduction......................................... 97 3.10.2 The Bloch and Bloch3d Classes.............................. 97 3.10.3 Configuring the Bloch sphere................................ 106 3.10.4 Animating with the Bloch sphere.............................. 109 3.11 Visualization of quantum states and processes............................ 110 3.11.1 Fock-basis probability distribution............................. 111 3.11.2 Quasi-probability distributions............................... 112 3.11.3 Visualizing operators.................................... 115 3.11.4 Quantum process tomography............................... 117 3.12 Parallel computation......................................... 119 3.12.1 Parallel map and parallel for-loop............................. 119 3.12.2 IPython-based parallel_map................................ 121 3.13 Saving QuTiP Objects and Data Sets................................ 121 3.13.1 Storing and loading QuTiP objects............................. 121 3.13.2 Storing and loading datasets................................ 122 3.14 Generating Random Quantum States & Operators......................... 125 3.14.1 Random objects with a given eigen spectrum....................... 126 3.14.2 Composite random objects................................. 127 3.15 Modifying Internal QuTiP Settings................................. 127 3.15.1 User Accessible Parameters................................. 127 3.15.2 Example: Changing Settings................................ 128 3.15.3 Persistent Settings...................................... 128 4 API documentation 129 4.1 Classes................................................ 129 4.1.1 Qobj............................................. 129 4.1.2 eseries............................................ 137 4.1.3 Bloch sphere........................................ 138 4.1.4 non-Markovian Solvers................................... 143 4.1.5 Solver Options and Results................................. 147 4.1.6 Distribution functions.................................... 152 4.1.7 Quantum information processing.............................. 153 4.1.8 Optimal control....................................... 156 4.2 Functions............................................... 178 4.2.1 Manipulation and Creation of States and Operators.................... 178 4.2.2 Functions acting on states and operators.......................... 201 4.2.3 Dynamics and Time-Evolution............................... 208 ii 4.2.4 Visualization........................................ 230 4.2.5 Quantum Information Processing.............................. 238 4.2.6 non-Markovian Solvers................................... 245 4.2.7 Optimal control....................................... 245 4.2.8 Utilitiy Functions...................................... 259 5 Change Log 267 5.1 Version 4.1.0 (in dev)........................................ 267 5.1.1 Improvements........................................ 267 5.2 Version 4.0.2 (January 5, 2017)................................... 267 5.2.1 Bug Fixes.......................................... 267 5.3 Version 4.0.0 (December 22, 2016)................................. 267 5.3.1 Improvements........................................ 267 5.3.2 Bug Fixes.......................................... 268 5.4 Version 3.2.0 (Never officially released)............................... 268 5.4.1 New Features........................................ 268 5.4.2 Improvements........................................ 268 5.4.3 Bug Fixes.......................................... 270 5.5 Version 3.1.0 (January 1, 2015):................................... 270 5.5.1 New Features........................................ 270 5.5.2 Bug Fixes.......................................... 271 5.6 Version 3.0.1 (Aug 5, 2014):..................................... 271 5.6.1 Bug Fixes.......................................... 271 5.7 Version 3.0.0 (July 17, 2014):.................................... 271 5.7.1 New Features........................................ 271 5.7.2 Improvements........................................ 272 5.8 Version 2.2.0 (March 01, 2013):................................... 273 5.8.1 New Features........................................ 273 5.8.2 Bug Fixes:.......................................... 273 5.9 Version 2.1.0 (October 05, 2012):.................................. 273 5.9.1 New Features........................................ 273 5.9.2 Bug Fixes:.......................................... 273 5.10 Version 2.0.0 (June 01, 2012):.................................... 274 5.10.1 New Features........................................ 274 5.11 Version 1.1.4 (May 28, 2012):.................................... 275 5.11.1 Bug Fixes:.......................................... 275 5.12 Version 1.1.3 (November 21, 2011):................................. 275 5.12.1 New Functions:....................................... 275 5.12.2 Bug Fixes:.........................................