{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e1c87eab",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-10T13:11:37.529457Z",
     "iopub.status.busy": "2024-07-10T13:11:37.529123Z",
     "iopub.status.idle": "2024-07-10T13:11:40.870505Z",
     "shell.execute_reply": "2024-07-10T13:11:40.869673Z"
    }
   },
   "outputs": [],
   "source": [
    "import finesse\n",
    "finesse.configure(plotting=True)\n",
    "\n",
    "kat = finesse.Model()\n",
    "kat.parse(\n",
    "    \"\"\"\n",
    "    # Laser with power 1W\n",
    "    laser L0 P=1\n",
    "    s s0 L0.p1 eom1.p1\n",
    "\n",
    "    # Phase modulator at 40kHz, with a modulation index of 0.05\n",
    "    mod eom1 f=40k midx=.05 order=5 mod_type=pm\n",
    "\n",
    "    # Three amplitude detectors, looking at the first three positive modulation\n",
    "    # sidebands\n",
    "    ad bessel1 eom1.p2.o f=40k\n",
    "    ad bessel2 eom1.p2.o f=80k\n",
    "    ad bessel3 eom1.p2.o f=120k\n",
    "\n",
    "    # Sweep the modulation index of the modulator from 0 to 10\n",
    "    xaxis(eom1.midx, lin, 0, 10, 300)\n",
    "    \"\"\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "143ae584",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-07-10T13:11:40.874722Z",
     "iopub.status.busy": "2024-07-10T13:11:40.873835Z",
     "iopub.status.idle": "2024-07-10T13:11:41.620760Z",
     "shell.execute_reply": "2024-07-10T13:11:41.619688Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "\n",
       "\n",
       "\n"
      ],
      "text/plain": [
       ""
      ]
     },
     "metadata": {
      "filenames": {
       "image/svg+xml": "/builds/ifosim/finesse/finesse3/docs/build/jupyter_execute/examples/05_modulation_1_0.svg"
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "out = kat.run()\n",
    "out.plot();"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}