{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "import numpy as np\n", "\n", "from maxwellbloch import plot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Getting Started with the Two-Level Atom" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first model we'll consider is a medium of two-level atoms, coupled by a weak pulse.\n", "\n", "```\n", "____ |1>\n", " |\n", " | Ω\n", " |\n", "____ |0>\n", "```\n", "\n", "We'll need to define a field, and the two-level atom for the field to address." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining the Field and Atom" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from maxwellbloch import field, ob_atom" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we'll define the field. The quantity we care about is the input Rabi frequency as a function of time, $\\Omega(t)$. Let's say our input pulse has a max $\\Omega_0 = 2\\pi \\cdot 0.001 \\mathrm{~ MHz}$, and is a Gaussian with a full-width at half-maximum (FWHM) of $1 \\mathrm{~ \\mu s}$." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "the_field = field.Field(\n", " coupled_levels=[[0, 1]],\n", " rabi_freq=1.0e-3, # [2π MHz]\n", " rabi_freq_t_func=\"gaussian\",\n", " rabi_freq_t_args={\n", " \"ampl\": 1.0,\n", " \"centre\": 0.0, # [μs]\n", " \"fwhm\": 1.0,\n", " }, # [μs]\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first property `coupled_levels` is a list of pairs to be coupled by the field. In this case we only have two levels, indexed `0` (the ground state) and `1` (the excited state). The properties `rabi_freq`, `rabi_freq_t_func` and `rabi_freq_t_args` together define the field profile entering the medium. What does the profile look like in this case?" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "