{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# The Hydrogen Evolution Reaction (HER)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pyPourbaix as pb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Perhaps the simplest reaction out of all reactions to be plotted in a Pourbaix diagram is the Hydrogen Evolution Reaction:\n", "- $2\\text{H}^+ + 2e^- \\rightarrow \\text{H}_2(g)$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It requires only one element, hydrogen, and two species, $\\text{H}^+$ and $\\text{H}_2(g)$. To plot this reaction on a Pourbaix diagram, let's define both of these species as well as the electrons exchanged between them:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "species = ('H|+1|, state=aq, dGf=0, dHf=0, Sm=0',\n", " 'H2, state=g, dGf=0, dHf=0, Sm=0',\n", " 'e|-1|, state=e, dGf=0, dHf=0, Sm=0')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each reactant requires 5 inputs, the formula of the chemical compound, its physical state and the standard molar Gibbs free energy of formation $G_f^0$ in J/mol, enthalpy of formation $H_f^0$ in J/mol and entropy $S_m$ in J/mol/K. The formal charge of each compound can be passed on in vertical lines at the end of the formula. The second input provided is the physical state of the reactant. As indicated above, $\\text{H}^+$ is defined as an aqueous and $\\text{H}_2(g)$ as a gaseous species. \n", "\n", "We can deposit all species created in a database that is later fed into the reactive system to be plotted. Note that all thermodynamic parameters, the species charge and the molecular weight are parsed automatically from the provided tuples of species." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "db = pb.Database.from_default(species)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Tip: The molecular weight of a compound is calculated automatically and does not have to be specified.\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Tip: pyPourbaix features 5 different states, solid, aqueous, liquid, gaseous and the dummy state electron. They are abbreviated by their usual indices in chemical formulae, s, aq, l and g. The state electron merely exists to tell the electrons apart from all other reactive constituents.\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Warning: The compound formula must make sense. Any string or letter that does not represent an element as displayed in the periodic system of elements will raise an error message. \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we defined all compounds part of the Hydrogen Evolution Reaction, we can build a reaction in the form of a string, where all reactants are on the left side of the reaction arrow '->' . The reaction string parser will automatically extract the stoichiometric coefficients of all reactants." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "reactions = ('2H|+1| + 2e|-1| -> H2',)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Tip: pyPourbaix adopts the notation that all stoichiometric coefficients of reactants are negative and those of the products are positive.\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are now good to create a reactive system. For now, we will not modify any of the physiochemical parameters. Let's also quickly add both hydrogen and oxygen as the elements to be included in the diagram and define the pH and potential space." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "hydrogen_system = pb.System()\n", "hydrogen_system.set_database(db)\n", "hydrogen_system.temperature = 298.15 \n", "hydrogen_system.pressure = 1.00\n", "hydrogen_system.pHs = (0,10)\n", "hydrogen_system.electrode_potentials = (-1.5,1.5)\n", "hydrogen_system.reference_electrode = (\"SHE\",0.00)\n", "hydrogen_system.add_elements([\"O\",\"H\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Tip: pyPourbaix has a bunch of reference electrodes saved by default including the standard hydrogen electrode (SHE), the saturated silver-sliver chloride electrode (SCE) or the copper sulfate electrode (CSE), together with their respective electrode potential shifts.\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The newly created HER dictionary is passed into the reactive system as follows:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "hydrogen_system.add_reactions(reactions)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The only thing that is left to do now is to create a Pourbaix diagram object of the class PourbaixDiagram. To compute all potential- and pH-dependent lines on the diagram, we use the command .solve(). Lastly, the diagram is displayed using the .show() command. We specify the plotting backend as matplotlib, since we want the diagram to appear right here in the notebook. For a more fancy version of the plot, the backend can be changed to bokeh. Try and see what happens. \n", "\n", "We will also pass the optional argument line_inspection=True into the created object, indicating that we ant to plot the entirety of the potential-pH line of the HER, irrespective of its intersections with other Pouraix lines." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Tip: pyPourbaix currently supports 2 plotting backends, matplotlib and bokeh. \n", "
" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAMWCAYAAABsvhCnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABLLklEQVR4nO3deXiddZ3w/0/SJV1oU9rSNqU7dN+TVhZl12JRBGEQF5TFjfnJINYFgUEBBZSHB1ERnPoAsojiI4s4oIAMBRUcc9KELrRl6UoXulCStrQpSc7vDy7O45m2kHCnvU/S1+u6znXNuc/26Vxx5ry97+/5FmWz2WwAAAAkUJz2AAAAQNsnLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMTaXFg8/fTTcfLJJ8fAgQOjqKgoHnzwwXd8/pw5c6KoqGiX2+LFi/fNwAAAsB/omPYALbVt27aYPHlynHvuuXH66ac3+3VLliyJnj175u4fdNBBe2M8AADYL7W5sJg5c2bMnDmzxa/r169f9OrVq/UHAgAA2t6lUO/V1KlTo6ysLE444YR48skn0x4HAADalTZ3xqKlysrKYvbs2VFRURH19fVx1113xQknnBBz5syJo48+erevqa+vj/r6+tz9pqameO2116JPnz5RVFS0r0YHAIC9JpvNxpYtW2LgwIFRXJz8fENRNpvNtsJcqSgqKooHHnggTj311Ba97uSTT46ioqJ46KGHdvv4FVdcEVdeeWUrTAgAAIVt1apVMWjQoMTv0+7PWOzO4YcfHnffffceH7/kkkti1qxZufu1tbUxZMiQWLVqVd4CcAAAaKvq6upi8ODB0aNHj1Z5v/0yLKqrq6OsrGyPj5eUlERJSckux3v27CksAABoV1rrUv82FxZbt26Nl156KXd/2bJlUVNTE717944hQ4bEJZdcEqtXr44777wzIiJuvPHGGDZsWIwfPz527twZd999d9x3331x3333pfVPAACAdqfNhUUmk4njjjsud//tS5bOPvvs+OUvfxlr166NlStX5h7fuXNnfOMb34jVq1dH165dY/z48fHwww/HSSedtM9nBwCA9qpNL97eV+rq6qK0tDRqa2tdCgUAQLvQ2t9x95t9LAAAgL1HWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxNpcWDz99NNx8sknx8CBA6OoqCgefPDBd33NU089FRUVFdGlS5cYMWJE/PznP9/7gwIAwH6kzYXFtm3bYvLkyXHTTTc16/nLli2Lk046KY466qiorq6OSy+9NC688MK477779vKkAACw/+iY9gAtNXPmzJg5c2azn//zn/88hgwZEjfeeGNERIwdOzYymUxcf/31cfrpp++lKQEAYP/S5s5YtNSzzz4bM2bMyDt24oknRiaTiTfffDOlqQAAoH1pc2csWmrdunXRv3//vGP9+/ePhoaG2LhxY5SVle3ymvr6+qivr8/dr6ur2+tzAgBAW9buz1hERBQVFeXdz2azuz3+tmuvvTZKS0tzt8GDB+/1GQEAoC1r92ExYMCAWLduXd6x9evXR8eOHaNPnz67fc0ll1wStbW1uduqVav2xagAANBmtftLoY444oj4wx/+kHfssccei2nTpkWnTp12+5qSkpIoKSnZF+MBAEC70ObOWGzdujVqamqipqYmIt76OdmamppYuXJlRLx1tuFzn/tc7vnnn39+rFixImbNmhWLFi2K2267LW699db4xje+kcb4AADQLrW5MxaZTCaOO+643P1Zs2ZFRMTZZ58dv/zlL2Pt2rW5yIiIGD58eDzyyCPxta99LX72s5/FwIED4yc/+YmfmgUAgFZUlH17JTN7VFdXF6WlpVFbWxs9e/ZMexwAAEistb/jtrlLoQAAgMIjLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAAgMSEBQAAkJiwAAAAEhMWAABAYm0yLG6++eYYPnx4dOnSJSoqKuIvf/nLHp87Z86cKCoq2uW2ePHifTgxAAC0b20uLO6999646KKL4rLLLovq6uo4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7949jjrqqNi8eXOrDggAABS+FofF9ddfH9u2bcvd/+Y3vxmbN2+Or371q7F48eK45pprWnVAAACg8LU4LJYuXRoTJkyIiLcuf3r00Ufjhz/8Ydxwww3x/e9/Px588MHWnhEAAChwLQ6LN954I7p37x4REf/93/8d9fX1MXPmzIiIGDduXKxevbp1JwQAAApei8OirKwsampqIiLiT3/6U4wePToOOuigiIjYvHlzdOvWrVUHBAAACl+Lf272tNNOi8suuyyeeuqp+OMf/xgXX3xx7rF58+bFIYcc0qoDAgAAha/FYfG9730vtm7dGs8880x8+tOfjm9961u5x/7zP/8zPvjBD7bqgAAAQOErytoq+1219nbnAACQttb+jtviNRY33XRTvP7664k/GAAAaD9aHBYXXnhhlJWVxZlnnhmPPvpoOOEBAAC0OCwWLVoUF154Yfztb3+Lk046KQYPHhyXXXZZvPjii3tjPgAAoA14z2ssmpqa4k9/+lP88pe/jD/84Q+xc+fOOPLII+O8886Lc889t7XnTJU1FgAAtDet/R23VRZvv/7663HPPffED37wg1izZk00NDQkHqyQCAsAANqb1Bdv726g3/72t3HXXXfFK6+8El26dEk8FAAA0La857B44okn4qyzzoqysrI4//zzIyLiP/7jP2Lt2rWtNhwAANA2tHiDvO9+97txxx13xKpVq6J///5xwQUXxLnnnhtjxozZG/MBAABtQIvXWJSUlMRHP/rROPfcc2PmzJnRoUOHvTVbwbDGAgCA9qa1v+O2+IzF6tWro2/fvok/GAAAaD9avMZCVAAAAP9T4l+FAgAAEBYAAEBiwgIAAEhMWAAAAIk1KyxOPfXU+M///M9oamra2/MAAABtULPC4rHHHotTTjklBg0aFJdcckm88MILe3suAACgDWlWWLz66qtxyy23xJAhQ+KHP/xhjB07No455pi444474o033tjbMwIAAAWuxTtvL168OG677ba4++67Y926ddGjR4/45Cc/Geedd14cdthhe2vOVNl5GwCA9qa1v+O2OCze1tjYGI888kjcfvvt8fDDD0dDQ0OMGTMmPv/5z8esWbMSD1ZIhAUAAO1Na3/Hfc+/CtWhQ4c4+eST4/7774/Vq1fHrFmzYvHixfHNb34z8VDv5uabb47hw4dHly5doqKiIv7yl7+84/OfeuqpqKioiC5dusSIESPi5z//+V6fEQAA9ieJfm62oaEh7r///jjnnHPixz/+cWSz2ZgyZUorjbZ79957b1x00UVx2WWXRXV1dRx11FExc+bMWLly5W6fv2zZsjjppJPiqKOOiurq6rj00kvjwgsvjPvuu2+vzgkAAPuT93Qp1Pz58+O2226LX/3qV7Fx48Y48MAD49Of/nR8/vOf3+thcdhhh0V5eXnccsstuWNjx46NU089Na699tpdnn/xxRfHQw89FIsWLcodO//88+O5556LZ599tlmf6VIoAADam9b+jtuxuU+sra2NX/3qV3H77bfH3LlzIyLiuOOOi89//vNx2mmnRUlJSeJh3s3OnTujqqoqvv3tb+cdnzFjRjzzzDO7fc2zzz4bM2bMyDt24oknxq233hpvvvlmdOrUaa/NCwAA+4tmhcWnP/3pePDBB2PHjh0xaNCguOyyy+K8886LYcOG7eXx8m3cuDEaGxujf//+ecf79+8f69at2+1r1q1bt9vnNzQ0xMaNG6OsrGyX19TX10d9fX3ufl1dXUREfO9734v3v//9MW3atDj44IOjqKgo6T8JAADahWaFxX333Rcf+9jH4vOf/3yceOKJqX+h/p+fn81m33Gm3T1/d8ffdu2118aVV165y/Hx48fHM888Ez/5yU9i9erVMXLkyJg+fXpMmzYtpk2btkvAAADA/qJZYbF69ero27fv3p7lXfXt2zc6dOiwy9mJ9evX7/FL/YABA3b7/I4dO0afPn12+5pLLrkk7ydz6+rqYvDgwXHaaafFOeecExERTU1N8eKLL0Ymk4k///nP8YMf/CA2bNgQY8eOjWnTpsX06dOjoqJij58BAADtSbPCohCiIiKic+fOUVFREY8//nh8/OMfzx1//PHH45RTTtnta4444oj4wx/+kHfssccei2nTpu1xfUVJScm7rhkpLi6O0aNHx+jRo+Mzn/lMRLy1t8fixYsjk8nEQw89FN/5zneirq4uJkyYkDurUVFREaWlpS35ZwMAQMF7zxvkpeXee++Nz372s/Hzn/88jjjiiJg9e3b84he/iIULF8bQoUPjkksuidWrV8edd94ZEW/93OyECRPiy1/+cnzxi1+MZ599Ns4///z49a9/HaeffnqzPjPJivk333wzFi5cGJlMJjKZTFRVVcX27dtj8uTJudiY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8sp3fE5lZWVExG7/KLPZ7Dv+sZ555pm5/3nChAm5mn744YfjtNNO2+1rrr322nedCQBgf1ZUVBRDhgyJIUOG5L5TZbPZWLp0aWQymfjrX/8aN954Y6xZsyZGjRqVW68xbdo0V460U6kv3t64cWNs3LjxHZ8zbNiwuOeee2LWrFnx+uuv5z3Wq1ev+NGPfhTnnntusz9z5MiR8YUvfCEuvvji3T6+uzMWgwcPtngbAKCFmpqa4sUXX4zKysrc2Y2NGzfGuHHj8s5stOSHdWgd7W7xdt++faNv377v+rwjjjgiamtr4x//+Ee8733vi4iI//7v/47a2to48sgjm/15mzZtilWrVkVZWdken1NSUrLHy6QAAGi+4uLiGD16dIwePTrOOuusiIhoaGiIxYsXRyaTid///vdx+eWXx5YtW2LixIm50CgvL4/S0tKUp6clUj9j0RIzZ86MNWvWxH/8x39ExFs/Nzt06NC8n5sdM2ZMXHvttfHxj388tm7dGldccUWcfvrpUVZWFsuXL49LL700Vq5cGYsWLYoePXo063P93CwAwN61c+fOWLhwYe6sRlVVVdTX18fkyZNzsTF16tTo3r172qO2G+3ujEVL/OpXv4oLL7wwZsyYERFvbZB300035T1nyZIlUVtbGxERHTp0iPnz58edd94Zr7/+epSVlcVxxx0X9957b7OjAgCAva9z584xderUmDp1anzxi1+MiIgdO3bEvHnzIpPJxG233RbV1dXR1NQUU6dOza3XmDx5cnTp0iXl6YloY2cs0uKMBQBAYdi2bVvU1NTkzmw899xz0alTpygvL8/FxoQJE6Jz585pj1rw9uudt9MiLAAAClddXV1UV1fnFojPnz8/unfvnrc4fNy4cdGxY5u6WGevExYpEBYAAG3La6+9FnPnzo1MJhOVlZXx/PPPR+/evfNiY9SoUdGhQ4e0R02NsEiBsAAAaPvWr1+f2z08k8nEkiVLYsCAAXmxccghh+w3G/oJixQICwCA9mnNmjW50MhkMvHSSy/FkCFD8jb0GzJkSLuMDWGRAmEBALB/yGazsXLlyrzYWLlyZYwYMSJ3VmP69OkxcODAtEdNTFikQFgAAOy/stlsLF26NLdeI5PJxNq1a2P06NF5l1H169cv7VFbRFikQFgAAPDPmpqa4oUXXsid1aisrIzXXnstxo0blwuNioqK6N27d9qj7pGwSIGwAADg3TQ0NMSiRYvyLqPasmVLTJw4Mbdeo7y8vGC+TwqLFAgLAADei507d8aCBQtyoVFVVRU7d+6MyZMn59ZrTJkyJbp3777PZxMWKRAWAAC0lh07dsS8efNy6zWqq6sjImLq1Km5y6gmT54cXbp02atzCIsUCAsAAPambdu2RU1NTW69xnPPPRedO3eOioqKXGxMmDAhOnfu3GqfKSxSICwAANjX6urqcruHZzKZmD9/fhxwwAF5v0Q1duzY6Nix43t+f2GxjwkLAAAKwWuvvZa3e/jzzz8fvXv3ztvQb9SoUVFcXPyu7yUsUiAsAAAoVOvXr8/7JaolS5ZEWVlZ3oZ+I0aM2GX3cGGRAmEBAEBbsmbNmrwN/ZYuXRpDhgzJu4yqV69e0atXL2GxLwkLAADasmw2GytXrszb0G/58uXx8ssvC4t9SVgAANDe1NbWtuoZi3df1QEAALQ7/3PNRVLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgsTYVFldffXUceeSR0a1bt+jVq1ezXpPNZuOKK66IgQMHRteuXePYY4+NhQsX7t1BAQBgP9OmwmLnzp1xxhlnxL/+6782+zXXXXdd3HDDDXHTTTdFZWVlDBgwID70oQ/Fli1b9uKkAACwf2lTYXHllVfG1772tZg4cWKznp/NZuPGG2+Myy67LE477bSYMGFC3HHHHfHGG2/EPffcs5enBQCA/UebCouWWrZsWaxbty5mzJiRO1ZSUhLHHHNMPPPMMylOBgAA7UvHtAfYm9atWxcREf3798873r9//1ixYsUeX1dfXx/19fW5+3V1dXtnQAAAaCdSP2NxxRVXRFFR0TveMplMos8oKirKu5/NZnc59s+uvfbaKC0tzd0GDx6c6PMBAKC9S/2MxQUXXBCf/OQn3/E5w4YNe0/vPWDAgIh468xFWVlZ7vj69et3OYvxzy655JKYNWtW7n5dXZ24AACAd5B6WPTt2zf69u27V957+PDhMWDAgHj88cdj6tSpEfHWL0s99dRT8cMf/nCPryspKYmSkpK9MhMAALRHqV8K1RIrV66MmpqaWLlyZTQ2NkZNTU3U1NTE1q1bc88ZM2ZMPPDAAxHx1iVQF110UVxzzTXxwAMPxIIFC+Kcc86Jbt26xac//em0/hkAANDupH7GoiW+853vxB133JG7//ZZiCeffDKOPfbYiIhYsmRJ1NbW5p7zrW99K7Zv3x7/3//3/8XmzZvjsMMOi8ceeyx69OixT2cHAID2rCibzWbTHqLQ1dXVRWlpadTW1kbPnj3THgcAABJr7e+4bepSKAAAoDAJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQmLAAAAASExYAAEBiwgIAAEhMWAAAAIkJCwAAIDFhAQAAJCYsAACAxIQFAACQWJsKi6uvvjqOPPLI6NatW/Tq1atZrznnnHOiqKgo73b44Yfv3UEBAGA/06bCYufOnXHGGWfEv/7rv7bodR/+8Idj7dq1udsjjzyylyYEAID9U8e0B2iJK6+8MiIifvnLX7bodSUlJTFgwIC9MBEAABDRxs5YvFdz5syJfv36xahRo+KLX/xirF+/Pu2RAACgXWlTZyzei5kzZ8YZZ5wRQ4cOjWXLlsXll18exx9/fFRVVUVJScluX1NfXx/19fW5+7W1tRERUVdXt09mBgCAve3t77bZbLZ13jCbsu9+97vZiHjHW2VlZd5rbr/99mxpael7+rw1a9ZkO3XqlL3vvvsSzeTm5ubm5ubm5ubWHm4vv/zye/pe/T+lfsbiggsuiE9+8pPv+Jxhw4a12ueVlZXF0KFD48UXX9zjcy655JKYNWtW7v7rr78eQ4cOjZUrV0ZpaWmrzUL7U1dXF4MHD45Vq1ZFz5490x6HAufvhebyt0JL+HuhuWpra2PIkCHRu3fvVnm/1MOib9++0bdv3332eZs2bYpVq1ZFWVnZHp9TUlKy28ukSktL/QeUZunZs6e/FZrN3wvN5W+FlvD3QnMVF7fOsus2tXh75cqVUVNTEytXrozGxsaoqamJmpqa2Lp1a+45Y8aMiQceeCAiIrZu3Rrf+MY34tlnn43ly5fHnDlz4uSTT46+ffvGxz/+8bT+GQAA0O6kfsaiJb7zne/EHXfckbs/derUiIh48skn49hjj42IiCVLluQWW3fo0CHmz58fd955Z7z++utRVlYWxx13XNx7773Ro0ePfT4/AAC0V20qLH75y1++6x4W2X9a1d61a9d49NFHE39uSUlJfPe7393jr0jB2/yt0BL+Xmgufyu0hL8Xmqu1/1aKstnW+n0pAABgf9Wm1lgAAACFSVgAAACJCQsAACAxYfEubr755hg+fHh06dIlKioq4i9/+UvaI1GArr322pg+fXr06NEj+vXrF6eeemosWbIk7bFoA6699tooKiqKiy66KO1RKFCrV6+Os846K/r06RPdunWLKVOmRFVVVdpjUWAaGhri3//932P48OHRtWvXGDFiRFx11VXR1NSU9mgUgKeffjpOPvnkGDhwYBQVFcWDDz6Y93g2m40rrrgiBg4cGF27do1jjz02Fi5c2OLPERbv4N57742LLrooLrvssqiuro6jjjoqZs6cGStXrkx7NArMU089FV/5ylfi73//ezz++OPR0NAQM2bMiG3btqU9GgWssrIyZs+eHZMmTUp7FArU5s2b4/3vf3906tQp/vjHP8bzzz8f//t//+/o1atX2qNRYH74wx/Gz3/+87jpppti0aJFcd1118X/+l//K37605+mPRoFYNu2bTF58uS46aabdvv4ddddFzfccEPcdNNNUVlZGQMGDIgPfehDsWXLlhZ9jl+FegeHHXZYlJeXxy233JI7Nnbs2Dj11FPj2muvTXEyCt2GDRuiX79+8dRTT8XRRx+d9jgUoK1bt0Z5eXncfPPN8f3vfz+mTJkSN954Y9pjUWC+/e1vx9/+9jdny3lXH/3oR6N///5x66235o6dfvrp0a1bt7jrrrtSnIxCU1RUFA888ECceuqpEfHW2YqBAwfGRRddFBdffHFERNTX10f//v3jhz/8YXz5y19u9ns7Y7EHO3fujKqqqpgxY0be8RkzZsQzzzyT0lS0FW9v0ti7d++UJ6FQfeUrX4mPfOQj8cEPfjDtUShgDz30UEybNi3OOOOM6NevX0ydOjV+8YtfpD0WBegDH/hAPPHEE/HCCy9ERMRzzz0Xf/3rX+Okk05KeTIK3bJly2LdunV533lLSkrimGOOafF33ja1Qd6+tHHjxmhsbIz+/fvnHe/fv3+sW7cupaloC7LZbMyaNSs+8IEPxIQJE9IehwL0m9/8JubOnRuVlZVpj0KBW7p0adxyyy0xa9asuPTSS+Mf//hHXHjhhVFSUhKf+9zn0h6PAnLxxRdHbW1tjBkzJjp06BCNjY1x9dVXx6c+9am0R6PAvf29dnffeVesWNGi9xIW76KoqCjvfjab3eUY/LMLLrgg5s2bF3/961/THoUCtGrVqvjqV78ajz32WHTp0iXtcShwTU1NMW3atLjmmmsiImLq1KmxcOHCuOWWW4QFee699964++6745577onx48dHTU1NXHTRRTFw4MA4++yz0x6PNqA1vvMKiz3o27dvdOjQYZezE+vXr9+l6OBt//Zv/xYPPfRQPP300zFo0KC0x6EAVVVVxfr166OioiJ3rLGxMZ5++um46aabor6+Pjp06JDihBSSsrKyGDduXN6xsWPHxn333ZfSRBSqb37zm/Htb387PvnJT0ZExMSJE2PFihVx7bXXCgve0YABAyLirTMXZWVluePv5TuvNRZ70Llz56ioqIjHH3887/jjjz8eRx55ZEpTUaiy2WxccMEFcf/998d//dd/xfDhw9MeiQJ1wgknxPz586OmpiZ3mzZtWnzmM5+JmpoaUUGe97///bv8dPULL7wQQ4cOTWkiCtUbb7wRxcX5X+s6dOjg52Z5V8OHD48BAwbkfefduXNnPPXUUy3+zuuMxTuYNWtWfPazn41p06bFEUccEbNnz46VK1fG+eefn/ZoFJivfOUrcc8998Tvf//76NGjR+5MV2lpaXTt2jXl6SgkPXr02GXtTffu3aNPnz7W5LCLr33ta3HkkUfGNddcE5/4xCfiH//4R8yePTtmz56d9mgUmJNPPjmuvvrqGDJkSIwfPz6qq6vjhhtuiPPOOy/t0SgAW7dujZdeeil3f9myZVFTUxO9e/eOIUOGxEUXXRTXXHNNjBw5MkaOHBnXXHNNdOvWLT796U+37IOyvKOf/exn2aFDh2Y7d+6cLS8vzz711FNpj0QBiojd3m6//fa0R6MNOOaYY7Jf/epX0x6DAvWHP/whO2HChGxJSUl2zJgx2dmzZ6c9EgWorq4u+9WvfjU7ZMiQbJcuXbIjRozIXnbZZdn6+vq0R6MAPPnkk7v9nnL22Wdns9lstqmpKfvd7343O2DAgGxJSUn26KOPzs6fP7/Fn2MfCwAAIDFrLAAAgMSEBQAAkJiwAAAAEhMWAABAYsICAABITFgAAACJCQsAACAxYQEAACQmLAAoOMcee2xMmDBht49t3LgxioqK4oorrti3QwHwjoQFAACQmLAAAAASExYA7DNXXHFFFBUVRXV1dZx22mnRs2fPKC0tjbPOOis2bNiQ9ngAJCAsANjnPv7xj8ehhx4av/vd7+KKK66IBx98ME488cR48803857X0NCwy62xsTGlqQF4Jx3THgCA/c9pp50W1113XUREzJgxI/r37x+f+cxn4re//W185jOfiYiIhQsXRqdOndIcE4AWcMYCgH3u7Xh42yc+8Yno2LFjPPnkk7ljhxxySFRWVu5y+/Of/7yvxwWgGZyxAGCfGzBgQN79jh07Rp8+fWLTpk25Y126dIlp06bt8tqNGzfu9fkAaDlnLADY59atW5d3v6GhITZt2hR9+vRJaSIAkhIWAOxzv/rVr/Lu//a3v42GhoY49thj0xkIgMRcCgXAPnf//fdHx44d40Mf+lAsXLgwLr/88pg8eXJ84hOfSHs0AN4jZywA2Ofuv//+WLx4cZx22mnxne98J04++eR47LHHonPnzmmPBsB75IwFAPvckCFD4qGHHtrj43PmzNnjY3379o1sNrsXpgIgCWcsAACAxIQFAACQWFHW+WQAACAhZywAAIDEhAUAAJCYsAAAABITFgAAQGLCAgAASExYAAAAiQkLAAAgMWEBAAAkJiwAAIDE/n/VAkqjMYwtqgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hydrogen_diagram = pb.PourbaixDiagram(hydrogen_system, line_inspection=True)\n", "hydrogen_diagram.solve()\n", "hydrogen_diagram.show(backend='matplotlib')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have just sucessfully plotted our first Pourbaix line. Note that the potential of the Hydrogen Evolution Reaction is equal to 0.00 V at pH = 0, consistent with the specified reference electrode. We will proceed to adding a second reaction to the diagram, the Oxygen Evolution Reaction (OER). " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The Oxygen Evolution Reaction (OER)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To plot the Oxygen Evolution Reaction (OER) in similar fashin, we will first have to create all nessecary reactants that have not been defined yet. Below, we defined the compounds $\\text{H}_2\\text{O}(l)$ and $\\text{O}_2(g)$ utiising the appropriate physical states and molecular formulae." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "species = ('H|+1|, state=aq, dGf=0, dHf=0, Sm=0',\n", " 'H2, state=g, dGf=0, dHf=0, Sm=0',\n", " 'e|-1|, state=e, dGf=0, dHf=0, Sm=0',\n", " 'H2O, state=l, dGf=-2.37140E+05, dHf=-2.85830E+05, Sm=69.95',\n", " 'O2, state=g, dGf=0, dHf=0, Sm=205.137')\n", " \n", "db = pb.Database.from_default(species)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As before, we can build a reaction from these two and the previous compounds by formulating a string containing all reactants to the left hand sight of the reaction arrow -> and all products to its right side." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "reactions = ('2H|+1| + 2e|-1| -> H2',\n", " 'O2 + 4H|+1| + 4e|-1| -> 2H2O')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's it. No other diagram parameter has to be re-initialised, we merely have to add the newly created reactions and replot the diagram:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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YF1++eXEBgDgnNodFhUVFZowYUKrr02cOFGVlZW2hwIAdC23260NGzZYTg+vra3VJZdcoqCgIHm9Xr311luW2AgNDdV3vvMdp0cHAPiIdofFwIED9c9//rPV17Zt26aEhATbQwEAnOd2u7VlyxZLbFRUVCg9PV0BAQFqaGjQiy++aLkTVXh4uG655RanRwcAOKDdYXHdddfpgQce0KOPPmreT/3EiRP63e9+pwceeEDz5s3r8CEBAL4hOjpaOTk5ampqMmOjuLhYycnJcrlcOnv2rP7whz9YYqNXr1665557nB4dANDJ2n1XKI/Ho29+85t6++235XK5zCVywzB02WWX6a9//atCQkI6a15HcFcoAGifwsJCzZo1S8XFxWrtPzMRERFauXKlbr31VgemAwBIHf8Zt91h8Zm33npL7733nk6cOKH+/ftrxowZ+vrXv257IF9EWACAfe+++65uuOEGlZWVtfp637599cQTT7DyDQBdxLGwqK+v18aNG1VcXKyYmBjNmTNHAwYMsD2APyAsAKBzbNiwQQsXLjQvrf1PsbGxev755zV9+vQungwAuj9HwuLo0aO6+OKLdejQIXNJOzIyUm+88YYmT55sewhfR1gAQNdZs2aNlixZourq6havuVwuDR48WBs2bFB6eroD0wFA9+HIAXm//vWvVVpaql//+td6/fXX9dhjjykkJIQ7fwAAOtzChQtVVVVlOdBv5cqV6tWrlwzDUElJiTIyMszN4QEBAUpOTlZJSYnTowNAj9amFYvBgwfr5ptv1l133WU+9/rrr+sb3/iGjh49qtjY2E4d0mmsWACA71myZImeeOIJ1dfXt3jN5XJp/Pjx2rx5s6Kjox2YDgB8nyMrFuXl5br44ostz1166aUyDEPHjh2zPQQAAO31yCOPqK6uzrKyccMNNygkJESGYWjXrl0aMGCAubIRFBSkqVOncno4AHSSNoVFU1OTwsPDLc+FhYVJkrxeb8dPBQDAeXjmmWfk8Xgsp4fPmTNHQUFBampq0vbt2y2nhwcHB+uKK64gNgCgAwS19RuLiooUFPR/397U1CTp03uV/yc21AEAfIHb7dZrr71mea6urk6XX365duzYIa/Xq02bNqlXr17m6yEhIfr2t7+tZ555pqvHBQC/1qY9FgEBAXK5XC2eNwzD8vxnX38WHd0FeywAoHurrKzU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jwIfVVpaqhtuuEH9+/eX2+1WamqqcnJynB4LPsbr9erXv/61hg4dqvDwcA0bNkz33XefmpubnR4NPuD999/XnDlzlJCQIJfLpY0bN1peNwxD9957rxISEhQeHq5LL71Ue/bsaffvISy+wEsvvaQ77rhDy5cvV15eni666CLNmjVLJSUlTo8GH7N161bdeuut+vDDD/XOO+/I6/Vq5syZqq2tdXo0+LCsrCytXr1aEyZMcHoU+KhTp05p6tSpCg4O1htvvKG9e/dq1apVioqKcno0+JiHHnpIf/jDH/T4449r3759evjhh/Vf//Vf+v3vf+/0aPABtbW1mjhxoh5//PFWX3/44Yf16KOP6vHHH1dWVpbi4uL09a9/XWfOnGnX7+GuUF/gggsuUHp6up588knzuTFjxuiqq67SypUrHZwMvq6iokIxMTHaunWrLr74YqfHgQ+qqalRenq6nnjiCf3mN79RamqqHnvsMafHgo+58847tW3bNlbL8aWuvPJKxcbG6qmnnjKf+9a3viW3261nnnnGwcnga1wulzZs2KCrrrpK0qerFQkJCbrjjju0dOlSSZLH41FsbKweeugh/ehHP2rzz2bF4hwaGhqUk5OjmTNnWp6fOXOmtm/f7tBU8BefHdLYr18/hyeBr7r11lt1xRVX6Gtf+5rTo8CHvfbaa8rMzNS1116rmJgYpaWlac2aNU6PBR/01a9+VZs3b9ZHH30kSdq5c6f++c9/avbs2Q5PBl936NAhlZeXWz7zhoaG6pJLLmn3Z16/OiCvK1VWVqqpqUmxsbGW52NjY1VeXu7QVPAHhmFo8eLF+upXv6px48Y5PQ580Isvvqjc3FxlZWU5PQp83MGDB/Xkk09q8eLF+tWvfqV///vfuv322xUaGqrvfe97To8HH7J06VJVVVUpOTlZgYGBampq0m9/+1t95zvfcXo0+LjPPte29pm3uLi4XT+LsPgSLpfL8rVhGC2eAz7vtttu065du/TPf/7T6VHgg44cOaKf/vSnevvttxUWFub0OPBxzc3NyszM1AMPPCBJSktL0549e/Tkk08SFrB46aWX9Oyzz+r5559XSkqK8vPzdccddyghIUHz5893ejz4gY74zEtYnEN0dLQCAwNbrE4cP368RdEBn/nJT36i1157Te+//74GDRrk9DjwQTk5OTp+/LgyMjLM55qamvT+++/r8ccfl8fjUWBgoIMTwpfEx8dr7NixlufGjBmj9evXOzQRfNUvfvEL3XnnnZo3b54kafz48SouLtbKlSsJC3yhuLg4SZ+uXMTHx5vPn89nXvZYnENISIgyMjL0zjvvWJ5/5513NGXKFIemgq8yDEO33XabXn31Vb377rsaOnSo0yPBR82YMUMFBQXKz883H5mZmfrud7+r/Px8ogIWU6dObXHr6o8++khJSUkOTQRfVVdXp4AA68e6wMBAbjeLLzV06FDFxcVZPvM2NDRo69at7f7My4rFF1i8eLFuvPFGZWZm6sILL9Tq1atVUlKiRYsWOT0afMytt96q559/Xn/9618VERFhrnRFRkYqPDzc4engSyIiIlrsvenVq5f69+/Pnhy08LOf/UxTpkzRAw88oG9/+9v697//rdWrV2v16tVOjwYfM2fOHP32t79VYmKiUlJSlJeXp0cffVTf//73nR4NPqCmpkYff/yx+fWhQ4eUn5+vfv36KTExUXfccYceeOABjRw5UiNHjtQDDzwgt9ut66+/vn2/yMAX+p//+R8jKSnJCAkJMdLT042tW7c6PRJ8kKRWH08//bTTo8EPXHLJJcZPf/pTp8eAj/rb3/5mjBs3zggNDTWSk5ON1atXOz0SfFB1dbXx05/+1EhMTDTCwsKMYcOGGcuXLzc8Ho/To8EHvPfee61+Tpk/f75hGIbR3Nxs3HPPPUZcXJwRGhpqXHzxxUZBQUG7fw/nWAAAAACwjT0WAAAAAGwjLAAAAADYRlgAAAAAsI2wAAAAAGAbYQEAAADANsICAAAAgG2EBQAAAADbCAsAAAAAthEWAACfc+mll2rcuHGtvlZZWSmXy6V77723a4cCAHwhwgIAAACAbYQFAAAAANsICwBAl7n33nvlcrmUl5enuXPnqk+fPoqMjNQNN9ygiooKp8cDANhAWAAAutzVV1+tESNG6C9/+Yvuvfdebdy4UZdddpkaGxst3+f1els8mpqaHJoaAPBFgpweAADQ88ydO1cPP/ywJGnmzJmKjY3Vd7/7Xb388sv67ne/K0nas2ePgoODnRwTANAOrFgAALrcZ/HwmW9/+9sKCgrSe++9Zz43fPhwZWVltXj84x//6OpxAQBtwIoFAKDLxcXFWb4OCgpS//79deLECfO5sLAwZWZmtnhvZWVlp88HAGg/ViwAAF2uvLzc8rXX69WJEyfUv39/hyYCANhFWAAAutxzzz1n+frll1+W1+vVpZde6sxAAADbuBQKANDlXn31VQUFBenrX/+69uzZo7vuuksTJ07Ut7/9badHAwCcJ1YsAABd7tVXX1VhYaHmzp2ru+++W3PmzNHbb7+tkJAQp0cDAJwnViwAAF0uMTFRr7322jlf37Jlyzlfi46OlmEYnTAVAMAOViwAAAAA2EZYAAAAALDNZbCeDAAAAMAmViwAAAAA2EZYAAAAALCNsAAAAABgG2EBAAAAwDbCAgAAAIBthAUAAAAA2wgLAAAAALYRFgAAAABsIywAAAAA2Pb/AfoY9bgitIDvAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hydrogen_system.set_database(db)\n", "hydrogen_system.add_reactions(reactions)\n", "hydrogen_diagram = pb.PourbaixDiagram(hydrogen_system,line_inspection=True)\n", "hydrogen_diagram.solve()\n", "hydrogen_diagram.show(backend='matplotlib')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For future diagrams, both the HER and OER are also hard-coded into the PourbaixDiagram class. They can be added to the plot by setting the optional keyword arguments of the diagram to HER=True, OER=True." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can nicely see that the potential of both lines at pH = 0 equals their standard potential of $\\text{E}^0_{\\text{H}^+/\\text{H}_2} = 0.00 \\ \\text{V vs. SHE}$ for the Hydrogen Evolution Reaction (HER) and $\\text{E}^0_{\\text{H}_2\\text{O}/\\text{O}_2} = 1.23 \\ \\text{V vs. SHE}$ for the Oxygen Evolution Reaction (OER). Both lines feature a slope of $\\sim-0.059\\times\\text{pH}$. Of course, this is just as it should be. The potential of the Hydrogen Evolution Reaction at standard conditions should be equal to zero, with respect to a reference potential based on the same reaction. But what if we want to shift the entire potential scale by some value, e.g. because we want to plot the Pourbaix diagram with respect to a different reference system? Let's move on to the next tutorial." ] } ], "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.10.12" } }, "nbformat": 4, "nbformat_minor": 4 }