{ "cells": [ { "cell_type": "markdown", "source": [ "# Monitoring self-consistent field calculations\n", "\n", "The `self_consistent_field` function takes as the `callback`\n", "keyword argument one function to be called after each iteration.\n", "This function gets passed the complete internal state of the SCF\n", "solver and can thus be used both to monitor and debug the iterations\n", "as well as to quickly patch it with additional functionality.\n", "\n", "This example discusses a few aspects of the `callback` function\n", "taking again our favourite silicon example." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "We setup silicon in an LDA model using `AtomsBuilder`\n", "to build a bulk silicon lattice,\n", "(see AtomsBase integration for more details." ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "using DFTK\n", "using AtomsBuilder\n", "using PseudoPotentialData\n", "\n", "pseudopotentials = PseudoFamily(\"dojo.nc.sr.lda.v0_4_1.standard.upf\")\n", "model = model_DFT(bulk(:Si); functionals=LDA(), pseudopotentials)\n", "basis = PlaneWaveBasis(model; Ecut=5, kgrid=[3, 3, 3]);" ], "metadata": {}, "execution_count": 1 }, { "cell_type": "markdown", "source": [ "DFTK already defines a few callback functions for standard\n", "tasks. One example is the usual convergence table,\n", "which is defined in the callback `ScfDefaultCallback`.\n", "Another example is `ScfSaveCheckpoints`, which stores the state\n", "of an SCF at each iterations to allow resuming from a failed\n", "calculation at a later point.\n", "See Saving SCF results on disk and SCF checkpoints for details\n", "how to use checkpointing with DFTK." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "In this example we define a custom callback, which plots\n", "the change in density at each SCF iteration after the SCF\n", "has finished. This example is a bit artificial, since the norms\n", "of all density differences is available as `scfres.history_Δρ`\n", "after the SCF has finished and could be directly plotted, but\n", "the following nicely illustrates the use of callbacks in DFTK." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "To enable plotting we first define the empty canvas\n", "and an empty container for all the density differences:" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "using Plots\n", "p = plot(; yaxis=:log)\n", "density_differences = Float64[];" ], "metadata": {}, "execution_count": 2 }, { "cell_type": "markdown", "source": [ "The callback function itself gets passed a named tuple\n", "similar to the one returned by `self_consistent_field`,\n", "which contains the input and output density of the SCF step\n", "as `ρin` and `ρout`. Since the callback gets called\n", "both during the SCF iterations as well as after convergence\n", "just before `self_consistent_field` finishes we can both\n", "collect the data and initiate the plotting in one function." ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "using LinearAlgebra\n", "\n", "function plot_callback(info)\n", " if info.stage == :finalize\n", " plot!(p, density_differences, label=\"|ρout - ρin|\", markershape=:x)\n", " else\n", " push!(density_differences, norm(info.ρout - info.ρin))\n", " end\n", " info\n", "end\n", "callback = ScfDefaultCallback() ∘ plot_callback;" ], "metadata": {}, "execution_count": 3 }, { "cell_type": "markdown", "source": [ "Notice that for constructing the `callback` function we chained the `plot_callback`\n", "(which does the plotting) with the `ScfDefaultCallback`. The latter is the function\n", "responsible for printing the usual convergence table. Therefore if we simply did\n", "`callback=plot_callback` the SCF would go silent. The chaining of both callbacks\n", "(`plot_callback` for plotting and `ScfDefaultCallback()` for the convergence table)\n", "makes sure both features are enabled. We run the SCF with the chained callback …" ], "metadata": {} }, { "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "n Energy log10(ΔE) log10(Δρ) α Diag Δtime\n", "--- --------------- --------- --------- ---- ---- ------\n", " 1 -8.457241783716 -0.89 0.80 5.0 104ms\n", " 2 -8.460040422389 -2.55 -1.72 0.80 1.0 188ms\n", " 3 -8.460186658041 -3.83 -2.86 0.80 1.2 16.5ms\n", " 4 -8.460214649769 -4.55 -2.90 0.80 3.2 21.6ms\n", " 5 -8.460214818404 -6.77 -2.98 0.80 1.0 15.5ms\n", " 6 -8.460215125208 -6.51 -4.79 0.80 1.0 15.6ms\n", " 7 -8.460215135187 -8.00 -4.38 0.80 3.5 23.0ms\n", " 8 -8.460215135738 -9.26 -5.64 0.80 1.0 15.9ms\n" ] } ], "cell_type": "code", "source": [ "scfres = self_consistent_field(basis; tol=1e-5, callback);" ], "metadata": {}, "execution_count": 4 }, { "cell_type": "markdown", "source": [ "… and show the plot" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=1}", "image/png": "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", "text/html": [ "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 2400 1600\">\n", "<defs>\n", " <clipPath id=\"clip450\">\n", " <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n", " </clipPath>\n", "</defs>\n", "<path clip-path=\"url(#clip450)\" d=\"M0 1600 L2400 1600 L2400 0 L0 0 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n", "<defs>\n", " <clipPath id=\"clip451\">\n", " <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n", " </clipPath>\n", "</defs>\n", "<path clip-path=\"url(#clip450)\" d=\"M189.496 1486.45 L2352.76 1486.45 L2352.76 47.2441 L189.496 47.2441 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n", "<defs>\n", " <clipPath id=\"clip452\">\n", " <rect x=\"189\" y=\"47\" width=\"2164\" height=\"1440\"/>\n", " </clipPath>\n", "</defs>\n", "<polyline clip-path=\"url(#clip452)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"542.265,1486.45 542.265,47.2441 \"/>\n", "<polyline clip-path=\"url(#clip452)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"1125.35,1486.45 1125.35,47.2441 \"/>\n", "<polyline clip-path=\"url(#clip452)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"1708.44,1486.45 1708.44,47.2441 \"/>\n", "<polyline clip-path=\"url(#clip452)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"2291.53,1486.45 2291.53,47.2441 \"/>\n", "<polyline clip-path=\"url(#clip452)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"189.496,1186.32 2352.76,1186.32 \"/>\n", "<polyline clip-path=\"url(#clip452)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"189.496,615.363 2352.76,615.363 \"/>\n", "<polyline clip-path=\"url(#clip450)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"189.496,1486.45 2352.76,1486.45 \"/>\n", "<polyline clip-path=\"url(#clip450)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"542.265,1486.45 542.265,1467.55 \"/>\n", "<polyline clip-path=\"url(#clip450)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1125.35,1486.45 1125.35,1467.55 \"/>\n", "<polyline clip-path=\"url(#clip450)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1708.44,1486.45 1708.44,1467.55 \"/>\n", "<polyline clip-path=\"url(#clip450)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"2291.53,1486.45 2291.53,1467.55 \"/>\n", "<path clip-path=\"url(#clip450)\" d=\"M536.918 1544.91 L553.237 1544.91 L553.237 1548.85 L531.293 1548.85 L531.293 1544.91 Q533.955 1542.16 538.538 1537.53 Q543.144 1532.88 544.325 1531.53 Q546.57 1529.01 547.45 1527.27 Q548.353 1525.51 548.353 1523.82 Q548.353 1521.07 546.408 1519.33 Q544.487 1517.6 541.385 1517.6 Q539.186 1517.6 536.732 1518.36 Q534.302 1519.13 531.524 1520.68 L531.524 1515.95 Q534.348 1514.82 536.802 1514.24 Q539.255 1513.66 541.293 1513.66 Q546.663 1513.66 549.857 1516.35 Q553.052 1519.03 553.052 1523.52 Q553.052 1525.65 552.242 1527.57 Q551.454 1529.47 549.348 1532.07 Q548.769 1532.74 545.667 1535.95 Q542.566 1539.15 536.918 1544.91 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M1128.36 1518.36 L1116.56 1536.81 L1128.36 1536.81 L1128.36 1518.36 M1127.14 1514.29 L1133.02 1514.29 L1133.02 1536.81 L1137.95 1536.81 L1137.95 1540.7 L1133.02 1540.7 L1133.02 1548.85 L1128.36 1548.85 L1128.36 1540.7 L1112.76 1540.7 L1112.76 1536.19 L1127.14 1514.29 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M1708.85 1529.7 Q1705.7 1529.7 1703.85 1531.86 Q1702.02 1534.01 1702.02 1537.76 Q1702.02 1541.49 1703.85 1543.66 Q1705.7 1545.82 1708.85 1545.82 Q1712 1545.82 1713.82 1543.66 Q1715.68 1541.49 1715.68 1537.76 Q1715.68 1534.01 1713.82 1531.86 Q1712 1529.7 1708.85 1529.7 M1718.13 1515.05 L1718.13 1519.31 Q1716.37 1518.48 1714.57 1518.04 Q1712.78 1517.6 1711.02 1517.6 Q1706.39 1517.6 1703.94 1520.72 Q1701.51 1523.85 1701.16 1530.17 Q1702.53 1528.15 1704.59 1527.09 Q1706.65 1526 1709.13 1526 Q1714.33 1526 1717.34 1529.17 Q1720.38 1532.32 1720.38 1537.76 Q1720.38 1543.08 1717.23 1546.3 Q1714.08 1549.52 1708.85 1549.52 Q1702.85 1549.52 1699.68 1544.94 Q1696.51 1540.33 1696.51 1531.6 Q1696.51 1523.41 1700.4 1518.55 Q1704.29 1513.66 1710.84 1513.66 Q1712.6 1513.66 1714.38 1514.01 Q1716.19 1514.36 1718.13 1515.05 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M2291.53 1532.44 Q2288.2 1532.44 2286.28 1534.22 Q2284.38 1536 2284.38 1539.13 Q2284.38 1542.25 2286.28 1544.03 Q2288.2 1545.82 2291.53 1545.82 Q2294.86 1545.82 2296.79 1544.03 Q2298.71 1542.23 2298.71 1539.13 Q2298.71 1536 2296.79 1534.22 Q2294.89 1532.44 2291.53 1532.44 M2286.86 1530.45 Q2283.85 1529.7 2282.16 1527.64 Q2280.49 1525.58 2280.49 1522.62 Q2280.49 1518.48 2283.43 1516.07 Q2286.39 1513.66 2291.53 1513.66 Q2296.69 1513.66 2299.63 1516.07 Q2302.57 1518.48 2302.57 1522.62 Q2302.57 1525.58 2300.88 1527.64 Q2299.22 1529.7 2296.23 1530.45 Q2299.61 1531.23 2301.49 1533.52 Q2303.38 1535.82 2303.38 1539.13 Q2303.38 1544.15 2300.3 1546.83 Q2297.25 1549.52 2291.53 1549.52 Q2285.81 1549.52 2282.74 1546.83 Q2279.68 1544.15 2279.68 1539.13 Q2279.68 1535.82 2281.58 1533.52 Q2283.48 1531.23 2286.86 1530.45 M2285.14 1523.06 Q2285.14 1525.75 2286.81 1527.25 Q2288.5 1528.76 2291.53 1528.76 Q2294.54 1528.76 2296.23 1527.25 Q2297.94 1525.75 2297.94 1523.06 Q2297.94 1520.38 2296.23 1518.87 Q2294.54 1517.37 2291.53 1517.37 Q2288.5 1517.37 2286.81 1518.87 Q2285.14 1520.38 2285.14 1523.06 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip450)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"189.496,1486.45 189.496,47.2441 \"/>\n", "<polyline clip-path=\"url(#clip450)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"189.496,1186.32 208.394,1186.32 \"/>\n", "<polyline clip-path=\"url(#clip450)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"189.496,615.363 208.394,615.363 \"/>\n", "<path clip-path=\"url(#clip450)\" d=\"M51.6634 1206.11 L59.3023 1206.11 L59.3023 1179.74 L50.9921 1181.41 L50.9921 1177.15 L59.256 1175.48 L63.9319 1175.48 L63.9319 1206.11 L71.5707 1206.11 L71.5707 1210.04 L51.6634 1210.04 L51.6634 1206.11 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M91.0151 1178.56 Q87.404 1178.56 85.5753 1182.13 Q83.7697 1185.67 83.7697 1192.8 Q83.7697 1199.91 85.5753 1203.47 Q87.404 1207.01 91.0151 1207.01 Q94.6493 1207.01 96.4548 1203.47 Q98.2835 1199.91 98.2835 1192.8 Q98.2835 1185.67 96.4548 1182.13 Q94.6493 1178.56 91.0151 1178.56 M91.0151 1174.86 Q96.8252 1174.86 99.8808 1179.47 Q102.959 1184.05 102.959 1192.8 Q102.959 1201.53 99.8808 1206.13 Q96.8252 1210.72 91.0151 1210.72 Q85.2049 1210.72 82.1262 1206.13 Q79.0707 1201.53 79.0707 1192.8 Q79.0707 1184.05 82.1262 1179.47 Q85.2049 1174.86 91.0151 1174.86 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M102.959 1168.96 L127.071 1168.96 L127.071 1172.16 L102.959 1172.16 L102.959 1168.96 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M145.71 1157.86 L136.118 1172.85 L145.71 1172.85 L145.71 1157.86 M144.713 1154.55 L149.49 1154.55 L149.49 1172.85 L153.496 1172.85 L153.496 1176.01 L149.49 1176.01 L149.49 1182.63 L145.71 1182.63 L145.71 1176.01 L133.033 1176.01 L133.033 1172.35 L144.713 1154.55 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M53.3561 635.155 L60.995 635.155 L60.995 608.79 L52.6848 610.457 L52.6848 606.197 L60.9487 604.531 L65.6246 604.531 L65.6246 635.155 L73.2634 635.155 L73.2634 639.091 L53.3561 639.091 L53.3561 635.155 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M92.7078 607.609 Q89.0967 607.609 87.268 611.174 Q85.4624 614.716 85.4624 621.845 Q85.4624 628.952 87.268 632.517 Q89.0967 636.058 92.7078 636.058 Q96.342 636.058 98.1475 632.517 Q99.9762 628.952 99.9762 621.845 Q99.9762 614.716 98.1475 611.174 Q96.342 607.609 92.7078 607.609 M92.7078 603.906 Q98.5179 603.906 101.573 608.512 Q104.652 613.095 104.652 621.845 Q104.652 630.572 101.573 635.179 Q98.5179 639.762 92.7078 639.762 Q86.8976 639.762 83.8189 635.179 Q80.7634 630.572 80.7634 621.845 Q80.7634 613.095 83.8189 608.512 Q86.8976 603.906 92.7078 603.906 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M104.652 598.007 L128.764 598.007 L128.764 601.204 L104.652 601.204 L104.652 598.007 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M140.236 608.483 L153.496 608.483 L153.496 611.68 L135.666 611.68 L135.666 608.483 Q137.829 606.245 141.553 602.483 Q145.296 598.703 146.255 597.612 Q148.079 595.562 148.794 594.151 Q149.527 592.722 149.527 591.349 Q149.527 589.111 147.948 587.7 Q146.387 586.29 143.866 586.29 Q142.08 586.29 140.086 586.91 Q138.111 587.531 135.854 588.791 L135.854 584.954 Q138.149 584.033 140.142 583.563 Q142.136 583.092 143.791 583.092 Q148.155 583.092 150.75 585.274 Q153.345 587.456 153.345 591.105 Q153.345 592.835 152.687 594.396 Q152.048 595.938 150.336 598.045 Q149.866 598.59 147.346 601.204 Q144.826 603.8 140.236 608.483 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip452)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"250.72,87.9763 542.265,325.884 833.809,649.948 1125.35,663.223 1416.9,683.759 1708.44,1201.43 1999.99,1083.91 2291.53,1445.72 \"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"250.72\" y1=\"87.9763\" x2=\"234.72\" y2=\"71.9763\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"250.72\" y1=\"87.9763\" x2=\"234.72\" y2=\"103.976\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"250.72\" y1=\"87.9763\" x2=\"266.72\" y2=\"103.976\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"250.72\" y1=\"87.9763\" x2=\"266.72\" y2=\"71.9763\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"542.265\" y1=\"325.884\" x2=\"526.265\" y2=\"309.884\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"542.265\" y1=\"325.884\" x2=\"526.265\" y2=\"341.884\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"542.265\" y1=\"325.884\" x2=\"558.265\" y2=\"341.884\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"542.265\" y1=\"325.884\" x2=\"558.265\" y2=\"309.884\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"833.809\" y1=\"649.948\" x2=\"817.809\" y2=\"633.948\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"833.809\" y1=\"649.948\" x2=\"817.809\" y2=\"665.948\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"833.809\" y1=\"649.948\" x2=\"849.809\" y2=\"665.948\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"833.809\" y1=\"649.948\" x2=\"849.809\" y2=\"633.948\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1125.35\" y1=\"663.223\" x2=\"1109.35\" y2=\"647.223\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1125.35\" y1=\"663.223\" x2=\"1109.35\" y2=\"679.223\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1125.35\" y1=\"663.223\" x2=\"1141.35\" y2=\"679.223\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1125.35\" y1=\"663.223\" x2=\"1141.35\" y2=\"647.223\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1416.9\" y1=\"683.759\" x2=\"1400.9\" y2=\"667.759\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1416.9\" y1=\"683.759\" x2=\"1400.9\" y2=\"699.759\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1416.9\" y1=\"683.759\" x2=\"1432.9\" y2=\"699.759\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1416.9\" y1=\"683.759\" x2=\"1432.9\" y2=\"667.759\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1708.44\" y1=\"1201.43\" x2=\"1692.44\" y2=\"1185.43\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1708.44\" y1=\"1201.43\" x2=\"1692.44\" y2=\"1217.43\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1708.44\" y1=\"1201.43\" x2=\"1724.44\" y2=\"1217.43\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1708.44\" y1=\"1201.43\" x2=\"1724.44\" y2=\"1185.43\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1999.99\" y1=\"1083.91\" x2=\"1983.99\" y2=\"1067.91\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1999.99\" y1=\"1083.91\" x2=\"1983.99\" y2=\"1099.91\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1999.99\" y1=\"1083.91\" x2=\"2015.99\" y2=\"1099.91\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"1999.99\" y1=\"1083.91\" x2=\"2015.99\" y2=\"1067.91\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"2291.53\" y1=\"1445.72\" x2=\"2275.53\" y2=\"1429.72\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"2291.53\" y1=\"1445.72\" x2=\"2275.53\" y2=\"1461.72\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"2291.53\" y1=\"1445.72\" x2=\"2307.53\" y2=\"1461.72\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip452)\" x1=\"2291.53\" y1=\"1445.72\" x2=\"2307.53\" y2=\"1429.72\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<path clip-path=\"url(#clip450)\" d=\"M1816.13 198.898 L2280.65 198.898 L2280.65 95.2176 L1816.13 95.2176 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n", "<polyline clip-path=\"url(#clip450)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1816.13,198.898 2280.65,198.898 2280.65,95.2176 1816.13,95.2176 1816.13,198.898 \"/>\n", "<polyline clip-path=\"url(#clip450)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1840.16,147.058 1984.38,147.058 \"/>\n", "<line clip-path=\"url(#clip450)\" x1=\"1912.27\" y1=\"147.058\" x2=\"1890.02\" y2=\"124.802\" style=\"stroke:#009af9; stroke-width:4.55111; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip450)\" x1=\"1912.27\" y1=\"147.058\" x2=\"1890.02\" y2=\"169.313\" style=\"stroke:#009af9; stroke-width:4.55111; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip450)\" x1=\"1912.27\" y1=\"147.058\" x2=\"1934.53\" y2=\"169.313\" style=\"stroke:#009af9; stroke-width:4.55111; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip450)\" x1=\"1912.27\" y1=\"147.058\" x2=\"1934.53\" y2=\"124.802\" style=\"stroke:#009af9; stroke-width:4.55111; stroke-opacity:1\"/>\n", "<path clip-path=\"url(#clip450)\" d=\"M2012.35 128.111 L2012.35 175.518 L2008.42 175.518 L2008.42 128.111 L2012.35 128.111 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M2024.76 143.041 Q2026.17 140.68 2029.67 138.597 Q2031.03 137.787 2035.25 137.787 Q2039.97 137.787 2042.91 141.537 Q2045.87 145.287 2045.87 151.398 Q2045.87 157.509 2042.91 161.259 Q2039.97 165.009 2035.25 165.009 Q2032.4 165.009 2030.34 163.898 Q2028.3 162.763 2026.96 160.449 L2026.96 174.199 L2022.68 174.199 L2022.68 151.629 Q2022.68 146.282 2024.76 143.041 M2041.45 151.398 Q2041.45 146.699 2039.51 144.037 Q2037.58 141.352 2034.2 141.352 Q2030.83 141.352 2028.88 144.037 Q2026.96 146.699 2026.96 151.398 Q2026.96 156.097 2028.88 158.782 Q2030.83 161.444 2034.2 161.444 Q2037.58 161.444 2039.51 158.782 Q2041.45 156.097 2041.45 151.398 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M2062.98 141.398 Q2059.55 141.398 2057.56 144.083 Q2055.57 146.745 2055.57 151.398 Q2055.57 156.051 2057.54 158.736 Q2059.53 161.398 2062.98 161.398 Q2066.38 161.398 2068.37 158.713 Q2070.36 156.027 2070.36 151.398 Q2070.36 146.791 2068.37 144.106 Q2066.38 141.398 2062.98 141.398 M2062.98 137.787 Q2068.53 137.787 2071.7 141.398 Q2074.88 145.009 2074.88 151.398 Q2074.88 157.764 2071.7 161.398 Q2068.53 165.009 2062.98 165.009 Q2057.4 165.009 2054.23 161.398 Q2051.08 157.764 2051.08 151.398 Q2051.08 145.009 2054.23 141.398 Q2057.4 137.787 2062.98 137.787 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M2081.5 154.106 L2081.5 138.412 L2085.76 138.412 L2085.76 153.944 Q2085.76 157.625 2087.19 159.476 Q2088.63 161.305 2091.5 161.305 Q2094.95 161.305 2096.94 159.106 Q2098.95 156.907 2098.95 153.111 L2098.95 138.412 L2103.21 138.412 L2103.21 164.338 L2098.95 164.338 L2098.95 160.356 Q2097.4 162.717 2095.34 163.875 Q2093.3 165.009 2090.59 165.009 Q2086.13 165.009 2083.81 162.231 Q2081.5 159.453 2081.5 154.106 M2092.21 137.787 L2092.21 137.787 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M2116.2 131.051 L2116.2 138.412 L2124.97 138.412 L2124.97 141.722 L2116.2 141.722 L2116.2 155.796 Q2116.2 158.967 2117.05 159.87 Q2117.93 160.773 2120.59 160.773 L2124.97 160.773 L2124.97 164.338 L2120.59 164.338 Q2115.66 164.338 2113.79 162.509 Q2111.91 160.657 2111.91 155.796 L2111.91 141.722 L2108.79 141.722 L2108.79 138.412 L2111.91 138.412 L2111.91 131.051 L2116.2 131.051 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M2143.49 149.453 L2155.96 149.453 L2155.96 153.25 L2143.49 153.25 L2143.49 149.453 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M2179.74 143.041 Q2181.15 140.68 2184.64 138.597 Q2186.01 137.787 2190.22 137.787 Q2194.94 137.787 2197.88 141.537 Q2200.85 145.287 2200.85 151.398 Q2200.85 157.509 2197.88 161.259 Q2194.94 165.009 2190.22 165.009 Q2187.38 165.009 2185.32 163.898 Q2183.28 162.763 2181.94 160.449 L2181.94 174.199 L2177.65 174.199 L2177.65 151.629 Q2177.65 146.282 2179.74 143.041 M2196.43 151.398 Q2196.43 146.699 2194.48 144.037 Q2192.56 141.352 2189.18 141.352 Q2185.8 141.352 2183.86 144.037 Q2181.94 146.699 2181.94 151.398 Q2181.94 156.097 2183.86 158.782 Q2185.8 161.444 2189.18 161.444 Q2192.56 161.444 2194.48 158.782 Q2196.43 156.097 2196.43 151.398 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M2207.91 138.412 L2212.17 138.412 L2212.17 164.338 L2207.91 164.338 L2207.91 138.412 M2207.91 128.319 L2212.17 128.319 L2212.17 133.713 L2207.91 133.713 L2207.91 128.319 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M2242.63 148.689 L2242.63 164.338 L2238.37 164.338 L2238.37 148.828 Q2238.37 145.148 2236.94 143.319 Q2235.5 141.49 2232.63 141.49 Q2229.18 141.49 2227.19 143.69 Q2225.2 145.889 2225.2 149.685 L2225.2 164.338 L2220.92 164.338 L2220.92 138.412 L2225.2 138.412 L2225.2 142.44 Q2226.73 140.102 2228.79 138.944 Q2230.87 137.787 2233.58 137.787 Q2238.05 137.787 2240.34 140.565 Q2242.63 143.319 2242.63 148.689 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip450)\" d=\"M2256.61 128.111 L2256.61 175.518 L2252.68 175.518 L2252.68 128.111 L2256.61 128.111 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /></svg>\n" ], "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 2400 1600\">\n", "<defs>\n", " <clipPath id=\"clip420\">\n", " <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n", " </clipPath>\n", "</defs>\n", "<path clip-path=\"url(#clip420)\" d=\"M0 1600 L2400 1600 L2400 0 L0 0 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n", "<defs>\n", " <clipPath id=\"clip421\">\n", " <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n", " </clipPath>\n", "</defs>\n", "<path clip-path=\"url(#clip420)\" d=\"M189.496 1486.45 L2352.76 1486.45 L2352.76 47.2441 L189.496 47.2441 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n", "<defs>\n", " <clipPath id=\"clip422\">\n", " <rect x=\"189\" y=\"47\" width=\"2164\" height=\"1440\"/>\n", " </clipPath>\n", "</defs>\n", "<polyline clip-path=\"url(#clip422)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"542.265,1486.45 542.265,47.2441 \"/>\n", "<polyline clip-path=\"url(#clip422)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"1125.35,1486.45 1125.35,47.2441 \"/>\n", "<polyline clip-path=\"url(#clip422)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"1708.44,1486.45 1708.44,47.2441 \"/>\n", "<polyline clip-path=\"url(#clip422)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"2291.53,1486.45 2291.53,47.2441 \"/>\n", "<polyline clip-path=\"url(#clip422)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"189.496,1186.32 2352.76,1186.32 \"/>\n", "<polyline clip-path=\"url(#clip422)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"189.496,615.363 2352.76,615.363 \"/>\n", "<polyline clip-path=\"url(#clip420)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"189.496,1486.45 2352.76,1486.45 \"/>\n", "<polyline clip-path=\"url(#clip420)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"542.265,1486.45 542.265,1467.55 \"/>\n", "<polyline clip-path=\"url(#clip420)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1125.35,1486.45 1125.35,1467.55 \"/>\n", "<polyline clip-path=\"url(#clip420)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1708.44,1486.45 1708.44,1467.55 \"/>\n", "<polyline clip-path=\"url(#clip420)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"2291.53,1486.45 2291.53,1467.55 \"/>\n", "<path clip-path=\"url(#clip420)\" d=\"M536.918 1544.91 L553.237 1544.91 L553.237 1548.85 L531.293 1548.85 L531.293 1544.91 Q533.955 1542.16 538.538 1537.53 Q543.144 1532.88 544.325 1531.53 Q546.57 1529.01 547.45 1527.27 Q548.353 1525.51 548.353 1523.82 Q548.353 1521.07 546.408 1519.33 Q544.487 1517.6 541.385 1517.6 Q539.186 1517.6 536.732 1518.36 Q534.302 1519.13 531.524 1520.68 L531.524 1515.95 Q534.348 1514.82 536.802 1514.24 Q539.255 1513.66 541.293 1513.66 Q546.663 1513.66 549.857 1516.35 Q553.052 1519.03 553.052 1523.52 Q553.052 1525.65 552.242 1527.57 Q551.454 1529.47 549.348 1532.07 Q548.769 1532.74 545.667 1535.95 Q542.566 1539.15 536.918 1544.91 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M1128.36 1518.36 L1116.56 1536.81 L1128.36 1536.81 L1128.36 1518.36 M1127.14 1514.29 L1133.02 1514.29 L1133.02 1536.81 L1137.95 1536.81 L1137.95 1540.7 L1133.02 1540.7 L1133.02 1548.85 L1128.36 1548.85 L1128.36 1540.7 L1112.76 1540.7 L1112.76 1536.19 L1127.14 1514.29 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M1708.85 1529.7 Q1705.7 1529.7 1703.85 1531.86 Q1702.02 1534.01 1702.02 1537.76 Q1702.02 1541.49 1703.85 1543.66 Q1705.7 1545.82 1708.85 1545.82 Q1712 1545.82 1713.82 1543.66 Q1715.68 1541.49 1715.68 1537.76 Q1715.68 1534.01 1713.82 1531.86 Q1712 1529.7 1708.85 1529.7 M1718.13 1515.05 L1718.13 1519.31 Q1716.37 1518.48 1714.57 1518.04 Q1712.78 1517.6 1711.02 1517.6 Q1706.39 1517.6 1703.94 1520.72 Q1701.51 1523.85 1701.16 1530.17 Q1702.53 1528.15 1704.59 1527.09 Q1706.65 1526 1709.13 1526 Q1714.33 1526 1717.34 1529.17 Q1720.38 1532.32 1720.38 1537.76 Q1720.38 1543.08 1717.23 1546.3 Q1714.08 1549.52 1708.85 1549.52 Q1702.85 1549.52 1699.68 1544.94 Q1696.51 1540.33 1696.51 1531.6 Q1696.51 1523.41 1700.4 1518.55 Q1704.29 1513.66 1710.84 1513.66 Q1712.6 1513.66 1714.38 1514.01 Q1716.19 1514.36 1718.13 1515.05 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M2291.53 1532.44 Q2288.2 1532.44 2286.28 1534.22 Q2284.38 1536 2284.38 1539.13 Q2284.38 1542.25 2286.28 1544.03 Q2288.2 1545.82 2291.53 1545.82 Q2294.86 1545.82 2296.79 1544.03 Q2298.71 1542.23 2298.71 1539.13 Q2298.71 1536 2296.79 1534.22 Q2294.89 1532.44 2291.53 1532.44 M2286.86 1530.45 Q2283.85 1529.7 2282.16 1527.64 Q2280.49 1525.58 2280.49 1522.62 Q2280.49 1518.48 2283.43 1516.07 Q2286.39 1513.66 2291.53 1513.66 Q2296.69 1513.66 2299.63 1516.07 Q2302.57 1518.48 2302.57 1522.62 Q2302.57 1525.58 2300.88 1527.64 Q2299.22 1529.7 2296.23 1530.45 Q2299.61 1531.23 2301.49 1533.52 Q2303.38 1535.82 2303.38 1539.13 Q2303.38 1544.15 2300.3 1546.83 Q2297.25 1549.52 2291.53 1549.52 Q2285.81 1549.52 2282.74 1546.83 Q2279.68 1544.15 2279.68 1539.13 Q2279.68 1535.82 2281.58 1533.52 Q2283.48 1531.23 2286.86 1530.45 M2285.14 1523.06 Q2285.14 1525.75 2286.81 1527.25 Q2288.5 1528.76 2291.53 1528.76 Q2294.54 1528.76 2296.23 1527.25 Q2297.94 1525.75 2297.94 1523.06 Q2297.94 1520.38 2296.23 1518.87 Q2294.54 1517.37 2291.53 1517.37 Q2288.5 1517.37 2286.81 1518.87 Q2285.14 1520.38 2285.14 1523.06 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip420)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"189.496,1486.45 189.496,47.2441 \"/>\n", "<polyline clip-path=\"url(#clip420)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"189.496,1186.32 208.394,1186.32 \"/>\n", "<polyline clip-path=\"url(#clip420)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"189.496,615.363 208.394,615.363 \"/>\n", "<path clip-path=\"url(#clip420)\" d=\"M51.6634 1206.11 L59.3023 1206.11 L59.3023 1179.74 L50.9921 1181.41 L50.9921 1177.15 L59.256 1175.48 L63.9319 1175.48 L63.9319 1206.11 L71.5707 1206.11 L71.5707 1210.04 L51.6634 1210.04 L51.6634 1206.11 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M91.0151 1178.56 Q87.404 1178.56 85.5753 1182.13 Q83.7697 1185.67 83.7697 1192.8 Q83.7697 1199.91 85.5753 1203.47 Q87.404 1207.01 91.0151 1207.01 Q94.6493 1207.01 96.4548 1203.47 Q98.2835 1199.91 98.2835 1192.8 Q98.2835 1185.67 96.4548 1182.13 Q94.6493 1178.56 91.0151 1178.56 M91.0151 1174.86 Q96.8252 1174.86 99.8808 1179.47 Q102.959 1184.05 102.959 1192.8 Q102.959 1201.53 99.8808 1206.13 Q96.8252 1210.72 91.0151 1210.72 Q85.2049 1210.72 82.1262 1206.13 Q79.0707 1201.53 79.0707 1192.8 Q79.0707 1184.05 82.1262 1179.47 Q85.2049 1174.86 91.0151 1174.86 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M102.959 1168.96 L127.071 1168.96 L127.071 1172.16 L102.959 1172.16 L102.959 1168.96 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M145.71 1157.86 L136.118 1172.85 L145.71 1172.85 L145.71 1157.86 M144.713 1154.55 L149.49 1154.55 L149.49 1172.85 L153.496 1172.85 L153.496 1176.01 L149.49 1176.01 L149.49 1182.63 L145.71 1182.63 L145.71 1176.01 L133.033 1176.01 L133.033 1172.35 L144.713 1154.55 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M53.3561 635.155 L60.995 635.155 L60.995 608.79 L52.6848 610.457 L52.6848 606.197 L60.9487 604.531 L65.6246 604.531 L65.6246 635.155 L73.2634 635.155 L73.2634 639.091 L53.3561 639.091 L53.3561 635.155 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M92.7078 607.609 Q89.0967 607.609 87.268 611.174 Q85.4624 614.716 85.4624 621.845 Q85.4624 628.952 87.268 632.517 Q89.0967 636.058 92.7078 636.058 Q96.342 636.058 98.1475 632.517 Q99.9762 628.952 99.9762 621.845 Q99.9762 614.716 98.1475 611.174 Q96.342 607.609 92.7078 607.609 M92.7078 603.906 Q98.5179 603.906 101.573 608.512 Q104.652 613.095 104.652 621.845 Q104.652 630.572 101.573 635.179 Q98.5179 639.762 92.7078 639.762 Q86.8976 639.762 83.8189 635.179 Q80.7634 630.572 80.7634 621.845 Q80.7634 613.095 83.8189 608.512 Q86.8976 603.906 92.7078 603.906 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M104.652 598.007 L128.764 598.007 L128.764 601.204 L104.652 601.204 L104.652 598.007 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M140.236 608.483 L153.496 608.483 L153.496 611.68 L135.666 611.68 L135.666 608.483 Q137.829 606.245 141.553 602.483 Q145.296 598.703 146.255 597.612 Q148.079 595.562 148.794 594.151 Q149.527 592.722 149.527 591.349 Q149.527 589.111 147.948 587.7 Q146.387 586.29 143.866 586.29 Q142.08 586.29 140.086 586.91 Q138.111 587.531 135.854 588.791 L135.854 584.954 Q138.149 584.033 140.142 583.563 Q142.136 583.092 143.791 583.092 Q148.155 583.092 150.75 585.274 Q153.345 587.456 153.345 591.105 Q153.345 592.835 152.687 594.396 Q152.048 595.938 150.336 598.045 Q149.866 598.59 147.346 601.204 Q144.826 603.8 140.236 608.483 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip422)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"250.72,87.9763 542.265,325.884 833.809,649.948 1125.35,663.223 1416.9,683.759 1708.44,1201.43 1999.99,1083.91 2291.53,1445.72 \"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"250.72\" y1=\"87.9763\" x2=\"234.72\" y2=\"71.9763\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"250.72\" y1=\"87.9763\" x2=\"234.72\" y2=\"103.976\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"250.72\" y1=\"87.9763\" x2=\"266.72\" y2=\"103.976\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"250.72\" y1=\"87.9763\" x2=\"266.72\" y2=\"71.9763\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"542.265\" y1=\"325.884\" x2=\"526.265\" y2=\"309.884\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"542.265\" y1=\"325.884\" x2=\"526.265\" y2=\"341.884\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"542.265\" y1=\"325.884\" x2=\"558.265\" y2=\"341.884\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"542.265\" y1=\"325.884\" x2=\"558.265\" y2=\"309.884\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"833.809\" y1=\"649.948\" x2=\"817.809\" y2=\"633.948\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"833.809\" y1=\"649.948\" x2=\"817.809\" y2=\"665.948\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"833.809\" y1=\"649.948\" x2=\"849.809\" y2=\"665.948\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"833.809\" y1=\"649.948\" x2=\"849.809\" y2=\"633.948\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1125.35\" y1=\"663.223\" x2=\"1109.35\" y2=\"647.223\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1125.35\" y1=\"663.223\" x2=\"1109.35\" y2=\"679.223\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1125.35\" y1=\"663.223\" x2=\"1141.35\" y2=\"679.223\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1125.35\" y1=\"663.223\" x2=\"1141.35\" y2=\"647.223\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1416.9\" y1=\"683.759\" x2=\"1400.9\" y2=\"667.759\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1416.9\" y1=\"683.759\" x2=\"1400.9\" y2=\"699.759\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1416.9\" y1=\"683.759\" x2=\"1432.9\" y2=\"699.759\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1416.9\" y1=\"683.759\" x2=\"1432.9\" y2=\"667.759\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1708.44\" y1=\"1201.43\" x2=\"1692.44\" y2=\"1185.43\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1708.44\" y1=\"1201.43\" x2=\"1692.44\" y2=\"1217.43\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1708.44\" y1=\"1201.43\" x2=\"1724.44\" y2=\"1217.43\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1708.44\" y1=\"1201.43\" x2=\"1724.44\" y2=\"1185.43\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1999.99\" y1=\"1083.91\" x2=\"1983.99\" y2=\"1067.91\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1999.99\" y1=\"1083.91\" x2=\"1983.99\" y2=\"1099.91\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1999.99\" y1=\"1083.91\" x2=\"2015.99\" y2=\"1099.91\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"1999.99\" y1=\"1083.91\" x2=\"2015.99\" y2=\"1067.91\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"2291.53\" y1=\"1445.72\" x2=\"2275.53\" y2=\"1429.72\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"2291.53\" y1=\"1445.72\" x2=\"2275.53\" y2=\"1461.72\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"2291.53\" y1=\"1445.72\" x2=\"2307.53\" y2=\"1461.72\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip422)\" x1=\"2291.53\" y1=\"1445.72\" x2=\"2307.53\" y2=\"1429.72\" style=\"stroke:#009af9; stroke-width:4; stroke-opacity:1\"/>\n", "<path clip-path=\"url(#clip420)\" d=\"M1816.13 198.898 L2280.65 198.898 L2280.65 95.2176 L1816.13 95.2176 Z\" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n", "<polyline clip-path=\"url(#clip420)\" style=\"stroke:#000000; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1816.13,198.898 2280.65,198.898 2280.65,95.2176 1816.13,95.2176 1816.13,198.898 \"/>\n", "<polyline clip-path=\"url(#clip420)\" style=\"stroke:#009af9; stroke-linecap:round; stroke-linejoin:round; stroke-width:4; stroke-opacity:1; fill:none\" points=\"1840.16,147.058 1984.38,147.058 \"/>\n", "<line clip-path=\"url(#clip420)\" x1=\"1912.27\" y1=\"147.058\" x2=\"1890.02\" y2=\"124.802\" style=\"stroke:#009af9; stroke-width:4.55111; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip420)\" x1=\"1912.27\" y1=\"147.058\" x2=\"1890.02\" y2=\"169.313\" style=\"stroke:#009af9; stroke-width:4.55111; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip420)\" x1=\"1912.27\" y1=\"147.058\" x2=\"1934.53\" y2=\"169.313\" style=\"stroke:#009af9; stroke-width:4.55111; stroke-opacity:1\"/>\n", "<line clip-path=\"url(#clip420)\" x1=\"1912.27\" y1=\"147.058\" x2=\"1934.53\" y2=\"124.802\" style=\"stroke:#009af9; stroke-width:4.55111; stroke-opacity:1\"/>\n", "<path clip-path=\"url(#clip420)\" d=\"M2012.35 128.111 L2012.35 175.518 L2008.42 175.518 L2008.42 128.111 L2012.35 128.111 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M2024.76 143.041 Q2026.17 140.68 2029.67 138.597 Q2031.03 137.787 2035.25 137.787 Q2039.97 137.787 2042.91 141.537 Q2045.87 145.287 2045.87 151.398 Q2045.87 157.509 2042.91 161.259 Q2039.97 165.009 2035.25 165.009 Q2032.4 165.009 2030.34 163.898 Q2028.3 162.763 2026.96 160.449 L2026.96 174.199 L2022.68 174.199 L2022.68 151.629 Q2022.68 146.282 2024.76 143.041 M2041.45 151.398 Q2041.45 146.699 2039.51 144.037 Q2037.58 141.352 2034.2 141.352 Q2030.83 141.352 2028.88 144.037 Q2026.96 146.699 2026.96 151.398 Q2026.96 156.097 2028.88 158.782 Q2030.83 161.444 2034.2 161.444 Q2037.58 161.444 2039.51 158.782 Q2041.45 156.097 2041.45 151.398 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M2062.98 141.398 Q2059.55 141.398 2057.56 144.083 Q2055.57 146.745 2055.57 151.398 Q2055.57 156.051 2057.54 158.736 Q2059.53 161.398 2062.98 161.398 Q2066.38 161.398 2068.37 158.713 Q2070.36 156.027 2070.36 151.398 Q2070.36 146.791 2068.37 144.106 Q2066.38 141.398 2062.98 141.398 M2062.98 137.787 Q2068.53 137.787 2071.7 141.398 Q2074.88 145.009 2074.88 151.398 Q2074.88 157.764 2071.7 161.398 Q2068.53 165.009 2062.98 165.009 Q2057.4 165.009 2054.23 161.398 Q2051.08 157.764 2051.08 151.398 Q2051.08 145.009 2054.23 141.398 Q2057.4 137.787 2062.98 137.787 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M2081.5 154.106 L2081.5 138.412 L2085.76 138.412 L2085.76 153.944 Q2085.76 157.625 2087.19 159.476 Q2088.63 161.305 2091.5 161.305 Q2094.95 161.305 2096.94 159.106 Q2098.95 156.907 2098.95 153.111 L2098.95 138.412 L2103.21 138.412 L2103.21 164.338 L2098.95 164.338 L2098.95 160.356 Q2097.4 162.717 2095.34 163.875 Q2093.3 165.009 2090.59 165.009 Q2086.13 165.009 2083.81 162.231 Q2081.5 159.453 2081.5 154.106 M2092.21 137.787 L2092.21 137.787 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M2116.2 131.051 L2116.2 138.412 L2124.97 138.412 L2124.97 141.722 L2116.2 141.722 L2116.2 155.796 Q2116.2 158.967 2117.05 159.87 Q2117.93 160.773 2120.59 160.773 L2124.97 160.773 L2124.97 164.338 L2120.59 164.338 Q2115.66 164.338 2113.79 162.509 Q2111.91 160.657 2111.91 155.796 L2111.91 141.722 L2108.79 141.722 L2108.79 138.412 L2111.91 138.412 L2111.91 131.051 L2116.2 131.051 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M2143.49 149.453 L2155.96 149.453 L2155.96 153.25 L2143.49 153.25 L2143.49 149.453 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M2179.74 143.041 Q2181.15 140.68 2184.64 138.597 Q2186.01 137.787 2190.22 137.787 Q2194.94 137.787 2197.88 141.537 Q2200.85 145.287 2200.85 151.398 Q2200.85 157.509 2197.88 161.259 Q2194.94 165.009 2190.22 165.009 Q2187.38 165.009 2185.32 163.898 Q2183.28 162.763 2181.94 160.449 L2181.94 174.199 L2177.65 174.199 L2177.65 151.629 Q2177.65 146.282 2179.74 143.041 M2196.43 151.398 Q2196.43 146.699 2194.48 144.037 Q2192.56 141.352 2189.18 141.352 Q2185.8 141.352 2183.86 144.037 Q2181.94 146.699 2181.94 151.398 Q2181.94 156.097 2183.86 158.782 Q2185.8 161.444 2189.18 161.444 Q2192.56 161.444 2194.48 158.782 Q2196.43 156.097 2196.43 151.398 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M2207.91 138.412 L2212.17 138.412 L2212.17 164.338 L2207.91 164.338 L2207.91 138.412 M2207.91 128.319 L2212.17 128.319 L2212.17 133.713 L2207.91 133.713 L2207.91 128.319 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M2242.63 148.689 L2242.63 164.338 L2238.37 164.338 L2238.37 148.828 Q2238.37 145.148 2236.94 143.319 Q2235.5 141.49 2232.63 141.49 Q2229.18 141.49 2227.19 143.69 Q2225.2 145.889 2225.2 149.685 L2225.2 164.338 L2220.92 164.338 L2220.92 138.412 L2225.2 138.412 L2225.2 142.44 Q2226.73 140.102 2228.79 138.944 Q2230.87 137.787 2233.58 137.787 Q2238.05 137.787 2240.34 140.565 Q2242.63 143.319 2242.63 148.689 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /><path clip-path=\"url(#clip420)\" d=\"M2256.61 128.111 L2256.61 175.518 L2252.68 175.518 L2252.68 128.111 L2256.61 128.111 Z\" fill=\"#000000\" fill-rule=\"nonzero\" fill-opacity=\"1\" /></svg>\n" ] }, "metadata": {}, "execution_count": 5 } ], "cell_type": "code", "source": [ "p" ], "metadata": {}, "execution_count": 5 }, { "cell_type": "markdown", "source": [ "The `info` object passed to the callback contains not just the densities\n", "but also the complete Bloch wave (in `ψ`), the `occupation`, band `eigenvalues`\n", "and so on.\n", "See [`src/scf/self_consistent_field.jl`](https://dftk.org/blob/master/src/scf/self_consistent_field.jl#L101)\n", "for all currently available keys.\n", "\n", "> **Debugging with callbacks**\n", ">\n", "> Very handy for debugging SCF algorithms is to employ callbacks\n", "> with an `@infiltrate` from [Infiltrator.jl](https://github.com/JuliaDebug/Infiltrator.jl)\n", "> to interactively monitor what is happening each SCF step." ], "metadata": {} } ], "nbformat_minor": 3, "metadata": { "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.11.4" }, "kernelspec": { "name": "julia-1.11", "display_name": "Julia 1.11.4", "language": "julia" } }, "nbformat": 4 }