{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "sized-increase", "metadata": {}, "outputs": [], "source": [ "from abipy import abilab\n", "import abipy.data as abidata\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "id": "nearby-clearance", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/gmatteo/git_repos/pymatgen/pymatgen/symmetry/kpath.py:179: UserWarning: The input structure does not match the expected standard primitive! The path can be incorrect. Use at your own risk.\n", " warn(\n" ] } ], "source": [ "gsr = abilab.abiopen(abidata.ref_file(\"si_nscf_GSR.nc\"))" ] }, { "cell_type": "code", "execution_count": 4, "id": "boring-ferry", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "gsr.ebands.plot();" ] }, { "cell_type": "code", "execution_count": 3, "id": "advisory-advance", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/gmatteo/git_repos/pymatgen/pymatgen/symmetry/kpath.py:179: UserWarning:\n", "\n", "The input structure does not match the expected standard primitive! The path can be incorrect. Use at your own risk.\n", "\n" ] }, { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plotly.com" }, "data": [ { "line": { "color": "black", "width": 2 }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], "y": [ -9.535786584476371, -9.876086072577124, -10.50248616041993, -11.072135054815655, -11.49997087419812, -11.762095707628028, -11.855854002139353, -11.762377983295668, -11.50477647913229, -11.070113139712472, -10.472375477678483, -9.711907857213474, -8.80627918610692, -7.770717499465216 ] }, { "line": { "color": "black", "width": 2 }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], "y": [ -6.932268857216583, -6.43466268058439, -5.32246565612085, -3.928375477089248, -2.3943640811461293, -0.8732321955292113, -1.8810997204354862e-10, -0.5570011558894024, -1.6672108194971527, -2.8989034584222813, -4.182931950763718, -5.430649177987346, -6.638177513397373, -7.770717499206782 ] }, { "line": { "color": "black", "width": 2 }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], "y": [ -1.205076152062217, -1.1553086614693786, -1.0090768426644035, -0.7663867705309526, -0.4526779027859842, -0.14266808604246428, -6.019984510885479e-11, -0.3276142442992862, -0.972216601358169, -1.6064227733017695, -2.136764772819509, -2.5278823531194936, -2.7654307093388297, -2.844891372378396 ] }, { "line": { "color": "black", "width": 2 }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], "y": [ -1.2050761518987496, -1.155308661315078, -1.009076842522739, -0.7663867703985989, -0.4526779026646457, -0.14266808591143487, 0, -0.3276142442072123, -0.9722166012294071, -1.606422773175796, -2.136764772694111, -2.5278823529902867, -2.7654307092079202, -2.84489137224668 ] }, { "line": { "color": "black", "width": 2 }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], "y": [ 1.3454389436664638, 1.396036327425712, 1.5542838024392251, 1.8235759126039426, 2.1779644141648093, 2.49791994104946, 2.5318280023996245, 2.3196096023242694, 1.832801345948508, 1.3142687705394227, 0.8827985310190627, 0.6006801032754359, 0.5243396805984153, 0.6741757513882654 ] }, { "line": { "color": "black", "width": 2 }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], "y": [ 3.3661486562320615, 3.4124944120844916, 3.505955981163801, 3.4860954395102723, 3.1805995622616567, 2.7431167271405847, 2.5318280024990933, 2.9732007681489527, 3.924313282358483, 3.566247236456473, 2.5627516495996954, 1.6902771019859726, 1.0556641680571177, 0.6741757521259233 ] }, { "line": { "color": "black", "width": 2 }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], "y": [ 3.3661486562843894, 3.4124944121447474, 3.505955981234978, 3.4860954395923525, 3.1805995623550043, 2.7431167272535752, 2.531828002567412, 2.9732007682898125, 3.9243132824601865, 5.078702746089359, 6.285304926098657, 7.570282110475537, 8.869605080905535, 9.764149253744405 ] }, { "line": { "color": "black", "width": 2 }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 ], "y": [ 7.486496748336757, 7.556828944477271, 7.557970384259399, 6.522346635844359, 5.080395136037723, 3.64439068026601, 2.895410090535165, 3.420376450984275, 4.097951464863831, 5.078702748883293, 6.2853060058610595, 7.57028255163697, 8.86960516576719, 9.764201394368893 ] }, { "marker": { "color": "blue", "line": { "width": 2 }, "opacity": 0.9, "size": 12 }, "mode": "markers", "name": "", "showlegend": false, "type": "scatter", "x": [ 6, 12 ], "y": [ 0, 0.5243396805984153 ] }, { "hoverinfo": "none", "line": { "width": 2 }, "marker": { "color": "gray" }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 6, 12, null, 10.908235801598831, 12, 10.83650190851499, null ], "y": [ 0, 0.5243396805984153, null, 0.015371882878898568, 0.5243396805984153, 0.8362202268605036, null ] }, { "marker": { "color": "blue", "line": { "width": 2 }, "opacity": 0.9, "size": 12 }, "mode": "markers", "name": "", "showlegend": false, "type": "scatter", "x": [ 6, 6 ], "y": [ 0, 2.5318280023996245 ] }, { "hoverinfo": "none", "line": { "width": 2 }, "marker": { "color": "gray" }, "mode": "lines", "name": "", "showlegend": false, "type": "scatter", "x": [ 6, 6, null, 6.173187235251333, 6, 5.826812764748667, null ], "y": [ 0, 2.5318280023996245, null, 2.0559999842088135, 2.5318280023996245, 2.0559999842088135, null ] } ], "layout": { "hovermode": false, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "font": { "size": 12 }, "text": "Si₂: direct gap = 2.53, fundamental gap = 0.52 (eV)" }, "xaxis": { "range": [ 0, 13 ], "tickfont": { "size": 16 }, "ticktext": [ "L", "Γ", "X" ], "tickvals": [ 0, 6, 13 ], "title": { "text": "Wave Vector" } }, "yaxis": { "range": [ -7.5318280023996245, 7.5318280023996245 ], "title": { "text": "Energy (eV)" } } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gsr.ebands.plotly(with_gaps=True);" ] }, { "cell_type": "code", "execution_count": 5, "id": "announced-retirement", "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, js_modules, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", " if (js_modules == null) js_modules = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls.length === 0 && js_modules.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error() {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (var i = 0; i < css_urls.length; i++) {\n", " var url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error;\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " var skip = [];\n", " if (window.requirejs) {\n", " window.requirejs.config({'paths': {'tabulator': 'https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator'}});\n", " window.requirejs.config({'paths': {'plotly': 'https://cdn.plot.ly/plotly-latest.min'}});\n", " require([\"tabulator\", \"plotly\"], function(Tabulator,Plotly,) {\n", " window.Tabulator = Tabulator;\n", " window.Plotly = Plotly;\n", " })\n", " }\n", " if (((window['tabulator'] !== undefined) && (!(window['tabulator'] instanceof HTMLElement))) || window.requirejs) {\n", " var urls = ['https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator.js', 'https://unpkg.com/moment@2.27.0/moment.js'];\n", " for (var i = 0; i < urls.length; i++) {\n", " skip.push(urls[i])\n", " }\n", " }\n", " if (((window['Plotly'] !== undefined) && (!(window['Plotly'] instanceof HTMLElement))) || window.requirejs) {\n", " var urls = ['https://cdn.plot.ly/plotly-latest.min.js'];\n", " for (var i = 0; i < urls.length; i++) {\n", " skip.push(urls[i])\n", " }\n", " }\n", " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", " if (skip.indexOf(url) >= 0) { on_load(); continue; }\n", " var element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error;\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " for (var i = 0; i < js_modules.length; i++) {\n", " var url = js_modules[i];\n", " if (skip.indexOf(url) >= 0) { on_load(); continue; }\n", " var element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error;\n", " element.async = false;\n", " element.src = url;\n", " element.type = \"module\";\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " if (!js_urls.length && !js_modules.length) {\n", " on_load()\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " var js_urls = [\"https://code.jquery.com/jquery-3.4.1.min.js\", \"https://cdn.plot.ly/plotly-latest.min.js\", \"https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator.js\", \"https://unpkg.com/moment@2.27.0/moment.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.1.min.js\", \"https://unpkg.com/@holoviz/panel@^0.11.3/dist/panel.min.js\"];\n", " var js_modules = [];\n", " var css_urls = [\"https://unpkg.com/tabulator-tables@4.9.3/dist/css/tabulator_simple.min.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/alerts.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/card.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/widgets.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/markdown.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/json.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/loading.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/dataframe.css\"];\n", " var inline_js = [\n", " function(Bokeh) {\n", " inject_raw_css(\"\\n .bk.pn-loading.arcs:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiBub25lOyBkaXNwbGF5OiBibG9jazsgc2hhcGUtcmVuZGVyaW5nOiBhdXRvOyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4gIDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjMyIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZT0iI2MzYzNjMyIgc3Ryb2tlLWRhc2hhcnJheT0iNTAuMjY1NDgyNDU3NDM2NjkgNTAuMjY1NDgyNDU3NDM2NjkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+ICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxcyIga2V5VGltZXM9IjA7MSIgdmFsdWVzPSIwIDUwIDUwOzM2MCA1MCA1MCI+PC9hbmltYXRlVHJhbnNmb3JtPiAgPC9jaXJjbGU+PC9zdmc+\\\")\\n }\\n \");\n", " },\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " function(Bokeh) {} // ensure no trailing comma for IE\n", " ];\n", "\n", " function run_inline_js() {\n", " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " }\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, js_modules, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.holoviews_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'paths': {'tabulator': 'https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator'}});\n window.requirejs.config({'paths': {'plotly': 'https://cdn.plot.ly/plotly-latest.min'}});\n require([\"tabulator\", \"plotly\"], function(Tabulator,Plotly,) {\n window.Tabulator = Tabulator;\n window.Plotly = Plotly;\n })\n }\n if (((window['tabulator'] !== undefined) && (!(window['tabulator'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator.js', 'https://unpkg.com/moment@2.27.0/moment.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n }\n if (((window['Plotly'] !== undefined) && (!(window['Plotly'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.plot.ly/plotly-latest.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) >= 0) { on_load(); continue; }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) >= 0) { on_load(); continue; }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://code.jquery.com/jquery-3.4.1.min.js\", \"https://cdn.plot.ly/plotly-latest.min.js\", \"https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator.js\", \"https://unpkg.com/moment@2.27.0/moment.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.1.min.js\", \"https://unpkg.com/@holoviz/panel@^0.11.3/dist/panel.min.js\"];\n var js_modules = [];\n var css_urls = [\"https://unpkg.com/tabulator-tables@4.9.3/dist/css/tabulator_simple.min.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/alerts.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/card.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/widgets.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/markdown.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/json.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/loading.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/dataframe.css\"];\n var inline_js = [\n function(Bokeh) {\n inject_raw_css(\"\\n .bk.pn-loading.arcs:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiBub25lOyBkaXNwbGF5OiBibG9jazsgc2hhcGUtcmVuZGVyaW5nOiBhdXRvOyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4gIDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjMyIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZT0iI2MzYzNjMyIgc3Ryb2tlLWRhc2hhcnJheT0iNTAuMjY1NDgyNDU3NDM2NjkgNTAuMjY1NDgyNDU3NDM2NjkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+ICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxcyIga2V5VGltZXM9IjA7MSIgdmFsdWVzPSIwIDUwIDUwOzM2MCA1MCA1MCI+PC9hbmltYXRlVHJhbnNmb3JtPiAgPC9jaXJjbGU+PC9zdmc+\\\")\\n }\\n \");\n },\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n function(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, js_modules, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "if ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n", " window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n", "}\n", "\n", "\n", " function JupyterCommManager() {\n", " }\n", "\n", " JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n", " if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", " comm_manager.register_target(comm_id, function(comm) {\n", " comm.on_msg(msg_handler);\n", " });\n", " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", " window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n", " comm.onMsg = msg_handler;\n", " });\n", " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", " google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n", " var messages = comm.messages[Symbol.asyncIterator]();\n", " function processIteratorResult(result) {\n", " var message = result.value;\n", " console.log(message)\n", " var content = {data: message.data, comm_id};\n", " var buffers = []\n", " for (var buffer of message.buffers || []) {\n", " buffers.push(new DataView(buffer))\n", " }\n", " var metadata = message.metadata || {};\n", " var msg = {content, buffers, metadata}\n", " msg_handler(msg);\n", " return messages.next().then(processIteratorResult);\n", " }\n", " return messages.next().then(processIteratorResult);\n", " })\n", " }\n", " }\n", "\n", " JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n", " if (comm_id in window.PyViz.comms) {\n", " return window.PyViz.comms[comm_id];\n", " } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", " var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n", " if (msg_handler) {\n", " comm.on_msg(msg_handler);\n", " }\n", " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", " var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n", " comm.open();\n", " if (msg_handler) {\n", " comm.onMsg = msg_handler;\n", " }\n", " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", " var comm_promise = google.colab.kernel.comms.open(comm_id)\n", " comm_promise.then((comm) => {\n", " window.PyViz.comms[comm_id] = comm;\n", " if (msg_handler) {\n", " var messages = comm.messages[Symbol.asyncIterator]();\n", " function processIteratorResult(result) {\n", " var message = result.value;\n", " var content = {data: message.data};\n", " var metadata = message.metadata || {comm_id};\n", " var msg = {content, metadata}\n", " msg_handler(msg);\n", " return messages.next().then(processIteratorResult);\n", " }\n", " return messages.next().then(processIteratorResult);\n", " }\n", " }) \n", " var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n", " return comm_promise.then((comm) => {\n", " comm.send(data, metadata, buffers, disposeOnDone);\n", " });\n", " };\n", " var comm = {\n", " send: sendClosure\n", " };\n", " }\n", " window.PyViz.comms[comm_id] = comm;\n", " return comm;\n", " }\n", " window.PyViz.comm_manager = new JupyterCommManager();\n", " \n", "\n", "\n", "var JS_MIME_TYPE = 'application/javascript';\n", "var HTML_MIME_TYPE = 'text/html';\n", "var EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\n", "var CLASS_NAME = 'output';\n", "\n", "/**\n", " * Render data to the DOM node\n", " */\n", "function render(props, node) {\n", " var div = document.createElement(\"div\");\n", " var script = document.createElement(\"script\");\n", " node.appendChild(div);\n", " node.appendChild(script);\n", "}\n", "\n", "/**\n", " * Handle when a new output is added\n", " */\n", "function handle_add_output(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", " if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", " var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", " if (id !== undefined) {\n", " var nchildren = toinsert.length;\n", " var html_node = toinsert[nchildren-1].children[0];\n", " html_node.innerHTML = output.data[HTML_MIME_TYPE];\n", " var scripts = [];\n", " var nodelist = html_node.querySelectorAll(\"script\");\n", " for (var i in nodelist) {\n", " if (nodelist.hasOwnProperty(i)) {\n", " scripts.push(nodelist[i])\n", " }\n", " }\n", "\n", " scripts.forEach( function (oldScript) {\n", " var newScript = document.createElement(\"script\");\n", " var attrs = [];\n", " var nodemap = oldScript.attributes;\n", " for (var j in nodemap) {\n", " if (nodemap.hasOwnProperty(j)) {\n", " attrs.push(nodemap[j])\n", " }\n", " }\n", " attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n", " newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n", " oldScript.parentNode.replaceChild(newScript, oldScript);\n", " });\n", " if (JS_MIME_TYPE in output.data) {\n", " toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n", " }\n", " output_area._hv_plot_id = id;\n", " if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n", " window.PyViz.plot_index[id] = Bokeh.index[id];\n", " } else {\n", " window.PyViz.plot_index[id] = null;\n", " }\n", " } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", "}\n", "\n", "/**\n", " * Handle when an output is cleared or removed\n", " */\n", "function handle_clear_output(event, handle) {\n", " var id = handle.cell.output_area._hv_plot_id;\n", " var server_id = handle.cell.output_area._bokeh_server_id;\n", " if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n", " var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n", " if (server_id !== null) {\n", " comm.send({event_type: 'server_delete', 'id': server_id});\n", " return;\n", " } else if (comm !== null) {\n", " comm.send({event_type: 'delete', 'id': id});\n", " }\n", " delete PyViz.plot_index[id];\n", " if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n", " var doc = window.Bokeh.index[id].model.document\n", " doc.clear();\n", " const i = window.Bokeh.documents.indexOf(doc);\n", " if (i > -1) {\n", " window.Bokeh.documents.splice(i, 1);\n", " }\n", " }\n", "}\n", "\n", "/**\n", " * Handle kernel restart event\n", " */\n", "function handle_kernel_cleanup(event, handle) {\n", " delete PyViz.comms[\"hv-extension-comm\"];\n", " window.PyViz.plot_index = {}\n", "}\n", "\n", "/**\n", " * Handle update_display_data messages\n", " */\n", "function handle_update_output(event, handle) {\n", " handle_clear_output(event, {cell: {output_area: handle.output_area}})\n", " handle_add_output(event, handle)\n", "}\n", "\n", "function register_renderer(events, OutputArea) {\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[0]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " events.on('output_added.OutputArea', handle_add_output);\n", " events.on('output_updated.OutputArea', handle_update_output);\n", " events.on('clear_output.CodeCell', handle_clear_output);\n", " events.on('delete.Cell', handle_clear_output);\n", " events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n", "\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " safe: true,\n", " index: 0\n", " });\n", "}\n", "\n", "if (window.Jupyter !== undefined) {\n", " try {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " } catch(err) {\n", " }\n", "}\n" ], "application/vnd.holoviews_load.v0+json": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n console.log(message)\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n comm.open();\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n }) \n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n" }, "metadata": {}, "output_type": "display_data" }, { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "
\n", "
\n", "" ], "text/plain": [ "Tabs\n", " [0] Row\n", " [0] Bokeh(PreText)\n", " [1] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] Column\n", " [0] Checkbox(name='show gaps')\n", " [1] Checkbox(name='Set Fermie to VBM')\n", " [2] Button(button_type='primary', name='Plot e-bands')\n", " [2] Column\n", " [0] Divider()\n", " [1] Accordion\n", " [0] Markdown(str)\n", " [1] Markdown(str)\n", " [1] ParamMethod(method)\n", " [2] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] Select(options=['jsmol', 'vesta', ...], value='vesta')\n", " [2] Button(button_type='primary', name='View structure')\n", " [3] Column\n", " [0] Divider()\n", " [1] Accordion\n", " [0] Markdown(str)\n", " [1] Markdown(str)\n", " [1] Column\n", " [0] Column(sizing_mode='stretch_width')\n", " [0] MyMarkdown(str)\n", " [1] Column(sizing_mode='stretch_width')\n", " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", " [1] Divider()\n", " [2] MyMarkdown(str)\n", " [3] Column(sizing_mode='stretch_width')\n", " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", " [1] Divider()\n", " [4] MyMarkdown(str)\n", " [5] Column(sizing_mode='stretch_width')\n", " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", " [1] Divider()\n", " [6] Accordion(sizing_mode='stretch_width')\n", " [0] Column(sizing_mode='stretch_width')\n", " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= idx frac_coords...)\n", " [1] Divider()\n", " [1] ParamMethod(method)" ] }, "execution_count": 5, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "1003" } }, "output_type": "execute_result" } ], "source": [ "abilab.abipanel()\n", "gsr.get_panel()" ] }, { "cell_type": "code", "execution_count": 6, "id": "formed-destiny", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "================================= File Info =================================\n", "Name: trf2_3_DDB\n", "Directory: /Users/gmatteo/git_repos/abipy/abipy/data/refs/alas_phonons\n", "Size: 52.99 kb\n", "Access Time: Tue Apr 20 01:16:13 2021\n", "Modification Time: Wed Mar 20 16:53:35 2019\n", "Change Time: Fri Apr 16 01:21:13 2021\n", "\n", "================================= Structure =================================\n", "Full Formula (Al1 As1)\n", "Reduced Formula: AlAs\n", "abc : 3.970101 3.970101 3.970101\n", "angles: 60.000000 60.000000 60.000000\n", "Sites (2)\n", " # SP a b c\n", "--- ---- ---- ---- ----\n", " 0 Al 0 0 0\n", " 1 As 0.25 0.25 0.25\n", "\n", "Abinit Spacegroup: spgid: 0, num_spatial_symmetries: 24, has_timerev: True, symmorphic: False\n", "\n", "================================== DDB Info ==================================\n", "\n", "Number of q-points in DDB: 8\n", "guessed_ngqpt: [4 4 4] (guess for the q-mesh divisions made by AbiPy)\n", "ecut = 3.000000, ecutsm = 0.000000, nkpt = 256, nsym = 24, usepaw = 0\n", "nsppol 1, nspinor 1, nspden 1, ixc = 1, occopt = 1, tsmear = 0.040000\n", "\n", "Has total energy: False, Has forces: False\n", "Has stress tensor: False\n", "\n", "Has (at least one) atomic pertubation: True\n", "Has (at least one diagonal) electric-field perturbation: True\n", "Has (at least one) Born effective charge: True\n", "Has (all) strain terms: False\n", "Has (all) internal strain terms: False\n", "Has (all) piezoelectric terms: False\n" ] } ], "source": [ "ddb = abilab.abiopen(abidata.ref_file(\"refs/alas_phonons/trf2_3_DDB\"))\n", "print(ddb)" ] }, { "cell_type": "code", "execution_count": 7, "id": "medieval-share", "metadata": {}, "outputs": [ { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.holoviews_exec.v0+json": "", "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "
\n", "
\n", "" ], "text/plain": [ "Tabs\n", " [0] Row\n", " [0] Bokeh(PreText)\n", " [1] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] IntInput(name='Nqsmall', start=1, value=10)\n", " [2] IntInput(name='ndivsm', start=1, value=5)\n", " [3] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", " [4] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", " [5] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", " [6] Select(name='Lo to splitting', options=OrderedDict([('automatic',...]), value='automatic')\n", " [7] Select(name='Dos method', options=OrderedDict([('tetra', ...]), value='tetra')\n", " [8] Toggle(name='Stacked PJDOS', value=True)\n", " [9] RangeSlider(end=1000, name='T-range', step=20, value=(0.0, 300.0))\n", " [10] Button(button_type='primary', name='Plot Bands and DOS')\n", " [11] Column\n", " [0] Divider()\n", " [1] Accordion\n", " [0] Markdown(str)\n", " [1] Markdown(str, name='warning')\n", " [1] ParamMethod(method)\n", " [2] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", " [2] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", " [3] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", " [4] FloatInput(name='Gamma ev', start=1e-20, value=0.0001)\n", " [5] Button(button_type='primary', name='Compute')\n", " [6] Column\n", " [0] Divider()\n", " [1] Accordion\n", " [0] Markdown(str)\n", " [1] Markdown(str, name='warning')\n", " [1] ParamMethod(method)\n", " [3] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", " [2] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", " [3] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", " [4] FloatInput(name='Gamma ev', start=1e-20, value=0.0001)\n", " [5] RangeSlider(name='Frequency range (eV)', step=0.001, value=(0.0, 0.1))\n", " [6] Button(button_type='primary', name='Plot eps0(omega)')\n", " [7] Column\n", " [0] Divider()\n", " [1] Accordion\n", " [0] Markdown(str)\n", " [1] Markdown(str, name='warning')\n", " [1] ParamMethod(method)\n", " [4] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", " [2] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", " [3] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", " [4] Button(button_type='primary', name='Calculate speed o...)\n", " [5] Column\n", " [0] Divider()\n", " [1] Accordion\n", " [0] Markdown(str)\n", " [1] Markdown(str, name='warning')\n", " [1] ParamMethod(method)\n", " [5] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] IntInput(name='Nqsmall', start=1, value=10)\n", " [2] IntInput(name='ndivsm', start=1, value=5)\n", " [3] Select(name='Dos method', options=OrderedDict([('tetra', ...]), value='tetra')\n", " [4] Button(button_type='primary', name='Compute phonons w...)\n", " [5] Column\n", " [0] Divider()\n", " [1] Accordion\n", " [0] Markdown(str)\n", " [1] Markdown(str, name='warning')\n", " [1] ParamMethod(method)\n", " [6] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", " [2] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", " [3] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", " [4] Select(name='Dos method', options=OrderedDict([('tetra', ...]), value='tetra')\n", " [5] LiteralInput(name='nsmalls (python list)', type=, value=[10, 20, 30])\n", " [6] RangeSlider(end=1000, name='T-range', step=20, value=(0.0, 300.0))\n", " [7] Button(button_type='primary', name='Plot PHDos vs Qmesh')\n", " [8] Column\n", " [0] Divider()\n", " [1] Accordion\n", " [0] Markdown(str)\n", " [1] Markdown(str, name='warning')\n", " [1] ParamMethod(method)\n", " [7] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", " [2] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", " [3] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", " [4] Select(name='Lo to splitting', options=OrderedDict([('automatic',...]), value='automatic')\n", " [5] IntInput(name='ndivsm', start=1, value=5)\n", " [6] Select(name='Dos method', options=OrderedDict([('tetra', ...]), value='tetra')\n", " [7] Button(button_type='primary', name='Plot PHbands w...)\n", " [8] Column\n", " [0] Divider()\n", " [1] Accordion\n", " [0] Markdown(str)\n", " [1] Markdown(str, name='warning')\n", " [1] ParamMethod(method)\n", " [8] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", " [2] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", " [3] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", " [4] Button(button_type='primary', name='Compute IFC(R)')\n", " [5] Column\n", " [0] Divider()\n", " [1] Accordion\n", " [0] Markdown(None)\n", " [1] Markdown(str, name='warning')\n", " [1] ParamMethod(method)\n", " [9] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] Select(options=['jsmol', 'vesta', ...], value='vesta')\n", " [2] Button(button_type='primary', name='View structure')\n", " [3] Column\n", " [0] Divider()\n", " [1] Accordion\n", " [0] Markdown(str)\n", " [1] Markdown(str, name='warning')\n", " [1] Column\n", " [0] Column(sizing_mode='stretch_width')\n", " [0] MyMarkdown(str)\n", " [1] Column(sizing_mode='stretch_width')\n", " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", " [1] Divider()\n", " [2] MyMarkdown(str)\n", " [3] Column(sizing_mode='stretch_width')\n", " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", " [1] Divider()\n", " [4] MyMarkdown(str)\n", " [5] Column(sizing_mode='stretch_width')\n", " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", " [1] Divider()\n", " [6] Accordion(sizing_mode='stretch_width')\n", " [0] Column(sizing_mode='stretch_width')\n", " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= idx frac_coords\n", "0 ...)\n", " [1] Divider()\n", " [1] Column(sizing_mode='stretch_width')\n", " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= idx frac_coords...)\n", " [1] Divider()\n", " [1] ParamMethod(method)\n", " [10] Row\n", " [0] Column\n", " [0] MyMarkdown(str)\n", " [1] Select(name='Units', options=OrderedDict([('eV', ...]), value='eV')\n", " [2] IntInput(name='Mpi procs', start=1, value=1)\n", " [3] IntInput(name='Verbose', start=0)\n", " [1] Column(sizing_mode='scale_width')\n", " [0] MyMarkdown(str)\n", " [1] Column(sizing_mode='stretch_width')\n", " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", " [1] Row(sizing_mode='scale_width')\n", " [0] FileDownload(callback=.to_..., filename='data.xlsx', label='Download data.xlsx')\n", " [1] FileDownload(callback=.to_..., filename='data.tex', label='Download data.tex')\n", " [2] FileDownload(callback=.to_..., filename='data.md', label='Download data.md')\n", " [3] FileDownload(callback=.to_..., filename='data.json', label='Download data.json')\n", " [2] Divider()" ] }, "execution_count": 7, "metadata": { "application/vnd.holoviews_exec.v0+json": { "id": "1221" } }, "output_type": "execute_result" } ], "source": [ "ddb.get_panel()" ] }, { "cell_type": "code", "execution_count": null, "id": "varied-father", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "env3.8", "language": "python", "name": "env3.8" }, "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.8.0" } }, "nbformat": 4, "nbformat_minor": 5 }