{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "(props_doss)=\n", "\n", "# Properties: Density of States (DOSS)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The {py:class}`~.aiida_crystal17.calculations.prop_doss.CryDossCalculation` can be used to run the `properties`\n", "executable for DOSS calculations, from an existing `fort.9`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ":::{seealso}\n", "{ref}`props_workflow` to run multiple properties calculations\n", "(and optional initial SCF).\n", ":::" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[31m\u001b[1mInputs\u001b[0m\n", "\u001b[1m code: required Code The Code to use for this job.\u001b[0m\n", "\u001b[1m parameters: required Dict the input parameters to create the properties input file.\u001b[0m\n", "\u001b[1m wf_folder: required FolderData, RemoteData, SinglefileData the folder containing the wavefunction fort.9 file\u001b[0m\n", " metadata: optional \u001b[0m\n", "\u001b[31m\u001b[1mOutputs\u001b[0m\n", "\u001b[1m remote_folder: required RemoteData Input files necessary to run the process will be stored in this folder node ...\u001b[0m\n", "\u001b[1m results: required Dict Summary Data extracted from the output file(s)\u001b[0m\n", "\u001b[1m retrieved: required FolderData Files that are retrieved by the daemon will be stored in this node. By defa ...\u001b[0m\n", " arrays: optional ArrayData energies and DoS arrays\u001b[0m\n", "\u001b[31m\u001b[1mExit codes\u001b[0m\n", " 1: The process has failed with an unspecified error.\u001b[0m\n", " 2: The process failed with legacy failure mode.\u001b[0m\n", " 10: The process returned an invalid output.\u001b[0m\n", " 11: The process did not register a required output.\u001b[0m\n", " 200: The retrieved folder data node could not be accessed.\u001b[0m\n", " 210: The main (stdout) output file was not found\u001b[0m\n", " 211: The temporary retrieved folder was not found\u001b[0m\n", " 300: An error was flagged trying to parse the crystal exec stdout file\u001b[0m\n", " 350: The input file could not be read by crystal\u001b[0m\n", " 351: Crystal could not find the required wavefunction file\u001b[0m\n", " 352: Parser could not find the output isovalue (fort.25) file\u001b[0m\n", " 353: Error parsing output isovalue (fort.25) file\u001b[0m\n", " 400: The calculation stopped prematurely because it ran out of walltime.\u001b[0m\n", " 401: The calculation stopped prematurely because it ran out of memory.\u001b[0m\n", " 402: The calculation stopped prematurely because it ran out of virtual memory.\u001b[0m\n", " 413: An error encountered usually during geometry optimisation\u001b[0m\n", " 414: An error was encountered during an scf computation\u001b[0m\n", " 415: An unknown error was encountered, causing the mpi to abort\u001b[0m\n", " 499: The main crystal output file flagged an unhandled error\u001b[0m\n" ] } ], "source": [ "!verdi plugin list aiida.calculations crystal17.doss" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "init_cell": true }, "outputs": [ { "data": { "text/plain": [ "'test_crystal17'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from aiida import engine, load_profile, orm, plugins\n", "from aiida.tools.visualization import Graph\n", "from aiida_crystal17.common import recursive_round\n", "from aiida_crystal17.tests.utils import (\n", " get_or_create_local_computer, get_or_create_code,\n", " get_default_metadata)\n", "from aiida_crystal17.tests import open_resource_binary\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "profile = load_profile()\n", "profile.name" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Running a calculation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The {ref}`doss_input_schema` gives the allowed format of the input dictionary, for example:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "computer = get_or_create_local_computer('work_directory', 'localhost')\n", "code = get_or_create_code('crystal17.doss', computer, 'mock_properties17')\n", "\n", "builder = code.get_builder()\n", "builder.metadata = get_default_metadata()\n", "builder.parameters = orm.Dict(dict={\n", " \"k_points\": [18, 36],\n", " \"npoints\": 100,\n", " \"band_minimum\": -10,\n", " \"band_maximum\": 10,\n", " \"band_units\": \"eV\"\n", "})\n", "with open_resource_binary('doss', 'mgo_sto3g_scf', 'fort.9') as handle:\n", " builder.wf_folder = orm.SinglefileData(handle)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "result, calcnode = engine.run_get_node(builder)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[22mProperty Value\n", "------------- ------------------------------------\n", "type CalcJobNode\n", "pk 884\n", "uuid ff55e9d9-9a03-4375-b5d9-2353794f1c92\n", "label\n", "description\n", "ctime 2019-09-24 14:04:37.274585+00:00\n", "mtime 2019-09-24 14:04:51.167679+00:00\n", "process state Finished\n", "exit status 0\n", "computer [1] localhost\n", "\n", "Inputs PK Type\n", "---------- ---- --------------\n", "code 881 Code\n", "parameters 882 Dict\n", "wf_folder 883 SinglefileData\n", "\n", "Outputs PK Type\n", "------------- ---- ----------\n", "arrays 888 ArrayData\n", "remote_folder 885 RemoteData\n", "results 887 Dict\n", "retrieved 886 FolderData\u001b[0m\n" ] } ], "source": [ "!verdi process show {calcnode.pk}" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ipub": { "figure": { "caption": "`crystal17.doss` calculation provenance graph." } } }, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "%3\n", "\n", "\n", "\n", "N884\n", "\n", "CryDossCalculation (884)\n", "State: finished\n", "Exit Code: 0\n", "\n", "\n", "\n", "N888\n", "\n", "ArrayData (888)\n", "\n", "\n", "\n", "N884->N888\n", "\n", "\n", "CREATE\n", "arrays\n", "\n", "\n", "\n", "N887\n", "\n", "Dict (887)\n", "\n", "\n", "\n", "N884->N887\n", "\n", "\n", "CREATE\n", "results\n", "\n", "\n", "\n", "N886\n", "\n", "FolderData (886)\n", "\n", "\n", "\n", "N884->N886\n", "\n", "\n", "CREATE\n", "retrieved\n", "\n", "\n", "\n", "N885\n", "\n", "RemoteData (885)\n", "@localhost\n", "\n", "\n", "\n", "N884->N885\n", "\n", "\n", "CREATE\n", "remote_folder\n", "\n", "\n", "\n", "N883\n", "\n", "SinglefileData (883)\n", "fort.9\n", "\n", "\n", "\n", "N883->N884\n", "\n", "\n", "INPUT_CALC\n", "wf_folder\n", "\n", "\n", "\n", "N882\n", "\n", "Dict (882)\n", "\n", "\n", "\n", "N882->N884\n", "\n", "\n", "INPUT_CALC\n", "parameters\n", "\n", "\n", "\n", "N881\n", "\n", "Code (881)\n", "mock_properties17@localhost\n", "\n", "\n", "\n", "N881->N884\n", "\n", "\n", "INPUT_CALC\n", "code\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph = Graph(graph_attr={'size': \"6,8!\", \"rankdir\": \"LR\"})\n", "graph.add_node(calcnode)\n", "graph.add_incoming(calcnode, annotate_links=\"both\")\n", "graph.add_outgoing(calcnode, annotate_links=\"both\")\n", "graph.graphviz" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analysing the outputs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The outputs are:\n", "\n", "- **results** a dict of computation input and output parameters, parsed from the stdout file.\n", "- **arrays** a set of energy and DoS arrays for each point" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'newk': {'k_points': [18, 18, 18],\n", " 'gilat_net': 36,\n", " 'n_kpoints_ibz': 195,\n", " 'n_kpoints_gilat': 1240},\n", " 'npts': 102,\n", " 'spin': False,\n", " 'units': {'energy': 'eV', 'conversion': 'CODATA2014'},\n", " 'errors': [],\n", " 'header': {'crystal_version': 17, 'crystal_subversion': '1.0.1'},\n", " 'warnings': [],\n", " 'wf_input': {'n_ao': 14,\n", " 'n_atoms': 2,\n", " 'k_points': [8, 8, 8],\n", " 'n_shells': 5,\n", " 'n_symops': 48,\n", " 'gilat_net': 8,\n", " 'n_core_el': 12,\n", " 'n_electrons': 20,\n", " 'energy_fermi': -4.0,\n", " 'energy_total': -7380.2,\n", " 'n_kpoints_ibz': 29,\n", " 'energy_kinetic': 7269.0},\n", " 'energy_max': 10.4,\n", " 'energy_min': -10.2,\n", " 'system_type': 'closed shell, insulating system',\n", " 'fermi_energy': -4.0,\n", " 'parser_class': 'CryDossParser',\n", " 'parser_errors': [],\n", " 'parser_version': '0.11.0',\n", " 'norbitals_total': 14,\n", " 'parser_exceptions': [],\n", " 'execution_time_seconds': 0}" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "recursive_round(calcnode.outputs.results.get_dict(), 1)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "ipub": { "figure": { "caption": "`crystal17.doss` MgO DoS plot." } } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(\n", " calcnode.outputs.arrays.get_array(\"energies\"),\n", " calcnode.outputs.arrays.get_array(\"total\"))\n", "plt.gca().set_xbound(-10, 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(doss_projections)=\n", "\n", "## Computing Projections\n", "\n", "Projections can be added per atom or per orbital set.\n", "\n", ":::{note}\n", "A maximum of 15 projections are allowed per calculation.\n", ":::{note}" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "orm.Dict(dict={\n", " \"shrink_is\": 18,\n", " \"shrink_isp\": 36,\n", " \"npoints\": 100,\n", " \"band_minimum\": -10,\n", " \"band_maximum\": 10,\n", " \"band_units\": \"eV\",\n", " \"atomic_projections\": [0, 1],\n", " \"orbital_projections\": [[1, 2, 3]]\n", "})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to create orbital sets,\n", "it is possible to compute the nature of each orbital,\n", "using the atomic structure and basis sets used to create the ``fort.9``:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "StructureData Summary\n", "Lattice\n", " abc : 2.944 2.944 4.164\n", " angles : 90.0 90.0 90.0\n", " volume : 36.1\n", " pbc : True True True\n", " A : 2.944 0.0 0.0\n", " B : 0.0 2.944 0.0\n", " C : 0.0 0.0 4.164\n", "Kind Symbols Position\n", "---- ------- --------\n", "Ni1 Ni 0.0 0.0 0.0 \n", "Ni2 Ni 1.472 1.472 2.082 \n", "O O 0.0 0.0 2.082 \n", "O O 1.472 1.472 0.0 \n" ] } ], "source": [ "from aiida_crystal17.tests import get_test_structure_and_symm\n", "from aiida_crystal17.symmetry import print_structure\n", "structure, _ = get_test_structure_and_symm('NiO_afm')\n", "print_structure(structure)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'Ni': {'type': 'all-electron',\n", " 'bs': [{'type': 'S', 'functions': ['STO-nG(nd) type 3-21G core shell']},\n", " {'type': 'SP', 'functions': ['STO-nG(nd) type 3-21G core shell']},\n", " {'type': 'SP', 'functions': ['STO-nG(nd) type 3-21G core shell']},\n", " {'type': 'SP', 'functions': ['STO-nG(nd) type 3-21G core shell']},\n", " {'type': 'D', 'functions': ['STO-nG(nd) type 3-21G core shell']}]},\n", " 'O': {'type': 'all-electron',\n", " 'bs': [{'type': 'S', 'functions': ['STO-nG(nd) type 3-21G core shell']},\n", " {'type': 'SP', 'functions': ['STO-nG(nd) type 3-21G core shell']}]}}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "basis_cls = plugins.DataFactory('crystal17.basisset')\n", "basis_sets = basis_cls.get_basissets_from_structure(structure, 'sto3g')\n", "basis_data = {k: v.get_data() for k, v in basis_sets.items()}\n", "basis_data" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "number of electrons: 72\n", "number of core electrons: 40\n" ] }, { "data": { "text/plain": [ "{1: {'atom': 0, 'element': 'Ni', 'type': 'S', 'index': 1},\n", " 2: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 1},\n", " 3: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 1},\n", " 4: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 1},\n", " 5: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 1},\n", " 6: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 2},\n", " 7: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 2},\n", " 8: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 2},\n", " 9: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 2},\n", " 10: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 3},\n", " 11: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 3},\n", " 12: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 3},\n", " 13: {'atom': 0, 'element': 'Ni', 'type': 'SP', 'index': 3},\n", " 14: {'atom': 0, 'element': 'Ni', 'type': 'D', 'index': 1},\n", " 15: {'atom': 0, 'element': 'Ni', 'type': 'D', 'index': 1},\n", " 16: {'atom': 0, 'element': 'Ni', 'type': 'D', 'index': 1},\n", " 17: {'atom': 0, 'element': 'Ni', 'type': 'D', 'index': 1},\n", " 18: {'atom': 0, 'element': 'Ni', 'type': 'D', 'index': 1},\n", " 19: {'atom': 1, 'element': 'Ni', 'type': 'S', 'index': 1},\n", " 20: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 1},\n", " 21: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 1},\n", " 22: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 1},\n", " 23: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 1},\n", " 24: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 2},\n", " 25: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 2},\n", " 26: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 2},\n", " 27: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 2},\n", " 28: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 3},\n", " 29: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 3},\n", " 30: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 3},\n", " 31: {'atom': 1, 'element': 'Ni', 'type': 'SP', 'index': 3},\n", " 32: {'atom': 1, 'element': 'Ni', 'type': 'D', 'index': 1},\n", " 33: {'atom': 1, 'element': 'Ni', 'type': 'D', 'index': 1},\n", " 34: {'atom': 1, 'element': 'Ni', 'type': 'D', 'index': 1},\n", " 35: {'atom': 1, 'element': 'Ni', 'type': 'D', 'index': 1},\n", " 36: {'atom': 1, 'element': 'Ni', 'type': 'D', 'index': 1},\n", " 37: {'atom': 2, 'element': 'O', 'type': 'S', 'index': 1},\n", " 38: {'atom': 2, 'element': 'O', 'type': 'SP', 'index': 1},\n", " 39: {'atom': 2, 'element': 'O', 'type': 'SP', 'index': 1},\n", " 40: {'atom': 2, 'element': 'O', 'type': 'SP', 'index': 1},\n", " 41: {'atom': 2, 'element': 'O', 'type': 'SP', 'index': 1},\n", " 42: {'atom': 3, 'element': 'O', 'type': 'S', 'index': 1},\n", " 43: {'atom': 3, 'element': 'O', 'type': 'SP', 'index': 1},\n", " 44: {'atom': 3, 'element': 'O', 'type': 'SP', 'index': 1},\n", " 45: {'atom': 3, 'element': 'O', 'type': 'SP', 'index': 1},\n", " 46: {'atom': 3, 'element': 'O', 'type': 'SP', 'index': 1}}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from aiida_crystal17.parsers.raw.parse_bases import compute_orbitals\n", "cresult = compute_orbitals(structure.get_ase().numbers, basis_data)\n", "print(\"number of electrons: \", cresult.electrons)\n", "print(\"number of core electrons: \", cresult.core_electrons)\n", "cresult.ao_indices" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To observe DoS at the fermi level,\n", "these results can also be used to choose a sensible range of bands:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(21, 46)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "filled_bands = int(cresult.electrons / 2)\n", "first_band = int(cresult.core_electrons / 2) + 1\n", "last_band = min([first_band + 2 * (filled_bands - first_band), cresult.number_ao])\n", "first_band, last_band" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "O_sp_orbitals = [k for k, v in cresult.ao_indices.items()\n", " if v[\"element\"] == \"O\" and v[\"type\"] == \"SP\"]\n", "Ni_d_orbitals = [k for k, v in cresult.ao_indices.items()\n", " if v[\"element\"] == \"Ni\" and v[\"type\"] == \"D\"]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "computer = get_or_create_local_computer('work_directory', 'localhost')\n", "code = get_or_create_code('crystal17.doss', computer, 'mock_properties17')\n", "\n", "builder = code.get_builder()\n", "builder.metadata = get_default_metadata()\n", "builder.parameters = orm.Dict(dict={\n", " \"k_points\": [18, 36],\n", " \"npoints\": 1000,\n", " \"band_minimum\": first_band,\n", " \"band_maximum\": last_band,\n", " \"band_units\": \"bands\",\n", " \"orbital_projections\": [O_sp_orbitals, Ni_d_orbitals]\n", "})\n", "with open_resource_binary('doss', 'nio_sto3g_afm', 'fort.9') as handle:\n", " builder.wf_folder = orm.SinglefileData(handle)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "result2, calcnode2 = engine.run_get_node(builder)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'array|energies': [1002],\n", " 'array|total_beta': [1002],\n", " 'array|total_alpha': [1002],\n", " 'array|projections_beta': [2, 1002],\n", " 'array|projections_alpha': [2, 1002]}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "calcnode2.outputs.arrays.attributes" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "6.89" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "round(calcnode2.res.fermi_energy, 2)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "ipub": { "figure": { "caption": "`crystal17.doss` NiO DoS plot, with orbital projections." } } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(\n", " calcnode2.outputs.arrays.get_array(\"energies\"),\n", " calcnode2.outputs.arrays.get_array(\"total_alpha\"),\n", " label=\"Total $\\\\alpha$\",\n", " color=\"black\", linestyle=\"dashed\"\n", ")\n", "plt.plot(\n", " calcnode2.outputs.arrays.get_array(\"energies\"),\n", " calcnode2.outputs.arrays.get_array(\"total_beta\"),\n", " label=\"Total $\\\\beta$\",\n", " color=\"black\", linestyle=\"dashed\"\n", ")\n", "plt.plot(\n", " calcnode2.outputs.arrays.get_array(\"energies\"),\n", " calcnode2.outputs.arrays.get_array(\"projections_alpha\")[0],\n", " label=\"O(sp) $\\\\alpha$\"\n", ")\n", "plt.plot(\n", " calcnode2.outputs.arrays.get_array(\"energies\"),\n", " calcnode2.outputs.arrays.get_array(\"projections_alpha\")[1],\n", " label=\"Mg(d) $\\\\alpha$\"\n", ")\n", "plt.plot(\n", " calcnode2.outputs.arrays.get_array(\"energies\"),\n", " calcnode2.outputs.arrays.get_array(\"projections_beta\")[0],\n", " label=\"O(sp) $\\\\beta$\"\n", ")\n", "plt.plot(\n", " calcnode2.outputs.arrays.get_array(\"energies\"),\n", " calcnode2.outputs.arrays.get_array(\"projections_beta\")[1],\n", " label=\"Mg(d) $\\\\beta$\"\n", ")\n", "plt.legend();\n", "plt.gcf().set_size_inches(10, 8)" ] } ], "metadata": { "celltoolbar": "Edit Metadata", "hide_input": false, "jupytext": { "formats": "ipynb,md:myst" }, "kernelspec": { "display_name": "Python 3", "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.6.7" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }