{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "309d54b1", "metadata": {}, "source": [ "# Physics Simulation" ] }, { "attachments": {}, "cell_type": "markdown", "id": "63b14a0d", "metadata": {}, "source": [ "Finally, we will take a close look at the physics simulation at the core of QDFlow.\n", "\n", "This is not necessary for generating data, but hopefully will offer some insight\n", "into how the simulation works and what the physics parameters do." ] }, { "cell_type": "code", "execution_count": 1, "id": "f80fb212", "metadata": {}, "outputs": [], "source": [ "from qdflow.physics import simulation\n", "from qdflow import generate\n", "import tutorial_helper\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "attachments": {}, "cell_type": "markdown", "id": "df04ad2a", "metadata": {}, "source": [ "The main part of the simulation is the `ThomasFermi` class.\n", "\n", "The simulation is performed via a series of static methods. For each method, all\n", "relevant data must be provided as the function's arguments.\n", "\n", "This includes a `PhysicsParameters` instance (which defines the physical\n", "parameters of the system), as well as a `NumericsParameters` instance\n", "(which is used to set numerical options).\n", "\n", "The `ThomasFermi` class contains a convenience method `run_calculations()`,\n", "which runs all the necessary methods to perform the simulation. However, we will\n", "not use it here, instead walking through the main steps of the simulation in detail." ] }, { "cell_type": "code", "execution_count": 2, "id": "1e013779", "metadata": {}, "outputs": [], "source": [ "# Define a set of default physical and numerical parameters\n", "phys = generate.default_physics(n_dots=2)\n", "numerics = simulation.NumericsParameters()\n", "phys.gates[3].peak = 7.5 # Adjust a gate voltage value\n", "\n", "# The simulation could be run all at once with the following code:\n", "\n", "# tf = simulation.ThomasFermi(phys, numerics=numerics)\n", "# tf_out = tf.run_calculations()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "bc3920fd", "metadata": {}, "source": [ "QDFlow uses a nanowire model, where charges are confined to a 1D nanowire\n", "which lies along the x-axis.\n", "\n", "A set of cylindrical gates induce a potential V(x) along the nanowire.\n", "\n", "The first step in the simulation is to calculate V(x) based on the voltages and\n", "layout of the gates. Alternatively, V(x) can be supplied directly as part of the\n", "`PhysicsParameters` dataclass, in which case this part of the simulation is skipped." ] }, { "attachments": {}, "cell_type": "markdown", "id": "e09030d7", "metadata": {}, "source": [ "\n" ] }, { "attachments": {}, "cell_type": "markdown", "id": "ebed787b", "metadata": {}, "source": [ "Each gate has its own position, radius, screening length, and voltage, which are\n", "stored in instances of the `GateParameters` dataclass.\n", "\n", "Note that the voltage given by `GateParameters.peak`, is the peak voltage\n", "induced by the gate along the nanowire (the maximum of V(x) in the absence of\n", "other gates), **not the voltage of the gate itself**." ] }, { "cell_type": "code", "execution_count": 3, "id": "1c3f2055", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Get one of the gates from the sample physics parameters \n", "gate_params = phys.gates[1]\n", "\n", "# Calculate the potential along the nanowire due to a single gate\n", "x = phys.x\n", "V_gate = simulation.calc_V_gate(gate_params, x, 0, 0)\n", "\n", "# Plot the result\n", "fig, ax = plt.subplots(figsize=(3.5,3))\n", "ax.plot(x, V_gate)\n", "ax.set_xlabel(\"x (nm)\")\n", "ax.set_ylabel(\"V (mV)\")\n", "ax.set_title(\"Potential of a single gate\");" ] }, { "attachments": {}, "cell_type": "markdown", "id": "7f70c56a", "metadata": {}, "source": [ "When multiple gates are in close proximity, the charge from one gate can induce\n", "additional charges on the other gates. QDFlow attempts to correct for this\n", "effect, assuming that the induced charges are cylidrically symmetric, allowing\n", "us to replace the gate voltage with an effective voltage which includes the\n", "induced charges." ] }, { "cell_type": "code", "execution_count": 4, "id": "1755315b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Gate voltages: [-7. 7. -5. 7.5 -7. ]\n", "Effective voltages: [-8.76084453 10.09547469 -8.3128789 10.64644697 -8.86626613]\n" ] } ], "source": [ "# Get list of gate voltages from the sample physics parameters \n", "gates = phys.gates\n", "gate_voltages = np.array([gate.peak for gate in gates])\n", "print(\"Gate voltages:\", gate_voltages)\n", "\n", "# Calculate correction matrix to account for induced charges\n", "gate_matrix = simulation.calc_effective_peak_matrix(gates)\n", "\n", "# Calculate effective gate voltages due to induced charges\n", "effective_voltages = np.dot(gate_matrix, gate_voltages)\n", "print(\"Effective voltages:\", effective_voltages)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "04b3f2cd", "metadata": {}, "source": [ "When calculating the potential via `calc_V()`, this will be calculated automatically.\n", "\n", "If you wish to not take into account induced charges, you can use the keyword arg\n", "`effective_peak_matrix=np.identity(len(gates))`. This will essentially treat\n", "the gates as a nonconducting static line charge." ] }, { "attachments": {}, "cell_type": "markdown", "id": "1fda5a2f", "metadata": {}, "source": [ "`phys.q` is the sign of the charges (-1 for electrons, +1 for holes). From here\n", "on, we shall plot the potential energy q * V, rather than V(x) directly." ] }, { "cell_type": "code", "execution_count": 5, "id": "b16a674f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Calculate V(x) from the gates\n", "gates = phys.gates\n", "x = phys.x\n", "V = simulation.calc_V(gates, x, 0, 0)\n", "\n", "# Calculate V(x) assuming no induced charges\n", "V_no_induced_charge = simulation.calc_V(gates, x, 0, 0,\n", " effective_peak_matrix=np.identity(len(gates)))\n", "\n", "q = phys.q # Get the sign of the charges\n", "\n", "# Plot the results\n", "fig, ax = plt.subplots(figsize=(3.5,3))\n", "tutorial_helper.plot_potential(fig, ax, x, q*V, color=\"blue\")\n", "tutorial_helper.plot_potential(fig, ax, x, q*V_no_induced_charge, color=\"red\")\n", "ax.legend([\"induced charges\",\"no induced charges\"], loc=\"lower center\", bbox_to_anchor=(0.5, 1.05))" ] }, { "attachments": {}, "cell_type": "markdown", "id": "7d23252d", "metadata": {}, "source": [ "Now we must also calculate the Coulomb interaction matrix K(x, x').\n", "Alternatetively, K(x, x') can be supplied directly as part of the `PhysicsParameters`\n", "dataclass, in which case this next step is skipped.\n", "\n", "By default, K(x, x') is calculated using the formula:\n", "\n", "$K(x, x') = \\frac{K_0}{\\sqrt{(x-x')^2 + \\sigma^2}}$.\n", "\n", "Here $\\sigma$ is a softening parameter which prevents K(x, x') from blowing up\n", "when (x - x') is small or zero. This numerical issue occurs because our\n", "simulation is 1D, which assumes an intinitessimally thin nanowire. In reality,\n", "however, the nanowire has some finite width, which prevents K(x, x') from blowing\n", "up. Thus, $\\sigma$ should be chosen to be on the order of the width of the nanowire." ] }, { "cell_type": "code", "execution_count": 6, "id": "c5e094ce", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Get sample physics parameters\n", "x = phys.x\n", "K_0 = phys.K_0\n", "sigma = phys.sigma\n", "\n", "# Calculate the Coulomb interaction matrix\n", "K_mat = simulation.calc_K_mat(x, K_0, sigma)\n", "\n", "# Plot the result\n", "fig, ax = plt.subplots(figsize=(3.5,3))\n", "ax.plot(x, K_mat[:, len(x)//2])\n", "ax.set_xlabel(\"x (nm)\")\n", "ax.set_ylabel(\"K(x,0) (meV)\")\n", "ax.set_title(\"Coulomb interaction\");" ] } ], "metadata": { "kernelspec": { "display_name": "qdflow_venv", "language": "python", "name": "qdflow_venv" }, "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.2" } }, "nbformat": 4, "nbformat_minor": 5 }