diff --git a/configure.ac b/configure.ac index c7f1df31d6148b568c22e6ed5ebc33fc9ff73abf..50619f589b9377001538f3c62870c72249b3f102 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # Init the project. -AC_INIT([SWIFT],[0.8.0],[https://gitlab.cosma.dur.ac.uk/swift/swiftsim]) +AC_INIT([SWIFT],[0.8.1],[https://gitlab.cosma.dur.ac.uk/swift/swiftsim]) swift_config_flags="$*" # We want to stop when given unrecognised options. No subdirs so this is safe. @@ -60,6 +60,10 @@ if test "x$ax_enable_debug" != "xno"; then AC_DEFINE([SWIFT_DEVELOP_MODE],1,[Enable developer code options]) fi +# C++ in GCC 6 and above has an issue with undefined the min() and max() +# macros. This hack works around that. +AC_DEFINE([_GLIBCXX_INCLUDE_NEXT_C_HEADERS],1,[Hack for min() and max() using g++ 6+]) + # Enable POSIX and platform extension preprocessor macros. AC_USE_SYSTEM_EXTENSIONS @@ -270,6 +274,18 @@ if test "$enable_debugging_checks" = "yes"; then AC_DEFINE([SWIFT_DEBUG_CHECKS],1,[Enable expensive debugging]) fi +# Check if cell graph is on. +AC_ARG_ENABLE([cell-graph], + [AS_HELP_STRING([--enable-cell-graph], + [Activate the cell graph @<:@yes/no@:>@] + )], + [enable_cell_graph="$enableval"], + [enable_cell_graph="no"] +) +if test "$enable_cell_graph" = "yes"; then + AC_DEFINE([SWIFT_CELL_GRAPH],1,[Enable cell graph]) +fi + # Check if using our custom icbrtf is enalbled. AC_ARG_ENABLE([custom-icbrtf], [AS_HELP_STRING([--enable-custom-icbrtf], @@ -294,6 +310,18 @@ if test "$enable_naive_interactions" = "yes"; then AC_DEFINE([SWIFT_USE_NAIVE_INTERACTIONS],1,[Enable use of naive cell interaction functions]) fi +# Check whether we want to default to naive cell interactions (stars) +AC_ARG_ENABLE([naive-interactions-stars], + [AS_HELP_STRING([--enable-naive-interactions-stars], + [Activate use of naive cell interaction functions for stars @<:@yes/no@:>@] + )], + [enable_naive_interactions_stars="$enableval"], + [enable_naive_interactions_stars="no"] +) +if test "$enable_naive_interactions_stars" = "yes"; then + AC_DEFINE([SWIFT_USE_NAIVE_INTERACTIONS_STARS],1,[Enable use of naive cell interaction functions for stars]) +fi + # Check if gravity force checks are on for some particles. AC_ARG_ENABLE([gravity-force-checks], [AS_HELP_STRING([--enable-gravity-force-checks], @@ -1185,6 +1213,16 @@ if test "$have_armv7apmccntr"x = "yes"x; then AC_DEFINE(HAVE_ARMV7A_PMCCNTR,1,[Define if you have enabled the PMCCNTR cycle counter on ARMv7a]) fi +# Check if we have native exp10 and exp10f functions. If not failback to our +# implementations. On Apple/CLANG we have __exp10, so also check for that +# if the compiler is clang. +AC_CHECK_LIB([m],[exp10], [AC_DEFINE([HAVE_EXP10],1,[The exp10 function is present.])]) +AC_CHECK_LIB([m],[exp10f], [AC_DEFINE([HAVE_EXP10F],1,[The exp10f function is present.])]) +if test "$ax_cv_c_compiler_vendor" = "clang"; then + AC_CHECK_LIB([m],[__exp10], [AC_DEFINE([HAVE___EXP10],1,[The __exp10 function is present.])]) + AC_CHECK_LIB([m],[__exp10f], [AC_DEFINE([HAVE___EXP10F],1,[The __exp10f function is present.])]) +fi + # Add warning flags by default, if these can be used. Option =error adds # -Werror to GCC, clang and Intel. Note do this last as compiler tests may # become errors, if that's an issue don't use CFLAGS for these, use an AC_SUBST(). @@ -1933,6 +1971,7 @@ AC_MSG_RESULT([ Interaction debugging : $enable_debug_interactions Stars interaction debugging : $enable_debug_interactions_stars Naive interactions : $enable_naive_interactions + Naive stars interactions : $enable_naive_interactions_stars Gravity checks : $gravity_force_checks Custom icbrtf : $enable_custom_icbrtf diff --git a/doc/RTD/source/AnalysisTools/index.rst b/doc/RTD/source/AnalysisTools/index.rst new file mode 100644 index 0000000000000000000000000000000000000000..f68fa77536e77df48cd1acc44e98a3408e48b037 --- /dev/null +++ b/doc/RTD/source/AnalysisTools/index.rst @@ -0,0 +1,35 @@ +.. AnalysisTools + Loic Hausammann 20th March 2019 + +.. _analysistools: + +Analysis Tools +============== + +Task dependencies +----------------- + +At the beginning of each simulation the file ``dependency_graph.csv`` is generated and can be transformed into a ``dot`` and a ``png`` file with the script ``tools/plot_task_dependencies.py``. +It requires the ``dot`` package that is available in the library graphviz. +This script has also the possibility to generate a list of function calls for each task with the option ``--with-calls`` (this list may be incomplete). +You can convert the ``dot`` file into a ``png`` with the following command +``dot -Tpng dependency_graph.dot -o dependency_graph.png`` or directly read it with the python module ``xdot`` with ``python -m xdot dependency_graph.dot``. + + +Cell graph +---------- + +An interactive graph of the cells is available with the configuration option ``--enable-cell-graph``. +During a run, SWIFT will generate a ``cell_hierarchy_*.csv`` file per MPI rank. +The command ``tools/make_cell_hierarchy.sh cell_hierarchy_*.csv`` merges the files together and generates the file ``cell_hierarchy.html`` +that contains the graph and can be read with your favorite web browser. + +With chrome, you cannot access the files directly, you will need to either access them through an existing server (e.g. public http provided by your university) +or install ``npm`` and then run the following commands + +.. code-block:: bash + + npm install http-server -g + http-server . + +Now you can open the web page ``http://localhost:8080/cell_hierarchy.html``. diff --git a/doc/RTD/source/SubgridModels/EAGLE/EAGLE_SF_EOS.svg b/doc/RTD/source/SubgridModels/EAGLE/EAGLE_SF_EOS.svg new file mode 100644 index 0000000000000000000000000000000000000000..398c2bd88331cff072cd82590d4691f0c48bc148 --- /dev/null +++ b/doc/RTD/source/SubgridModels/EAGLE/EAGLE_SF_EOS.svg @@ -0,0 +1,2353 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="226.8pt" version="1.1" viewBox="0 0 226.8 226.8" width="226.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 226.8 +L 226.8 226.8 +L 226.8 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 34.02 197.316 +L 224.532 197.316 +L 224.532 2.268 +L 34.02 2.268 +z +" style="fill:#ffffff;"/> + </g> + <g id="PathCollection_1"> + <defs> + <path d="M 0 1 +C 0.265203 1 0.51958 0.894634 0.707107 0.707107 +C 0.894634 0.51958 1 0.265203 1 0 +C 1 -0.265203 0.894634 -0.51958 0.707107 -0.707107 +C 0.51958 -0.894634 0.265203 -1 0 -1 +C -0.265203 -1 -0.51958 -0.894634 -0.707107 -0.707107 +C -0.894634 -0.51958 -1 -0.265203 -1 0 +C -1 0.265203 -0.894634 0.51958 -0.707107 0.707107 +C -0.51958 0.894634 -0.265203 1 0 1 +z +" id="m85090810e3" style="stroke:#000000;"/> + </defs> + <g clip-path="url(#p70b35b528f)"> + <use style="stroke:#000000;" x="146.991516" xlink:href="#m85090810e3" y="70.434351"/> + </g> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="m00a3d680a8" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="60.395152" xlink:href="#m00a3d680a8" y="197.316"/> + </g> + </g> + <g id="text_1"> + <!-- $\mathdefault{10^{-6}}$ --> + <defs> + <path d="M 8.90625 57.09375 +L 8.90625 60.203125 +Q 20.90625 60.203125 27.09375 66.59375 +Q 28.796875 66.59375 29.09375 66.1875 +Q 29.40625 65.796875 29.40625 64 +L 29.40625 7.90625 +Q 29.40625 4.90625 30.84375 4 +Q 32.296875 3.09375 38.703125 3.09375 +L 41.90625 3.09375 +L 41.90625 0 +Q 38.40625 0.296875 25.703125 0.296875 +Q 13 0.296875 9.5 0 +L 9.5 3.09375 +L 12.703125 3.09375 +Q 19 3.09375 20.5 4 +Q 22 4.90625 22 7.90625 +L 22 59.703125 +Q 16.796875 57.09375 8.90625 57.09375 +z +" id="CMUSerif-Roman-49"/> + <path d="M 3.90625 32 +Q 3.90625 46.703125 7.59375 54.703125 +Q 12.796875 66.59375 25 66.59375 +Q 27.59375 66.59375 30.296875 65.890625 +Q 33 65.203125 36.453125 62.5 +Q 39.90625 59.796875 42 55.40625 +Q 46 46.90625 46 32 +Q 46 17.40625 42.296875 9.40625 +Q 36.90625 -2.203125 24.90625 -2.203125 +Q 20.40625 -2.203125 15.84375 0.09375 +Q 11.296875 2.40625 8.40625 7.90625 +Q 3.90625 16.203125 3.90625 32 +z +M 12.203125 33.203125 +Q 12.203125 18.09375 13.296875 12.09375 +Q 14.5 5.59375 17.84375 2.796875 +Q 21.203125 0 24.90625 0 +Q 28.90625 0 32.25 3 +Q 35.59375 6 36.59375 12.5 +Q 37.703125 18.90625 37.703125 33.203125 +Q 37.703125 47.09375 36.703125 52.703125 +Q 35.40625 59.203125 31.90625 61.796875 +Q 28.40625 64.40625 24.90625 64.40625 +Q 23.59375 64.40625 22.1875 64 +Q 20.796875 63.59375 18.796875 62.5 +Q 16.796875 61.40625 15.25 58.59375 +Q 13.703125 55.796875 13 51.59375 +Q 12.203125 46.203125 12.203125 33.203125 +z +" id="CMUSerif-Roman-48"/> + <path d="M 1 18.59375 +L 1 24.5 +L 27.59375 24.5 +L 27.59375 18.59375 +z +" id="CMUSerif-Roman-45"/> + <path d="M 4.203125 31.59375 +Q 4.203125 47.296875 12.203125 56.9375 +Q 20.203125 66.59375 30.5 66.59375 +Q 36.5 66.59375 39.84375 63.546875 +Q 43.203125 60.5 43.203125 55.796875 +Q 43.203125 53.203125 41.703125 52.09375 +Q 40.203125 51 38.59375 51 +Q 36.796875 51 35.390625 52.203125 +Q 34 53.40625 34 55.59375 +Q 34 60.09375 39.5 60.09375 +Q 36.90625 64.09375 30.703125 64.09375 +Q 28.796875 64.09375 26.84375 63.546875 +Q 24.90625 63 22.34375 61.140625 +Q 19.796875 59.296875 17.84375 56.34375 +Q 15.90625 53.40625 14.546875 47.90625 +Q 13.203125 42.40625 13.203125 35.203125 +L 13.203125 32.796875 +Q 17.296875 42.703125 25.6875 42.703125 +Q 34.09375 42.703125 39.890625 36.296875 +Q 45.703125 29.90625 45.703125 20.40625 +Q 45.703125 10.703125 39.640625 4.25 +Q 33.59375 -2.203125 25.09375 -2.203125 +Q 21.296875 -2.203125 17.84375 -0.59375 +Q 14.40625 1 11.203125 4.59375 +Q 8 8.203125 6.09375 15.140625 +Q 4.203125 22.09375 4.203125 31.59375 +z +M 13.40625 22.59375 +Q 13.40625 12.796875 15.203125 8.09375 +Q 15.5 7.296875 16.140625 6.25 +Q 16.796875 5.203125 17.9375 3.796875 +Q 19.09375 2.40625 21 1.5 +Q 22.90625 0.59375 25.09375 0.59375 +Q 31.796875 0.59375 35 7.09375 +Q 36.703125 10.703125 36.703125 20.5 +Q 36.703125 30.5 34.90625 34.203125 +Q 31.796875 40.40625 25.59375 40.40625 +Q 21.40625 40.40625 18.5 37.5 +Q 15.59375 34.59375 14.5 30.75 +Q 13.40625 26.90625 13.40625 22.59375 +z +" id="CMUSerif-Roman-54"/> + </defs> + <g transform="translate(52.295152 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-54"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_2"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="95.033698" xlink:href="#m00a3d680a8" y="197.316"/> + </g> + </g> + <g id="text_2"> + <!-- $\mathdefault{10^{-4}}$ --> + <defs> + <path d="M 2.796875 16.5 +L 2.796875 19.59375 +L 33.5 66.5 +Q 34.296875 67.703125 35.5 67.703125 +Q 36.59375 67.703125 36.84375 67.25 +Q 37.09375 66.796875 37.09375 65.09375 +L 37.09375 19.59375 +L 47.09375 19.59375 +L 47.09375 16.5 +L 37.09375 16.5 +L 37.09375 7.796875 +Q 37.09375 4.90625 38.296875 4 +Q 39.5 3.09375 44.703125 3.09375 +L 46.796875 3.09375 +L 46.796875 0 +Q 42.703125 0.296875 33.203125 0.296875 +Q 23.796875 0.296875 19.703125 0 +L 19.703125 3.09375 +L 21.796875 3.09375 +Q 27 3.09375 28.203125 4 +Q 29.40625 4.90625 29.40625 7.796875 +L 29.40625 16.5 +z +M 5.59375 19.59375 +L 30 19.59375 +L 30 56.90625 +z +" id="CMUSerif-Roman-52"/> + </defs> + <g transform="translate(86.933698 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.442188)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.442188)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.607813)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.607813)scale(0.7)" xlink:href="#CMUSerif-Roman-52"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_3"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="129.672243" xlink:href="#m00a3d680a8" y="197.316"/> + </g> + </g> + <g id="text_3"> + <!-- $\mathdefault{10^{-2}}$ --> + <defs> + <path d="M 5 0 +Q 5 1.796875 5.140625 2.34375 +Q 5.296875 2.90625 6.09375 3.703125 +L 25.296875 25.09375 +Q 35.796875 36.90625 35.796875 47.203125 +Q 35.796875 53.90625 32.296875 58.703125 +Q 28.796875 63.5 22.40625 63.5 +Q 18 63.5 14.296875 60.796875 +Q 10.59375 58.09375 8.90625 53.296875 +Q 9.203125 53.40625 10.203125 53.40625 +Q 12.703125 53.40625 14.09375 51.84375 +Q 15.5 50.296875 15.5 48.203125 +Q 15.5 45.5 13.75 44.203125 +Q 12 42.90625 10.296875 42.90625 +Q 9.59375 42.90625 8.6875 43.046875 +Q 7.796875 43.203125 6.390625 44.59375 +Q 5 46 5 48.5 +Q 5 55.5 10.296875 61.046875 +Q 15.59375 66.59375 23.703125 66.59375 +Q 32.90625 66.59375 38.90625 61.140625 +Q 44.90625 55.703125 44.90625 47.203125 +Q 44.90625 44.203125 44 41.5 +Q 43.09375 38.796875 41.890625 36.6875 +Q 40.703125 34.59375 37.5 31.25 +Q 34.296875 27.90625 31.6875 25.5 +Q 29.09375 23.09375 23.296875 18 +L 12.703125 7.703125 +L 30.703125 7.703125 +Q 39.5 7.703125 40.203125 8.5 +Q 41.203125 9.90625 42.40625 17.40625 +L 44.90625 17.40625 +L 42.09375 0 +z +" id="CMUSerif-Roman-50"/> + </defs> + <g transform="translate(121.572243 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-50"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="164.310789" xlink:href="#m00a3d680a8" y="197.316"/> + </g> + </g> + <g id="text_4"> + <!-- $\mathdefault{10^{0}}$ --> + <g transform="translate(157.410789 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-48"/> + </g> + </g> + </g> + <g id="xtick_5"> + <g id="line2d_5"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="198.949334" xlink:href="#m00a3d680a8" y="197.316"/> + </g> + </g> + <g id="text_5"> + <!-- $\mathdefault{10^{2}}$ --> + <g transform="translate(192.049334 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-50"/> + </g> + </g> + </g> + <g id="text_6"> + <!-- Hydrogen number density $n_{\rm H}$ [cm$^{-3}$] --> + <defs> + <path d="M 3.296875 0 +L 3.296875 3.09375 +L 5.703125 3.09375 +Q 11.09375 3.09375 12.34375 4 +Q 13.59375 4.90625 13.59375 7.796875 +L 13.59375 60.5 +Q 13.59375 63.40625 12.34375 64.296875 +Q 11.09375 65.203125 5.703125 65.203125 +L 3.296875 65.203125 +L 3.296875 68.296875 +Q 6.796875 68 18.09375 68 +Q 29.296875 68 32.796875 68.296875 +L 32.796875 65.203125 +L 30.40625 65.203125 +Q 25 65.203125 23.75 64.296875 +Q 22.5 63.40625 22.5 60.5 +L 22.5 37.09375 +L 52.40625 37.09375 +L 52.40625 60.5 +Q 52.40625 63.40625 51.15625 64.296875 +Q 49.90625 65.203125 44.5 65.203125 +L 42.09375 65.203125 +L 42.09375 68.296875 +Q 45.59375 68 56.90625 68 +Q 68.09375 68 71.59375 68.296875 +L 71.59375 65.203125 +L 69.203125 65.203125 +Q 63.796875 65.203125 62.546875 64.296875 +Q 61.296875 63.40625 61.296875 60.5 +L 61.296875 7.796875 +Q 61.296875 4.90625 62.546875 4 +Q 63.796875 3.09375 69.203125 3.09375 +L 71.59375 3.09375 +L 71.59375 0 +Q 68.09375 0.296875 56.796875 0.296875 +Q 45.59375 0.296875 42.09375 0 +L 42.09375 3.09375 +L 44.5 3.09375 +Q 49.90625 3.09375 51.15625 4 +Q 52.40625 4.90625 52.40625 7.796875 +L 52.40625 34 +L 22.5 34 +L 22.5 7.796875 +Q 22.5 4.90625 23.75 4 +Q 25 3.09375 30.40625 3.09375 +L 32.796875 3.09375 +L 32.796875 0 +Q 29.296875 0.296875 18 0.296875 +Q 6.796875 0.296875 3.296875 0 +z +" id="CMUSerif-Roman-72"/> + <path d="M 1.90625 -12.40625 +Q 1.90625 -10.296875 3.15625 -9.1875 +Q 4.40625 -8.09375 6.09375 -8.09375 +Q 7.90625 -8.09375 9.09375 -9.25 +Q 10.296875 -10.40625 10.296875 -12.296875 +Q 10.296875 -16 6.40625 -16.5 +Q 8.296875 -18.296875 11.09375 -18.296875 +Q 14.09375 -18.296875 16.5 -16.09375 +Q 18.90625 -13.90625 19.953125 -11.796875 +Q 21 -9.703125 22.5 -5.90625 +Q 23.90625 -2.90625 25 0 +L 10 36.5 +Q 9 38.90625 7.5 39.453125 +Q 6 40 1.90625 40 +L 1.90625 43.09375 +Q 6.40625 42.796875 11.59375 42.796875 +Q 14.703125 42.796875 22.5 43.09375 +L 22.5 40 +Q 16.90625 40 16.90625 37.40625 +Q 16.90625 37.09375 17.5 35.59375 +L 28.59375 8.703125 +L 38.703125 33.296875 +Q 39.296875 34.703125 39.296875 35.703125 +Q 39.296875 39.796875 34.59375 40 +L 34.59375 43.09375 +Q 41.203125 42.796875 43.296875 42.796875 +Q 47.40625 42.796875 50.796875 43.09375 +L 50.796875 40 +Q 44.09375 40 41.5 33.59375 +L 23.90625 -9.09375 +Q 19.09375 -20.5 11.09375 -20.5 +Q 7.296875 -20.5 4.59375 -18.140625 +Q 1.90625 -15.796875 1.90625 -12.40625 +z +" id="CMUSerif-Roman-121"/> + <path d="M 3.40625 21.5 +Q 3.40625 31 10.046875 37.59375 +Q 16.703125 44.203125 25.703125 44.203125 +Q 33.296875 44.203125 38.296875 38 +L 38.296875 59.59375 +Q 38.296875 63.296875 37 64.25 +Q 35.703125 65.203125 30.5 65.203125 +L 30.5 68.296875 +L 44.90625 69.40625 +L 44.90625 8.703125 +Q 44.90625 5 46.203125 4.046875 +Q 47.5 3.09375 52.703125 3.09375 +L 52.703125 0 +L 38 -1.09375 +L 38 5.5 +Q 32.796875 -1.09375 24.59375 -1.09375 +Q 16 -1.09375 9.703125 5.5 +Q 3.40625 12.09375 3.40625 21.5 +z +M 11.703125 21.40625 +Q 11.703125 12.09375 14.59375 7.5 +Q 18.59375 1.09375 25.09375 1.09375 +Q 32.5 1.09375 36.90625 8.09375 +Q 38 9.796875 38 11.796875 +L 38 32.296875 +Q 38 34.296875 36.90625 36 +Q 32.796875 42 26.09375 42 +Q 19.09375 42 14.796875 35.59375 +Q 11.703125 30.796875 11.703125 21.40625 +z +" id="CMUSerif-Roman-100"/> + <path d="M 2.796875 0 +L 2.796875 3.09375 +Q 8.09375 3.09375 9.34375 3.75 +Q 10.59375 4.40625 10.59375 7.59375 +L 10.59375 34.40625 +Q 10.59375 38.09375 9.296875 39.046875 +Q 8 40 2.796875 40 +L 2.796875 43.09375 +L 16.703125 44.203125 +L 16.703125 33.203125 +Q 18.09375 37.5 21.09375 40.84375 +Q 24.09375 44.203125 29 44.203125 +Q 32.203125 44.203125 34.296875 42.390625 +Q 36.40625 40.59375 36.40625 38.09375 +Q 36.40625 35.90625 35.046875 34.796875 +Q 33.703125 33.703125 32.09375 33.703125 +Q 30.296875 33.703125 29.046875 34.84375 +Q 27.796875 36 27.796875 38 +Q 27.796875 39.203125 28.34375 40.140625 +Q 28.90625 41.09375 29.34375 41.4375 +Q 29.796875 41.796875 30.09375 41.90625 +Q 29.90625 42 29 42 +Q 23.5 42 20.34375 36.5 +Q 17.203125 31 17.203125 23.203125 +L 17.203125 7.796875 +Q 17.203125 4.90625 18.390625 4 +Q 19.59375 3.09375 24.796875 3.09375 +L 26.90625 3.09375 +L 26.90625 0 +Q 22.90625 0.296875 14.203125 0.296875 +Q 13 0.296875 11.09375 0.25 +Q 9.203125 0.203125 6.703125 0.09375 +Q 4.203125 0 2.796875 0 +z +" id="CMUSerif-Roman-114"/> + <path d="M 16 -1.09375 +Q 2.796875 11.90625 2.796875 21.40625 +Q 2.796875 30.90625 9.25 37.84375 +Q 15.703125 44.796875 25 44.796875 +Q 34.09375 44.796875 40.59375 37.890625 +Q 47.09375 31 47.09375 21.40625 +Q 47.09375 12 40.546875 5.453125 +Q 34 -1.09375 24.90625 -1.09375 +Q 16 -1.09375 2.796875 11.90625 +z +M 11.09375 22.203125 +Q 11.09375 12.5 13.59375 8.09375 +Q 17.5 1.40625 25 1.40625 +Q 28.703125 1.40625 31.796875 3.40625 +Q 34.90625 5.40625 36.59375 8.796875 +Q 38.796875 13.203125 38.796875 22.203125 +Q 38.796875 31.796875 36.203125 36.09375 +Q 32.296875 42.59375 24.90625 42.59375 +Q 21.703125 42.59375 18.546875 40.890625 +Q 15.40625 39.203125 13.5 35.90625 +Q 11.09375 31.5 11.09375 22.203125 +z +" id="CMUSerif-Roman-111"/> + <path d="M 2.796875 -7.90625 +Q 2.796875 -4.703125 5.25 -1.890625 +Q 7.703125 0.90625 12 2.09375 +Q 7.59375 4.90625 7.59375 11 +Q 7.59375 15.703125 10.703125 19.296875 +Q 6 23.203125 6 29.59375 +Q 6 35.5 10.703125 39.84375 +Q 15.40625 44.203125 22.203125 44.203125 +Q 28.203125 44.203125 32.796875 40.59375 +Q 37.59375 45.296875 43.40625 45.296875 +Q 46 45.296875 47.25 43.6875 +Q 48.5 42.09375 48.5 40.40625 +Q 48.5 38.90625 47.546875 38.15625 +Q 46.59375 37.40625 45.59375 37.40625 +Q 44.40625 37.40625 43.546875 38.203125 +Q 42.703125 39 42.703125 40.296875 +Q 42.703125 42.40625 44.296875 43 +Q 44 43.09375 43.296875 43.09375 +Q 38.40625 43.09375 34.296875 39.203125 +Q 38.40625 35.40625 38.40625 29.5 +Q 38.40625 23.59375 33.703125 19.25 +Q 29 14.90625 22.203125 14.90625 +Q 16.59375 14.90625 12.296875 18 +Q 10.59375 16 10.59375 13.296875 +Q 10.59375 10.796875 12.09375 8.84375 +Q 13.59375 6.90625 15.90625 6.59375 +Q 16.59375 6.5 23.40625 6.5 +Q 27.40625 6.5 29.59375 6.390625 +Q 31.796875 6.296875 34.9375 5.640625 +Q 38.09375 5 40.59375 3.703125 +Q 47.09375 0.09375 47.09375 -7.703125 +Q 47.09375 -13.40625 40.546875 -17 +Q 34 -20.59375 24.90625 -20.59375 +Q 15.703125 -20.59375 9.25 -16.9375 +Q 2.796875 -13.296875 2.796875 -7.90625 +z +M 8 -7.90625 +Q 8 -12 12.84375 -15.140625 +Q 17.703125 -18.296875 25 -18.296875 +Q 32.203125 -18.296875 37.046875 -15.1875 +Q 41.90625 -12.09375 41.90625 -7.90625 +Q 41.90625 -4.90625 40.203125 -3 +Q 38.5 -1.09375 35 -0.34375 +Q 31.5 0.40625 29.046875 0.546875 +Q 26.59375 0.703125 22.09375 0.703125 +L 16.203125 0.703125 +Q 12.796875 0.5 10.390625 -2 +Q 8 -4.5 8 -7.90625 +z +M 13.5 29.5 +Q 13.5 17.203125 22.203125 17.203125 +Q 26.59375 17.203125 29.296875 21.203125 +Q 30.90625 23.90625 30.90625 29.59375 +Q 30.90625 41.90625 22.203125 41.90625 +Q 17.796875 41.90625 15.09375 37.90625 +Q 13.5 35.203125 13.5 29.5 +z +" id="CMUSerif-Roman-103"/> + <path d="M 2.796875 22 +Q 2.796875 31.40625 8.84375 38.09375 +Q 14.90625 44.796875 23.59375 44.796875 +Q 32.40625 44.796875 36.953125 39.09375 +Q 41.5 33.40625 41.5 25.203125 +Q 41.5 23.703125 41.09375 23.390625 +Q 40.703125 23.09375 39 23.09375 +L 11.09375 23.09375 +Q 11.09375 12.90625 14.09375 8.09375 +Q 18.296875 1.40625 25.40625 1.40625 +Q 26.40625 1.40625 27.546875 1.59375 +Q 28.703125 1.796875 31.09375 2.640625 +Q 33.5 3.5 35.59375 5.796875 +Q 37.703125 8.09375 38.90625 11.703125 +Q 39.203125 13.09375 40.203125 13.09375 +Q 41.5 13.09375 41.5 11.90625 +Q 41.5 11 40.546875 9.046875 +Q 39.59375 7.09375 37.796875 4.75 +Q 36 2.40625 32.5 0.65625 +Q 29 -1.09375 24.796875 -1.09375 +Q 16 -1.09375 9.390625 5.546875 +Q 2.796875 12.203125 2.796875 22 +z +M 11.203125 25.203125 +L 34.90625 25.203125 +Q 34.90625 27.296875 34.546875 29.640625 +Q 34.203125 32 33.140625 35.25 +Q 32.09375 38.5 29.640625 40.546875 +Q 27.203125 42.59375 23.59375 42.59375 +Q 22 42.59375 20.25 41.890625 +Q 18.5 41.203125 16.390625 39.546875 +Q 14.296875 37.90625 12.84375 34.15625 +Q 11.40625 30.40625 11.203125 25.203125 +z +" id="CMUSerif-Roman-101"/> + <path d="M 3.203125 0 +L 3.203125 3.09375 +Q 8.5 3.09375 9.75 3.75 +Q 11 4.40625 11 7.59375 +L 11 34.40625 +Q 11 38.09375 9.703125 39.046875 +Q 8.40625 40 3.203125 40 +L 3.203125 43.09375 +L 17.296875 44.203125 +L 17.296875 33.703125 +Q 22 44.203125 32.09375 44.203125 +Q 39.59375 44.203125 42.59375 40.5 +Q 44.796875 38 45.25 35.203125 +Q 45.703125 32.40625 45.703125 25.203125 +L 45.703125 6.09375 +Q 45.796875 4 47.390625 3.546875 +Q 49 3.09375 53.5 3.09375 +L 53.5 0 +Q 43.296875 0.296875 42.296875 0.296875 +Q 41.5 0.296875 31 0 +L 31 3.09375 +Q 36.296875 3.09375 37.546875 3.75 +Q 38.796875 4.40625 38.796875 7.59375 +L 38.796875 30.90625 +Q 38.796875 36 37.25 39 +Q 35.703125 42 31.40625 42 +Q 26.203125 42 22.046875 37.640625 +Q 17.90625 33.296875 17.90625 26 +L 17.90625 7.59375 +Q 17.90625 4.40625 19.15625 3.75 +Q 20.40625 3.09375 25.703125 3.09375 +L 25.703125 0 +Q 15.5 0.296875 14.5 0.296875 +Q 13.703125 0.296875 3.203125 0 +z +" id="CMUSerif-Roman-110"/> + <path id="CMUSerif-Roman-32"/> + <path d="M 3.203125 40 +L 3.203125 43.09375 +L 17.90625 44.203125 +L 17.90625 11 +Q 17.90625 8.59375 18.09375 7.1875 +Q 18.296875 5.796875 19.09375 4.1875 +Q 19.90625 2.59375 21.796875 1.84375 +Q 23.703125 1.09375 26.703125 1.09375 +Q 32.09375 1.09375 35.4375 5.546875 +Q 38.796875 10 38.796875 16.59375 +L 38.796875 34.40625 +Q 38.796875 38.09375 37.5 39.046875 +Q 36.203125 40 31 40 +L 31 43.09375 +L 45.703125 44.203125 +L 45.703125 8.703125 +Q 45.703125 5 47 4.046875 +Q 48.296875 3.09375 53.5 3.09375 +L 53.5 0 +L 39.09375 -1.09375 +L 39.09375 7.90625 +Q 34.90625 -1.09375 26.203125 -1.09375 +Q 21.796875 -1.09375 18.796875 0 +Q 15.796875 1.09375 14.296875 2.5 +Q 12.796875 3.90625 12 6.59375 +Q 11.203125 9.296875 11.09375 10.9375 +Q 11 12.59375 11 15.796875 +L 11 30.796875 +Q 11 37.59375 10 38.796875 +Q 9 40 3.203125 40 +z +" id="CMUSerif-Roman-117"/> + <path d="M 3.203125 0 +L 3.203125 3.09375 +Q 8.5 3.09375 9.75 3.75 +Q 11 4.40625 11 7.59375 +L 11 34.40625 +Q 11 38.09375 9.703125 39.046875 +Q 8.40625 40 3.203125 40 +L 3.203125 43.09375 +L 17.296875 44.203125 +L 17.296875 33.703125 +Q 22 44.203125 32.09375 44.203125 +Q 43.796875 44.203125 45.40625 34.40625 +Q 47.09375 38.203125 50.6875 41.203125 +Q 54.296875 44.203125 59.90625 44.203125 +Q 67.40625 44.203125 70.40625 40.5 +Q 72.59375 38 73.046875 35.203125 +Q 73.5 32.40625 73.5 25.203125 +L 73.5 6.09375 +Q 73.59375 4 75.1875 3.546875 +Q 76.796875 3.09375 81.296875 3.09375 +L 81.296875 0 +Q 71.09375 0.296875 70.09375 0.296875 +Q 69.296875 0.296875 58.796875 0 +L 58.796875 3.09375 +Q 64.09375 3.09375 65.34375 3.75 +Q 66.59375 4.40625 66.59375 7.59375 +L 66.59375 30.90625 +Q 66.59375 36 65.046875 39 +Q 63.5 42 59.203125 42 +Q 54 42 49.84375 37.640625 +Q 45.703125 33.296875 45.703125 26 +L 45.703125 7.59375 +Q 45.703125 4.40625 46.953125 3.75 +Q 48.203125 3.09375 53.5 3.09375 +L 53.5 0 +Q 43.296875 0.296875 42.296875 0.296875 +Q 41.5 0.296875 31 0 +L 31 3.09375 +Q 36.296875 3.09375 37.546875 3.75 +Q 38.796875 4.40625 38.796875 7.59375 +L 38.796875 30.90625 +Q 38.796875 36 37.25 39 +Q 35.703125 42 31.40625 42 +Q 26.203125 42 22.046875 37.640625 +Q 17.90625 33.296875 17.90625 26 +L 17.90625 7.59375 +Q 17.90625 4.40625 19.15625 3.75 +Q 20.40625 3.09375 25.703125 3.09375 +L 25.703125 0 +Q 15.5 0.296875 14.5 0.296875 +Q 13.703125 0.296875 3.203125 0 +z +" id="CMUSerif-Roman-109"/> + <path d="M 2.796875 65.203125 +L 2.796875 68.296875 +L 17.203125 69.40625 +L 17.203125 37.703125 +Q 23 44.203125 30.90625 44.203125 +Q 39.5 44.203125 45.796875 37.59375 +Q 52.09375 31 52.09375 21.59375 +Q 52.09375 12.09375 45.5 5.5 +Q 38.90625 -1.09375 29.796875 -1.09375 +Q 21.5 -1.09375 16.703125 6.203125 +Q 13.203125 0.09375 13.09375 0 +L 10.59375 0 +L 10.59375 59.59375 +Q 10.59375 63.296875 9.296875 64.25 +Q 8 65.203125 2.796875 65.203125 +z +M 17.5 11.40625 +Q 17.5 9.296875 18.90625 7.203125 +Q 22.90625 1.09375 29.40625 1.09375 +Q 36.40625 1.09375 40.703125 7.5 +Q 43.796875 12.296875 43.796875 21.703125 +Q 43.796875 31 40.90625 35.59375 +Q 36.90625 42 30.40625 42 +Q 23.09375 42 18.59375 35.59375 +Q 17.5 34 17.5 32 +z +" id="CMUSerif-Roman-98"/> + <path d="M 3.296875 1.296875 +L 3.296875 14.5 +Q 3.296875 15.59375 3.34375 16 +Q 3.40625 16.40625 3.703125 16.703125 +Q 4 17 4.59375 17 +Q 5.296875 17 5.546875 16.703125 +Q 5.796875 16.40625 6 15.296875 +Q 7.5 8.40625 10.75 4.75 +Q 14 1.09375 19.90625 1.09375 +Q 25.5 1.09375 28.34375 3.59375 +Q 31.203125 6.09375 31.203125 10.203125 +Q 31.203125 17.5 20.796875 19.40625 +Q 14.796875 20.59375 12.296875 21.390625 +Q 9.796875 22.203125 7.59375 24 +Q 3.296875 27.5 3.296875 32.5 +Q 3.296875 37.5 7.09375 41.140625 +Q 10.90625 44.796875 19.296875 44.796875 +Q 24.90625 44.796875 28.703125 42 +Q 29.796875 42.90625 30.40625 43.59375 +Q 31.703125 44.796875 32.40625 44.796875 +Q 33.203125 44.796875 33.34375 44.296875 +Q 33.5 43.796875 33.5 42.40625 +L 33.5 32.296875 +Q 33.5 31.203125 33.453125 30.796875 +Q 33.40625 30.40625 33.09375 30.15625 +Q 32.796875 29.90625 32.203125 29.90625 +Q 31.09375 29.90625 31 30.796875 +Q 30.203125 42.90625 19.296875 42.90625 +Q 13.40625 42.90625 10.75 40.65625 +Q 8.09375 38.40625 8.09375 35.296875 +Q 8.09375 33.59375 8.890625 32.296875 +Q 9.703125 31 10.75 30.25 +Q 11.796875 29.5 13.75 28.796875 +Q 15.703125 28.09375 16.890625 27.84375 +Q 18.09375 27.59375 20.40625 27.09375 +Q 28.40625 25.59375 31.796875 22.296875 +Q 36 18.09375 36 12.796875 +Q 36 6.90625 32 2.90625 +Q 28 -1.09375 19.90625 -1.09375 +Q 13.40625 -1.09375 8.90625 3.203125 +Q 8.296875 2.59375 7.84375 2.09375 +Q 7.40625 1.59375 7.25 1.390625 +Q 7.09375 1.203125 7.046875 1.09375 +Q 7 1 6.90625 0.90625 +Q 4.90625 -1.09375 4.40625 -1.09375 +Q 3.59375 -1.09375 3.4375 -0.59375 +Q 3.296875 -0.09375 3.296875 1.296875 +z +" id="CMUSerif-Roman-115"/> + <path d="M 3.296875 0 +L 3.296875 3.09375 +Q 8.59375 3.09375 9.84375 3.75 +Q 11.09375 4.40625 11.09375 7.59375 +L 11.09375 34.5 +Q 11.09375 38.203125 9.84375 39.09375 +Q 8.59375 40 3.703125 40 +L 3.703125 43.09375 +L 17.703125 44.203125 +L 17.703125 7.5 +Q 17.703125 4.5 18.75 3.796875 +Q 19.796875 3.09375 24.703125 3.09375 +L 24.703125 0 +Q 14.5 0.296875 14.296875 0.296875 +Q 12.90625 0.296875 3.296875 0 +z +M 7.5 61.59375 +Q 7.5 63.59375 9.046875 65.25 +Q 10.59375 66.90625 12.796875 66.90625 +Q 15 66.90625 16.546875 65.40625 +Q 18.09375 63.90625 18.09375 61.59375 +Q 18.09375 59.296875 16.546875 57.796875 +Q 15 56.296875 12.796875 56.296875 +Q 10.5 56.296875 9 57.890625 +Q 7.5 59.5 7.5 61.59375 +z +" id="CMUSerif-Roman-105"/> + <path d="M 1.90625 40 +L 1.90625 42.203125 +Q 6.5 42.40625 9.546875 45.65625 +Q 12.59375 48.90625 13.640625 52.90625 +Q 14.703125 56.90625 14.796875 61.5 +L 17.296875 61.5 +L 17.296875 43.09375 +L 31.59375 43.09375 +L 31.59375 40 +L 17.296875 40 +L 17.296875 12.203125 +Q 17.296875 1.40625 24 1.40625 +Q 26.90625 1.40625 28.796875 4.34375 +Q 30.703125 7.296875 30.703125 12.59375 +L 30.703125 18.09375 +L 33.203125 18.09375 +L 33.203125 12.40625 +Q 33.203125 7 30.703125 2.953125 +Q 28.203125 -1.09375 23.296875 -1.09375 +Q 21.5 -1.09375 19.703125 -0.640625 +Q 17.90625 -0.203125 15.59375 1 +Q 13.296875 2.203125 11.84375 5.140625 +Q 10.40625 8.09375 10.40625 12.40625 +L 10.40625 40 +z +" id="CMUSerif-Roman-116"/> + <path d="M 7.71875 1.703125 +Q 7.71875 2.296875 7.8125 2.59375 +L 15.28125 32.421875 +Q 16.015625 35.203125 16.015625 37.3125 +Q 16.015625 41.609375 13.09375 41.609375 +Q 9.96875 41.609375 8.453125 37.859375 +Q 6.9375 34.125 5.515625 28.421875 +Q 5.515625 28.125 5.21875 27.953125 +Q 4.9375 27.78125 4.6875 27.78125 +L 3.515625 27.78125 +Q 3.171875 27.78125 2.921875 28.140625 +Q 2.6875 28.515625 2.6875 28.8125 +Q 3.765625 33.15625 4.765625 36.171875 +Q 5.765625 39.203125 7.890625 41.6875 +Q 10.015625 44.1875 13.1875 44.1875 +Q 16.9375 44.1875 19.8125 41.8125 +Q 22.703125 39.453125 22.703125 35.796875 +Q 25.6875 39.703125 29.6875 41.9375 +Q 33.6875 44.1875 38.1875 44.1875 +Q 41.75 44.1875 44.328125 42.96875 +Q 46.921875 41.75 48.359375 39.28125 +Q 49.8125 36.8125 49.8125 33.40625 +Q 49.8125 29.296875 47.96875 23.484375 +Q 46.140625 17.671875 43.40625 10.5 +Q 42 7.234375 42 4.5 +Q 42 1.515625 44.28125 1.515625 +Q 48.1875 1.515625 50.796875 5.703125 +Q 53.421875 9.90625 54.5 14.703125 +Q 54.6875 15.28125 55.328125 15.28125 +L 56.5 15.28125 +Q 56.890625 15.28125 57.15625 15.03125 +Q 57.421875 14.796875 57.421875 14.40625 +Q 57.421875 14.3125 57.328125 14.109375 +Q 55.953125 8.453125 52.5625 3.65625 +Q 49.171875 -1.125 44.09375 -1.125 +Q 40.578125 -1.125 38.078125 1.296875 +Q 35.59375 3.71875 35.59375 7.171875 +Q 35.59375 9.03125 36.375 11.078125 +Q 37.640625 14.359375 39.28125 18.890625 +Q 40.921875 23.4375 41.96875 27.578125 +Q 43.015625 31.734375 43.015625 34.90625 +Q 43.015625 37.703125 41.859375 39.65625 +Q 40.71875 41.609375 37.984375 41.609375 +Q 34.328125 41.609375 31.25 39.984375 +Q 28.171875 38.375 25.875 35.71875 +Q 23.578125 33.0625 21.6875 29.390625 +L 14.890625 2.203125 +Q 14.546875 0.828125 13.34375 -0.140625 +Q 12.15625 -1.125 10.6875 -1.125 +Q 9.46875 -1.125 8.59375 -0.34375 +Q 7.71875 0.4375 7.71875 1.703125 +z +" id="Cmmi10-110"/> + <path d="M 3.078125 0 +L 3.078125 3.515625 +Q 13.375 3.515625 13.375 6.6875 +L 13.375 61.625 +Q 13.375 64.796875 3.078125 64.796875 +L 3.078125 68.3125 +L 33.015625 68.3125 +L 33.015625 64.796875 +Q 22.703125 64.796875 22.703125 61.625 +L 22.703125 37.3125 +L 52.203125 37.3125 +L 52.203125 61.625 +Q 52.203125 64.796875 41.890625 64.796875 +L 41.890625 68.3125 +L 71.78125 68.3125 +L 71.78125 64.796875 +Q 61.53125 64.796875 61.53125 61.625 +L 61.53125 6.6875 +Q 61.53125 3.515625 71.78125 3.515625 +L 71.78125 0 +L 41.890625 0 +L 41.890625 3.515625 +Q 52.203125 3.515625 52.203125 6.6875 +L 52.203125 33.796875 +L 22.703125 33.796875 +L 22.703125 6.6875 +Q 22.703125 3.515625 33.015625 3.515625 +L 33.015625 0 +z +" id="Cmr10-72"/> + <path d="M 10.40625 -25 +L 10.40625 75 +L 25.5 75 +L 25.5 72.703125 +L 17.09375 72.703125 +L 17.09375 -22.703125 +L 25.5 -22.703125 +L 25.5 -25 +z +" id="CMUSerif-Roman-91"/> + <path d="M 16.09375 -1.09375 +Q 3.40625 12.09375 3.40625 21.59375 +Q 3.40625 31.09375 9.65625 37.9375 +Q 15.90625 44.796875 25.09375 44.796875 +Q 31.203125 44.796875 35.796875 41.890625 +Q 40.40625 39 40.40625 34.09375 +Q 40.40625 31.90625 39.09375 30.65625 +Q 37.796875 29.40625 35.796875 29.40625 +Q 33.703125 29.40625 32.453125 30.703125 +Q 31.203125 32 31.203125 34 +Q 31.203125 34.90625 31.5 35.75 +Q 31.796875 36.59375 32.890625 37.546875 +Q 34 38.5 35.90625 38.59375 +Q 32.296875 42.296875 25.203125 42.296875 +Q 20.09375 42.296875 15.890625 37.5 +Q 11.703125 32.703125 11.703125 21.796875 +Q 11.703125 16.09375 13.09375 11.890625 +Q 14.5 7.703125 16.796875 5.546875 +Q 19.09375 3.40625 21.34375 2.40625 +Q 23.59375 1.40625 25.796875 1.40625 +Q 35.59375 1.40625 38.90625 11.90625 +Q 39.203125 12.90625 40.203125 12.90625 +Q 41.5 12.90625 41.5 11.90625 +Q 41.5 11.40625 41.09375 10.15625 +Q 40.703125 8.90625 39.5 6.90625 +Q 38.296875 4.90625 36.546875 3.15625 +Q 34.796875 1.40625 31.75 0.15625 +Q 28.703125 -1.09375 24.90625 -1.09375 +Q 16.09375 -1.09375 3.40625 12.09375 +z +" id="CMUSerif-Roman-99"/> + <path d="M 10.203125 23 +Q 9.375 23 8.828125 23.625 +Q 8.296875 24.265625 8.296875 25 +Q 8.296875 25.734375 8.828125 26.359375 +Q 9.375 27 10.203125 27 +L 67.578125 27 +Q 68.359375 27 68.875 26.359375 +Q 69.390625 25.734375 69.390625 25 +Q 69.390625 24.265625 68.875 23.625 +Q 68.359375 23 67.578125 23 +z +" id="Cmsy10-161"/> + <path d="M 9.515625 7.71875 +Q 11.859375 4.296875 15.8125 2.640625 +Q 19.78125 0.984375 24.3125 0.984375 +Q 30.125 0.984375 32.5625 5.9375 +Q 35.015625 10.890625 35.015625 17.1875 +Q 35.015625 20.015625 34.5 22.84375 +Q 33.984375 25.6875 32.765625 28.125 +Q 31.546875 30.5625 29.421875 32.03125 +Q 27.296875 33.5 24.21875 33.5 +L 17.578125 33.5 +Q 16.703125 33.5 16.703125 34.421875 +L 16.703125 35.296875 +Q 16.703125 36.078125 17.578125 36.078125 +L 23.09375 36.53125 +Q 26.609375 36.53125 28.921875 39.15625 +Q 31.25 41.796875 32.328125 45.578125 +Q 33.40625 49.359375 33.40625 52.78125 +Q 33.40625 57.5625 31.15625 60.640625 +Q 28.90625 63.71875 24.3125 63.71875 +Q 20.515625 63.71875 17.046875 62.28125 +Q 13.578125 60.84375 11.53125 57.90625 +Q 11.71875 57.953125 11.859375 57.984375 +Q 12.015625 58.015625 12.203125 58.015625 +Q 14.453125 58.015625 15.96875 56.453125 +Q 17.484375 54.890625 17.484375 52.6875 +Q 17.484375 50.53125 15.96875 48.96875 +Q 14.453125 47.40625 12.203125 47.40625 +Q 10.015625 47.40625 8.453125 48.96875 +Q 6.890625 50.53125 6.890625 52.6875 +Q 6.890625 56.984375 9.46875 60.15625 +Q 12.0625 63.328125 16.140625 64.96875 +Q 20.21875 66.609375 24.3125 66.609375 +Q 27.34375 66.609375 30.703125 65.703125 +Q 34.078125 64.796875 36.8125 63.109375 +Q 39.546875 61.421875 41.28125 58.78125 +Q 43.015625 56.15625 43.015625 52.78125 +Q 43.015625 48.578125 41.140625 45.015625 +Q 39.265625 41.453125 35.984375 38.859375 +Q 32.71875 36.28125 28.8125 35.015625 +Q 33.15625 34.1875 37.0625 31.734375 +Q 40.96875 29.296875 43.328125 25.484375 +Q 45.703125 21.6875 45.703125 17.28125 +Q 45.703125 11.765625 42.671875 7.296875 +Q 39.65625 2.828125 34.71875 0.3125 +Q 29.78125 -2.203125 24.3125 -2.203125 +Q 19.625 -2.203125 14.90625 -0.40625 +Q 10.203125 1.375 7.203125 4.9375 +Q 4.203125 8.5 4.203125 13.484375 +Q 4.203125 15.96875 5.859375 17.625 +Q 7.515625 19.28125 10.015625 19.28125 +Q 11.625 19.28125 12.96875 18.53125 +Q 14.3125 17.78125 15.0625 16.40625 +Q 15.828125 15.046875 15.828125 13.484375 +Q 15.828125 11.03125 14.109375 9.375 +Q 12.40625 7.71875 10.015625 7.71875 +z +" id="Cmr10-51"/> + <path d="M 2.09375 -22.703125 +L 10.5 -22.703125 +L 10.5 72.703125 +L 2.09375 72.703125 +L 2.09375 75 +L 17.203125 75 +L 17.203125 -25 +L 2.09375 -25 +z +" id="CMUSerif-Roman-93"/> + </defs> + <g transform="translate(48.976 221.69725)scale(0.1 -0.1)"> + <use transform="translate(0 0.109375)" xlink:href="#CMUSerif-Roman-72"/> + <use transform="translate(74.999985 0.109375)" xlink:href="#CMUSerif-Roman-121"/> + <use transform="translate(127.699982 0.109375)" xlink:href="#CMUSerif-Roman-100"/> + <use transform="translate(183.199966 0.109375)" xlink:href="#CMUSerif-Roman-114"/> + <use transform="translate(222.299957 0.109375)" xlink:href="#CMUSerif-Roman-111"/> + <use transform="translate(272.299942 0.109375)" xlink:href="#CMUSerif-Roman-103"/> + <use transform="translate(322.299927 0.109375)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(366.699921 0.109375)" xlink:href="#CMUSerif-Roman-110"/> + <use transform="translate(422.199905 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(455.499893 0.109375)" xlink:href="#CMUSerif-Roman-110"/> + <use transform="translate(510.999878 0.109375)" xlink:href="#CMUSerif-Roman-117"/> + <use transform="translate(566.499863 0.109375)" xlink:href="#CMUSerif-Roman-109"/> + <use transform="translate(649.79985 0.109375)" xlink:href="#CMUSerif-Roman-98"/> + <use transform="translate(705.299835 0.109375)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(749.699829 0.109375)" xlink:href="#CMUSerif-Roman-114"/> + <use transform="translate(788.79982 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(822.099808 0.109375)" xlink:href="#CMUSerif-Roman-100"/> + <use transform="translate(877.599792 0.109375)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(921.999786 0.109375)" xlink:href="#CMUSerif-Roman-110"/> + <use transform="translate(977.499771 0.109375)" xlink:href="#CMUSerif-Roman-115"/> + <use transform="translate(1016.899765 0.109375)" xlink:href="#CMUSerif-Roman-105"/> + <use transform="translate(1044.599762 0.109375)" xlink:href="#CMUSerif-Roman-116"/> + <use transform="translate(1083.39975 0.109375)" xlink:href="#CMUSerif-Roman-121"/> + <use transform="translate(1136.099747 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(1169.399734 0.109375)" xlink:href="#Cmmi10-110"/> + <use transform="translate(1229.4095 -16.896875)scale(0.7)" xlink:href="#Cmr10-72"/> + <use transform="translate(1288.286844 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(1321.586832 0.109375)" xlink:href="#CMUSerif-Roman-91"/> + <use transform="translate(1349.386819 0.109375)" xlink:href="#CMUSerif-Roman-99"/> + <use transform="translate(1393.786813 0.109375)" xlink:href="#CMUSerif-Roman-109"/> + <use transform="translate(1481.550942 38.373438)scale(0.7)" xlink:href="#Cmsy10-161"/> + <use transform="translate(1535.930825 38.373438)scale(0.7)" xlink:href="#Cmr10-51"/> + <use transform="translate(1577.308168 0.109375)" xlink:href="#CMUSerif-Roman-93"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_6"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="mbe9d5df88a" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#mbe9d5df88a" y="163.232825"/> + </g> + </g> + <g id="text_7"> + <!-- $\mathdefault{10^{2}}$ --> + <g transform="translate(13.22 166.703137)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-50"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_7"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#mbe9d5df88a" y="114.470825"/> + </g> + </g> + <g id="text_8"> + <!-- $\mathdefault{10^{3}}$ --> + <defs> + <path d="M 4.203125 13.5 +Q 4.203125 16.5 5.890625 17.890625 +Q 7.59375 19.296875 9.796875 19.296875 +Q 12.09375 19.296875 13.75 17.796875 +Q 15.40625 16.296875 15.40625 13.703125 +Q 15.40625 10.90625 13.453125 9.34375 +Q 11.5 7.796875 8.796875 8.203125 +Q 11.203125 4.203125 15.59375 2.390625 +Q 20 0.59375 24.09375 0.59375 +Q 28.40625 0.59375 31.90625 4.296875 +Q 35.40625 8 35.40625 17.09375 +Q 35.40625 24.796875 32.40625 29.25 +Q 29.40625 33.703125 23.5 33.703125 +L 19.09375 33.703125 +Q 17.59375 33.703125 17.140625 33.84375 +Q 16.703125 34 16.703125 34.796875 +Q 16.703125 35.796875 18.203125 36 +Q 19.703125 36 22.09375 36.296875 +Q 27.90625 36.5 31 41.5 +Q 33.796875 46.203125 33.796875 52.90625 +Q 33.796875 59 30.890625 61.546875 +Q 28 64.09375 24.203125 64.09375 +Q 20.703125 64.09375 16.84375 62.640625 +Q 13 61.203125 10.90625 57.90625 +Q 17.09375 57.90625 17.09375 52.90625 +Q 17.09375 50.703125 15.6875 49.25 +Q 14.296875 47.796875 12 47.796875 +Q 9.796875 47.796875 8.34375 49.1875 +Q 6.90625 50.59375 6.90625 53 +Q 6.90625 58.703125 12 62.640625 +Q 17.09375 66.59375 24.59375 66.59375 +Q 32 66.59375 37.5 62.6875 +Q 43 58.796875 43 52.796875 +Q 43 46.90625 39.09375 42.046875 +Q 35.203125 37.203125 29 35.203125 +Q 36.59375 33.703125 41.140625 28.546875 +Q 45.703125 23.40625 45.703125 17.09375 +Q 45.703125 9.296875 39.546875 3.546875 +Q 33.40625 -2.203125 24.40625 -2.203125 +Q 16.09375 -2.203125 10.140625 2.296875 +Q 4.203125 6.796875 4.203125 13.5 +z +" id="CMUSerif-Roman-51"/> + </defs> + <g transform="translate(13.22 117.941137)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-51"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#mbe9d5df88a" y="65.708825"/> + </g> + </g> + <g id="text_9"> + <!-- $\mathdefault{10^{4}}$ --> + <g transform="translate(13.22 69.179137)scale(0.1 -0.1)"> + <use transform="translate(0 0.442188)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.442188)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.607813)scale(0.7)" xlink:href="#CMUSerif-Roman-52"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_9"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#mbe9d5df88a" y="16.946825"/> + </g> + </g> + <g id="text_10"> + <!-- $\mathdefault{10^{5}}$ --> + <defs> + <path d="M 5 16.09375 +Q 5 19.09375 6.59375 20.25 +Q 8.203125 21.40625 9.90625 21.40625 +Q 12.203125 21.40625 13.546875 19.953125 +Q 14.90625 18.5 14.90625 16.5 +Q 14.90625 14.5 13.546875 13.046875 +Q 12.203125 11.59375 9.90625 11.59375 +Q 8.796875 11.59375 8.203125 11.796875 +Q 9.5 7.203125 13.546875 3.890625 +Q 17.59375 0.59375 22.90625 0.59375 +Q 29.59375 0.59375 33.59375 7.09375 +Q 36 11.296875 36 20.796875 +Q 36 29.203125 34.203125 33.40625 +Q 31.40625 39.796875 25.703125 39.796875 +Q 17.59375 39.796875 12.796875 32.796875 +Q 12.203125 31.90625 11.5 31.90625 +Q 10.5 31.90625 10.296875 32.453125 +Q 10.09375 33 10.09375 34.5 +L 10.09375 64.09375 +Q 10.09375 66.5 11.09375 66.5 +Q 11.5 66.5 12.296875 66.203125 +Q 18.59375 63.40625 25.59375 63.40625 +Q 32.796875 63.40625 39.203125 66.296875 +Q 39.703125 66.59375 40 66.59375 +Q 41 66.59375 41 65.5 +Q 41 65.09375 40.203125 63.9375 +Q 39.40625 62.796875 37.703125 61.296875 +Q 36 59.796875 33.796875 58.390625 +Q 31.59375 57 28.390625 56.046875 +Q 25.203125 55.09375 21.703125 55.09375 +Q 17.5 55.09375 13.203125 56.40625 +L 13.203125 36.90625 +Q 18.40625 42 25.90625 42 +Q 33.90625 42 39.40625 35.546875 +Q 44.90625 29.09375 44.90625 20.09375 +Q 44.90625 10.703125 38.40625 4.25 +Q 31.90625 -2.203125 23.09375 -2.203125 +Q 15.09375 -2.203125 10.046875 3.5 +Q 5 9.203125 5 16.09375 +z +" id="CMUSerif-Roman-53"/> + </defs> + <g transform="translate(13.22 20.417137)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-53"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_10"> + <defs> + <path d="M 0 0 +L -2 0 +" id="m1f4f509585" style="stroke:#000000;stroke-width:0.6;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="197.316"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_11"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="188.729438"/> + </g> + </g> + </g> + <g id="ytick_7"> + <g id="line2d_12"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="182.637175"/> + </g> + </g> + </g> + <g id="ytick_8"> + <g id="line2d_13"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="177.911649"/> + </g> + </g> + </g> + <g id="ytick_9"> + <g id="line2d_14"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="174.050613"/> + </g> + </g> + </g> + <g id="ytick_10"> + <g id="line2d_15"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="170.786154"/> + </g> + </g> + </g> + <g id="ytick_11"> + <g id="line2d_16"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="167.958351"/> + </g> + </g> + </g> + <g id="ytick_12"> + <g id="line2d_17"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="165.464051"/> + </g> + </g> + </g> + <g id="ytick_13"> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="148.554"/> + </g> + </g> + </g> + <g id="ytick_14"> + <g id="line2d_19"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="139.967438"/> + </g> + </g> + </g> + <g id="ytick_15"> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="133.875175"/> + </g> + </g> + </g> + <g id="ytick_16"> + <g id="line2d_21"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="129.149649"/> + </g> + </g> + </g> + <g id="ytick_17"> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="125.288613"/> + </g> + </g> + </g> + <g id="ytick_18"> + <g id="line2d_23"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="122.024154"/> + </g> + </g> + </g> + <g id="ytick_19"> + <g id="line2d_24"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="119.196351"/> + </g> + </g> + </g> + <g id="ytick_20"> + <g id="line2d_25"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="116.702051"/> + </g> + </g> + </g> + <g id="ytick_21"> + <g id="line2d_26"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="99.792"/> + </g> + </g> + </g> + <g id="ytick_22"> + <g id="line2d_27"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="91.205438"/> + </g> + </g> + </g> + <g id="ytick_23"> + <g id="line2d_28"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="85.113175"/> + </g> + </g> + </g> + <g id="ytick_24"> + <g id="line2d_29"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="80.387649"/> + </g> + </g> + </g> + <g id="ytick_25"> + <g id="line2d_30"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="76.526613"/> + </g> + </g> + </g> + <g id="ytick_26"> + <g id="line2d_31"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="73.262154"/> + </g> + </g> + </g> + <g id="ytick_27"> + <g id="line2d_32"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="70.434351"/> + </g> + </g> + </g> + <g id="ytick_28"> + <g id="line2d_33"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="67.940051"/> + </g> + </g> + </g> + <g id="ytick_29"> + <g id="line2d_34"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="51.03"/> + </g> + </g> + </g> + <g id="ytick_30"> + <g id="line2d_35"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="42.443438"/> + </g> + </g> + </g> + <g id="ytick_31"> + <g id="line2d_36"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="36.351175"/> + </g> + </g> + </g> + <g id="ytick_32"> + <g id="line2d_37"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="31.625649"/> + </g> + </g> + </g> + <g id="ytick_33"> + <g id="line2d_38"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="27.764613"/> + </g> + </g> + </g> + <g id="ytick_34"> + <g id="line2d_39"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="24.500154"/> + </g> + </g> + </g> + <g id="ytick_35"> + <g id="line2d_40"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="21.672351"/> + </g> + </g> + </g> + <g id="ytick_36"> + <g id="line2d_41"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="19.178051"/> + </g> + </g> + </g> + <g id="ytick_37"> + <g id="line2d_42"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m1f4f509585" y="2.268"/> + </g> + </g> + </g> + <g id="text_11"> + <!-- Temperature $T$ [K] --> + <defs> + <path d="M 3.59375 45.203125 +L 5.5 67.703125 +L 66.59375 67.703125 +L 68.5 45.203125 +L 66 45.203125 +Q 65.59375 49.703125 65.25 52.296875 +Q 64.90625 54.90625 64.046875 57.34375 +Q 63.203125 59.796875 62.140625 61 +Q 61.09375 62.203125 59.09375 63.140625 +Q 57.09375 64.09375 54.5 64.34375 +Q 51.90625 64.59375 48 64.59375 +Q 43.40625 64.59375 42.296875 64.40625 +Q 41.09375 64.09375 40.796875 63.25 +Q 40.5 62.40625 40.5 60.59375 +L 40.5 7.90625 +Q 40.5 5.90625 40.890625 5.09375 +Q 41.296875 4.296875 43.59375 3.6875 +Q 45.90625 3.09375 51 3.09375 +L 55 3.09375 +L 55 0 +Q 50.90625 0.296875 36 0.296875 +Q 21.203125 0.296875 17.09375 0 +L 17.09375 3.09375 +L 21.09375 3.09375 +Q 26.203125 3.09375 28.5 3.6875 +Q 30.796875 4.296875 31.1875 5.09375 +Q 31.59375 5.90625 31.59375 7.90625 +L 31.59375 60.59375 +Q 31.59375 62 31.5 62.59375 +Q 31.40625 63.203125 30.953125 63.703125 +Q 30.5 64.203125 29.5 64.390625 +Q 28.5 64.59375 24.09375 64.59375 +Q 20.203125 64.59375 17.59375 64.34375 +Q 15 64.09375 13 63.140625 +Q 11 62.203125 9.953125 61 +Q 8.90625 59.796875 8.046875 57.34375 +Q 7.203125 54.90625 6.84375 52.296875 +Q 6.5 49.703125 6.09375 45.203125 +z +" id="CMUSerif-Roman-84"/> + <path d="M 2.796875 -16.296875 +Q 8.09375 -16.296875 9.34375 -15.640625 +Q 10.59375 -15 10.59375 -11.796875 +L 10.59375 35 +Q 10.59375 38.296875 9.34375 39.140625 +Q 8.09375 40 2.796875 40 +L 2.796875 43.09375 +L 17.203125 44.203125 +L 17.203125 37.59375 +Q 23.203125 44.203125 31.203125 44.203125 +Q 39.703125 44.203125 45.890625 37.59375 +Q 52.09375 31 52.09375 21.59375 +Q 52.09375 12.09375 45.5 5.5 +Q 38.90625 -1.09375 29.796875 -1.09375 +Q 24.796875 -1.09375 21.4375 1.453125 +Q 18.09375 4 17.5 5.90625 +L 17.5 5 +L 17.5 -11.796875 +Q 17.5 -15 18.75 -15.640625 +Q 20 -16.296875 25.296875 -16.296875 +L 25.296875 -19.40625 +Q 14.796875 -19.09375 14 -19.09375 +Q 13 -19.09375 2.796875 -19.40625 +z +M 17.5 11.40625 +Q 17.5 9.90625 17.703125 9.34375 +Q 17.90625 8.796875 18.90625 7.203125 +Q 22.90625 1.09375 29.40625 1.09375 +Q 35.09375 1.09375 39.4375 6.9375 +Q 43.796875 12.796875 43.796875 21.59375 +Q 43.796875 30 39.84375 35.84375 +Q 35.90625 41.703125 30.40625 41.703125 +Q 26.5 41.703125 23.09375 39.59375 +Q 19.703125 37.5 17.5 33.703125 +z +" id="CMUSerif-Roman-112"/> + <path d="M 4.203125 9.5 +Q 4.203125 18 14.203125 22.5 +Q 20.203125 25.40625 32.59375 26.09375 +L 32.59375 29.796875 +Q 32.59375 36 29.34375 39.296875 +Q 26.09375 42.59375 22 42.59375 +Q 14.703125 42.59375 11.203125 38 +Q 14.203125 37.90625 15.25 36.40625 +Q 16.296875 34.90625 16.296875 33.40625 +Q 16.296875 31.40625 15.046875 30.09375 +Q 13.796875 28.796875 11.703125 28.796875 +Q 9.703125 28.796875 8.390625 30.046875 +Q 7.09375 31.296875 7.09375 33.5 +Q 7.09375 38.40625 11.5 41.59375 +Q 15.90625 44.796875 22.203125 44.796875 +Q 30.40625 44.796875 35.90625 39.296875 +Q 37.59375 37.59375 38.4375 35.390625 +Q 39.296875 33.203125 39.390625 31.75 +Q 39.5 30.296875 39.5 27.5 +L 39.5 7.5 +Q 39.5 6.90625 39.703125 5.953125 +Q 39.90625 5 40.796875 3.75 +Q 41.703125 2.5 43.203125 2.5 +Q 46.796875 2.5 46.796875 8.90625 +L 46.796875 14.5 +L 49.296875 14.5 +L 49.296875 8.90625 +Q 49.296875 3.59375 46.5 1.5 +Q 43.703125 -0.59375 41.09375 -0.59375 +Q 37.796875 -0.59375 35.6875 1.84375 +Q 33.59375 4.296875 33.296875 7.59375 +Q 31.796875 3.796875 28.34375 1.34375 +Q 24.90625 -1.09375 20.203125 -1.09375 +Q 16.59375 -1.09375 13.1875 -0.1875 +Q 9.796875 0.703125 7 3.203125 +Q 4.203125 5.703125 4.203125 9.5 +z +M 11.90625 9.59375 +Q 11.90625 5.90625 14.546875 3.5 +Q 17.203125 1.09375 20.90625 1.09375 +Q 25.09375 1.09375 28.84375 4.34375 +Q 32.59375 7.59375 32.59375 14 +L 32.59375 24 +Q 21.5 23.59375 16.703125 19.1875 +Q 11.90625 14.796875 11.90625 9.59375 +z +" id="CMUSerif-Roman-97"/> + <path d="M 4.59375 1.3125 +Q 4.640625 1.5625 4.8125 2.1875 +Q 4.984375 2.828125 5.25 3.171875 +Q 5.515625 3.515625 6 3.515625 +Q 14.59375 3.515625 17.390625 4 +Q 20.0625 4.6875 20.609375 6.890625 +L 34.28125 61.8125 +Q 34.71875 63.03125 34.71875 64.015625 +Q 34.71875 64.796875 31.203125 64.796875 +L 25.390625 64.796875 +Q 18.703125 64.796875 15.0625 62.734375 +Q 11.421875 60.6875 9.71875 57.3125 +Q 8.015625 53.953125 5.328125 46.296875 +Q 4.984375 45.40625 4.296875 45.40625 +L 3.421875 45.40625 +Q 2.390625 45.40625 2.390625 46.6875 +L 9.515625 67.390625 +Q 9.71875 68.3125 10.5 68.3125 +L 69.578125 68.3125 +Q 70.609375 68.3125 70.609375 67 +L 67.28125 46.296875 +Q 67.28125 46 66.9375 45.703125 +Q 66.609375 45.40625 66.3125 45.40625 +L 65.375 45.40625 +Q 64.40625 45.40625 64.40625 46.6875 +Q 65.484375 53.765625 65.484375 56.6875 +Q 65.484375 60.203125 64.015625 62 +Q 62.546875 63.8125 60.203125 64.296875 +Q 57.859375 64.796875 54.109375 64.796875 +L 48.1875 64.796875 +Q 45.515625 64.796875 44.578125 64.296875 +Q 43.65625 63.8125 43.015625 61.375 +L 29.296875 6.5 +Q 29.25 6.296875 29.21875 6.09375 +Q 29.203125 5.90625 29.109375 5.609375 +Q 29.109375 4.34375 30.609375 4 +Q 33.203125 3.515625 41.703125 3.515625 +Q 42.671875 3.515625 42.671875 2.203125 +Q 42.328125 0.78125 42.125 0.390625 +Q 41.9375 0 41.015625 0 +L 5.609375 0 +Q 4.59375 0 4.59375 1.3125 +z +" id="Cmmi10-84"/> + <path d="M 3.296875 0 +L 3.296875 3.09375 +L 5.703125 3.09375 +Q 11.09375 3.09375 12.34375 4 +Q 13.59375 4.90625 13.59375 7.796875 +L 13.59375 60.5 +Q 13.59375 63.40625 12.34375 64.296875 +Q 11.09375 65.203125 5.703125 65.203125 +L 3.296875 65.203125 +L 3.296875 68.296875 +Q 6.796875 68 18.09375 68 +Q 29.296875 68 32.796875 68.296875 +L 32.796875 65.203125 +L 30.40625 65.203125 +Q 25 65.203125 23.75 64.296875 +Q 22.5 63.40625 22.5 60.5 +L 22.5 28.703125 +L 53.796875 58.59375 +Q 55.59375 60.203125 55.59375 61.90625 +Q 55.59375 62.5 55.34375 63.140625 +Q 55.09375 63.796875 53.9375 64.5 +Q 52.796875 65.203125 51 65.203125 +L 51 68.296875 +Q 54.40625 68 63.703125 68 +Q 69.59375 68 72.203125 68.296875 +L 72.203125 65.203125 +Q 63.90625 65.09375 58 59.203125 +L 40 41.90625 +L 63.09375 7.90625 +Q 65.203125 4.796875 67.25 3.9375 +Q 69.296875 3.09375 73.59375 3.09375 +L 73.59375 0 +Q 67.296875 0.296875 62.09375 0.296875 +Q 51.296875 0.296875 47.796875 0 +L 47.796875 3.09375 +Q 53.703125 3.09375 53.703125 6.09375 +Q 53.703125 7.203125 52.203125 9.5 +L 34.09375 36.296875 +L 22.5 25.296875 +L 22.5 7.796875 +Q 22.5 4.90625 23.75 4 +Q 25 3.09375 30.40625 3.09375 +L 32.796875 3.09375 +L 32.796875 0 +Q 29.296875 0.296875 18 0.296875 +Q 6.796875 0.296875 3.296875 0 +z +" id="CMUSerif-Roman-75"/> + </defs> + <g transform="translate(8.72 141.042)rotate(-90)scale(0.1 -0.1)"> + <use xlink:href="#CMUSerif-Roman-84"/> + <use transform="translate(72.199982 0)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(116.599976 0)" xlink:href="#CMUSerif-Roman-109"/> + <use transform="translate(199.899963 0)" xlink:href="#CMUSerif-Roman-112"/> + <use transform="translate(255.399948 0)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(299.799942 0)" xlink:href="#CMUSerif-Roman-114"/> + <use transform="translate(338.899933 0)" xlink:href="#CMUSerif-Roman-97"/> + <use transform="translate(388.899918 0)" xlink:href="#CMUSerif-Roman-116"/> + <use transform="translate(427.699905 0)" xlink:href="#CMUSerif-Roman-117"/> + <use transform="translate(483.19989 0)" xlink:href="#CMUSerif-Roman-114"/> + <use transform="translate(522.299881 0)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(566.699875 0)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(599.999863 0)" xlink:href="#Cmmi10-84"/> + <use transform="translate(658.3983 0)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(691.698288 0)" xlink:href="#CMUSerif-Roman-91"/> + <use transform="translate(719.498276 0)" xlink:href="#CMUSerif-Roman-75"/> + <use transform="translate(797.198257 0)" xlink:href="#CMUSerif-Roman-93"/> + </g> + </g> + </g> + <g id="line2d_43"> + <path clip-path="url(#p70b35b528f)" d="M -1 209.323214 +L 223.107611 -1 +L 223.107611 -1 +" style="fill:none;stroke:#000000;stroke-linecap:square;"/> + </g> + <g id="line2d_44"> + <path clip-path="url(#p70b35b528f)" d="M -1 70.434351 +L 146.991516 70.434351 +" style="fill:none;stroke:#000000;stroke-dasharray:0.6,0.99;stroke-dashoffset:0;stroke-width:0.6;"/> + </g> + <g id="line2d_45"> + <path clip-path="url(#p70b35b528f)" d="M 146.991516 197.316 +L 146.991516 70.434351 +" style="fill:none;stroke:#000000;stroke-dasharray:0.6,0.99;stroke-dashoffset:0;stroke-width:0.6;"/> + </g> + <g id="line2d_46"> + <path clip-path="url(#p70b35b528f)" d="M 146.991516 51.03 +L 181.630061 18.522 +" style="fill:none;stroke:#000000;stroke-dasharray:2.22,0.96;stroke-dashoffset:0;stroke-width:0.6;"/> + </g> + <g id="patch_3"> + <path d="M 34.02 197.316 +L 34.02 2.268 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 224.532 197.316 +L 224.532 2.268 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 34.02 197.316 +L 224.532 197.316 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 34.02 2.268 +L 224.532 2.268 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="text_12"> + <!-- $n_{\rm H}$^EOS_gamma_effective --> + <defs> + <path d="M 34.421875 72.90625 +L 56.6875 45.703125 +L 48 45.703125 +L 30.078125 64.984375 +L 12.203125 45.703125 +L 3.515625 45.703125 +L 25.78125 72.90625 +z +" id="DejaVuSansMono-94"/> + <path d="M 9.625 72.90625 +L 52.875 72.90625 +L 52.875 64.59375 +L 19.484375 64.59375 +L 19.484375 43.015625 +L 51.421875 43.015625 +L 51.421875 34.71875 +L 19.484375 34.71875 +L 19.484375 8.296875 +L 53.8125 8.296875 +L 53.8125 0 +L 9.625 0 +z +" id="DejaVuSansMono-69"/> + <path d="M 44.1875 36.375 +Q 44.1875 52.4375 40.890625 59.328125 +Q 37.59375 66.21875 30.078125 66.21875 +Q 22.609375 66.21875 19.3125 59.328125 +Q 16.015625 52.4375 16.015625 36.375 +Q 16.015625 20.359375 19.3125 13.46875 +Q 22.609375 6.59375 30.078125 6.59375 +Q 37.59375 6.59375 40.890625 13.453125 +Q 44.1875 20.3125 44.1875 36.375 +z +M 54.5 36.375 +Q 54.5 17.328125 48.46875 7.953125 +Q 42.4375 -1.421875 30.078125 -1.421875 +Q 17.71875 -1.421875 11.71875 7.90625 +Q 5.71875 17.234375 5.71875 36.375 +Q 5.71875 55.46875 11.75 64.84375 +Q 17.78125 74.21875 30.078125 74.21875 +Q 42.4375 74.21875 48.46875 64.84375 +Q 54.5 55.46875 54.5 36.375 +z +" id="DejaVuSansMono-79"/> + <path d="M 49.421875 70.40625 +L 49.421875 60.40625 +Q 44.921875 63.28125 40.40625 64.75 +Q 35.890625 66.21875 31.296875 66.21875 +Q 24.3125 66.21875 20.265625 62.96875 +Q 16.21875 59.71875 16.21875 54.203125 +Q 16.21875 49.359375 18.875 46.8125 +Q 21.53125 44.28125 28.8125 42.578125 +L 33.984375 41.40625 +Q 44.234375 39.015625 48.921875 33.890625 +Q 53.609375 28.765625 53.609375 19.921875 +Q 53.609375 9.515625 47.15625 4.046875 +Q 40.71875 -1.421875 28.421875 -1.421875 +Q 23.296875 -1.421875 18.109375 -0.3125 +Q 12.9375 0.78125 7.71875 2.984375 +L 7.71875 13.484375 +Q 13.328125 9.90625 18.328125 8.25 +Q 23.34375 6.59375 28.421875 6.59375 +Q 35.890625 6.59375 40.03125 9.9375 +Q 44.1875 13.28125 44.1875 19.28125 +Q 44.1875 24.75 41.328125 27.625 +Q 38.484375 30.515625 31.390625 32.078125 +L 26.125 33.296875 +Q 15.96875 35.59375 11.375 40.234375 +Q 6.78125 44.875 6.78125 52.6875 +Q 6.78125 62.453125 13.34375 68.328125 +Q 19.921875 74.21875 30.8125 74.21875 +Q 35.015625 74.21875 39.640625 73.265625 +Q 44.28125 72.3125 49.421875 70.40625 +z +" id="DejaVuSansMono-83"/> + <path d="M 60.203125 -19.671875 +L 60.203125 -23.578125 +L 0 -23.578125 +L 0 -19.671875 +z +" id="DejaVuSansMono-95"/> + <path d="M 41.890625 27.78125 +Q 41.890625 37.890625 38.59375 43.140625 +Q 35.296875 48.390625 29 48.390625 +Q 22.40625 48.390625 18.9375 43.140625 +Q 15.484375 37.890625 15.484375 27.78125 +Q 15.484375 17.671875 18.96875 12.375 +Q 22.46875 7.078125 29.109375 7.078125 +Q 35.296875 7.078125 38.59375 12.390625 +Q 41.890625 17.71875 41.890625 27.78125 +z +M 50.875 3.515625 +Q 50.875 -8.796875 45.0625 -15.140625 +Q 39.265625 -21.484375 27.984375 -21.484375 +Q 24.265625 -21.484375 20.203125 -20.796875 +Q 16.15625 -20.125 12.109375 -18.796875 +L 12.109375 -9.90625 +Q 16.890625 -12.15625 20.796875 -13.234375 +Q 24.703125 -14.3125 27.984375 -14.3125 +Q 35.25 -14.3125 38.5625 -10.34375 +Q 41.890625 -6.390625 41.890625 2.203125 +L 41.890625 2.59375 +L 41.890625 8.6875 +Q 39.75 4.109375 36.03125 1.859375 +Q 32.328125 -0.390625 27 -0.390625 +Q 17.4375 -0.390625 11.71875 7.265625 +Q 6 14.9375 6 27.78125 +Q 6 40.671875 11.71875 48.328125 +Q 17.4375 56 27 56 +Q 32.28125 56 35.9375 53.90625 +Q 39.59375 51.8125 41.890625 47.40625 +L 41.890625 54.5 +L 50.875 54.5 +z +" id="DejaVuSansMono-103"/> + <path d="M 34.28125 27.484375 +L 31.296875 27.484375 +Q 23.4375 27.484375 19.453125 24.71875 +Q 15.484375 21.96875 15.484375 16.5 +Q 15.484375 11.578125 18.453125 8.84375 +Q 21.4375 6.109375 26.703125 6.109375 +Q 34.125 6.109375 38.375 11.25 +Q 42.625 16.40625 42.671875 25.484375 +L 42.671875 27.484375 +z +M 51.703125 31.203125 +L 51.703125 0 +L 42.671875 0 +L 42.671875 8.109375 +Q 39.796875 3.21875 35.421875 0.890625 +Q 31.0625 -1.421875 24.8125 -1.421875 +Q 16.453125 -1.421875 11.46875 3.296875 +Q 6.5 8.015625 6.5 15.921875 +Q 6.5 25.046875 12.625 29.78125 +Q 18.75 34.515625 30.609375 34.515625 +L 42.671875 34.515625 +L 42.671875 35.9375 +Q 42.625 42.484375 39.34375 45.4375 +Q 36.078125 48.390625 28.90625 48.390625 +Q 24.3125 48.390625 19.625 47.0625 +Q 14.9375 45.75 10.5 43.21875 +L 10.5 52.203125 +Q 15.484375 54.109375 20.046875 55.046875 +Q 24.609375 56 28.90625 56 +Q 35.6875 56 40.5 54 +Q 45.3125 52 48.296875 48 +Q 50.140625 45.5625 50.921875 41.96875 +Q 51.703125 38.375 51.703125 31.203125 +z +" id="DejaVuSansMono-97"/> + <path d="M 33.015625 49.125 +Q 34.671875 52.640625 37.234375 54.3125 +Q 39.796875 56 43.40625 56 +Q 50 56 52.703125 50.890625 +Q 55.421875 45.796875 55.421875 31.6875 +L 55.421875 0 +L 47.21875 0 +L 47.21875 31.296875 +Q 47.21875 42.875 45.921875 45.671875 +Q 44.625 48.484375 41.21875 48.484375 +Q 37.3125 48.484375 35.859375 45.484375 +Q 34.421875 42.484375 34.421875 31.296875 +L 34.421875 0 +L 26.21875 0 +L 26.21875 31.296875 +Q 26.21875 43.015625 24.828125 45.75 +Q 23.4375 48.484375 19.828125 48.484375 +Q 16.265625 48.484375 14.875 45.484375 +Q 13.484375 42.484375 13.484375 31.296875 +L 13.484375 0 +L 5.328125 0 +L 5.328125 54.6875 +L 13.484375 54.6875 +L 13.484375 50 +Q 15.09375 52.9375 17.5 54.46875 +Q 19.921875 56 23 56 +Q 26.703125 56 29.171875 54.296875 +Q 31.640625 52.59375 33.015625 49.125 +z +" id="DejaVuSansMono-109"/> + <path d="M 54.296875 29.59375 +L 54.296875 25.203125 +L 15.375 25.203125 +L 15.375 24.90625 +Q 15.375 15.96875 20.03125 11.078125 +Q 24.703125 6.203125 33.203125 6.203125 +Q 37.5 6.203125 42.1875 7.5625 +Q 46.875 8.9375 52.203125 11.71875 +L 52.203125 2.78125 +Q 47.078125 0.6875 42.3125 -0.359375 +Q 37.546875 -1.421875 33.109375 -1.421875 +Q 20.359375 -1.421875 13.171875 6.21875 +Q 6 13.875 6 27.296875 +Q 6 40.375 13.03125 48.1875 +Q 20.0625 56 31.78125 56 +Q 42.234375 56 48.265625 48.921875 +Q 54.296875 41.84375 54.296875 29.59375 +z +M 45.3125 32.234375 +Q 45.125 40.140625 41.578125 44.265625 +Q 38.03125 48.390625 31.390625 48.390625 +Q 24.90625 48.390625 20.703125 44.09375 +Q 16.5 39.796875 15.71875 32.171875 +z +" id="DejaVuSansMono-101"/> + <path d="M 51.90625 75.984375 +L 51.90625 68.5 +L 41.703125 68.5 +Q 36.859375 68.5 34.984375 66.515625 +Q 33.109375 64.546875 33.109375 59.515625 +L 33.109375 54.6875 +L 51.90625 54.6875 +L 51.90625 47.703125 +L 33.109375 47.703125 +L 33.109375 0 +L 24.125 0 +L 24.125 47.703125 +L 9.515625 47.703125 +L 9.515625 54.6875 +L 24.125 54.6875 +L 24.125 58.5 +Q 24.125 67.484375 28.25 71.734375 +Q 32.375 75.984375 41.109375 75.984375 +z +" id="DejaVuSansMono-102"/> + <path d="M 51.8125 2.78125 +Q 48.1875 0.6875 44.359375 -0.359375 +Q 40.53125 -1.421875 36.53125 -1.421875 +Q 23.828125 -1.421875 16.671875 6.1875 +Q 9.515625 13.8125 9.515625 27.296875 +Q 9.515625 40.765625 16.671875 48.375 +Q 23.828125 56 36.53125 56 +Q 40.484375 56 44.234375 54.96875 +Q 48 53.953125 51.8125 51.8125 +L 51.8125 42.390625 +Q 48.25 45.5625 44.65625 46.96875 +Q 41.0625 48.390625 36.53125 48.390625 +Q 28.078125 48.390625 23.53125 42.921875 +Q 19 37.453125 19 27.296875 +Q 19 17.1875 23.5625 11.6875 +Q 28.125 6.203125 36.53125 6.203125 +Q 41.21875 6.203125 44.921875 7.640625 +Q 48.640625 9.078125 51.8125 12.109375 +z +" id="DejaVuSansMono-99"/> + <path d="M 29.984375 70.21875 +L 29.984375 54.6875 +L 50.390625 54.6875 +L 50.390625 47.703125 +L 29.984375 47.703125 +L 29.984375 18.015625 +Q 29.984375 11.96875 32.28125 9.5625 +Q 34.578125 7.171875 40.28125 7.171875 +L 50.390625 7.171875 +L 50.390625 0 +L 39.40625 0 +Q 29.296875 0 25.140625 4.046875 +Q 21 8.109375 21 18.015625 +L 21 47.703125 +L 6.390625 47.703125 +L 6.390625 54.6875 +L 21 54.6875 +L 21 70.21875 +z +" id="DejaVuSansMono-116"/> + <path d="M 12.5 54.6875 +L 35.5 54.6875 +L 35.5 6.984375 +L 53.328125 6.984375 +L 53.328125 0 +L 8.6875 0 +L 8.6875 6.984375 +L 26.515625 6.984375 +L 26.515625 47.703125 +L 12.5 47.703125 +z +M 26.515625 75.984375 +L 35.5 75.984375 +L 35.5 64.59375 +L 26.515625 64.59375 +z +" id="DejaVuSansMono-105"/> + <path d="M 4.890625 54.6875 +L 14.203125 54.6875 +L 30.078125 8.796875 +L 46 54.6875 +L 55.328125 54.6875 +L 35.890625 0 +L 24.3125 0 +z +" id="DejaVuSansMono-118"/> + </defs> + <g transform="translate(145.146967 64.529336)rotate(-43)scale(0.065 -0.065)"> + <use transform="translate(0 0.015625)" xlink:href="#Cmmi10-110"/> + <use transform="translate(60.009766 -16.990625)scale(0.7)" xlink:href="#Cmr10-72"/> + <use transform="translate(118.887109 0.015625)" xlink:href="#DejaVuSansMono-94"/> + <use transform="translate(179.092187 0.015625)" xlink:href="#DejaVuSansMono-69"/> + <use transform="translate(239.297266 0.015625)" xlink:href="#DejaVuSansMono-79"/> + <use transform="translate(299.502344 0.015625)" xlink:href="#DejaVuSansMono-83"/> + <use transform="translate(359.707422 0.015625)" xlink:href="#DejaVuSansMono-95"/> + <use transform="translate(419.9125 0.015625)" xlink:href="#DejaVuSansMono-103"/> + <use transform="translate(480.117578 0.015625)" xlink:href="#DejaVuSansMono-97"/> + <use transform="translate(540.322656 0.015625)" xlink:href="#DejaVuSansMono-109"/> + <use transform="translate(600.527734 0.015625)" xlink:href="#DejaVuSansMono-109"/> + <use transform="translate(660.732813 0.015625)" xlink:href="#DejaVuSansMono-97"/> + <use transform="translate(720.937891 0.015625)" xlink:href="#DejaVuSansMono-95"/> + <use transform="translate(781.142969 0.015625)" xlink:href="#DejaVuSansMono-101"/> + <use transform="translate(841.348047 0.015625)" xlink:href="#DejaVuSansMono-102"/> + <use transform="translate(901.553125 0.015625)" xlink:href="#DejaVuSansMono-102"/> + <use transform="translate(961.758203 0.015625)" xlink:href="#DejaVuSansMono-101"/> + <use transform="translate(1021.963281 0.015625)" xlink:href="#DejaVuSansMono-99"/> + <use transform="translate(1082.168359 0.015625)" xlink:href="#DejaVuSansMono-116"/> + <use transform="translate(1142.373437 0.015625)" xlink:href="#DejaVuSansMono-105"/> + <use transform="translate(1202.578516 0.015625)" xlink:href="#DejaVuSansMono-118"/> + <use transform="translate(1262.783594 0.015625)" xlink:href="#DejaVuSansMono-101"/> + </g> + </g> + <g id="text_13"> + <!-- EOS_density_norm_H_p_cm3 --> + <defs> + <path d="M 41.890625 47.703125 +L 41.890625 75.984375 +L 50.875 75.984375 +L 50.875 0 +L 41.890625 0 +L 41.890625 6.890625 +Q 39.65625 2.828125 35.90625 0.703125 +Q 32.171875 -1.421875 27.296875 -1.421875 +Q 17.390625 -1.421875 11.6875 6.265625 +Q 6 13.96875 6 27.484375 +Q 6 40.828125 11.71875 48.40625 +Q 17.4375 56 27.296875 56 +Q 32.234375 56 35.984375 53.875 +Q 39.75 51.765625 41.890625 47.703125 +z +M 15.484375 27.296875 +Q 15.484375 16.84375 18.796875 11.515625 +Q 22.125 6.203125 28.609375 6.203125 +Q 35.109375 6.203125 38.5 11.5625 +Q 41.890625 16.9375 41.890625 27.296875 +Q 41.890625 37.703125 38.5 43.046875 +Q 35.109375 48.390625 28.609375 48.390625 +Q 22.125 48.390625 18.796875 43.0625 +Q 15.484375 37.75 15.484375 27.296875 +z +" id="DejaVuSansMono-100"/> + <path d="M 51.3125 33.890625 +L 51.3125 0 +L 42.28125 0 +L 42.28125 33.890625 +Q 42.28125 41.265625 39.6875 44.71875 +Q 37.109375 48.1875 31.59375 48.1875 +Q 25.296875 48.1875 21.890625 43.71875 +Q 18.5 39.265625 18.5 30.90625 +L 18.5 0 +L 9.515625 0 +L 9.515625 54.6875 +L 18.5 54.6875 +L 18.5 46.484375 +Q 20.90625 51.171875 25 53.578125 +Q 29.109375 56 34.71875 56 +Q 43.0625 56 47.1875 50.5 +Q 51.3125 45.015625 51.3125 33.890625 +z +" id="DejaVuSansMono-110"/> + <path d="M 47.515625 52.78125 +L 47.515625 44 +Q 43.65625 46.234375 39.75 47.359375 +Q 35.84375 48.484375 31.78125 48.484375 +Q 25.6875 48.484375 22.671875 46.5 +Q 19.671875 44.53125 19.671875 40.484375 +Q 19.671875 36.8125 21.921875 35 +Q 24.171875 33.203125 33.109375 31.5 +L 36.71875 30.8125 +Q 43.40625 29.546875 46.84375 25.734375 +Q 50.296875 21.921875 50.296875 15.828125 +Q 50.296875 7.71875 44.53125 3.140625 +Q 38.765625 -1.421875 28.515625 -1.421875 +Q 24.46875 -1.421875 20.015625 -0.5625 +Q 15.578125 0.296875 10.40625 2 +L 10.40625 11.28125 +Q 15.4375 8.6875 20.015625 7.390625 +Q 24.609375 6.109375 28.71875 6.109375 +Q 34.671875 6.109375 37.9375 8.515625 +Q 41.21875 10.9375 41.21875 15.28125 +Q 41.21875 21.53125 29.25 23.921875 +L 28.859375 24.03125 +L 25.484375 24.703125 +Q 17.71875 26.21875 14.15625 29.8125 +Q 10.59375 33.40625 10.59375 39.59375 +Q 10.59375 47.46875 15.90625 51.734375 +Q 21.234375 56 31.109375 56 +Q 35.5 56 39.546875 55.1875 +Q 43.609375 54.390625 47.515625 52.78125 +z +" id="DejaVuSansMono-115"/> + <path d="M 41.890625 17.578125 +Q 39.65625 11.859375 36.1875 2.546875 +Q 31.34375 -10.359375 29.6875 -13.1875 +Q 27.4375 -17 24.0625 -18.890625 +Q 20.703125 -20.796875 16.21875 -20.796875 +L 8.984375 -20.796875 +L 8.984375 -13.28125 +L 14.3125 -13.28125 +Q 18.265625 -13.28125 20.5 -10.984375 +Q 22.75 -8.6875 26.21875 0.875 +L 5.078125 54.6875 +L 14.59375 54.6875 +L 30.8125 11.921875 +L 46.78125 54.6875 +L 56.296875 54.6875 +z +" id="DejaVuSansMono-121"/> + <path d="M 30.078125 48.390625 +Q 23.25 48.390625 19.734375 43.0625 +Q 16.21875 37.75 16.21875 27.296875 +Q 16.21875 16.890625 19.734375 11.546875 +Q 23.25 6.203125 30.078125 6.203125 +Q 36.96875 6.203125 40.484375 11.546875 +Q 44 16.890625 44 27.296875 +Q 44 37.75 40.484375 43.0625 +Q 36.96875 48.390625 30.078125 48.390625 +z +M 30.078125 56 +Q 41.453125 56 47.484375 48.625 +Q 53.515625 41.265625 53.515625 27.296875 +Q 53.515625 13.28125 47.5 5.921875 +Q 41.5 -1.421875 30.078125 -1.421875 +Q 18.703125 -1.421875 12.6875 5.921875 +Q 6.6875 13.28125 6.6875 27.296875 +Q 6.6875 41.265625 12.6875 48.625 +Q 18.703125 56 30.078125 56 +z +" id="DejaVuSansMono-111"/> + <path d="M 56.390625 43.40625 +Q 53.515625 45.65625 50.53125 46.671875 +Q 47.5625 47.703125 44 47.703125 +Q 35.59375 47.703125 31.140625 42.421875 +Q 26.703125 37.15625 26.703125 27.203125 +L 26.703125 0 +L 17.671875 0 +L 17.671875 54.6875 +L 26.703125 54.6875 +L 26.703125 44 +Q 28.953125 49.8125 33.609375 52.90625 +Q 38.28125 56 44.671875 56 +Q 48 56 50.875 55.171875 +Q 53.765625 54.34375 56.390625 52.59375 +z +" id="DejaVuSansMono-114"/> + <path d="M 6.6875 72.90625 +L 16.609375 72.90625 +L 16.609375 43.015625 +L 43.609375 43.015625 +L 43.609375 72.90625 +L 53.515625 72.90625 +L 53.515625 0 +L 43.609375 0 +L 43.609375 34.71875 +L 16.609375 34.71875 +L 16.609375 0 +L 6.6875 0 +z +" id="DejaVuSansMono-72"/> + <path d="M 18.3125 6.890625 +L 18.3125 -20.796875 +L 9.28125 -20.796875 +L 9.28125 54.6875 +L 18.3125 54.6875 +L 18.3125 47.703125 +Q 20.5625 51.765625 24.296875 53.875 +Q 28.03125 56 32.90625 56 +Q 42.828125 56 48.46875 48.328125 +Q 54.109375 40.671875 54.109375 27.09375 +Q 54.109375 13.765625 48.4375 6.171875 +Q 42.78125 -1.421875 32.90625 -1.421875 +Q 27.9375 -1.421875 24.1875 0.703125 +Q 20.453125 2.828125 18.3125 6.890625 +z +M 44.671875 27.296875 +Q 44.671875 37.75 41.375 43.0625 +Q 38.09375 48.390625 31.59375 48.390625 +Q 25.046875 48.390625 21.671875 43.046875 +Q 18.3125 37.703125 18.3125 27.296875 +Q 18.3125 16.9375 21.671875 11.5625 +Q 25.046875 6.203125 31.59375 6.203125 +Q 38.09375 6.203125 41.375 11.515625 +Q 44.671875 16.84375 44.671875 27.296875 +z +" id="DejaVuSansMono-112"/> + <path d="M 37.890625 39.015625 +Q 45.0625 37.109375 48.875 32.25 +Q 52.6875 27.390625 52.6875 20.125 +Q 52.6875 10.0625 45.921875 4.3125 +Q 39.15625 -1.421875 27.203125 -1.421875 +Q 22.171875 -1.421875 16.9375 -0.484375 +Q 11.71875 0.4375 6.6875 2.203125 +L 6.6875 12.015625 +Q 11.671875 9.421875 16.5 8.15625 +Q 21.34375 6.890625 26.125 6.890625 +Q 34.234375 6.890625 38.578125 10.546875 +Q 42.921875 14.203125 42.921875 21.09375 +Q 42.921875 27.4375 38.578125 31.171875 +Q 34.234375 34.90625 26.8125 34.90625 +L 19.28125 34.90625 +L 19.28125 43.015625 +L 26.8125 43.015625 +Q 33.59375 43.015625 37.40625 45.984375 +Q 41.21875 48.96875 41.21875 54.296875 +Q 41.21875 59.90625 37.671875 62.90625 +Q 34.125 65.921875 27.59375 65.921875 +Q 23.25 65.921875 18.609375 64.9375 +Q 13.96875 63.96875 8.890625 62.015625 +L 8.890625 71.09375 +Q 14.796875 72.65625 19.40625 73.4375 +Q 24.03125 74.21875 27.59375 74.21875 +Q 38.234375 74.21875 44.609375 68.875 +Q 50.984375 63.53125 50.984375 54.6875 +Q 50.984375 48.6875 47.625 44.671875 +Q 44.28125 40.671875 37.890625 39.015625 +z +" id="DejaVuSansMono-51"/> + </defs> + <g transform="translate(144.955236 192.590474)rotate(-90)scale(0.07 -0.07)"> + <use xlink:href="#DejaVuSansMono-69"/> + <use x="60.205078" xlink:href="#DejaVuSansMono-79"/> + <use x="120.410156" xlink:href="#DejaVuSansMono-83"/> + <use x="180.615234" xlink:href="#DejaVuSansMono-95"/> + <use x="240.820312" xlink:href="#DejaVuSansMono-100"/> + <use x="301.025391" xlink:href="#DejaVuSansMono-101"/> + <use x="361.230469" xlink:href="#DejaVuSansMono-110"/> + <use x="421.435547" xlink:href="#DejaVuSansMono-115"/> + <use x="481.640625" xlink:href="#DejaVuSansMono-105"/> + <use x="541.845703" xlink:href="#DejaVuSansMono-116"/> + <use x="602.050781" xlink:href="#DejaVuSansMono-121"/> + <use x="662.255859" xlink:href="#DejaVuSansMono-95"/> + <use x="722.460938" xlink:href="#DejaVuSansMono-110"/> + <use x="782.666016" xlink:href="#DejaVuSansMono-111"/> + <use x="842.871094" xlink:href="#DejaVuSansMono-114"/> + <use x="903.076172" xlink:href="#DejaVuSansMono-109"/> + <use x="963.28125" xlink:href="#DejaVuSansMono-95"/> + <use x="1023.486328" xlink:href="#DejaVuSansMono-72"/> + <use x="1083.691406" xlink:href="#DejaVuSansMono-95"/> + <use x="1143.896484" xlink:href="#DejaVuSansMono-112"/> + <use x="1204.101562" xlink:href="#DejaVuSansMono-95"/> + <use x="1264.306641" xlink:href="#DejaVuSansMono-99"/> + <use x="1324.511719" xlink:href="#DejaVuSansMono-109"/> + <use x="1384.716797" xlink:href="#DejaVuSansMono-51"/> + </g> + </g> + <g id="text_14"> + <!-- EOS_temperature_norm_K --> + <defs> + <path d="M 9.515625 20.703125 +L 9.515625 54.59375 +L 18.5 54.59375 +L 18.5 20.703125 +Q 18.5 13.328125 21.109375 9.859375 +Q 23.734375 6.390625 29.203125 6.390625 +Q 35.546875 6.390625 38.90625 10.859375 +Q 42.28125 15.328125 42.28125 23.6875 +L 42.28125 54.59375 +L 51.3125 54.59375 +L 51.3125 0 +L 42.28125 0 +L 42.28125 8.203125 +Q 39.890625 3.46875 35.765625 1.015625 +Q 31.640625 -1.421875 26.125 -1.421875 +Q 17.71875 -1.421875 13.609375 4.078125 +Q 9.515625 9.578125 9.515625 20.703125 +z +" id="DejaVuSansMono-117"/> + <path d="M 6.6875 72.90625 +L 16.609375 72.90625 +L 16.609375 40.484375 +L 47.40625 72.90625 +L 58.984375 72.90625 +L 30.609375 43.109375 +L 59.8125 0 +L 47.90625 0 +L 24.125 36.53125 +L 16.609375 28.515625 +L 16.609375 0 +L 6.6875 0 +z +" id="DejaVuSansMono-75"/> + </defs> + <g transform="translate(37.862259 67.750649)scale(0.07 -0.07)"> + <use xlink:href="#DejaVuSansMono-69"/> + <use x="60.205078" xlink:href="#DejaVuSansMono-79"/> + <use x="120.410156" xlink:href="#DejaVuSansMono-83"/> + <use x="180.615234" xlink:href="#DejaVuSansMono-95"/> + <use x="240.820312" xlink:href="#DejaVuSansMono-116"/> + <use x="301.025391" xlink:href="#DejaVuSansMono-101"/> + <use x="361.230469" xlink:href="#DejaVuSansMono-109"/> + <use x="421.435547" xlink:href="#DejaVuSansMono-112"/> + <use x="481.640625" xlink:href="#DejaVuSansMono-101"/> + <use x="541.845703" xlink:href="#DejaVuSansMono-114"/> + <use x="602.050781" xlink:href="#DejaVuSansMono-97"/> + <use x="662.255859" xlink:href="#DejaVuSansMono-116"/> + <use x="722.460938" xlink:href="#DejaVuSansMono-117"/> + <use x="782.666016" xlink:href="#DejaVuSansMono-114"/> + <use x="842.871094" xlink:href="#DejaVuSansMono-101"/> + <use x="903.076172" xlink:href="#DejaVuSansMono-95"/> + <use x="963.28125" xlink:href="#DejaVuSansMono-110"/> + <use x="1023.486328" xlink:href="#DejaVuSansMono-111"/> + <use x="1083.691406" xlink:href="#DejaVuSansMono-114"/> + <use x="1143.896484" xlink:href="#DejaVuSansMono-109"/> + <use x="1204.101562" xlink:href="#DejaVuSansMono-95"/> + <use x="1264.306641" xlink:href="#DejaVuSansMono-75"/> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p70b35b528f"> + <rect height="195.048" width="190.512" x="34.02" y="2.268"/> + </clipPath> + </defs> +</svg> diff --git a/doc/RTD/source/SubgridModels/EAGLE/EAGLE_SF_Z_dep.svg b/doc/RTD/source/SubgridModels/EAGLE/EAGLE_SF_Z_dep.svg new file mode 100644 index 0000000000000000000000000000000000000000..5314e6c83b0e394cc1262eb59fbfaf763151923a --- /dev/null +++ b/doc/RTD/source/SubgridModels/EAGLE/EAGLE_SF_Z_dep.svg @@ -0,0 +1,2649 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="226.8pt" version="1.1" viewBox="0 0 226.8 226.8" width="226.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <style type="text/css"> +*{stroke-linecap:butt;stroke-linejoin:round;} + </style> + </defs> + <g id="figure_1"> + <g id="patch_1"> + <path d="M 0 226.8 +L 226.8 226.8 +L 226.8 0 +L 0 0 +z +" style="fill:#ffffff;"/> + </g> + <g id="axes_1"> + <g id="patch_2"> + <path d="M 34.02 197.316 +L 224.532 197.316 +L 224.532 2.268 +L 34.02 2.268 +z +" style="fill:#ffffff;"/> + </g> + <g id="PathCollection_1"> + <defs> + <path d="M 0 1 +C 0.265203 1 0.51958 0.894634 0.707107 0.707107 +C 0.894634 0.51958 1 0.265203 1 0 +C 1 -0.265203 0.894634 -0.51958 0.707107 -0.707107 +C 0.51958 -0.894634 0.265203 -1 0 -1 +C -0.265203 -1 -0.51958 -0.894634 -0.707107 -0.707107 +C -0.894634 -0.51958 -1 -0.265203 -1 0 +C -1 0.265203 -0.894634 0.51958 -0.707107 0.707107 +C -0.51958 0.894634 -0.265203 1 0 1 +z +" id="mfeca7ee311" style="stroke:#000000;"/> + </defs> + <g clip-path="url(#p23ab05f3c8)"> + <use style="stroke:#000000;" x="151.076832" xlink:href="#mfeca7ee311" y="99.792"/> + </g> + </g> + <g id="matplotlib.axis_1"> + <g id="xtick_1"> + <g id="line2d_1"> + <defs> + <path d="M 0 0 +L 0 3.5 +" id="mf7651b78e9" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#mf7651b78e9" y="197.316"/> + </g> + </g> + <g id="text_1"> + <!-- $\mathdefault{10^{-7}}$ --> + <defs> + <path d="M 8.90625 57.09375 +L 8.90625 60.203125 +Q 20.90625 60.203125 27.09375 66.59375 +Q 28.796875 66.59375 29.09375 66.1875 +Q 29.40625 65.796875 29.40625 64 +L 29.40625 7.90625 +Q 29.40625 4.90625 30.84375 4 +Q 32.296875 3.09375 38.703125 3.09375 +L 41.90625 3.09375 +L 41.90625 0 +Q 38.40625 0.296875 25.703125 0.296875 +Q 13 0.296875 9.5 0 +L 9.5 3.09375 +L 12.703125 3.09375 +Q 19 3.09375 20.5 4 +Q 22 4.90625 22 7.90625 +L 22 59.703125 +Q 16.796875 57.09375 8.90625 57.09375 +z +" id="CMUSerif-Roman-49"/> + <path d="M 3.90625 32 +Q 3.90625 46.703125 7.59375 54.703125 +Q 12.796875 66.59375 25 66.59375 +Q 27.59375 66.59375 30.296875 65.890625 +Q 33 65.203125 36.453125 62.5 +Q 39.90625 59.796875 42 55.40625 +Q 46 46.90625 46 32 +Q 46 17.40625 42.296875 9.40625 +Q 36.90625 -2.203125 24.90625 -2.203125 +Q 20.40625 -2.203125 15.84375 0.09375 +Q 11.296875 2.40625 8.40625 7.90625 +Q 3.90625 16.203125 3.90625 32 +z +M 12.203125 33.203125 +Q 12.203125 18.09375 13.296875 12.09375 +Q 14.5 5.59375 17.84375 2.796875 +Q 21.203125 0 24.90625 0 +Q 28.90625 0 32.25 3 +Q 35.59375 6 36.59375 12.5 +Q 37.703125 18.90625 37.703125 33.203125 +Q 37.703125 47.09375 36.703125 52.703125 +Q 35.40625 59.203125 31.90625 61.796875 +Q 28.40625 64.40625 24.90625 64.40625 +Q 23.59375 64.40625 22.1875 64 +Q 20.796875 63.59375 18.796875 62.5 +Q 16.796875 61.40625 15.25 58.59375 +Q 13.703125 55.796875 13 51.59375 +Q 12.203125 46.203125 12.203125 33.203125 +z +" id="CMUSerif-Roman-48"/> + <path d="M 1 18.59375 +L 1 24.5 +L 27.59375 24.5 +L 27.59375 18.59375 +z +" id="CMUSerif-Roman-45"/> + <path d="M 5.59375 47 +L 8.90625 67.59375 +L 11.40625 67.59375 +Q 11.703125 66.40625 12.203125 65.84375 +Q 12.703125 65.296875 15.546875 64.84375 +Q 18.40625 64.40625 24.203125 64.40625 +L 48.5 64.40625 +Q 48.5 62.09375 47.59375 60.90625 +L 34.09375 41.90625 +Q 29.796875 35.90625 27.90625 24.796875 +Q 26.796875 17.40625 26.796875 8.40625 +L 26.796875 3.296875 +Q 26.796875 -2.203125 22.1875 -2.203125 +Q 17.59375 -2.203125 17.59375 3.296875 +Q 17.59375 22.40625 29.90625 40.90625 +Q 31.203125 42.796875 36.046875 49.59375 +Q 40.90625 56.40625 41.09375 56.703125 +L 20.40625 56.703125 +Q 11.296875 56.703125 10.59375 56.09375 +Q 9.59375 55.203125 8.09375 47 +z +" id="CMUSerif-Roman-55"/> + </defs> + <g transform="translate(25.92 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.51875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.51875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.684375)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.684375)scale(0.7)" xlink:href="#CMUSerif-Roman-55"/> + </g> + </g> + </g> + <g id="xtick_2"> + <g id="line2d_2"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="88.452" xlink:href="#mf7651b78e9" y="197.316"/> + </g> + </g> + <g id="text_2"> + <!-- $\mathdefault{10^{-5}}$ --> + <defs> + <path d="M 5 16.09375 +Q 5 19.09375 6.59375 20.25 +Q 8.203125 21.40625 9.90625 21.40625 +Q 12.203125 21.40625 13.546875 19.953125 +Q 14.90625 18.5 14.90625 16.5 +Q 14.90625 14.5 13.546875 13.046875 +Q 12.203125 11.59375 9.90625 11.59375 +Q 8.796875 11.59375 8.203125 11.796875 +Q 9.5 7.203125 13.546875 3.890625 +Q 17.59375 0.59375 22.90625 0.59375 +Q 29.59375 0.59375 33.59375 7.09375 +Q 36 11.296875 36 20.796875 +Q 36 29.203125 34.203125 33.40625 +Q 31.40625 39.796875 25.703125 39.796875 +Q 17.59375 39.796875 12.796875 32.796875 +Q 12.203125 31.90625 11.5 31.90625 +Q 10.5 31.90625 10.296875 32.453125 +Q 10.09375 33 10.09375 34.5 +L 10.09375 64.09375 +Q 10.09375 66.5 11.09375 66.5 +Q 11.5 66.5 12.296875 66.203125 +Q 18.59375 63.40625 25.59375 63.40625 +Q 32.796875 63.40625 39.203125 66.296875 +Q 39.703125 66.59375 40 66.59375 +Q 41 66.59375 41 65.5 +Q 41 65.09375 40.203125 63.9375 +Q 39.40625 62.796875 37.703125 61.296875 +Q 36 59.796875 33.796875 58.390625 +Q 31.59375 57 28.390625 56.046875 +Q 25.203125 55.09375 21.703125 55.09375 +Q 17.5 55.09375 13.203125 56.40625 +L 13.203125 36.90625 +Q 18.40625 42 25.90625 42 +Q 33.90625 42 39.40625 35.546875 +Q 44.90625 29.09375 44.90625 20.09375 +Q 44.90625 10.703125 38.40625 4.25 +Q 31.90625 -2.203125 23.09375 -2.203125 +Q 15.09375 -2.203125 10.046875 3.5 +Q 5 9.203125 5 16.09375 +z +" id="CMUSerif-Roman-53"/> + </defs> + <g transform="translate(80.352 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-53"/> + </g> + </g> + </g> + <g id="xtick_3"> + <g id="line2d_3"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="142.884" xlink:href="#mf7651b78e9" y="197.316"/> + </g> + </g> + <g id="text_3"> + <!-- $\mathdefault{10^{-3}}$ --> + <defs> + <path d="M 4.203125 13.5 +Q 4.203125 16.5 5.890625 17.890625 +Q 7.59375 19.296875 9.796875 19.296875 +Q 12.09375 19.296875 13.75 17.796875 +Q 15.40625 16.296875 15.40625 13.703125 +Q 15.40625 10.90625 13.453125 9.34375 +Q 11.5 7.796875 8.796875 8.203125 +Q 11.203125 4.203125 15.59375 2.390625 +Q 20 0.59375 24.09375 0.59375 +Q 28.40625 0.59375 31.90625 4.296875 +Q 35.40625 8 35.40625 17.09375 +Q 35.40625 24.796875 32.40625 29.25 +Q 29.40625 33.703125 23.5 33.703125 +L 19.09375 33.703125 +Q 17.59375 33.703125 17.140625 33.84375 +Q 16.703125 34 16.703125 34.796875 +Q 16.703125 35.796875 18.203125 36 +Q 19.703125 36 22.09375 36.296875 +Q 27.90625 36.5 31 41.5 +Q 33.796875 46.203125 33.796875 52.90625 +Q 33.796875 59 30.890625 61.546875 +Q 28 64.09375 24.203125 64.09375 +Q 20.703125 64.09375 16.84375 62.640625 +Q 13 61.203125 10.90625 57.90625 +Q 17.09375 57.90625 17.09375 52.90625 +Q 17.09375 50.703125 15.6875 49.25 +Q 14.296875 47.796875 12 47.796875 +Q 9.796875 47.796875 8.34375 49.1875 +Q 6.90625 50.59375 6.90625 53 +Q 6.90625 58.703125 12 62.640625 +Q 17.09375 66.59375 24.59375 66.59375 +Q 32 66.59375 37.5 62.6875 +Q 43 58.796875 43 52.796875 +Q 43 46.90625 39.09375 42.046875 +Q 35.203125 37.203125 29 35.203125 +Q 36.59375 33.703125 41.140625 28.546875 +Q 45.703125 23.40625 45.703125 17.09375 +Q 45.703125 9.296875 39.546875 3.546875 +Q 33.40625 -2.203125 24.40625 -2.203125 +Q 16.09375 -2.203125 10.140625 2.296875 +Q 4.203125 6.796875 4.203125 13.5 +z +" id="CMUSerif-Roman-51"/> + </defs> + <g transform="translate(134.784 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-51"/> + </g> + </g> + </g> + <g id="xtick_4"> + <g id="line2d_4"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="197.316" xlink:href="#mf7651b78e9" y="197.316"/> + </g> + </g> + <g id="text_4"> + <!-- $\mathdefault{10^{-1}}$ --> + <g transform="translate(189.216 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-49"/> + </g> + </g> + </g> + <g id="text_5"> + <!-- Metallicity (metal mass fraction) $Z$ [-] --> + <defs> + <path d="M 3.703125 0 +L 3.703125 3.09375 +Q 7.296875 3.09375 9.59375 3.796875 +Q 11.90625 4.5 12.75 5.84375 +Q 13.59375 7.203125 13.796875 8.09375 +Q 14 9 14 10.5 +L 14 60.5 +Q 14 63.40625 12.75 64.296875 +Q 11.5 65.203125 6.09375 65.203125 +L 3.703125 65.203125 +L 3.703125 68.296875 +L 20.59375 68.296875 +Q 22.40625 68.296875 22.90625 68 +Q 23.40625 67.703125 24.09375 66.09375 +L 45.796875 10.09375 +L 67.703125 66.40625 +Q 68.203125 67.796875 68.640625 68.046875 +Q 69.09375 68.296875 71 68.296875 +L 87.90625 68.296875 +L 87.90625 65.203125 +L 85.5 65.203125 +Q 80.09375 65.203125 78.84375 64.296875 +Q 77.59375 63.40625 77.59375 60.5 +L 77.59375 7.796875 +Q 77.59375 4.90625 78.84375 4 +Q 80.09375 3.09375 85.5 3.09375 +L 87.90625 3.09375 +L 87.90625 0 +Q 84.203125 0.296875 73.59375 0.296875 +Q 62.90625 0.296875 59.203125 0 +L 59.203125 3.09375 +L 61.59375 3.09375 +Q 67 3.09375 68.25 4 +Q 69.5 4.90625 69.5 7.796875 +L 69.5 65.203125 +L 69.40625 65.203125 +L 44.796875 1.90625 +Q 44.09375 0 43 0 +Q 41.796875 0 41 2.203125 +L 16.90625 64.40625 +L 16.796875 64.40625 +L 16.796875 10.5 +Q 16.796875 9 17 8.09375 +Q 17.203125 7.203125 18.046875 5.84375 +Q 18.90625 4.5 21.203125 3.796875 +Q 23.5 3.09375 27.09375 3.09375 +L 27.09375 0 +Q 16.59375 0.296875 15.390625 0.296875 +Q 14.203125 0.296875 3.703125 0 +z +" id="CMUSerif-Roman-77"/> + <path d="M 2.796875 22 +Q 2.796875 31.40625 8.84375 38.09375 +Q 14.90625 44.796875 23.59375 44.796875 +Q 32.40625 44.796875 36.953125 39.09375 +Q 41.5 33.40625 41.5 25.203125 +Q 41.5 23.703125 41.09375 23.390625 +Q 40.703125 23.09375 39 23.09375 +L 11.09375 23.09375 +Q 11.09375 12.90625 14.09375 8.09375 +Q 18.296875 1.40625 25.40625 1.40625 +Q 26.40625 1.40625 27.546875 1.59375 +Q 28.703125 1.796875 31.09375 2.640625 +Q 33.5 3.5 35.59375 5.796875 +Q 37.703125 8.09375 38.90625 11.703125 +Q 39.203125 13.09375 40.203125 13.09375 +Q 41.5 13.09375 41.5 11.90625 +Q 41.5 11 40.546875 9.046875 +Q 39.59375 7.09375 37.796875 4.75 +Q 36 2.40625 32.5 0.65625 +Q 29 -1.09375 24.796875 -1.09375 +Q 16 -1.09375 9.390625 5.546875 +Q 2.796875 12.203125 2.796875 22 +z +M 11.203125 25.203125 +L 34.90625 25.203125 +Q 34.90625 27.296875 34.546875 29.640625 +Q 34.203125 32 33.140625 35.25 +Q 32.09375 38.5 29.640625 40.546875 +Q 27.203125 42.59375 23.59375 42.59375 +Q 22 42.59375 20.25 41.890625 +Q 18.5 41.203125 16.390625 39.546875 +Q 14.296875 37.90625 12.84375 34.15625 +Q 11.40625 30.40625 11.203125 25.203125 +z +" id="CMUSerif-Roman-101"/> + <path d="M 1.90625 40 +L 1.90625 42.203125 +Q 6.5 42.40625 9.546875 45.65625 +Q 12.59375 48.90625 13.640625 52.90625 +Q 14.703125 56.90625 14.796875 61.5 +L 17.296875 61.5 +L 17.296875 43.09375 +L 31.59375 43.09375 +L 31.59375 40 +L 17.296875 40 +L 17.296875 12.203125 +Q 17.296875 1.40625 24 1.40625 +Q 26.90625 1.40625 28.796875 4.34375 +Q 30.703125 7.296875 30.703125 12.59375 +L 30.703125 18.09375 +L 33.203125 18.09375 +L 33.203125 12.40625 +Q 33.203125 7 30.703125 2.953125 +Q 28.203125 -1.09375 23.296875 -1.09375 +Q 21.5 -1.09375 19.703125 -0.640625 +Q 17.90625 -0.203125 15.59375 1 +Q 13.296875 2.203125 11.84375 5.140625 +Q 10.40625 8.09375 10.40625 12.40625 +L 10.40625 40 +z +" id="CMUSerif-Roman-116"/> + <path d="M 4.203125 9.5 +Q 4.203125 18 14.203125 22.5 +Q 20.203125 25.40625 32.59375 26.09375 +L 32.59375 29.796875 +Q 32.59375 36 29.34375 39.296875 +Q 26.09375 42.59375 22 42.59375 +Q 14.703125 42.59375 11.203125 38 +Q 14.203125 37.90625 15.25 36.40625 +Q 16.296875 34.90625 16.296875 33.40625 +Q 16.296875 31.40625 15.046875 30.09375 +Q 13.796875 28.796875 11.703125 28.796875 +Q 9.703125 28.796875 8.390625 30.046875 +Q 7.09375 31.296875 7.09375 33.5 +Q 7.09375 38.40625 11.5 41.59375 +Q 15.90625 44.796875 22.203125 44.796875 +Q 30.40625 44.796875 35.90625 39.296875 +Q 37.59375 37.59375 38.4375 35.390625 +Q 39.296875 33.203125 39.390625 31.75 +Q 39.5 30.296875 39.5 27.5 +L 39.5 7.5 +Q 39.5 6.90625 39.703125 5.953125 +Q 39.90625 5 40.796875 3.75 +Q 41.703125 2.5 43.203125 2.5 +Q 46.796875 2.5 46.796875 8.90625 +L 46.796875 14.5 +L 49.296875 14.5 +L 49.296875 8.90625 +Q 49.296875 3.59375 46.5 1.5 +Q 43.703125 -0.59375 41.09375 -0.59375 +Q 37.796875 -0.59375 35.6875 1.84375 +Q 33.59375 4.296875 33.296875 7.59375 +Q 31.796875 3.796875 28.34375 1.34375 +Q 24.90625 -1.09375 20.203125 -1.09375 +Q 16.59375 -1.09375 13.1875 -0.1875 +Q 9.796875 0.703125 7 3.203125 +Q 4.203125 5.703125 4.203125 9.5 +z +M 11.90625 9.59375 +Q 11.90625 5.90625 14.546875 3.5 +Q 17.203125 1.09375 20.90625 1.09375 +Q 25.09375 1.09375 28.84375 4.34375 +Q 32.59375 7.59375 32.59375 14 +L 32.59375 24 +Q 21.5 23.59375 16.703125 19.1875 +Q 11.90625 14.796875 11.90625 9.59375 +z +" id="CMUSerif-Roman-97"/> + <path d="M 3.296875 0 +L 3.296875 3.09375 +Q 8.59375 3.09375 9.84375 3.75 +Q 11.09375 4.40625 11.09375 7.59375 +L 11.09375 59.59375 +Q 11.09375 63.296875 9.796875 64.25 +Q 8.5 65.203125 3.296875 65.203125 +L 3.296875 68.296875 +L 17.703125 69.40625 +L 17.703125 7.59375 +Q 17.703125 4.40625 18.953125 3.75 +Q 20.203125 3.09375 25.5 3.09375 +L 25.5 0 +Q 24.296875 0 21.75 0.09375 +Q 19.203125 0.203125 17.34375 0.25 +Q 15.5 0.296875 14.40625 0.296875 +Q 13.203125 0.296875 3.296875 0 +z +" id="CMUSerif-Roman-108"/> + <path d="M 3.296875 0 +L 3.296875 3.09375 +Q 8.59375 3.09375 9.84375 3.75 +Q 11.09375 4.40625 11.09375 7.59375 +L 11.09375 34.5 +Q 11.09375 38.203125 9.84375 39.09375 +Q 8.59375 40 3.703125 40 +L 3.703125 43.09375 +L 17.703125 44.203125 +L 17.703125 7.5 +Q 17.703125 4.5 18.75 3.796875 +Q 19.796875 3.09375 24.703125 3.09375 +L 24.703125 0 +Q 14.5 0.296875 14.296875 0.296875 +Q 12.90625 0.296875 3.296875 0 +z +M 7.5 61.59375 +Q 7.5 63.59375 9.046875 65.25 +Q 10.59375 66.90625 12.796875 66.90625 +Q 15 66.90625 16.546875 65.40625 +Q 18.09375 63.90625 18.09375 61.59375 +Q 18.09375 59.296875 16.546875 57.796875 +Q 15 56.296875 12.796875 56.296875 +Q 10.5 56.296875 9 57.890625 +Q 7.5 59.5 7.5 61.59375 +z +" id="CMUSerif-Roman-105"/> + <path d="M 16.09375 -1.09375 +Q 3.40625 12.09375 3.40625 21.59375 +Q 3.40625 31.09375 9.65625 37.9375 +Q 15.90625 44.796875 25.09375 44.796875 +Q 31.203125 44.796875 35.796875 41.890625 +Q 40.40625 39 40.40625 34.09375 +Q 40.40625 31.90625 39.09375 30.65625 +Q 37.796875 29.40625 35.796875 29.40625 +Q 33.703125 29.40625 32.453125 30.703125 +Q 31.203125 32 31.203125 34 +Q 31.203125 34.90625 31.5 35.75 +Q 31.796875 36.59375 32.890625 37.546875 +Q 34 38.5 35.90625 38.59375 +Q 32.296875 42.296875 25.203125 42.296875 +Q 20.09375 42.296875 15.890625 37.5 +Q 11.703125 32.703125 11.703125 21.796875 +Q 11.703125 16.09375 13.09375 11.890625 +Q 14.5 7.703125 16.796875 5.546875 +Q 19.09375 3.40625 21.34375 2.40625 +Q 23.59375 1.40625 25.796875 1.40625 +Q 35.59375 1.40625 38.90625 11.90625 +Q 39.203125 12.90625 40.203125 12.90625 +Q 41.5 12.90625 41.5 11.90625 +Q 41.5 11.40625 41.09375 10.15625 +Q 40.703125 8.90625 39.5 6.90625 +Q 38.296875 4.90625 36.546875 3.15625 +Q 34.796875 1.40625 31.75 0.15625 +Q 28.703125 -1.09375 24.90625 -1.09375 +Q 16.09375 -1.09375 3.40625 12.09375 +z +" id="CMUSerif-Roman-99"/> + <path d="M 1.90625 -12.40625 +Q 1.90625 -10.296875 3.15625 -9.1875 +Q 4.40625 -8.09375 6.09375 -8.09375 +Q 7.90625 -8.09375 9.09375 -9.25 +Q 10.296875 -10.40625 10.296875 -12.296875 +Q 10.296875 -16 6.40625 -16.5 +Q 8.296875 -18.296875 11.09375 -18.296875 +Q 14.09375 -18.296875 16.5 -16.09375 +Q 18.90625 -13.90625 19.953125 -11.796875 +Q 21 -9.703125 22.5 -5.90625 +Q 23.90625 -2.90625 25 0 +L 10 36.5 +Q 9 38.90625 7.5 39.453125 +Q 6 40 1.90625 40 +L 1.90625 43.09375 +Q 6.40625 42.796875 11.59375 42.796875 +Q 14.703125 42.796875 22.5 43.09375 +L 22.5 40 +Q 16.90625 40 16.90625 37.40625 +Q 16.90625 37.09375 17.5 35.59375 +L 28.59375 8.703125 +L 38.703125 33.296875 +Q 39.296875 34.703125 39.296875 35.703125 +Q 39.296875 39.796875 34.59375 40 +L 34.59375 43.09375 +Q 41.203125 42.796875 43.296875 42.796875 +Q 47.40625 42.796875 50.796875 43.09375 +L 50.796875 40 +Q 44.09375 40 41.5 33.59375 +L 23.90625 -9.09375 +Q 19.09375 -20.5 11.09375 -20.5 +Q 7.296875 -20.5 4.59375 -18.140625 +Q 1.90625 -15.796875 1.90625 -12.40625 +z +" id="CMUSerif-Roman-121"/> + <path id="CMUSerif-Roman-32"/> + <path d="M 9.90625 25 +Q 9.90625 41.90625 16.203125 55.5 +Q 18.90625 61.203125 22.65625 66 +Q 26.40625 70.796875 28.90625 72.890625 +Q 31.40625 75 32.09375 75 +Q 33.09375 75 33.09375 74 +Q 33.09375 73.5 31.796875 72.296875 +Q 15.703125 55.90625 15.703125 25 +Q 15.703125 -6 31.40625 -21.796875 +Q 33.09375 -23.5 33.09375 -24 +Q 33.09375 -25 32.09375 -25 +Q 31.40625 -25 29 -23 +Q 26.59375 -21 22.890625 -16.390625 +Q 19.203125 -11.796875 16.5 -6.203125 +Q 9.90625 7.40625 9.90625 25 +z +" id="CMUSerif-Roman-40"/> + <path d="M 3.203125 0 +L 3.203125 3.09375 +Q 8.5 3.09375 9.75 3.75 +Q 11 4.40625 11 7.59375 +L 11 34.40625 +Q 11 38.09375 9.703125 39.046875 +Q 8.40625 40 3.203125 40 +L 3.203125 43.09375 +L 17.296875 44.203125 +L 17.296875 33.703125 +Q 22 44.203125 32.09375 44.203125 +Q 43.796875 44.203125 45.40625 34.40625 +Q 47.09375 38.203125 50.6875 41.203125 +Q 54.296875 44.203125 59.90625 44.203125 +Q 67.40625 44.203125 70.40625 40.5 +Q 72.59375 38 73.046875 35.203125 +Q 73.5 32.40625 73.5 25.203125 +L 73.5 6.09375 +Q 73.59375 4 75.1875 3.546875 +Q 76.796875 3.09375 81.296875 3.09375 +L 81.296875 0 +Q 71.09375 0.296875 70.09375 0.296875 +Q 69.296875 0.296875 58.796875 0 +L 58.796875 3.09375 +Q 64.09375 3.09375 65.34375 3.75 +Q 66.59375 4.40625 66.59375 7.59375 +L 66.59375 30.90625 +Q 66.59375 36 65.046875 39 +Q 63.5 42 59.203125 42 +Q 54 42 49.84375 37.640625 +Q 45.703125 33.296875 45.703125 26 +L 45.703125 7.59375 +Q 45.703125 4.40625 46.953125 3.75 +Q 48.203125 3.09375 53.5 3.09375 +L 53.5 0 +Q 43.296875 0.296875 42.296875 0.296875 +Q 41.5 0.296875 31 0 +L 31 3.09375 +Q 36.296875 3.09375 37.546875 3.75 +Q 38.796875 4.40625 38.796875 7.59375 +L 38.796875 30.90625 +Q 38.796875 36 37.25 39 +Q 35.703125 42 31.40625 42 +Q 26.203125 42 22.046875 37.640625 +Q 17.90625 33.296875 17.90625 26 +L 17.90625 7.59375 +Q 17.90625 4.40625 19.15625 3.75 +Q 20.40625 3.09375 25.703125 3.09375 +L 25.703125 0 +Q 15.5 0.296875 14.5 0.296875 +Q 13.703125 0.296875 3.203125 0 +z +" id="CMUSerif-Roman-109"/> + <path d="M 3.296875 1.296875 +L 3.296875 14.5 +Q 3.296875 15.59375 3.34375 16 +Q 3.40625 16.40625 3.703125 16.703125 +Q 4 17 4.59375 17 +Q 5.296875 17 5.546875 16.703125 +Q 5.796875 16.40625 6 15.296875 +Q 7.5 8.40625 10.75 4.75 +Q 14 1.09375 19.90625 1.09375 +Q 25.5 1.09375 28.34375 3.59375 +Q 31.203125 6.09375 31.203125 10.203125 +Q 31.203125 17.5 20.796875 19.40625 +Q 14.796875 20.59375 12.296875 21.390625 +Q 9.796875 22.203125 7.59375 24 +Q 3.296875 27.5 3.296875 32.5 +Q 3.296875 37.5 7.09375 41.140625 +Q 10.90625 44.796875 19.296875 44.796875 +Q 24.90625 44.796875 28.703125 42 +Q 29.796875 42.90625 30.40625 43.59375 +Q 31.703125 44.796875 32.40625 44.796875 +Q 33.203125 44.796875 33.34375 44.296875 +Q 33.5 43.796875 33.5 42.40625 +L 33.5 32.296875 +Q 33.5 31.203125 33.453125 30.796875 +Q 33.40625 30.40625 33.09375 30.15625 +Q 32.796875 29.90625 32.203125 29.90625 +Q 31.09375 29.90625 31 30.796875 +Q 30.203125 42.90625 19.296875 42.90625 +Q 13.40625 42.90625 10.75 40.65625 +Q 8.09375 38.40625 8.09375 35.296875 +Q 8.09375 33.59375 8.890625 32.296875 +Q 9.703125 31 10.75 30.25 +Q 11.796875 29.5 13.75 28.796875 +Q 15.703125 28.09375 16.890625 27.84375 +Q 18.09375 27.59375 20.40625 27.09375 +Q 28.40625 25.59375 31.796875 22.296875 +Q 36 18.09375 36 12.796875 +Q 36 6.90625 32 2.90625 +Q 28 -1.09375 19.90625 -1.09375 +Q 13.40625 -1.09375 8.90625 3.203125 +Q 8.296875 2.59375 7.84375 2.09375 +Q 7.40625 1.59375 7.25 1.390625 +Q 7.09375 1.203125 7.046875 1.09375 +Q 7 1 6.90625 0.90625 +Q 4.90625 -1.09375 4.40625 -1.09375 +Q 3.59375 -1.09375 3.4375 -0.59375 +Q 3.296875 -0.09375 3.296875 1.296875 +z +" id="CMUSerif-Roman-115"/> + <path d="M 3.296875 40 +L 3.296875 43.09375 +L 11.203125 43.09375 +L 11.203125 54.59375 +Q 11.203125 62 16 66.25 +Q 20.796875 70.5 26.703125 70.5 +Q 30.59375 70.5 33.140625 68.390625 +Q 35.703125 66.296875 35.703125 63.5 +Q 35.703125 61.59375 34.546875 60.34375 +Q 33.40625 59.09375 31.296875 59.09375 +Q 29.296875 59.09375 28.140625 60.34375 +Q 27 61.59375 27 63.40625 +Q 27 66.59375 30 67.59375 +Q 28.5 68.296875 26.703125 68.296875 +Q 23.09375 68.296875 20.296875 64.59375 +Q 17.5 60.90625 17.5 54.703125 +L 17.5 43.09375 +L 29.203125 43.09375 +L 29.203125 40 +L 17.796875 40 +L 17.796875 7.796875 +Q 17.796875 4.90625 19 4 +Q 20.203125 3.09375 25.40625 3.09375 +L 27.5 3.09375 +L 27.5 0 +Q 23.5 0.296875 14.796875 0.296875 +Q 13.59375 0.296875 11.6875 0.25 +Q 9.796875 0.203125 7.296875 0.09375 +Q 4.796875 0 3.40625 0 +L 3.40625 3.09375 +Q 8.703125 3.09375 9.953125 3.75 +Q 11.203125 4.40625 11.203125 7.59375 +L 11.203125 40 +z +" id="CMUSerif-Roman-102"/> + <path d="M 2.796875 0 +L 2.796875 3.09375 +Q 8.09375 3.09375 9.34375 3.75 +Q 10.59375 4.40625 10.59375 7.59375 +L 10.59375 34.40625 +Q 10.59375 38.09375 9.296875 39.046875 +Q 8 40 2.796875 40 +L 2.796875 43.09375 +L 16.703125 44.203125 +L 16.703125 33.203125 +Q 18.09375 37.5 21.09375 40.84375 +Q 24.09375 44.203125 29 44.203125 +Q 32.203125 44.203125 34.296875 42.390625 +Q 36.40625 40.59375 36.40625 38.09375 +Q 36.40625 35.90625 35.046875 34.796875 +Q 33.703125 33.703125 32.09375 33.703125 +Q 30.296875 33.703125 29.046875 34.84375 +Q 27.796875 36 27.796875 38 +Q 27.796875 39.203125 28.34375 40.140625 +Q 28.90625 41.09375 29.34375 41.4375 +Q 29.796875 41.796875 30.09375 41.90625 +Q 29.90625 42 29 42 +Q 23.5 42 20.34375 36.5 +Q 17.203125 31 17.203125 23.203125 +L 17.203125 7.796875 +Q 17.203125 4.90625 18.390625 4 +Q 19.59375 3.09375 24.796875 3.09375 +L 26.90625 3.09375 +L 26.90625 0 +Q 22.90625 0.296875 14.203125 0.296875 +Q 13 0.296875 11.09375 0.25 +Q 9.203125 0.203125 6.703125 0.09375 +Q 4.203125 0 2.796875 0 +z +" id="CMUSerif-Roman-114"/> + <path d="M 16 -1.09375 +Q 2.796875 11.90625 2.796875 21.40625 +Q 2.796875 30.90625 9.25 37.84375 +Q 15.703125 44.796875 25 44.796875 +Q 34.09375 44.796875 40.59375 37.890625 +Q 47.09375 31 47.09375 21.40625 +Q 47.09375 12 40.546875 5.453125 +Q 34 -1.09375 24.90625 -1.09375 +Q 16 -1.09375 2.796875 11.90625 +z +M 11.09375 22.203125 +Q 11.09375 12.5 13.59375 8.09375 +Q 17.5 1.40625 25 1.40625 +Q 28.703125 1.40625 31.796875 3.40625 +Q 34.90625 5.40625 36.59375 8.796875 +Q 38.796875 13.203125 38.796875 22.203125 +Q 38.796875 31.796875 36.203125 36.09375 +Q 32.296875 42.59375 24.90625 42.59375 +Q 21.703125 42.59375 18.546875 40.890625 +Q 15.40625 39.203125 13.5 35.90625 +Q 11.09375 31.5 11.09375 22.203125 +z +" id="CMUSerif-Roman-111"/> + <path d="M 3.203125 0 +L 3.203125 3.09375 +Q 8.5 3.09375 9.75 3.75 +Q 11 4.40625 11 7.59375 +L 11 34.40625 +Q 11 38.09375 9.703125 39.046875 +Q 8.40625 40 3.203125 40 +L 3.203125 43.09375 +L 17.296875 44.203125 +L 17.296875 33.703125 +Q 22 44.203125 32.09375 44.203125 +Q 39.59375 44.203125 42.59375 40.5 +Q 44.796875 38 45.25 35.203125 +Q 45.703125 32.40625 45.703125 25.203125 +L 45.703125 6.09375 +Q 45.796875 4 47.390625 3.546875 +Q 49 3.09375 53.5 3.09375 +L 53.5 0 +Q 43.296875 0.296875 42.296875 0.296875 +Q 41.5 0.296875 31 0 +L 31 3.09375 +Q 36.296875 3.09375 37.546875 3.75 +Q 38.796875 4.40625 38.796875 7.59375 +L 38.796875 30.90625 +Q 38.796875 36 37.25 39 +Q 35.703125 42 31.40625 42 +Q 26.203125 42 22.046875 37.640625 +Q 17.90625 33.296875 17.90625 26 +L 17.90625 7.59375 +Q 17.90625 4.40625 19.15625 3.75 +Q 20.40625 3.09375 25.703125 3.09375 +L 25.703125 0 +Q 15.5 0.296875 14.5 0.296875 +Q 13.703125 0.296875 3.203125 0 +z +" id="CMUSerif-Roman-110"/> + <path d="M 5.703125 -24 +Q 5.703125 -23.5 7 -22.296875 +Q 23.09375 -5.90625 23.09375 25 +Q 23.09375 56 7.59375 71.703125 +Q 5.703125 73.5 5.703125 74 +Q 5.703125 75 6.703125 75 +Q 7.40625 75 9.796875 73 +Q 12.203125 71 15.890625 66.390625 +Q 19.59375 61.796875 22.296875 56.203125 +Q 28.90625 42.59375 28.90625 25 +Q 28.90625 8.09375 22.59375 -5.5 +Q 19.90625 -11.203125 16.15625 -16 +Q 12.40625 -20.796875 9.90625 -22.890625 +Q 7.40625 -25 6.703125 -25 +Q 5.703125 -25 5.703125 -24 +z +" id="CMUSerif-Roman-41"/> + <path d="M 5.8125 0.78125 +Q 5.8125 2.25 6.5 3.078125 +L 61.53125 64.796875 +L 46.78125 64.796875 +Q 39.453125 64.796875 34.640625 63.0625 +Q 29.828125 61.328125 26.671875 57.296875 +Q 23.53125 53.265625 21.390625 46.296875 +Q 21.1875 45.40625 20.40625 45.40625 +L 19.484375 45.40625 +Q 18.5 45.40625 18.5 46.6875 +L 24.8125 67.390625 +Q 25 68.3125 25.78125 68.3125 +L 71.390625 68.3125 +Q 72.21875 68.3125 72.21875 67.484375 +Q 72.21875 66.015625 71.578125 65.375 +L 16.796875 3.8125 +L 31.984375 3.8125 +Q 40.828125 3.8125 45.875 5.984375 +Q 50.921875 8.15625 53.875 12.84375 +Q 56.84375 17.53125 59.625 26.21875 +Q 59.71875 26.5625 59.984375 26.828125 +Q 60.25 27.09375 60.59375 27.09375 +L 61.53125 27.09375 +Q 62.5 27.09375 62.5 25.78125 +L 54.59375 0.875 +Q 54.15625 0 53.609375 0 +L 6.6875 0 +Q 5.8125 0 5.8125 0.78125 +z +" id="Cmmi10-90"/> + <path d="M 10.40625 -25 +L 10.40625 75 +L 25.5 75 +L 25.5 72.703125 +L 17.09375 72.703125 +L 17.09375 -22.703125 +L 25.5 -22.703125 +L 25.5 -25 +z +" id="CMUSerif-Roman-91"/> + <path d="M 2.09375 -22.703125 +L 10.5 -22.703125 +L 10.5 72.703125 +L 2.09375 72.703125 +L 2.09375 75 +L 17.203125 75 +L 17.203125 -25 +L 2.09375 -25 +z +" id="CMUSerif-Roman-93"/> + </defs> + <g transform="translate(45.976 222.69725)scale(0.1 -0.1)"> + <use xlink:href="#CMUSerif-Roman-77"/> + <use transform="translate(91.599991 0)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(135.999985 0)" xlink:href="#CMUSerif-Roman-116"/> + <use transform="translate(174.799973 0)" xlink:href="#CMUSerif-Roman-97"/> + <use transform="translate(224.799957 0)" xlink:href="#CMUSerif-Roman-108"/> + <use transform="translate(252.499954 0)" xlink:href="#CMUSerif-Roman-108"/> + <use transform="translate(280.199951 0)" xlink:href="#CMUSerif-Roman-105"/> + <use transform="translate(307.899948 0)" xlink:href="#CMUSerif-Roman-99"/> + <use transform="translate(352.299942 0)" xlink:href="#CMUSerif-Roman-105"/> + <use transform="translate(379.999939 0)" xlink:href="#CMUSerif-Roman-116"/> + <use transform="translate(418.799927 0)" xlink:href="#CMUSerif-Roman-121"/> + <use transform="translate(471.499924 0)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(504.799911 0)" xlink:href="#CMUSerif-Roman-40"/> + <use transform="translate(543.599899 0)" xlink:href="#CMUSerif-Roman-109"/> + <use transform="translate(626.899887 0)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(671.299881 0)" xlink:href="#CMUSerif-Roman-116"/> + <use transform="translate(710.099869 0)" xlink:href="#CMUSerif-Roman-97"/> + <use transform="translate(760.099854 0)" xlink:href="#CMUSerif-Roman-108"/> + <use transform="translate(787.79985 0)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(821.099838 0)" xlink:href="#CMUSerif-Roman-109"/> + <use transform="translate(904.399826 0)" xlink:href="#CMUSerif-Roman-97"/> + <use transform="translate(954.399811 0)" xlink:href="#CMUSerif-Roman-115"/> + <use transform="translate(993.799805 0)" xlink:href="#CMUSerif-Roman-115"/> + <use transform="translate(1033.199799 0)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(1066.499786 0)" xlink:href="#CMUSerif-Roman-102"/> + <use transform="translate(1096.999771 0)" xlink:href="#CMUSerif-Roman-114"/> + <use transform="translate(1136.099762 0)" xlink:href="#CMUSerif-Roman-97"/> + <use transform="translate(1186.099747 0)" xlink:href="#CMUSerif-Roman-99"/> + <use transform="translate(1230.499741 0)" xlink:href="#CMUSerif-Roman-116"/> + <use transform="translate(1269.299728 0)" xlink:href="#CMUSerif-Roman-105"/> + <use transform="translate(1296.999725 0)" xlink:href="#CMUSerif-Roman-111"/> + <use transform="translate(1346.99971 0)" xlink:href="#CMUSerif-Roman-110"/> + <use transform="translate(1402.499695 0)" xlink:href="#CMUSerif-Roman-41"/> + <use transform="translate(1441.299683 0)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(1474.59967 0)" xlink:href="#Cmmi10-90"/> + <use transform="translate(1542.812561 0)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(1576.112549 0)" xlink:href="#CMUSerif-Roman-91"/> + <use transform="translate(1603.912537 0)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(1637.212524 0)" xlink:href="#CMUSerif-Roman-93"/> + </g> + </g> + </g> + <g id="matplotlib.axis_2"> + <g id="ytick_1"> + <g id="line2d_5"> + <defs> + <path d="M 0 0 +L -3.5 0 +" id="m7bcf80c517" style="stroke:#000000;stroke-width:0.8;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#m7bcf80c517" y="172.059569"/> + </g> + </g> + <g id="text_6"> + <!-- $\mathdefault{10^{-3}}$ --> + <g transform="translate(10.82 175.529881)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-51"/> + </g> + </g> + </g> + <g id="ytick_2"> + <g id="line2d_6"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#m7bcf80c517" y="135.925784"/> + </g> + </g> + <g id="text_7"> + <!-- $\mathdefault{10^{-2}}$ --> + <defs> + <path d="M 5 0 +Q 5 1.796875 5.140625 2.34375 +Q 5.296875 2.90625 6.09375 3.703125 +L 25.296875 25.09375 +Q 35.796875 36.90625 35.796875 47.203125 +Q 35.796875 53.90625 32.296875 58.703125 +Q 28.796875 63.5 22.40625 63.5 +Q 18 63.5 14.296875 60.796875 +Q 10.59375 58.09375 8.90625 53.296875 +Q 9.203125 53.40625 10.203125 53.40625 +Q 12.703125 53.40625 14.09375 51.84375 +Q 15.5 50.296875 15.5 48.203125 +Q 15.5 45.5 13.75 44.203125 +Q 12 42.90625 10.296875 42.90625 +Q 9.59375 42.90625 8.6875 43.046875 +Q 7.796875 43.203125 6.390625 44.59375 +Q 5 46 5 48.5 +Q 5 55.5 10.296875 61.046875 +Q 15.59375 66.59375 23.703125 66.59375 +Q 32.90625 66.59375 38.90625 61.140625 +Q 44.90625 55.703125 44.90625 47.203125 +Q 44.90625 44.203125 44 41.5 +Q 43.09375 38.796875 41.890625 36.6875 +Q 40.703125 34.59375 37.5 31.25 +Q 34.296875 27.90625 31.6875 25.5 +Q 29.09375 23.09375 23.296875 18 +L 12.703125 7.703125 +L 30.703125 7.703125 +Q 39.5 7.703125 40.203125 8.5 +Q 41.203125 9.90625 42.40625 17.40625 +L 44.90625 17.40625 +L 42.09375 0 +z +" id="CMUSerif-Roman-50"/> + </defs> + <g transform="translate(10.82 139.396097)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-50"/> + </g> + </g> + </g> + <g id="ytick_3"> + <g id="line2d_7"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#m7bcf80c517" y="99.792"/> + </g> + </g> + <g id="text_8"> + <!-- $\mathdefault{10^{-1}}$ --> + <g transform="translate(10.82 103.262312)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-49"/> + </g> + </g> + </g> + <g id="ytick_4"> + <g id="line2d_8"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#m7bcf80c517" y="63.658216"/> + </g> + </g> + <g id="text_9"> + <!-- $\mathdefault{10^{0}}$ --> + <g transform="translate(13.22 67.128528)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-48"/> + </g> + </g> + </g> + <g id="ytick_5"> + <g id="line2d_9"> + <g> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#m7bcf80c517" y="27.524431"/> + </g> + </g> + <g id="text_10"> + <!-- $\mathdefault{10^{1}}$ --> + <g transform="translate(13.22 30.994744)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-49"/> + </g> + </g> + </g> + <g id="ytick_6"> + <g id="line2d_10"> + <defs> + <path d="M 0 0 +L -2 0 +" id="mb9ef9ffb1f" style="stroke:#000000;stroke-width:0.6;"/> + </defs> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="197.316"/> + </g> + </g> + </g> + <g id="ytick_7"> + <g id="line2d_11"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="190.953156"/> + </g> + </g> + </g> + <g id="ytick_8"> + <g id="line2d_12"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="186.438647"/> + </g> + </g> + </g> + <g id="ytick_9"> + <g id="line2d_13"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="182.936922"/> + </g> + </g> + </g> + <g id="ytick_10"> + <g id="line2d_14"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="180.075803"/> + </g> + </g> + </g> + <g id="ytick_11"> + <g id="line2d_15"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="177.656763"/> + </g> + </g> + </g> + <g id="ytick_12"> + <g id="line2d_16"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="175.561294"/> + </g> + </g> + </g> + <g id="ytick_13"> + <g id="line2d_17"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="173.71296"/> + </g> + </g> + </g> + <g id="ytick_14"> + <g id="line2d_18"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="161.182216"/> + </g> + </g> + </g> + <g id="ytick_15"> + <g id="line2d_19"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="154.819372"/> + </g> + </g> + </g> + <g id="ytick_16"> + <g id="line2d_20"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="150.304863"/> + </g> + </g> + </g> + <g id="ytick_17"> + <g id="line2d_21"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="146.803137"/> + </g> + </g> + </g> + <g id="ytick_18"> + <g id="line2d_22"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="143.942019"/> + </g> + </g> + </g> + <g id="ytick_19"> + <g id="line2d_23"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="141.522978"/> + </g> + </g> + </g> + <g id="ytick_20"> + <g id="line2d_24"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="139.42751"/> + </g> + </g> + </g> + <g id="ytick_21"> + <g id="line2d_25"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="137.579176"/> + </g> + </g> + </g> + <g id="ytick_22"> + <g id="line2d_26"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="125.048431"/> + </g> + </g> + </g> + <g id="ytick_23"> + <g id="line2d_27"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="118.685588"/> + </g> + </g> + </g> + <g id="ytick_24"> + <g id="line2d_28"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="114.171078"/> + </g> + </g> + </g> + <g id="ytick_25"> + <g id="line2d_29"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="110.669353"/> + </g> + </g> + </g> + <g id="ytick_26"> + <g id="line2d_30"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="107.808235"/> + </g> + </g> + </g> + <g id="ytick_27"> + <g id="line2d_31"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="105.389194"/> + </g> + </g> + </g> + <g id="ytick_28"> + <g id="line2d_32"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="103.293726"/> + </g> + </g> + </g> + <g id="ytick_29"> + <g id="line2d_33"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="101.445391"/> + </g> + </g> + </g> + <g id="ytick_30"> + <g id="line2d_34"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="88.914647"/> + </g> + </g> + </g> + <g id="ytick_31"> + <g id="line2d_35"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="82.551803"/> + </g> + </g> + </g> + <g id="ytick_32"> + <g id="line2d_36"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="78.037294"/> + </g> + </g> + </g> + <g id="ytick_33"> + <g id="line2d_37"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="74.535569"/> + </g> + </g> + </g> + <g id="ytick_34"> + <g id="line2d_38"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="71.674451"/> + </g> + </g> + </g> + <g id="ytick_35"> + <g id="line2d_39"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="69.25541"/> + </g> + </g> + </g> + <g id="ytick_36"> + <g id="line2d_40"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="67.159941"/> + </g> + </g> + </g> + <g id="ytick_37"> + <g id="line2d_41"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="65.311607"/> + </g> + </g> + </g> + <g id="ytick_38"> + <g id="line2d_42"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="52.780863"/> + </g> + </g> + </g> + <g id="ytick_39"> + <g id="line2d_43"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="46.418019"/> + </g> + </g> + </g> + <g id="ytick_40"> + <g id="line2d_44"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="41.90351"/> + </g> + </g> + </g> + <g id="ytick_41"> + <g id="line2d_45"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="38.401784"/> + </g> + </g> + </g> + <g id="ytick_42"> + <g id="line2d_46"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="35.540666"/> + </g> + </g> + </g> + <g id="ytick_43"> + <g id="line2d_47"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="33.121625"/> + </g> + </g> + </g> + <g id="ytick_44"> + <g id="line2d_48"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="31.026157"/> + </g> + </g> + </g> + <g id="ytick_45"> + <g id="line2d_49"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="29.177823"/> + </g> + </g> + </g> + <g id="ytick_46"> + <g id="line2d_50"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="16.647078"/> + </g> + </g> + </g> + <g id="ytick_47"> + <g id="line2d_51"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="10.284235"/> + </g> + </g> + </g> + <g id="ytick_48"> + <g id="line2d_52"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="5.769726"/> + </g> + </g> + </g> + <g id="ytick_49"> + <g id="line2d_53"> + <g> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mb9ef9ffb1f" y="2.268"/> + </g> + </g> + </g> + <g id="text_11"> + <!-- SF threshold number density $n_{\rm H, thresh}$ [cm$^{-3}$] --> + <defs> + <path d="M 5.59375 0.203125 +L 5.59375 20.203125 +Q 5.59375 21.296875 5.640625 21.6875 +Q 5.703125 22.09375 6 22.390625 +Q 6.296875 22.703125 6.90625 22.703125 +Q 8 22.703125 8.09375 21.703125 +Q 8.40625 11.796875 14.296875 6.296875 +Q 20.09375 0.90625 30.09375 0.90625 +Q 36.09375 0.90625 39.796875 5.203125 +Q 43.5 9.5 43.5 15.203125 +Q 43.5 20.59375 40.40625 24.40625 +Q 39.09375 26.09375 37.4375 27.1875 +Q 35.796875 28.296875 34.796875 28.640625 +Q 33.796875 29 31.90625 29.5 +Q 19.5 32.5 18.703125 32.796875 +Q 12.796875 34.796875 9.1875 39.84375 +Q 5.59375 44.90625 5.59375 51.09375 +Q 5.59375 59.09375 11.25 64.796875 +Q 16.90625 70.5 25.09375 70.5 +Q 29.203125 70.5 32.640625 69.203125 +Q 36.09375 67.90625 37.5 66.75 +Q 38.90625 65.59375 41.09375 63.5 +L 44.59375 69.203125 +Q 45.40625 70.5 46.09375 70.5 +Q 46.90625 70.5 47.046875 70.046875 +Q 47.203125 69.59375 47.203125 68.09375 +L 47.203125 48 +Q 47.203125 46.90625 47.140625 46.5 +Q 47.09375 46.09375 46.796875 45.84375 +Q 46.5 45.59375 45.90625 45.59375 +Q 44.90625 45.59375 44.703125 46.796875 +Q 41.90625 67.703125 25.203125 67.703125 +Q 19.5 67.703125 15.75 63.84375 +Q 12 60 12 54.59375 +Q 12 50.203125 14.75 46.59375 +Q 17.5 43 22.09375 41.90625 +L 34.90625 38.796875 +Q 41.296875 37.296875 45.59375 31.640625 +Q 49.90625 26 49.90625 18.59375 +Q 49.90625 10.09375 44.34375 3.9375 +Q 38.796875 -2.203125 30.203125 -2.203125 +Q 24 -2.203125 19.203125 -0.140625 +Q 14.40625 1.90625 11.796875 4.796875 +Q 9.796875 1.5 8.5 -0.40625 +L 8.203125 -0.90625 +Q 7.40625 -2.203125 6.703125 -2.203125 +Q 5.90625 -2.203125 5.75 -1.703125 +Q 5.59375 -1.203125 5.59375 0.203125 +z +" id="CMUSerif-Roman-83"/> + <path d="M 3.296875 0 +L 3.296875 3.09375 +L 5.703125 3.09375 +Q 11.09375 3.09375 12.34375 4 +Q 13.59375 4.90625 13.59375 7.796875 +L 13.59375 60.203125 +Q 13.59375 63.09375 12.34375 64 +Q 11.09375 64.90625 5.703125 64.90625 +L 3.296875 64.90625 +L 3.296875 68 +L 58.203125 68 +L 61 45.5 +L 58.5 45.5 +Q 57.796875 51.203125 56.890625 54.453125 +Q 56 57.703125 53.953125 60.296875 +Q 51.90625 62.90625 48.453125 63.90625 +Q 45 64.90625 39.40625 64.90625 +L 27.40625 64.90625 +Q 24 64.90625 23.25 64.203125 +Q 22.5 63.5 22.5 60.90625 +L 22.5 35.59375 +L 31.09375 35.59375 +Q 37.90625 35.59375 39.796875 38.046875 +Q 41.703125 40.5 41.703125 47.296875 +L 44.203125 47.296875 +L 44.203125 20.796875 +L 41.703125 20.796875 +Q 41.703125 27.703125 39.796875 30.09375 +Q 37.90625 32.5 31.09375 32.5 +L 22.5 32.5 +L 22.5 7.90625 +Q 22.5 5.796875 22.84375 5 +Q 23.203125 4.203125 25.296875 3.640625 +Q 27.40625 3.09375 32 3.09375 +L 35.296875 3.09375 +L 35.296875 0 +Q 31.703125 0.296875 18.5 0.296875 +Q 6.796875 0.296875 3.296875 0 +z +" id="CMUSerif-Roman-70"/> + <path d="M 3.203125 0 +L 3.203125 3.09375 +Q 8.5 3.09375 9.75 3.75 +Q 11 4.40625 11 7.59375 +L 11 59.59375 +Q 11 63.296875 9.703125 64.25 +Q 8.40625 65.203125 3.203125 65.203125 +L 3.203125 68.296875 +L 17.59375 69.40625 +L 17.59375 34.59375 +L 17.703125 34.59375 +Q 19.296875 38.203125 22.890625 41.203125 +Q 26.5 44.203125 32.09375 44.203125 +Q 39.59375 44.203125 42.59375 40.5 +Q 44.796875 38 45.25 35.203125 +Q 45.703125 32.40625 45.703125 25.203125 +L 45.703125 6.09375 +Q 45.796875 4 47.390625 3.546875 +Q 49 3.09375 53.5 3.09375 +L 53.5 0 +Q 43.296875 0.296875 42.296875 0.296875 +Q 41.5 0.296875 31 0 +L 31 3.09375 +Q 36.296875 3.09375 37.546875 3.75 +Q 38.796875 4.40625 38.796875 7.59375 +L 38.796875 30.90625 +Q 38.796875 36 37.25 39 +Q 35.703125 42 31.40625 42 +Q 26.203125 42 22.046875 37.640625 +Q 17.90625 33.296875 17.90625 26 +L 17.90625 7.59375 +Q 17.90625 4.40625 19.15625 3.75 +Q 20.40625 3.09375 25.703125 3.09375 +L 25.703125 0 +Q 15.5 0.296875 14.5 0.296875 +Q 13.703125 0.296875 3.203125 0 +z +" id="CMUSerif-Roman-104"/> + <path d="M 3.40625 21.5 +Q 3.40625 31 10.046875 37.59375 +Q 16.703125 44.203125 25.703125 44.203125 +Q 33.296875 44.203125 38.296875 38 +L 38.296875 59.59375 +Q 38.296875 63.296875 37 64.25 +Q 35.703125 65.203125 30.5 65.203125 +L 30.5 68.296875 +L 44.90625 69.40625 +L 44.90625 8.703125 +Q 44.90625 5 46.203125 4.046875 +Q 47.5 3.09375 52.703125 3.09375 +L 52.703125 0 +L 38 -1.09375 +L 38 5.5 +Q 32.796875 -1.09375 24.59375 -1.09375 +Q 16 -1.09375 9.703125 5.5 +Q 3.40625 12.09375 3.40625 21.5 +z +M 11.703125 21.40625 +Q 11.703125 12.09375 14.59375 7.5 +Q 18.59375 1.09375 25.09375 1.09375 +Q 32.5 1.09375 36.90625 8.09375 +Q 38 9.796875 38 11.796875 +L 38 32.296875 +Q 38 34.296875 36.90625 36 +Q 32.796875 42 26.09375 42 +Q 19.09375 42 14.796875 35.59375 +Q 11.703125 30.796875 11.703125 21.40625 +z +" id="CMUSerif-Roman-100"/> + <path d="M 3.203125 40 +L 3.203125 43.09375 +L 17.90625 44.203125 +L 17.90625 11 +Q 17.90625 8.59375 18.09375 7.1875 +Q 18.296875 5.796875 19.09375 4.1875 +Q 19.90625 2.59375 21.796875 1.84375 +Q 23.703125 1.09375 26.703125 1.09375 +Q 32.09375 1.09375 35.4375 5.546875 +Q 38.796875 10 38.796875 16.59375 +L 38.796875 34.40625 +Q 38.796875 38.09375 37.5 39.046875 +Q 36.203125 40 31 40 +L 31 43.09375 +L 45.703125 44.203125 +L 45.703125 8.703125 +Q 45.703125 5 47 4.046875 +Q 48.296875 3.09375 53.5 3.09375 +L 53.5 0 +L 39.09375 -1.09375 +L 39.09375 7.90625 +Q 34.90625 -1.09375 26.203125 -1.09375 +Q 21.796875 -1.09375 18.796875 0 +Q 15.796875 1.09375 14.296875 2.5 +Q 12.796875 3.90625 12 6.59375 +Q 11.203125 9.296875 11.09375 10.9375 +Q 11 12.59375 11 15.796875 +L 11 30.796875 +Q 11 37.59375 10 38.796875 +Q 9 40 3.203125 40 +z +" id="CMUSerif-Roman-117"/> + <path d="M 2.796875 65.203125 +L 2.796875 68.296875 +L 17.203125 69.40625 +L 17.203125 37.703125 +Q 23 44.203125 30.90625 44.203125 +Q 39.5 44.203125 45.796875 37.59375 +Q 52.09375 31 52.09375 21.59375 +Q 52.09375 12.09375 45.5 5.5 +Q 38.90625 -1.09375 29.796875 -1.09375 +Q 21.5 -1.09375 16.703125 6.203125 +Q 13.203125 0.09375 13.09375 0 +L 10.59375 0 +L 10.59375 59.59375 +Q 10.59375 63.296875 9.296875 64.25 +Q 8 65.203125 2.796875 65.203125 +z +M 17.5 11.40625 +Q 17.5 9.296875 18.90625 7.203125 +Q 22.90625 1.09375 29.40625 1.09375 +Q 36.40625 1.09375 40.703125 7.5 +Q 43.796875 12.296875 43.796875 21.703125 +Q 43.796875 31 40.90625 35.59375 +Q 36.90625 42 30.40625 42 +Q 23.09375 42 18.59375 35.59375 +Q 17.5 34 17.5 32 +z +" id="CMUSerif-Roman-98"/> + <path d="M 7.71875 1.703125 +Q 7.71875 2.296875 7.8125 2.59375 +L 15.28125 32.421875 +Q 16.015625 35.203125 16.015625 37.3125 +Q 16.015625 41.609375 13.09375 41.609375 +Q 9.96875 41.609375 8.453125 37.859375 +Q 6.9375 34.125 5.515625 28.421875 +Q 5.515625 28.125 5.21875 27.953125 +Q 4.9375 27.78125 4.6875 27.78125 +L 3.515625 27.78125 +Q 3.171875 27.78125 2.921875 28.140625 +Q 2.6875 28.515625 2.6875 28.8125 +Q 3.765625 33.15625 4.765625 36.171875 +Q 5.765625 39.203125 7.890625 41.6875 +Q 10.015625 44.1875 13.1875 44.1875 +Q 16.9375 44.1875 19.8125 41.8125 +Q 22.703125 39.453125 22.703125 35.796875 +Q 25.6875 39.703125 29.6875 41.9375 +Q 33.6875 44.1875 38.1875 44.1875 +Q 41.75 44.1875 44.328125 42.96875 +Q 46.921875 41.75 48.359375 39.28125 +Q 49.8125 36.8125 49.8125 33.40625 +Q 49.8125 29.296875 47.96875 23.484375 +Q 46.140625 17.671875 43.40625 10.5 +Q 42 7.234375 42 4.5 +Q 42 1.515625 44.28125 1.515625 +Q 48.1875 1.515625 50.796875 5.703125 +Q 53.421875 9.90625 54.5 14.703125 +Q 54.6875 15.28125 55.328125 15.28125 +L 56.5 15.28125 +Q 56.890625 15.28125 57.15625 15.03125 +Q 57.421875 14.796875 57.421875 14.40625 +Q 57.421875 14.3125 57.328125 14.109375 +Q 55.953125 8.453125 52.5625 3.65625 +Q 49.171875 -1.125 44.09375 -1.125 +Q 40.578125 -1.125 38.078125 1.296875 +Q 35.59375 3.71875 35.59375 7.171875 +Q 35.59375 9.03125 36.375 11.078125 +Q 37.640625 14.359375 39.28125 18.890625 +Q 40.921875 23.4375 41.96875 27.578125 +Q 43.015625 31.734375 43.015625 34.90625 +Q 43.015625 37.703125 41.859375 39.65625 +Q 40.71875 41.609375 37.984375 41.609375 +Q 34.328125 41.609375 31.25 39.984375 +Q 28.171875 38.375 25.875 35.71875 +Q 23.578125 33.0625 21.6875 29.390625 +L 14.890625 2.203125 +Q 14.546875 0.828125 13.34375 -0.140625 +Q 12.15625 -1.125 10.6875 -1.125 +Q 9.46875 -1.125 8.59375 -0.34375 +Q 7.71875 0.4375 7.71875 1.703125 +z +" id="Cmmi10-110"/> + <path d="M 3.078125 0 +L 3.078125 3.515625 +Q 13.375 3.515625 13.375 6.6875 +L 13.375 61.625 +Q 13.375 64.796875 3.078125 64.796875 +L 3.078125 68.3125 +L 33.015625 68.3125 +L 33.015625 64.796875 +Q 22.703125 64.796875 22.703125 61.625 +L 22.703125 37.3125 +L 52.203125 37.3125 +L 52.203125 61.625 +Q 52.203125 64.796875 41.890625 64.796875 +L 41.890625 68.3125 +L 71.78125 68.3125 +L 71.78125 64.796875 +Q 61.53125 64.796875 61.53125 61.625 +L 61.53125 6.6875 +Q 61.53125 3.515625 71.78125 3.515625 +L 71.78125 0 +L 41.890625 0 +L 41.890625 3.515625 +Q 52.203125 3.515625 52.203125 6.6875 +L 52.203125 33.796875 +L 22.703125 33.796875 +L 22.703125 6.6875 +Q 22.703125 3.515625 33.015625 3.515625 +L 33.015625 0 +z +" id="Cmr10-72"/> + <path d="M 9.90625 -18.015625 +Q 9.90625 -17.578125 10.296875 -17.1875 +Q 13.921875 -13.71875 15.921875 -9.171875 +Q 17.921875 -4.640625 17.921875 0.390625 +L 17.921875 1.609375 +Q 16.3125 0 13.921875 0 +Q 11.625 0 10.015625 1.609375 +Q 8.40625 3.21875 8.40625 5.515625 +Q 8.40625 7.859375 10.015625 9.421875 +Q 11.625 10.984375 13.921875 10.984375 +Q 17.484375 10.984375 19 7.6875 +Q 20.515625 4.390625 20.515625 0.390625 +Q 20.515625 -5.171875 18.28125 -10.171875 +Q 16.0625 -15.1875 12.015625 -19.1875 +Q 11.625 -19.390625 11.375 -19.390625 +Q 10.890625 -19.390625 10.390625 -18.9375 +Q 9.90625 -18.5 9.90625 -18.015625 +z +" id="Cmmi10-59"/> + <path d="M 10.203125 12.015625 +L 10.203125 39.59375 +L 1.90625 39.59375 +L 1.90625 42.1875 +Q 8.453125 42.1875 11.515625 48.28125 +Q 14.59375 54.390625 14.59375 61.53125 +L 17.484375 61.53125 +L 17.484375 43.109375 +L 31.59375 43.109375 +L 31.59375 39.59375 +L 17.484375 39.59375 +L 17.484375 12.203125 +Q 17.484375 8.0625 18.875 4.9375 +Q 20.265625 1.8125 23.875 1.8125 +Q 27.296875 1.8125 28.8125 5.109375 +Q 30.328125 8.40625 30.328125 12.203125 +L 30.328125 18.109375 +L 33.203125 18.109375 +L 33.203125 12.015625 +Q 33.203125 8.890625 32.046875 5.828125 +Q 30.90625 2.78125 28.65625 0.828125 +Q 26.421875 -1.125 23.1875 -1.125 +Q 17.1875 -1.125 13.6875 2.46875 +Q 10.203125 6.0625 10.203125 12.015625 +z +" id="Cmr10-116"/> + <path d="M 2.984375 0 +L 2.984375 3.515625 +Q 6.390625 3.515625 8.59375 4.046875 +Q 10.796875 4.59375 10.796875 6.6875 +L 10.796875 59.1875 +Q 10.796875 61.859375 9.984375 63.0625 +Q 9.1875 64.265625 7.671875 64.53125 +Q 6.15625 64.796875 2.984375 64.796875 +L 2.984375 68.3125 +L 17.828125 69.390625 +L 17.828125 35.015625 +Q 19.921875 39.15625 23.671875 41.671875 +Q 27.4375 44.1875 31.984375 44.1875 +Q 38.921875 44.1875 42.40625 40.859375 +Q 45.90625 37.546875 45.90625 30.71875 +L 45.90625 6.6875 +Q 45.90625 4.59375 48.09375 4.046875 +Q 50.296875 3.515625 53.71875 3.515625 +L 53.71875 0 +L 30.8125 0 +L 30.8125 3.515625 +Q 34.234375 3.515625 36.421875 4.046875 +Q 38.625 4.59375 38.625 6.6875 +L 38.625 30.421875 +Q 38.625 35.296875 37.203125 38.453125 +Q 35.796875 41.609375 31.390625 41.609375 +Q 25.59375 41.609375 21.84375 36.96875 +Q 18.109375 32.328125 18.109375 26.421875 +L 18.109375 6.6875 +Q 18.109375 4.59375 20.3125 4.046875 +Q 22.515625 3.515625 25.875 3.515625 +L 25.875 0 +z +" id="Cmr10-104"/> + <path d="M 2.59375 0 +L 2.59375 3.515625 +Q 6 3.515625 8.203125 4.046875 +Q 10.40625 4.59375 10.40625 6.6875 +L 10.40625 33.984375 +Q 10.40625 36.671875 9.59375 37.859375 +Q 8.796875 39.0625 7.28125 39.328125 +Q 5.765625 39.59375 2.59375 39.59375 +L 2.59375 43.109375 +L 16.890625 44.1875 +L 16.890625 34.421875 +Q 18.5 38.765625 21.484375 41.46875 +Q 24.46875 44.1875 28.71875 44.1875 +Q 31.6875 44.1875 34.03125 42.421875 +Q 36.375 40.671875 36.375 37.796875 +Q 36.375 35.984375 35.078125 34.640625 +Q 33.796875 33.296875 31.890625 33.296875 +Q 30.03125 33.296875 28.703125 34.609375 +Q 27.390625 35.9375 27.390625 37.796875 +Q 27.390625 40.484375 29.296875 41.609375 +L 28.71875 41.609375 +Q 24.65625 41.609375 22.09375 38.671875 +Q 19.53125 35.75 18.453125 31.390625 +Q 17.390625 27.046875 17.390625 23.09375 +L 17.390625 6.6875 +Q 17.390625 3.515625 27.09375 3.515625 +L 27.09375 0 +z +" id="Cmr10-114"/> + <path d="M 24.90625 -1.125 +Q 18.796875 -1.125 13.6875 2.078125 +Q 8.59375 5.28125 5.6875 10.625 +Q 2.78125 15.96875 2.78125 21.921875 +Q 2.78125 27.78125 5.4375 33.046875 +Q 8.109375 38.328125 12.859375 41.578125 +Q 17.625 44.828125 23.484375 44.828125 +Q 28.078125 44.828125 31.46875 43.28125 +Q 34.859375 41.75 37.0625 39.015625 +Q 39.265625 36.28125 40.375 32.5625 +Q 41.5 28.859375 41.5 24.421875 +Q 41.5 23.09375 40.484375 23.09375 +L 11.53125 23.09375 +L 11.53125 22.015625 +Q 11.53125 13.71875 14.875 7.765625 +Q 18.21875 1.8125 25.78125 1.8125 +Q 28.859375 1.8125 31.46875 3.171875 +Q 34.078125 4.546875 36 6.984375 +Q 37.9375 9.421875 38.625 12.203125 +Q 38.71875 12.546875 38.984375 12.8125 +Q 39.265625 13.09375 39.59375 13.09375 +L 40.484375 13.09375 +Q 41.5 13.09375 41.5 11.8125 +Q 40.09375 6.15625 35.40625 2.515625 +Q 30.71875 -1.125 24.90625 -1.125 +z +M 11.625 25.59375 +L 34.421875 25.59375 +Q 34.421875 29.34375 33.375 33.203125 +Q 32.328125 37.0625 29.875 39.625 +Q 27.4375 42.1875 23.484375 42.1875 +Q 17.828125 42.1875 14.71875 36.890625 +Q 11.625 31.59375 11.625 25.59375 +z +" id="Cmr10-101"/> + <path d="M 3.328125 -0.296875 +L 3.328125 16.015625 +Q 3.328125 16.796875 4.203125 16.796875 +L 5.421875 16.796875 +Q 6 16.796875 6.203125 16.015625 +Q 8.984375 1.515625 19.671875 1.515625 +Q 24.421875 1.515625 27.609375 3.65625 +Q 30.8125 5.8125 30.8125 10.296875 +Q 30.8125 13.53125 28.3125 15.796875 +Q 25.828125 18.0625 22.40625 18.890625 +L 15.71875 20.21875 +Q 12.359375 20.953125 9.59375 22.453125 +Q 6.84375 23.96875 5.078125 26.484375 +Q 3.328125 29 3.328125 32.328125 +Q 3.328125 36.71875 5.640625 39.515625 +Q 7.953125 42.328125 11.65625 43.578125 +Q 15.375 44.828125 19.671875 44.828125 +Q 24.8125 44.828125 28.609375 42.09375 +L 31.5 44.578125 +Q 31.5 44.828125 31.984375 44.828125 +L 32.71875 44.828125 +Q 33.015625 44.828125 33.25 44.546875 +Q 33.5 44.28125 33.5 44 +L 33.5 30.90625 +Q 33.5 29.984375 32.71875 29.984375 +L 31.5 29.984375 +Q 30.609375 29.984375 30.609375 30.90625 +Q 30.609375 36.140625 27.703125 39.3125 +Q 24.8125 42.484375 19.578125 42.484375 +Q 15.09375 42.484375 11.796875 40.8125 +Q 8.5 39.15625 8.5 35.109375 +Q 8.5 32.328125 10.859375 30.546875 +Q 13.234375 28.765625 16.40625 27.984375 +L 23.1875 26.703125 +Q 26.609375 25.921875 29.5625 24.0625 +Q 32.515625 22.21875 34.25 19.375 +Q 35.984375 16.546875 35.984375 12.984375 +Q 35.984375 9.375 34.734375 6.703125 +Q 33.5 4.046875 31.265625 2.28125 +Q 29.046875 0.53125 26.015625 -0.296875 +Q 23 -1.125 19.671875 -1.125 +Q 13.421875 -1.125 8.984375 3.078125 +L 5.328125 -0.875 +Q 5.328125 -1.125 4.78125 -1.125 +L 4.203125 -1.125 +Q 3.328125 -1.125 3.328125 -0.296875 +z +" id="Cmr10-115"/> + <path d="M 10.203125 23 +Q 9.375 23 8.828125 23.625 +Q 8.296875 24.265625 8.296875 25 +Q 8.296875 25.734375 8.828125 26.359375 +Q 9.375 27 10.203125 27 +L 67.578125 27 +Q 68.359375 27 68.875 26.359375 +Q 69.390625 25.734375 69.390625 25 +Q 69.390625 24.265625 68.875 23.625 +Q 68.359375 23 67.578125 23 +z +" id="Cmsy10-161"/> + <path d="M 9.515625 7.71875 +Q 11.859375 4.296875 15.8125 2.640625 +Q 19.78125 0.984375 24.3125 0.984375 +Q 30.125 0.984375 32.5625 5.9375 +Q 35.015625 10.890625 35.015625 17.1875 +Q 35.015625 20.015625 34.5 22.84375 +Q 33.984375 25.6875 32.765625 28.125 +Q 31.546875 30.5625 29.421875 32.03125 +Q 27.296875 33.5 24.21875 33.5 +L 17.578125 33.5 +Q 16.703125 33.5 16.703125 34.421875 +L 16.703125 35.296875 +Q 16.703125 36.078125 17.578125 36.078125 +L 23.09375 36.53125 +Q 26.609375 36.53125 28.921875 39.15625 +Q 31.25 41.796875 32.328125 45.578125 +Q 33.40625 49.359375 33.40625 52.78125 +Q 33.40625 57.5625 31.15625 60.640625 +Q 28.90625 63.71875 24.3125 63.71875 +Q 20.515625 63.71875 17.046875 62.28125 +Q 13.578125 60.84375 11.53125 57.90625 +Q 11.71875 57.953125 11.859375 57.984375 +Q 12.015625 58.015625 12.203125 58.015625 +Q 14.453125 58.015625 15.96875 56.453125 +Q 17.484375 54.890625 17.484375 52.6875 +Q 17.484375 50.53125 15.96875 48.96875 +Q 14.453125 47.40625 12.203125 47.40625 +Q 10.015625 47.40625 8.453125 48.96875 +Q 6.890625 50.53125 6.890625 52.6875 +Q 6.890625 56.984375 9.46875 60.15625 +Q 12.0625 63.328125 16.140625 64.96875 +Q 20.21875 66.609375 24.3125 66.609375 +Q 27.34375 66.609375 30.703125 65.703125 +Q 34.078125 64.796875 36.8125 63.109375 +Q 39.546875 61.421875 41.28125 58.78125 +Q 43.015625 56.15625 43.015625 52.78125 +Q 43.015625 48.578125 41.140625 45.015625 +Q 39.265625 41.453125 35.984375 38.859375 +Q 32.71875 36.28125 28.8125 35.015625 +Q 33.15625 34.1875 37.0625 31.734375 +Q 40.96875 29.296875 43.328125 25.484375 +Q 45.703125 21.6875 45.703125 17.28125 +Q 45.703125 11.765625 42.671875 7.296875 +Q 39.65625 2.828125 34.71875 0.3125 +Q 29.78125 -2.203125 24.3125 -2.203125 +Q 19.625 -2.203125 14.90625 -0.40625 +Q 10.203125 1.375 7.203125 4.9375 +Q 4.203125 8.5 4.203125 13.484375 +Q 4.203125 15.96875 5.859375 17.625 +Q 7.515625 19.28125 10.015625 19.28125 +Q 11.625 19.28125 12.96875 18.53125 +Q 14.3125 17.78125 15.0625 16.40625 +Q 15.828125 15.046875 15.828125 13.484375 +Q 15.828125 11.03125 14.109375 9.375 +Q 12.40625 7.71875 10.015625 7.71875 +z +" id="Cmr10-51"/> + </defs> + <g transform="translate(8.72 198.042)rotate(-90)scale(0.1 -0.1)"> + <use transform="translate(0 0.109375)" xlink:href="#CMUSerif-Roman-83"/> + <use transform="translate(55.499985 0.109375)" xlink:href="#CMUSerif-Roman-70"/> + <use transform="translate(120.699982 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(153.999969 0.109375)" xlink:href="#CMUSerif-Roman-116"/> + <use transform="translate(192.799957 0.109375)" xlink:href="#CMUSerif-Roman-104"/> + <use transform="translate(248.299942 0.109375)" xlink:href="#CMUSerif-Roman-114"/> + <use transform="translate(287.399933 0.109375)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(331.799927 0.109375)" xlink:href="#CMUSerif-Roman-115"/> + <use transform="translate(371.199921 0.109375)" xlink:href="#CMUSerif-Roman-104"/> + <use transform="translate(426.699905 0.109375)" xlink:href="#CMUSerif-Roman-111"/> + <use transform="translate(476.69989 0.109375)" xlink:href="#CMUSerif-Roman-108"/> + <use transform="translate(504.399887 0.109375)" xlink:href="#CMUSerif-Roman-100"/> + <use transform="translate(559.899872 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(593.19986 0.109375)" xlink:href="#CMUSerif-Roman-110"/> + <use transform="translate(648.699844 0.109375)" xlink:href="#CMUSerif-Roman-117"/> + <use transform="translate(704.199829 0.109375)" xlink:href="#CMUSerif-Roman-109"/> + <use transform="translate(787.499817 0.109375)" xlink:href="#CMUSerif-Roman-98"/> + <use transform="translate(842.999802 0.109375)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(887.399796 0.109375)" xlink:href="#CMUSerif-Roman-114"/> + <use transform="translate(926.499786 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(959.799774 0.109375)" xlink:href="#CMUSerif-Roman-100"/> + <use transform="translate(1015.299759 0.109375)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(1059.699753 0.109375)" xlink:href="#CMUSerif-Roman-110"/> + <use transform="translate(1115.199738 0.109375)" xlink:href="#CMUSerif-Roman-115"/> + <use transform="translate(1154.599731 0.109375)" xlink:href="#CMUSerif-Roman-105"/> + <use transform="translate(1182.299728 0.109375)" xlink:href="#CMUSerif-Roman-116"/> + <use transform="translate(1221.099716 0.109375)" xlink:href="#CMUSerif-Roman-121"/> + <use transform="translate(1273.799713 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(1307.099701 0.109375)" xlink:href="#Cmmi10-110"/> + <use transform="translate(1367.109467 -16.896875)scale(0.7)" xlink:href="#Cmr10-72"/> + <use transform="translate(1419.609467 -16.896875)scale(0.7)" xlink:href="#Cmmi10-59"/> + <use transform="translate(1450.651459 -16.896875)scale(0.7)" xlink:href="#Cmr10-116"/> + <use transform="translate(1477.82431 -16.896875)scale(0.7)" xlink:href="#Cmr10-104"/> + <use transform="translate(1516.686615 -16.896875)scale(0.7)" xlink:href="#Cmr10-114"/> + <use transform="translate(1544.064545 -16.896875)scale(0.7)" xlink:href="#Cmr10-101"/> + <use transform="translate(1575.133881 -16.896875)scale(0.7)" xlink:href="#Cmr10-115"/> + <use transform="translate(1602.716888 -16.896875)scale(0.7)" xlink:href="#Cmr10-104"/> + <use transform="translate(1647.956537 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(1681.256525 0.109375)" xlink:href="#CMUSerif-Roman-91"/> + <use transform="translate(1709.056512 0.109375)" xlink:href="#CMUSerif-Roman-99"/> + <use transform="translate(1753.456506 0.109375)" xlink:href="#CMUSerif-Roman-109"/> + <use transform="translate(1841.220635 38.373438)scale(0.7)" xlink:href="#Cmsy10-161"/> + <use transform="translate(1895.600518 38.373438)scale(0.7)" xlink:href="#Cmr10-51"/> + <use transform="translate(1936.977861 0.109375)" xlink:href="#CMUSerif-Roman-93"/> + </g> + </g> + </g> + <g id="line2d_54"> + <path clip-path="url(#p23ab05f3c8)" d="M 6.804 27.524431 +L 66.139784 27.620407 +L 227.8 164.984202 +L 227.8 164.984202 +" style="fill:none;stroke:#000000;stroke-linecap:square;"/> + </g> + <g id="line2d_55"> + <path clip-path="url(#p23ab05f3c8)" d="M 128.653332 63.658216 +L 183.085332 109.90946 +" style="fill:none;stroke:#000000;stroke-dasharray:2.22,0.96;stroke-dashoffset:0;stroke-width:0.6;"/> + </g> + <g id="line2d_56"> + <path clip-path="url(#p23ab05f3c8)" d="M -1 27.524431 +L 227.8 27.524431 +" style="fill:none;stroke:#000000;stroke-dasharray:0.6,0.99;stroke-dashoffset:0;stroke-width:0.6;"/> + </g> + <g id="line2d_57"> + <path clip-path="url(#p23ab05f3c8)" d="M 151.076832 227.8 +L 151.076832 99.792 +" style="fill:none;stroke:#000000;stroke-dasharray:0.6,0.99;stroke-dashoffset:0;stroke-width:0.6;"/> + </g> + <g id="line2d_58"> + <path clip-path="url(#p23ab05f3c8)" d="M -1 99.792 +L 151.076832 99.792 +" style="fill:none;stroke:#000000;stroke-dasharray:0.6,0.99;stroke-dashoffset:0;stroke-width:0.6;"/> + </g> + <g id="patch_3"> + <path d="M 34.02 197.316 +L 34.02 2.268 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_4"> + <path d="M 224.532 197.316 +L 224.532 2.268 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_5"> + <path d="M 34.02 197.316 +L 224.532 197.316 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_6"> + <path d="M 34.02 2.268 +L 224.532 2.268 +" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> + </g> + <g id="patch_7"> + <path d="M 174.027021 190.953156 +Q 174.027021 184.004135 174.027021 177.055114 +L 172.577021 177.055114 +Q 173.327021 174.557342 174.077021 172.059569 +Q 174.827021 174.557342 175.577021 177.055114 +L 174.127021 177.055114 +Q 174.127021 184.004135 174.127021 190.953156 +L 174.027021 190.953156 +z +" style="stroke:#000000;stroke-linecap:round;"/> + </g> + <g id="text_12"> + <!-- ${Z_\odot}$ --> + <defs> + <path d="M 38.921875 -8.296875 +Q 32.078125 -8.296875 26.0625 -5.703125 +Q 20.0625 -3.125 15.40625 1.484375 +Q 10.75 6.109375 8.171875 12.1875 +Q 5.609375 18.265625 5.609375 25 +Q 5.609375 31.84375 8.140625 37.84375 +Q 10.6875 43.84375 15.375 48.53125 +Q 20.0625 53.21875 26.0625 55.75 +Q 32.078125 58.296875 38.921875 58.296875 +Q 45.703125 58.296875 51.75 55.703125 +Q 57.8125 53.125 62.40625 48.5 +Q 67 43.890625 69.5625 37.828125 +Q 72.125 31.78125 72.125 25 +Q 72.125 18.3125 69.53125 12.1875 +Q 66.9375 6.0625 62.375 1.484375 +Q 57.8125 -3.078125 51.75 -5.6875 +Q 45.703125 -8.296875 38.921875 -8.296875 +z +M 38.921875 -5.421875 +Q 44.96875 -5.421875 50.53125 -3.046875 +Q 56.109375 -0.6875 60.296875 3.515625 +Q 64.5 7.71875 66.84375 13.25 +Q 69.1875 18.796875 69.1875 25 +Q 69.1875 31.203125 66.8125 36.796875 +Q 64.453125 42.390625 60.34375 46.515625 +Q 56.25 50.640625 50.703125 53.03125 +Q 45.171875 55.421875 38.921875 55.421875 +Q 32.671875 55.421875 27.09375 53.03125 +Q 21.53125 50.640625 17.421875 46.53125 +Q 13.328125 42.4375 10.90625 36.71875 +Q 8.5 31 8.5 25 +Q 8.5 19 10.859375 13.359375 +Q 13.234375 7.71875 17.453125 3.515625 +Q 21.6875 -0.6875 27.265625 -3.046875 +Q 32.859375 -5.421875 38.921875 -5.421875 +z +M 38.921875 17.828125 +Q 36.03125 17.828125 33.859375 19.953125 +Q 31.6875 22.078125 31.6875 25 +Q 31.6875 27 32.65625 28.609375 +Q 33.640625 30.21875 35.296875 31.1875 +Q 36.96875 32.171875 38.921875 32.171875 +Q 40.765625 32.171875 42.40625 31.1875 +Q 44.046875 30.21875 45.015625 28.609375 +Q 46 27 46 25 +Q 46 22.078125 43.875 19.953125 +Q 41.75 17.828125 38.921875 17.828125 +z +" id="Cmsy10-175"/> + </defs> + <g transform="translate(175.655329 188.534116)scale(0.09 -0.09)"> + <use transform="translate(0 0.6875)" xlink:href="#Cmmi10-90"/> + <use transform="translate(80.503906 -16.31875)scale(0.7)" xlink:href="#Cmsy10-175"/> + </g> + </g> + <g id="text_13"> + <!-- Z^threshold_slope --> + <defs> + <path d="M 8.6875 72.90625 +L 56 72.90625 +L 56 65.375 +L 17.921875 8.296875 +L 57.078125 8.296875 +L 57.078125 0 +L 7.625 0 +L 7.625 7.515625 +L 44.671875 64.59375 +L 8.6875 64.59375 +z +" id="DejaVuSansMono-90"/> + <path d="M 34.421875 72.90625 +L 56.6875 45.703125 +L 48 45.703125 +L 30.078125 64.984375 +L 12.203125 45.703125 +L 3.515625 45.703125 +L 25.78125 72.90625 +z +" id="DejaVuSansMono-94"/> + <path d="M 29.984375 70.21875 +L 29.984375 54.6875 +L 50.390625 54.6875 +L 50.390625 47.703125 +L 29.984375 47.703125 +L 29.984375 18.015625 +Q 29.984375 11.96875 32.28125 9.5625 +Q 34.578125 7.171875 40.28125 7.171875 +L 50.390625 7.171875 +L 50.390625 0 +L 39.40625 0 +Q 29.296875 0 25.140625 4.046875 +Q 21 8.109375 21 18.015625 +L 21 47.703125 +L 6.390625 47.703125 +L 6.390625 54.6875 +L 21 54.6875 +L 21 70.21875 +z +" id="DejaVuSansMono-116"/> + <path d="M 51.3125 33.890625 +L 51.3125 0 +L 42.28125 0 +L 42.28125 33.890625 +Q 42.28125 41.265625 39.6875 44.71875 +Q 37.109375 48.1875 31.59375 48.1875 +Q 25.296875 48.1875 21.890625 43.71875 +Q 18.5 39.265625 18.5 30.90625 +L 18.5 0 +L 9.515625 0 +L 9.515625 75.984375 +L 18.5 75.984375 +L 18.5 46.484375 +Q 20.90625 51.171875 25 53.578125 +Q 29.109375 56 34.71875 56 +Q 43.0625 56 47.1875 50.5 +Q 51.3125 45.015625 51.3125 33.890625 +z +" id="DejaVuSansMono-104"/> + <path d="M 56.390625 43.40625 +Q 53.515625 45.65625 50.53125 46.671875 +Q 47.5625 47.703125 44 47.703125 +Q 35.59375 47.703125 31.140625 42.421875 +Q 26.703125 37.15625 26.703125 27.203125 +L 26.703125 0 +L 17.671875 0 +L 17.671875 54.6875 +L 26.703125 54.6875 +L 26.703125 44 +Q 28.953125 49.8125 33.609375 52.90625 +Q 38.28125 56 44.671875 56 +Q 48 56 50.875 55.171875 +Q 53.765625 54.34375 56.390625 52.59375 +z +" id="DejaVuSansMono-114"/> + <path d="M 54.296875 29.59375 +L 54.296875 25.203125 +L 15.375 25.203125 +L 15.375 24.90625 +Q 15.375 15.96875 20.03125 11.078125 +Q 24.703125 6.203125 33.203125 6.203125 +Q 37.5 6.203125 42.1875 7.5625 +Q 46.875 8.9375 52.203125 11.71875 +L 52.203125 2.78125 +Q 47.078125 0.6875 42.3125 -0.359375 +Q 37.546875 -1.421875 33.109375 -1.421875 +Q 20.359375 -1.421875 13.171875 6.21875 +Q 6 13.875 6 27.296875 +Q 6 40.375 13.03125 48.1875 +Q 20.0625 56 31.78125 56 +Q 42.234375 56 48.265625 48.921875 +Q 54.296875 41.84375 54.296875 29.59375 +z +M 45.3125 32.234375 +Q 45.125 40.140625 41.578125 44.265625 +Q 38.03125 48.390625 31.390625 48.390625 +Q 24.90625 48.390625 20.703125 44.09375 +Q 16.5 39.796875 15.71875 32.171875 +z +" id="DejaVuSansMono-101"/> + <path d="M 47.515625 52.78125 +L 47.515625 44 +Q 43.65625 46.234375 39.75 47.359375 +Q 35.84375 48.484375 31.78125 48.484375 +Q 25.6875 48.484375 22.671875 46.5 +Q 19.671875 44.53125 19.671875 40.484375 +Q 19.671875 36.8125 21.921875 35 +Q 24.171875 33.203125 33.109375 31.5 +L 36.71875 30.8125 +Q 43.40625 29.546875 46.84375 25.734375 +Q 50.296875 21.921875 50.296875 15.828125 +Q 50.296875 7.71875 44.53125 3.140625 +Q 38.765625 -1.421875 28.515625 -1.421875 +Q 24.46875 -1.421875 20.015625 -0.5625 +Q 15.578125 0.296875 10.40625 2 +L 10.40625 11.28125 +Q 15.4375 8.6875 20.015625 7.390625 +Q 24.609375 6.109375 28.71875 6.109375 +Q 34.671875 6.109375 37.9375 8.515625 +Q 41.21875 10.9375 41.21875 15.28125 +Q 41.21875 21.53125 29.25 23.921875 +L 28.859375 24.03125 +L 25.484375 24.703125 +Q 17.71875 26.21875 14.15625 29.8125 +Q 10.59375 33.40625 10.59375 39.59375 +Q 10.59375 47.46875 15.90625 51.734375 +Q 21.234375 56 31.109375 56 +Q 35.5 56 39.546875 55.1875 +Q 43.609375 54.390625 47.515625 52.78125 +z +" id="DejaVuSansMono-115"/> + <path d="M 30.078125 48.390625 +Q 23.25 48.390625 19.734375 43.0625 +Q 16.21875 37.75 16.21875 27.296875 +Q 16.21875 16.890625 19.734375 11.546875 +Q 23.25 6.203125 30.078125 6.203125 +Q 36.96875 6.203125 40.484375 11.546875 +Q 44 16.890625 44 27.296875 +Q 44 37.75 40.484375 43.0625 +Q 36.96875 48.390625 30.078125 48.390625 +z +M 30.078125 56 +Q 41.453125 56 47.484375 48.625 +Q 53.515625 41.265625 53.515625 27.296875 +Q 53.515625 13.28125 47.5 5.921875 +Q 41.5 -1.421875 30.078125 -1.421875 +Q 18.703125 -1.421875 12.6875 5.921875 +Q 6.6875 13.28125 6.6875 27.296875 +Q 6.6875 41.265625 12.6875 48.625 +Q 18.703125 56 30.078125 56 +z +" id="DejaVuSansMono-111"/> + <path d="M 31.203125 19.828125 +Q 31.203125 13.765625 33.421875 10.6875 +Q 35.640625 7.625 39.984375 7.625 +L 50.484375 7.625 +L 50.484375 0 +L 39.109375 0 +Q 31.0625 0 26.640625 5.171875 +Q 22.21875 10.359375 22.21875 19.828125 +L 22.21875 69.484375 +L 7.8125 69.484375 +L 7.8125 76.515625 +L 31.203125 76.515625 +z +" id="DejaVuSansMono-108"/> + <path d="M 41.890625 47.703125 +L 41.890625 75.984375 +L 50.875 75.984375 +L 50.875 0 +L 41.890625 0 +L 41.890625 6.890625 +Q 39.65625 2.828125 35.90625 0.703125 +Q 32.171875 -1.421875 27.296875 -1.421875 +Q 17.390625 -1.421875 11.6875 6.265625 +Q 6 13.96875 6 27.484375 +Q 6 40.828125 11.71875 48.40625 +Q 17.4375 56 27.296875 56 +Q 32.234375 56 35.984375 53.875 +Q 39.75 51.765625 41.890625 47.703125 +z +M 15.484375 27.296875 +Q 15.484375 16.84375 18.796875 11.515625 +Q 22.125 6.203125 28.609375 6.203125 +Q 35.109375 6.203125 38.5 11.5625 +Q 41.890625 16.9375 41.890625 27.296875 +Q 41.890625 37.703125 38.5 43.046875 +Q 35.109375 48.390625 28.609375 48.390625 +Q 22.125 48.390625 18.796875 43.0625 +Q 15.484375 37.75 15.484375 27.296875 +z +" id="DejaVuSansMono-100"/> + <path d="M 60.203125 -19.671875 +L 60.203125 -23.578125 +L 0 -23.578125 +L 0 -19.671875 +z +" id="DejaVuSansMono-95"/> + <path d="M 18.3125 6.890625 +L 18.3125 -20.796875 +L 9.28125 -20.796875 +L 9.28125 54.6875 +L 18.3125 54.6875 +L 18.3125 47.703125 +Q 20.5625 51.765625 24.296875 53.875 +Q 28.03125 56 32.90625 56 +Q 42.828125 56 48.46875 48.328125 +Q 54.109375 40.671875 54.109375 27.09375 +Q 54.109375 13.765625 48.4375 6.171875 +Q 42.78125 -1.421875 32.90625 -1.421875 +Q 27.9375 -1.421875 24.1875 0.703125 +Q 20.453125 2.828125 18.3125 6.890625 +z +M 44.671875 27.296875 +Q 44.671875 37.75 41.375 43.0625 +Q 38.09375 48.390625 31.59375 48.390625 +Q 25.046875 48.390625 21.671875 43.046875 +Q 18.3125 37.703125 18.3125 27.296875 +Q 18.3125 16.9375 21.671875 11.5625 +Q 25.046875 6.203125 31.59375 6.203125 +Q 38.09375 6.203125 41.375 11.515625 +Q 44.671875 16.84375 44.671875 27.296875 +z +" id="DejaVuSansMono-112"/> + </defs> + <g transform="translate(129.714233 61.930385)rotate(-320)scale(0.07 -0.07)"> + <use xlink:href="#DejaVuSansMono-90"/> + <use x="60.205078" xlink:href="#DejaVuSansMono-94"/> + <use x="120.410156" xlink:href="#DejaVuSansMono-116"/> + <use x="180.615234" xlink:href="#DejaVuSansMono-104"/> + <use x="240.820312" xlink:href="#DejaVuSansMono-114"/> + <use x="301.025391" xlink:href="#DejaVuSansMono-101"/> + <use x="361.230469" xlink:href="#DejaVuSansMono-115"/> + <use x="421.435547" xlink:href="#DejaVuSansMono-104"/> + <use x="481.640625" xlink:href="#DejaVuSansMono-111"/> + <use x="541.845703" xlink:href="#DejaVuSansMono-108"/> + <use x="602.050781" xlink:href="#DejaVuSansMono-100"/> + <use x="662.255859" xlink:href="#DejaVuSansMono-95"/> + <use x="722.460938" xlink:href="#DejaVuSansMono-115"/> + <use x="782.666016" xlink:href="#DejaVuSansMono-108"/> + <use x="842.871094" xlink:href="#DejaVuSansMono-111"/> + <use x="903.076172" xlink:href="#DejaVuSansMono-112"/> + <use x="963.28125" xlink:href="#DejaVuSansMono-101"/> + </g> + </g> + <g id="text_14"> + <!-- threshold_max_density_H_p_cm3 --> + <defs> + <path d="M 33.015625 49.125 +Q 34.671875 52.640625 37.234375 54.3125 +Q 39.796875 56 43.40625 56 +Q 50 56 52.703125 50.890625 +Q 55.421875 45.796875 55.421875 31.6875 +L 55.421875 0 +L 47.21875 0 +L 47.21875 31.296875 +Q 47.21875 42.875 45.921875 45.671875 +Q 44.625 48.484375 41.21875 48.484375 +Q 37.3125 48.484375 35.859375 45.484375 +Q 34.421875 42.484375 34.421875 31.296875 +L 34.421875 0 +L 26.21875 0 +L 26.21875 31.296875 +Q 26.21875 43.015625 24.828125 45.75 +Q 23.4375 48.484375 19.828125 48.484375 +Q 16.265625 48.484375 14.875 45.484375 +Q 13.484375 42.484375 13.484375 31.296875 +L 13.484375 0 +L 5.328125 0 +L 5.328125 54.6875 +L 13.484375 54.6875 +L 13.484375 50 +Q 15.09375 52.9375 17.5 54.46875 +Q 19.921875 56 23 56 +Q 26.703125 56 29.171875 54.296875 +Q 31.640625 52.59375 33.015625 49.125 +z +" id="DejaVuSansMono-109"/> + <path d="M 34.28125 27.484375 +L 31.296875 27.484375 +Q 23.4375 27.484375 19.453125 24.71875 +Q 15.484375 21.96875 15.484375 16.5 +Q 15.484375 11.578125 18.453125 8.84375 +Q 21.4375 6.109375 26.703125 6.109375 +Q 34.125 6.109375 38.375 11.25 +Q 42.625 16.40625 42.671875 25.484375 +L 42.671875 27.484375 +z +M 51.703125 31.203125 +L 51.703125 0 +L 42.671875 0 +L 42.671875 8.109375 +Q 39.796875 3.21875 35.421875 0.890625 +Q 31.0625 -1.421875 24.8125 -1.421875 +Q 16.453125 -1.421875 11.46875 3.296875 +Q 6.5 8.015625 6.5 15.921875 +Q 6.5 25.046875 12.625 29.78125 +Q 18.75 34.515625 30.609375 34.515625 +L 42.671875 34.515625 +L 42.671875 35.9375 +Q 42.625 42.484375 39.34375 45.4375 +Q 36.078125 48.390625 28.90625 48.390625 +Q 24.3125 48.390625 19.625 47.0625 +Q 14.9375 45.75 10.5 43.21875 +L 10.5 52.203125 +Q 15.484375 54.109375 20.046875 55.046875 +Q 24.609375 56 28.90625 56 +Q 35.6875 56 40.5 54 +Q 45.3125 52 48.296875 48 +Q 50.140625 45.5625 50.921875 41.96875 +Q 51.703125 38.375 51.703125 31.203125 +z +" id="DejaVuSansMono-97"/> + <path d="M 54.59375 54.6875 +L 35.015625 28.515625 +L 56.5 0 +L 46.09375 0 +L 30.078125 21.921875 +L 14.109375 0 +L 3.71875 0 +L 25.203125 28.515625 +L 5.609375 54.6875 +L 15.578125 54.6875 +L 30.078125 34.90625 +L 44.484375 54.6875 +z +" id="DejaVuSansMono-120"/> + <path d="M 51.3125 33.890625 +L 51.3125 0 +L 42.28125 0 +L 42.28125 33.890625 +Q 42.28125 41.265625 39.6875 44.71875 +Q 37.109375 48.1875 31.59375 48.1875 +Q 25.296875 48.1875 21.890625 43.71875 +Q 18.5 39.265625 18.5 30.90625 +L 18.5 0 +L 9.515625 0 +L 9.515625 54.6875 +L 18.5 54.6875 +L 18.5 46.484375 +Q 20.90625 51.171875 25 53.578125 +Q 29.109375 56 34.71875 56 +Q 43.0625 56 47.1875 50.5 +Q 51.3125 45.015625 51.3125 33.890625 +z +" id="DejaVuSansMono-110"/> + <path d="M 12.5 54.6875 +L 35.5 54.6875 +L 35.5 6.984375 +L 53.328125 6.984375 +L 53.328125 0 +L 8.6875 0 +L 8.6875 6.984375 +L 26.515625 6.984375 +L 26.515625 47.703125 +L 12.5 47.703125 +z +M 26.515625 75.984375 +L 35.5 75.984375 +L 35.5 64.59375 +L 26.515625 64.59375 +z +" id="DejaVuSansMono-105"/> + <path d="M 41.890625 17.578125 +Q 39.65625 11.859375 36.1875 2.546875 +Q 31.34375 -10.359375 29.6875 -13.1875 +Q 27.4375 -17 24.0625 -18.890625 +Q 20.703125 -20.796875 16.21875 -20.796875 +L 8.984375 -20.796875 +L 8.984375 -13.28125 +L 14.3125 -13.28125 +Q 18.265625 -13.28125 20.5 -10.984375 +Q 22.75 -8.6875 26.21875 0.875 +L 5.078125 54.6875 +L 14.59375 54.6875 +L 30.8125 11.921875 +L 46.78125 54.6875 +L 56.296875 54.6875 +z +" id="DejaVuSansMono-121"/> + <path d="M 6.6875 72.90625 +L 16.609375 72.90625 +L 16.609375 43.015625 +L 43.609375 43.015625 +L 43.609375 72.90625 +L 53.515625 72.90625 +L 53.515625 0 +L 43.609375 0 +L 43.609375 34.71875 +L 16.609375 34.71875 +L 16.609375 0 +L 6.6875 0 +z +" id="DejaVuSansMono-72"/> + <path d="M 51.8125 2.78125 +Q 48.1875 0.6875 44.359375 -0.359375 +Q 40.53125 -1.421875 36.53125 -1.421875 +Q 23.828125 -1.421875 16.671875 6.1875 +Q 9.515625 13.8125 9.515625 27.296875 +Q 9.515625 40.765625 16.671875 48.375 +Q 23.828125 56 36.53125 56 +Q 40.484375 56 44.234375 54.96875 +Q 48 53.953125 51.8125 51.8125 +L 51.8125 42.390625 +Q 48.25 45.5625 44.65625 46.96875 +Q 41.0625 48.390625 36.53125 48.390625 +Q 28.078125 48.390625 23.53125 42.921875 +Q 19 37.453125 19 27.296875 +Q 19 17.1875 23.5625 11.6875 +Q 28.125 6.203125 36.53125 6.203125 +Q 41.21875 6.203125 44.921875 7.640625 +Q 48.640625 9.078125 51.8125 12.109375 +z +" id="DejaVuSansMono-99"/> + <path d="M 37.890625 39.015625 +Q 45.0625 37.109375 48.875 32.25 +Q 52.6875 27.390625 52.6875 20.125 +Q 52.6875 10.0625 45.921875 4.3125 +Q 39.15625 -1.421875 27.203125 -1.421875 +Q 22.171875 -1.421875 16.9375 -0.484375 +Q 11.71875 0.4375 6.6875 2.203125 +L 6.6875 12.015625 +Q 11.671875 9.421875 16.5 8.15625 +Q 21.34375 6.890625 26.125 6.890625 +Q 34.234375 6.890625 38.578125 10.546875 +Q 42.921875 14.203125 42.921875 21.09375 +Q 42.921875 27.4375 38.578125 31.171875 +Q 34.234375 34.90625 26.8125 34.90625 +L 19.28125 34.90625 +L 19.28125 43.015625 +L 26.8125 43.015625 +Q 33.59375 43.015625 37.40625 45.984375 +Q 41.21875 48.96875 41.21875 54.296875 +Q 41.21875 59.90625 37.671875 62.90625 +Q 34.125 65.921875 27.59375 65.921875 +Q 23.25 65.921875 18.609375 64.9375 +Q 13.96875 63.96875 8.890625 62.015625 +L 8.890625 71.09375 +Q 14.796875 72.65625 19.40625 73.4375 +Q 24.03125 74.21875 27.59375 74.21875 +Q 38.234375 74.21875 44.609375 68.875 +Q 50.984375 63.53125 50.984375 54.6875 +Q 50.984375 48.6875 47.625 44.671875 +Q 44.28125 40.671875 37.890625 39.015625 +z +" id="DejaVuSansMono-51"/> + </defs> + <g transform="translate(101.437332 24.663313)scale(0.07 -0.07)"> + <use xlink:href="#DejaVuSansMono-116"/> + <use x="60.205078" xlink:href="#DejaVuSansMono-104"/> + <use x="120.410156" xlink:href="#DejaVuSansMono-114"/> + <use x="180.615234" xlink:href="#DejaVuSansMono-101"/> + <use x="240.820312" xlink:href="#DejaVuSansMono-115"/> + <use x="301.025391" xlink:href="#DejaVuSansMono-104"/> + <use x="361.230469" xlink:href="#DejaVuSansMono-111"/> + <use x="421.435547" xlink:href="#DejaVuSansMono-108"/> + <use x="481.640625" xlink:href="#DejaVuSansMono-100"/> + <use x="541.845703" xlink:href="#DejaVuSansMono-95"/> + <use x="602.050781" xlink:href="#DejaVuSansMono-109"/> + <use x="662.255859" xlink:href="#DejaVuSansMono-97"/> + <use x="722.460938" xlink:href="#DejaVuSansMono-120"/> + <use x="782.666016" xlink:href="#DejaVuSansMono-95"/> + <use x="842.871094" xlink:href="#DejaVuSansMono-100"/> + <use x="903.076172" xlink:href="#DejaVuSansMono-101"/> + <use x="963.28125" xlink:href="#DejaVuSansMono-110"/> + <use x="1023.486328" xlink:href="#DejaVuSansMono-115"/> + <use x="1083.691406" xlink:href="#DejaVuSansMono-105"/> + <use x="1143.896484" xlink:href="#DejaVuSansMono-116"/> + <use x="1204.101562" xlink:href="#DejaVuSansMono-121"/> + <use x="1264.306641" xlink:href="#DejaVuSansMono-95"/> + <use x="1324.511719" xlink:href="#DejaVuSansMono-72"/> + <use x="1384.716797" xlink:href="#DejaVuSansMono-95"/> + <use x="1444.921875" xlink:href="#DejaVuSansMono-112"/> + <use x="1505.126953" xlink:href="#DejaVuSansMono-95"/> + <use x="1565.332031" xlink:href="#DejaVuSansMono-99"/> + <use x="1625.537109" xlink:href="#DejaVuSansMono-109"/> + <use x="1685.742188" xlink:href="#DejaVuSansMono-51"/> + </g> + </g> + <g id="text_15"> + <!-- threshold_norm_H_p_cm3 --> + <g transform="translate(47.005332 96.930882)scale(0.07 -0.07)"> + <use xlink:href="#DejaVuSansMono-116"/> + <use x="60.205078" xlink:href="#DejaVuSansMono-104"/> + <use x="120.410156" xlink:href="#DejaVuSansMono-114"/> + <use x="180.615234" xlink:href="#DejaVuSansMono-101"/> + <use x="240.820312" xlink:href="#DejaVuSansMono-115"/> + <use x="301.025391" xlink:href="#DejaVuSansMono-104"/> + <use x="361.230469" xlink:href="#DejaVuSansMono-111"/> + <use x="421.435547" xlink:href="#DejaVuSansMono-108"/> + <use x="481.640625" xlink:href="#DejaVuSansMono-100"/> + <use x="541.845703" xlink:href="#DejaVuSansMono-95"/> + <use x="602.050781" xlink:href="#DejaVuSansMono-110"/> + <use x="662.255859" xlink:href="#DejaVuSansMono-111"/> + <use x="722.460938" xlink:href="#DejaVuSansMono-114"/> + <use x="782.666016" xlink:href="#DejaVuSansMono-109"/> + <use x="842.871094" xlink:href="#DejaVuSansMono-95"/> + <use x="903.076172" xlink:href="#DejaVuSansMono-72"/> + <use x="963.28125" xlink:href="#DejaVuSansMono-95"/> + <use x="1023.486328" xlink:href="#DejaVuSansMono-112"/> + <use x="1083.691406" xlink:href="#DejaVuSansMono-95"/> + <use x="1143.896484" xlink:href="#DejaVuSansMono-99"/> + <use x="1204.101562" xlink:href="#DejaVuSansMono-109"/> + <use x="1264.306641" xlink:href="#DejaVuSansMono-51"/> + </g> + </g> + <g id="text_16"> + <!-- threshold_Z0 --> + <defs> + <path d="M 23.578125 36.625 +Q 23.578125 39.3125 25.453125 41.265625 +Q 27.34375 43.21875 29.984375 43.21875 +Q 32.71875 43.21875 34.671875 41.265625 +Q 36.625 39.3125 36.625 36.625 +Q 36.625 33.890625 34.6875 31.984375 +Q 32.765625 30.078125 29.984375 30.078125 +Q 27.25 30.078125 25.40625 31.9375 +Q 23.578125 33.796875 23.578125 36.625 +z +M 30.078125 66.40625 +Q 23.1875 66.40625 19.796875 58.984375 +Q 16.40625 51.5625 16.40625 36.375 +Q 16.40625 21.234375 19.796875 13.8125 +Q 23.1875 6.390625 30.078125 6.390625 +Q 37.015625 6.390625 40.40625 13.8125 +Q 43.796875 21.234375 43.796875 36.375 +Q 43.796875 51.5625 40.40625 58.984375 +Q 37.015625 66.40625 30.078125 66.40625 +z +M 30.078125 74.21875 +Q 41.75 74.21875 47.734375 64.640625 +Q 53.71875 55.078125 53.71875 36.375 +Q 53.71875 17.71875 47.734375 8.140625 +Q 41.75 -1.421875 30.078125 -1.421875 +Q 18.40625 -1.421875 12.453125 8.140625 +Q 6.5 17.71875 6.5 36.375 +Q 6.5 55.078125 12.453125 64.640625 +Q 18.40625 74.21875 30.078125 74.21875 +z +" id="DejaVuSansMono-48"/> + </defs> + <g transform="translate(148.181028 186.438647)rotate(-90)scale(0.07 -0.07)"> + <use xlink:href="#DejaVuSansMono-116"/> + <use x="60.205078" xlink:href="#DejaVuSansMono-104"/> + <use x="120.410156" xlink:href="#DejaVuSansMono-114"/> + <use x="180.615234" xlink:href="#DejaVuSansMono-101"/> + <use x="240.820312" xlink:href="#DejaVuSansMono-115"/> + <use x="301.025391" xlink:href="#DejaVuSansMono-104"/> + <use x="361.230469" xlink:href="#DejaVuSansMono-111"/> + <use x="421.435547" xlink:href="#DejaVuSansMono-108"/> + <use x="481.640625" xlink:href="#DejaVuSansMono-100"/> + <use x="541.845703" xlink:href="#DejaVuSansMono-95"/> + <use x="602.050781" xlink:href="#DejaVuSansMono-90"/> + <use x="662.255859" xlink:href="#DejaVuSansMono-48"/> + </g> + </g> + </g> + </g> + <defs> + <clipPath id="p23ab05f3c8"> + <rect height="195.048" width="190.512" x="34.02" y="2.268"/> + </clipPath> + </defs> +</svg> diff --git a/doc/RTD/source/SubgridModels/EAGLE/EAGLE_entropy_floor.svg b/doc/RTD/source/SubgridModels/EAGLE/EAGLE_entropy_floor.svg index 383b074fc947ed072dc50015152ba694b929c611..2b1061de9c001d4e48574b7ea7029ba1c280e37f 100644 --- a/doc/RTD/source/SubgridModels/EAGLE/EAGLE_entropy_floor.svg +++ b/doc/RTD/source/SubgridModels/EAGLE/EAGLE_entropy_floor.svg @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Created with matplotlib (http://matplotlib.org/) --> -<svg height="226pt" version="1.1" viewBox="0 0 226 226" width="226pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<!-- Created with matplotlib (https://matplotlib.org/) --> +<svg height="226.8pt" version="1.1" viewBox="0 0 226.8 226.8" width="226.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs> <style type="text/css"> *{stroke-linecap:butt;stroke-linejoin:round;} @@ -35,14 +35,14 @@ L 250.907152 -156.365649 L 250.907152 -156.365649 L 77.714425 -156.365649 z -" id="m8f9d87720a" style="stroke:#e6e6e6;"/> +" id="m5eebb27285" style="stroke:#e6e6e6;"/> </defs> - <g clip-path="url(#p107a2e5a22)"> - <use style="fill:#e6e6e6;stroke:#e6e6e6;" x="0" xlink:href="#m8f9d87720a" y="226.8"/> + <g clip-path="url(#pf19aa30d2c)"> + <use style="fill:#e6e6e6;stroke:#e6e6e6;" x="0" xlink:href="#m5eebb27285" y="226.8"/> </g> </g> <g id="PolyCollection_2"> - <path clip-path="url(#p107a2e5a22)" d="M 146.991516 49022.756825 + <path clip-path="url(#pf19aa30d2c)" d="M 146.991516 49022.756825 L 146.991516 85.113175 L 250.907152 -12.410825 L 250.907152 49022.756825 @@ -63,15 +63,15 @@ C -0.894634 -0.51958 -1 -0.265203 -1 0 C -1 0.265203 -0.894634 0.51958 -0.707107 0.707107 C -0.51958 0.894634 -0.265203 1 0 1 z -" id="me37d9803e9" style="stroke:#000000;"/> +" id="mbe6c555b8c" style="stroke:#000000;"/> </defs> - <g clip-path="url(#p107a2e5a22)"> - <use style="stroke:#000000;" x="77.714425" xlink:href="#me37d9803e9" y="70.434351"/> + <g clip-path="url(#pf19aa30d2c)"> + <use style="stroke:#000000;" x="77.714425" xlink:href="#mbe6c555b8c" y="70.434351"/> </g> </g> <g id="PathCollection_2"> - <g clip-path="url(#p107a2e5a22)"> - <use style="stroke:#000000;" x="146.991516" xlink:href="#me37d9803e9" y="85.113175"/> + <g clip-path="url(#pf19aa30d2c)"> + <use style="stroke:#000000;" x="146.991516" xlink:href="#mbe6c555b8c" y="85.113175"/> </g> </g> <g id="matplotlib.axis_1"> @@ -80,518 +80,1010 @@ z <defs> <path d="M 0 0 L 0 3.5 -" id="mddab006ef2" style="stroke:#000000;stroke-width:0.8;"/> +" id="m9a9665ec89" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> - <use style="stroke:#000000;stroke-width:0.8;" x="60.395152" xlink:href="#mddab006ef2" y="197.316"/> + <use style="stroke:#000000;stroke-width:0.8;" x="60.395152" xlink:href="#m9a9665ec89" y="197.316"/> </g> </g> <g id="text_1"> - <!-- $10^{-6}$ --> + <!-- $\mathdefault{10^{-6}}$ --> <defs> - <path d="M 29.09375 67.796875 -L 11.09375 58.703125 -L 11.09375 57.296875 -C 12.296875 57.796875 13.40625 58.203125 13.796875 58.40625 -C 15.59375 59.109375 17.296875 59.5 18.296875 59.5 -C 20.40625 59.5 21.296875 57.984375 21.296875 54.765625 -L 21.296875 9.25 -C 21.296875 5.921875 20.5 3.625 18.90625 2.703125 -C 17.40625 1.8125 16 1.5 11.796875 1.5 -L 11.796875 0 -L 39.40625 0 -L 39.40625 1.5 -C 31.5 1.5 29.90625 2.5 29.90625 7.34375 -L 29.90625 67.609375 -z -" id="Nimbus_Roman_No9_L_Regular-49"/> - <path d="M 25.40625 68 -C 19.90625 68 15.703125 66.3125 12 62.8125 -C 6.203125 57.203125 2.40625 45.703125 2.40625 34 -C 2.40625 23.109375 5.703125 11.40625 10.40625 5.8125 -C 14.09375 1.40625 19.203125 -1 25 -1 -C 30.09375 -1 34.40625 0.703125 38 4.203125 -C 43.796875 9.703125 47.59375 21.3125 47.59375 33.40625 -C 47.59375 53.90625 38.5 68 25.40625 68 -z -M 25.09375 65.40625 -C 33.5 65.40625 38 54.109375 38 33.203125 -C 38 12.3125 33.59375 1.609375 25 1.609375 -C 16.40625 1.609375 12 12.3125 12 33.109375 -C 12 54.3125 16.5 65.40625 25.09375 65.40625 -z -" id="Nimbus_Roman_No9_L_Regular-48"/> - <path d="M 65.90625 23 -C 67.59375 23 69.40625 23 69.40625 25 -C 69.40625 27 67.59375 27 65.90625 27 -L 11.796875 27 -C 10.09375 27 8.296875 27 8.296875 25 -C 8.296875 23 10.09375 23 11.796875 23 -z -" id="CMSY10-0"/> - <path d="M 44.59375 68.609375 -C 33.203125 67.609375 27.40625 65.703125 20.09375 60.609375 -C 9.296875 52.90625 3.40625 41.5 3.40625 28.15625 -C 3.40625 19.5 6.09375 10.75 10.40625 5.78125 -C 14.203125 1.390625 19.59375 -1 25.796875 -1 -C 38.203125 -1 46.796875 8.453125 46.796875 22.203125 -C 46.796875 34.9375 39.5 43 28 43 -C 23.59375 43 21.5 42.296875 15.203125 38.5 -C 17.90625 53.609375 29.09375 64.40625 44.796875 67 -z -M 24.203125 38.40625 -C 32.796875 38.40625 37.796875 31.25 37.796875 18.8125 -C 37.796875 7.875 33.90625 1.8125 26.90625 1.8125 -C 18.09375 1.8125 12.703125 11.15625 12.703125 26.5625 -C 12.703125 31.640625 13.5 34.421875 15.5 35.921875 -C 17.59375 37.5 20.703125 38.40625 24.203125 38.40625 -z -" id="Nimbus_Roman_No9_L_Regular-54"/> + <path d="M 8.90625 57.09375 +L 8.90625 60.203125 +Q 20.90625 60.203125 27.09375 66.59375 +Q 28.796875 66.59375 29.09375 66.1875 +Q 29.40625 65.796875 29.40625 64 +L 29.40625 7.90625 +Q 29.40625 4.90625 30.84375 4 +Q 32.296875 3.09375 38.703125 3.09375 +L 41.90625 3.09375 +L 41.90625 0 +Q 38.40625 0.296875 25.703125 0.296875 +Q 13 0.296875 9.5 0 +L 9.5 3.09375 +L 12.703125 3.09375 +Q 19 3.09375 20.5 4 +Q 22 4.90625 22 7.90625 +L 22 59.703125 +Q 16.796875 57.09375 8.90625 57.09375 +z +" id="CMUSerif-Roman-49"/> + <path d="M 3.90625 32 +Q 3.90625 46.703125 7.59375 54.703125 +Q 12.796875 66.59375 25 66.59375 +Q 27.59375 66.59375 30.296875 65.890625 +Q 33 65.203125 36.453125 62.5 +Q 39.90625 59.796875 42 55.40625 +Q 46 46.90625 46 32 +Q 46 17.40625 42.296875 9.40625 +Q 36.90625 -2.203125 24.90625 -2.203125 +Q 20.40625 -2.203125 15.84375 0.09375 +Q 11.296875 2.40625 8.40625 7.90625 +Q 3.90625 16.203125 3.90625 32 +z +M 12.203125 33.203125 +Q 12.203125 18.09375 13.296875 12.09375 +Q 14.5 5.59375 17.84375 2.796875 +Q 21.203125 0 24.90625 0 +Q 28.90625 0 32.25 3 +Q 35.59375 6 36.59375 12.5 +Q 37.703125 18.90625 37.703125 33.203125 +Q 37.703125 47.09375 36.703125 52.703125 +Q 35.40625 59.203125 31.90625 61.796875 +Q 28.40625 64.40625 24.90625 64.40625 +Q 23.59375 64.40625 22.1875 64 +Q 20.796875 63.59375 18.796875 62.5 +Q 16.796875 61.40625 15.25 58.59375 +Q 13.703125 55.796875 13 51.59375 +Q 12.203125 46.203125 12.203125 33.203125 +z +" id="CMUSerif-Roman-48"/> + <path d="M 1 18.59375 +L 1 24.5 +L 27.59375 24.5 +L 27.59375 18.59375 +z +" id="CMUSerif-Roman-45"/> + <path d="M 4.203125 31.59375 +Q 4.203125 47.296875 12.203125 56.9375 +Q 20.203125 66.59375 30.5 66.59375 +Q 36.5 66.59375 39.84375 63.546875 +Q 43.203125 60.5 43.203125 55.796875 +Q 43.203125 53.203125 41.703125 52.09375 +Q 40.203125 51 38.59375 51 +Q 36.796875 51 35.390625 52.203125 +Q 34 53.40625 34 55.59375 +Q 34 60.09375 39.5 60.09375 +Q 36.90625 64.09375 30.703125 64.09375 +Q 28.796875 64.09375 26.84375 63.546875 +Q 24.90625 63 22.34375 61.140625 +Q 19.796875 59.296875 17.84375 56.34375 +Q 15.90625 53.40625 14.546875 47.90625 +Q 13.203125 42.40625 13.203125 35.203125 +L 13.203125 32.796875 +Q 17.296875 42.703125 25.6875 42.703125 +Q 34.09375 42.703125 39.890625 36.296875 +Q 45.703125 29.90625 45.703125 20.40625 +Q 45.703125 10.703125 39.640625 4.25 +Q 33.59375 -2.203125 25.09375 -2.203125 +Q 21.296875 -2.203125 17.84375 -0.59375 +Q 14.40625 1 11.203125 4.59375 +Q 8 8.203125 6.09375 15.140625 +Q 4.203125 22.09375 4.203125 31.59375 +z +M 13.40625 22.59375 +Q 13.40625 12.796875 15.203125 8.09375 +Q 15.5 7.296875 16.140625 6.25 +Q 16.796875 5.203125 17.9375 3.796875 +Q 19.09375 2.40625 21 1.5 +Q 22.90625 0.59375 25.09375 0.59375 +Q 31.796875 0.59375 35 7.09375 +Q 36.703125 10.703125 36.703125 20.5 +Q 36.703125 30.5 34.90625 34.203125 +Q 31.796875 40.40625 25.59375 40.40625 +Q 21.40625 40.40625 18.5 37.5 +Q 15.59375 34.59375 14.5 30.75 +Q 13.40625 26.90625 13.40625 22.59375 +z +" id="CMUSerif-Roman-54"/> </defs> - <g transform="translate(50.706631 211.234498)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-49"/> - <use transform="translate(49.8132 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-48"/> - <use transform="translate(99.626401 36.163231)scale(0.737241)" xlink:href="#CMSY10-0"/> - <use transform="translate(156.909271 36.163231)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-54"/> + <g transform="translate(52.295152 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-54"/> </g> </g> </g> <g id="xtick_2"> <g id="line2d_2"> <g> - <use style="stroke:#000000;stroke-width:0.8;" x="95.033698" xlink:href="#mddab006ef2" y="197.316"/> + <use style="stroke:#000000;stroke-width:0.8;" x="95.033698" xlink:href="#m9a9665ec89" y="197.316"/> </g> </g> <g id="text_2"> - <!-- $10^{-4}$ --> + <!-- $\mathdefault{10^{-4}}$ --> <defs> - <path d="M 47.203125 23.390625 -L 37 23.390625 -L 37 68 -L 32.59375 68 -L 1.203125 23.390625 -L 1.203125 17 -L 29.296875 17 -L 29.296875 0.5 -L 37 0.5 -L 37 17 -L 47.203125 17 -z -M 29.203125 23.390625 -L 5.203125 23.390625 -L 29.203125 57.78125 -z -" id="Nimbus_Roman_No9_L_Regular-52"/> + <path d="M 2.796875 16.5 +L 2.796875 19.59375 +L 33.5 66.5 +Q 34.296875 67.703125 35.5 67.703125 +Q 36.59375 67.703125 36.84375 67.25 +Q 37.09375 66.796875 37.09375 65.09375 +L 37.09375 19.59375 +L 47.09375 19.59375 +L 47.09375 16.5 +L 37.09375 16.5 +L 37.09375 7.796875 +Q 37.09375 4.90625 38.296875 4 +Q 39.5 3.09375 44.703125 3.09375 +L 46.796875 3.09375 +L 46.796875 0 +Q 42.703125 0.296875 33.203125 0.296875 +Q 23.796875 0.296875 19.703125 0 +L 19.703125 3.09375 +L 21.796875 3.09375 +Q 27 3.09375 28.203125 4 +Q 29.40625 4.90625 29.40625 7.796875 +L 29.40625 16.5 +z +M 5.59375 19.59375 +L 30 19.59375 +L 30 56.90625 +z +" id="CMUSerif-Roman-52"/> </defs> - <g transform="translate(85.345176 211.234498)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-49"/> - <use transform="translate(49.8132 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-48"/> - <use transform="translate(99.626401 36.163231)scale(0.737241)" xlink:href="#CMSY10-0"/> - <use transform="translate(156.909271 36.163231)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-52"/> + <g transform="translate(86.933698 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.442188)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.442188)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.607813)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.607813)scale(0.7)" xlink:href="#CMUSerif-Roman-52"/> </g> </g> </g> <g id="xtick_3"> <g id="line2d_3"> <g> - <use style="stroke:#000000;stroke-width:0.8;" x="129.672243" xlink:href="#mddab006ef2" y="197.316"/> + <use style="stroke:#000000;stroke-width:0.8;" x="129.672243" xlink:href="#m9a9665ec89" y="197.316"/> </g> </g> <g id="text_3"> - <!-- $10^{-2}$ --> + <!-- $\mathdefault{10^{-2}}$ --> <defs> - <path d="M 47.5 13.671875 -L 46.203125 14.171875 -C 42.5 8.5 41.203125 7.59375 36.703125 7.59375 -L 12.796875 7.59375 -L 29.59375 25.140625 -C 38.5 34.40625 42.40625 41.984375 42.40625 49.765625 -C 42.40625 59.734375 34.296875 67.390625 23.90625 67.390625 -C 18.40625 67.390625 13.203125 65.203125 9.5 61.21875 -C 6.296875 57.8125 4.796875 54.625 3.09375 47.546875 -L 5.203125 47.046875 -C 9.203125 56.8125 12.796875 60 19.703125 60 -C 28.09375 60 33.796875 54.3125 33.796875 45.9375 -C 33.796875 38.171875 29.203125 28.90625 20.796875 20.03125 -L 3 1.203125 -L 3 0 -L 42 0 -z -" id="Nimbus_Roman_No9_L_Regular-50"/> + <path d="M 5 0 +Q 5 1.796875 5.140625 2.34375 +Q 5.296875 2.90625 6.09375 3.703125 +L 25.296875 25.09375 +Q 35.796875 36.90625 35.796875 47.203125 +Q 35.796875 53.90625 32.296875 58.703125 +Q 28.796875 63.5 22.40625 63.5 +Q 18 63.5 14.296875 60.796875 +Q 10.59375 58.09375 8.90625 53.296875 +Q 9.203125 53.40625 10.203125 53.40625 +Q 12.703125 53.40625 14.09375 51.84375 +Q 15.5 50.296875 15.5 48.203125 +Q 15.5 45.5 13.75 44.203125 +Q 12 42.90625 10.296875 42.90625 +Q 9.59375 42.90625 8.6875 43.046875 +Q 7.796875 43.203125 6.390625 44.59375 +Q 5 46 5 48.5 +Q 5 55.5 10.296875 61.046875 +Q 15.59375 66.59375 23.703125 66.59375 +Q 32.90625 66.59375 38.90625 61.140625 +Q 44.90625 55.703125 44.90625 47.203125 +Q 44.90625 44.203125 44 41.5 +Q 43.09375 38.796875 41.890625 36.6875 +Q 40.703125 34.59375 37.5 31.25 +Q 34.296875 27.90625 31.6875 25.5 +Q 29.09375 23.09375 23.296875 18 +L 12.703125 7.703125 +L 30.703125 7.703125 +Q 39.5 7.703125 40.203125 8.5 +Q 41.203125 9.90625 42.40625 17.40625 +L 44.90625 17.40625 +L 42.09375 0 +z +" id="CMUSerif-Roman-50"/> </defs> - <g transform="translate(119.983722 211.234498)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-49"/> - <use transform="translate(49.8132 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-48"/> - <use transform="translate(99.626401 36.163231)scale(0.737241)" xlink:href="#CMSY10-0"/> - <use transform="translate(156.909271 36.163231)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-50"/> + <g transform="translate(121.572243 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-45"/> + <use transform="translate(124.064102 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-50"/> </g> </g> </g> <g id="xtick_4"> <g id="line2d_4"> <g> - <use style="stroke:#000000;stroke-width:0.8;" x="164.310789" xlink:href="#mddab006ef2" y="197.316"/> + <use style="stroke:#000000;stroke-width:0.8;" x="164.310789" xlink:href="#m9a9665ec89" y="197.316"/> </g> </g> <g id="text_4"> - <!-- $10^{0}$ --> - <g transform="translate(157.486382 211.234498)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-49"/> - <use transform="translate(49.8132 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-48"/> - <use transform="translate(99.626401 36.163231)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-48"/> + <!-- $\mathdefault{10^{0}}$ --> + <g transform="translate(157.410789 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-48"/> </g> </g> </g> <g id="xtick_5"> <g id="line2d_5"> <g> - <use style="stroke:#000000;stroke-width:0.8;" x="198.949334" xlink:href="#mddab006ef2" y="197.316"/> + <use style="stroke:#000000;stroke-width:0.8;" x="198.949334" xlink:href="#m9a9665ec89" y="197.316"/> </g> </g> <g id="text_5"> - <!-- $10^{2}$ --> - <g transform="translate(192.124927 211.234498)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-49"/> - <use transform="translate(49.8132 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-48"/> - <use transform="translate(99.626401 36.163231)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-50"/> + <!-- $\mathdefault{10^{2}}$ --> + <g transform="translate(192.049334 211.256625)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-50"/> </g> </g> </g> <g id="text_6"> - <!-- ${\rm Density}~n_{\rm H}~[{\rm cm^{-3}}]$ --> + <!-- Hydrogen number density $n_{\rm H}$ [cm$^{-3}$] --> <defs> - <path d="M 10.40625 10.609375 -C 10.40625 3.390625 9.203125 2.09375 1.59375 2.09375 -L 1.59375 0 -L 30 0 -C 41.59375 0 52.09375 3.28125 58.296875 8.875 -C 64.796875 14.75 68.5 23.625 68.5 33.296875 -C 68.5 42.28125 65.5 50.046875 60 55.53125 -C 53.203125 62.40625 42.296875 66 28.59375 66 -L 1.59375 66 -L 1.59375 64.09375 -C 9.5 63.390625 10.40625 62.5 10.40625 55.078125 -z -M 20.59375 58.40625 -C 20.59375 61.5 21.703125 62.296875 25.796875 62.296875 -C 34.40625 62.296875 40.90625 60.703125 45.703125 57.3125 -C 53.5 51.921875 57.59375 43.359375 57.59375 32.609375 -C 57.59375 20.84375 53.5 12.46875 45.40625 7.78125 -C 40.296875 4.90625 34.5 3.703125 25.796875 3.703125 -C 21.796875 3.703125 20.59375 4.59375 20.59375 7.78125 -z -" id="Nimbus_Roman_No9_L_Regular-68"/> - <path d="M 40.796875 16.453125 -C 36 8.8125 31.703125 5.90625 25.296875 5.90625 -C 19.59375 5.90625 15.296875 8.8125 12.40625 14.53125 -C 10.59375 18.34375 9.90625 21.65625 9.703125 27.796875 -L 40.5 27.796875 -C 39.703125 34.265625 38.703125 37.140625 36.203125 40.328125 -C 33.203125 43.921875 28.59375 46 23.40625 46 -C 18.40625 46 13.703125 44.203125 9.90625 40.796875 -C 5.203125 36.703125 2.5 29.59375 2.5 21.40625 -C 2.5 7.59375 9.703125 -1 21.203125 -1 -C 30.703125 -1 38.203125 4.921875 42.40625 15.75 -z -M 9.90625 31 -C 11 38.734375 14.40625 42.40625 20.5 42.40625 -C 26.59375 42.40625 29 39.609375 30.296875 31 -z -" id="Nimbus_Roman_No9_L_Regular-101"/> - <path d="M 1.59375 40.296875 -C 2.203125 40.59375 3.203125 40.703125 4.296875 40.703125 -C 7.09375 40.703125 8 39.203125 8 34.296875 -L 8 9.5 -C 8 3.796875 6.90625 2.40625 1.796875 2 -L 1.796875 0.5 -L 23 0.5 -L 23 2 -C 17.90625 2.40625 16.40625 3.59375 16.40625 7.203125 -L 16.40625 35.296875 -C 21.203125 39.796875 23.40625 41 26.703125 41 -C 31.59375 41 34 37.90625 34 31.296875 -L 34 10.40625 -C 34 4.09375 32.703125 2.40625 27.703125 2 -L 27.703125 0.5 -L 48.5 0.5 -L 48.5 2 -C 43.59375 2.5 42.40625 3.703125 42.40625 8.59375 -L 42.40625 31.5 -C 42.40625 40.90625 38 46.5 30.59375 46.5 -C 26 46.5 22.90625 44.796875 16.09375 38.40625 -L 16.09375 46.296875 -L 15.40625 46.5 -C 10.5 44.703125 7.09375 43.59375 1.59375 42 -z -" id="Nimbus_Roman_No9_L_Regular-110"/> - <path d="M 31.5 31.40625 -L 31.09375 45 -L 30 45 -L 29.796875 44.796875 -C 28.90625 44.09375 28.796875 44 28.40625 44 -C 27.796875 44 26.796875 44.203125 25.703125 44.703125 -C 23.5 45.546875 21.296875 46 18.703125 46 -C 10.796875 46 5.09375 40.875 5.09375 33.65625 -C 5.09375 28.0625 8.296875 24.046875 16.796875 19.234375 -L 22.59375 15.9375 -C 26.09375 13.9375 27.796875 11.515625 27.796875 8.421875 -C 27.796875 4 24.59375 1.203125 19.5 1.203125 -C 16.09375 1.203125 13 2.484375 11.09375 4.65625 -C 9 7.109375 8.09375 9.375 6.796875 15 -L 5.203125 15 -L 5.203125 -0.609375 -L 6.5 -0.609375 -C 7.203125 0.515625 7.59375 0.75 8.796875 0.75 -C 9.703125 0.75 11.09375 0.546875 13.40625 -0.03125 -C 16.203125 -0.609375 18.90625 -1 20.703125 -1 -C 28.40625 -1 34.796875 4.8125 34.796875 11.828125 -C 34.796875 16.828125 32.40625 20.140625 26.40625 23.75 -L 15.59375 30.15625 -C 12.796875 31.765625 11.296875 34.28125 11.296875 36.984375 -C 11.296875 41 14.40625 43.796875 19 43.796875 -C 24.703125 43.796875 27.703125 40.359375 30 31.40625 -z -" id="Nimbus_Roman_No9_L_Regular-115"/> - <path d="M 17.5 45.765625 -L 2 40.296875 -L 2 38.8125 -L 2.796875 38.90625 -C 4 39.09375 5.296875 39.203125 6.203125 39.203125 -C 8.59375 39.203125 9.5 37.59375 9.5 33.203125 -L 9.5 10 -C 9.5 2.796875 8.5 1.703125 1.59375 1.703125 -L 1.59375 0 -L 25.296875 0 -L 25.296875 1.5 -C 18.703125 2 17.90625 2.984375 17.90625 10.15625 -L 17.90625 45.46875 -z -M 12.796875 68 -C 10.09375 68 7.796875 65.703125 7.796875 62.90625 -C 7.796875 60.109375 10 57.796875 12.796875 57.796875 -C 15.703125 57.796875 18 60 18 62.90625 -C 18 65.703125 15.703125 68 12.796875 68 -z -" id="Nimbus_Roman_No9_L_Regular-105"/> - <path d="M 25.5 45 -L 15.40625 45 -L 15.40625 56.59375 -C 15.40625 57.59375 15.296875 57.90625 14.703125 57.90625 -C 14 57 13.40625 56.09375 12.703125 55.09375 -C 8.90625 49.59375 4.59375 44.796875 3 44.390625 -C 1.90625 43.65625 1.296875 42.9375 1.296875 42.421875 -C 1.296875 42.109375 1.40625 41.90625 1.703125 41.90625 -L 7 41.90625 -L 7 11.734375 -C 7 3.3125 10 -1 15.90625 -1 -C 20.796875 -1 24.59375 1.40625 27.90625 6.609375 -L 26.59375 7.703125 -C 24.5 5.203125 22.796875 4.203125 20.59375 4.203125 -C 16.90625 4.203125 15.40625 6.921875 15.40625 13.234375 -L 15.40625 41.90625 -L 25.5 41.90625 -z -" id="Nimbus_Roman_No9_L_Regular-116"/> - <path d="M 47.5 45 -L 34 45 -L 34 43.5 -C 37.203125 43.5 38.796875 42.59375 38.796875 40.984375 -C 38.796875 40.578125 38.703125 39.984375 38.40625 39.28125 -L 28.703125 11.59375 -L 17.203125 37.140625 -C 16.59375 38.5625 16.203125 39.875 16.203125 40.96875 -C 16.203125 42.796875 17.703125 43.5 22 43.5 -L 22 45 -L 1.40625 45 -L 1.40625 43.59375 -C 4 43.203125 5.703125 42.09375 6.5 40.390625 -L 17.90625 15.703125 -L 18.203125 14.890625 -L 19.703125 11.890625 -C 22.5 6.875 24.09375 3.265625 24.09375 1.75 -C 24.09375 0.25 21.796875 -6.078125 20.09375 -9.09375 -C 18.703125 -11.703125 16.5 -13.609375 15.09375 -13.609375 -C 14.5 -13.609375 13.59375 -13.40625 12.59375 -12.90625 -C 10.703125 -12.203125 9 -11.796875 7.296875 -11.796875 -C 5 -11.796875 3 -13.796875 3 -16.203125 -C 3 -19.5 6.203125 -22 10.40625 -22 -C 17.09375 -22 21.90625 -16.390625 27.296875 -1.9375 -L 42.703125 38.984375 -C 44 42.203125 45.09375 43.203125 47.5 43.5 -z -" id="Nimbus_Roman_No9_L_Regular-121"/> - <path d="M 46 11.546875 -L 43.90625 8.9375 -C 41 5.234375 39.203125 3.625 37.796875 3.625 -C 37 3.625 36.203125 4.421875 36.203125 5.21875 -C 36.203125 5.9375 36.203125 5.9375 37.59375 11.53125 -L 43.296875 32.1875 -C 43.796875 34.28125 44.203125 36.484375 44.203125 37.890625 -C 44.203125 41.5 41.5 44 37.59375 44 -C 31.203125 44 24.90625 38 14.59375 21.96875 -L 21.296875 43.796875 -L 21 43.984375 -C 15.59375 42.890625 13.5 42.5 4.796875 40.90625 -L 4.796875 39.21875 -C 9.90625 39.21875 11.203125 38.625 11.203125 36.609375 -C 11.203125 36 11.09375 35.40625 11 34.90625 -L 1.40625 -0.1875 -L 8.90625 -0.1875 -C 13.59375 15.65625 14.5 17.875 18.90625 24.6875 -C 24.90625 33.890625 30 38.921875 33.703125 38.921875 -C 35.203125 38.921875 36.09375 37.8125 36.09375 36 -C 36.09375 34.8125 35.5 31.5 34.703125 28.390625 -L 30.296875 11.84375 -C 29 6.734375 28.703125 5.328125 28.703125 4.328125 -C 28.703125 0.515625 30.09375 -1.078125 33.40625 -1.078125 -C 37.90625 -1.078125 40.5 1.03125 47.40625 10.25 -z -" id="Nimbus_Roman_No9_L_Regular_Italic-110"/> - <path d="M 20.90625 36 -L 20.90625 55.203125 -C 20.90625 62.34375 22 63.421875 29.703125 64.125 -L 29.703125 66 -L 1.90625 66 -L 1.90625 64.125 -C 9.59375 63.421875 10.703125 62.328125 10.703125 55.109375 -L 10.703125 11.703125 -C 10.703125 3.28125 9.703125 2.09375 1.90625 2.09375 -L 1.90625 0 -L 29.703125 0 -L 29.703125 1.890625 -C 22.203125 2.484375 20.90625 3.78125 20.90625 10.921875 -L 20.90625 31.59375 -L 51.203125 31.59375 -L 51.203125 11.828125 -C 51.203125 3.296875 50.203125 2.09375 42.40625 2.09375 -L 42.40625 0 -L 70.203125 0 -L 70.203125 1.890625 -C 62.703125 2.484375 61.40625 3.78125 61.40625 10.875 -L 61.40625 55.140625 -C 61.40625 62.328125 62.5 63.421875 70.203125 64.125 -L 70.203125 66 -L 42.40625 66 -L 42.40625 64.125 -C 50.09375 63.421875 51.203125 62.34375 51.203125 55.203125 -L 51.203125 36 -z -" id="Nimbus_Roman_No9_L_Regular-72"/> - <path d="M 25.5 -25 -L 25.5 -20.984375 -L 15.796875 -20.984375 -L 15.796875 71 -L 25.5 71 -L 25.5 75.015625 -L 11.796875 75.015625 -L 11.796875 -25 -z -" id="CMR10-91"/> - <path d="M 39.796875 15.59375 -C 35 8.59375 31.40625 6.203125 25.703125 6.203125 -C 16.59375 6.203125 10.203125 14.203125 10.203125 25.703125 -C 10.203125 36 15.703125 43.09375 23.796875 43.09375 -C 27.40625 43.09375 28.703125 42 29.703125 38.296875 -L 30.296875 36.09375 -C 31.09375 33.296875 32.90625 31.5 35 31.5 -C 37.59375 31.5 39.796875 33.40625 39.796875 35.703125 -C 39.796875 41.296875 32.796875 46 24.40625 46 -C 19.5 46 14.40625 44 10.296875 40.40625 -C 5.296875 36 2.5 29.203125 2.5 21.296875 -C 2.5 8.296875 10.40625 -1 21.5 -1 -C 26 -1 30 0.59375 33.59375 3.703125 -C 36.296875 6.09375 38.203125 8.796875 41.203125 14.703125 -z -" id="Nimbus_Roman_No9_L_Regular-99"/> - <path d="M 1.90625 39.796875 -C 3.203125 40.09375 4 40.203125 5.09375 40.203125 -C 7.703125 40.203125 8.59375 38.59375 8.59375 33.78125 -L 8.59375 8.421875 -C 8.59375 3 7.203125 1.5 1.59375 1.5 -L 1.59375 0 -L 23.796875 0 -L 23.796875 1.5 -C 18.5 1.5 17 2.59375 17 6.53125 -L 17 34.90625 -C 17 35.09375 17.796875 36.09375 18.5 36.796875 -C 21 39.09375 25.296875 40.796875 28.796875 40.796875 -C 33.203125 40.796875 35.40625 37.265625 35.40625 30.1875 -L 35.40625 8.25 -C 35.40625 2.609375 34.296875 1.5 28.59375 1.5 -L 28.59375 0 -L 51 0 -L 51 1.5 -C 45.296875 1.5 43.796875 3.203125 43.796875 9.421875 -L 43.796875 34.703125 -C 46.796875 39 50.09375 40.796875 54.703125 40.796875 -C 60.40625 40.796875 62.203125 38.09375 62.203125 29.796875 -L 62.203125 8.703125 -C 62.203125 3 61.40625 2.203125 55.59375 1.5 -L 55.59375 0 -L 77.5 0 -L 77.5 1.5 -L 74.90625 1.796875 -C 71.90625 1.796875 70.59375 3.59375 70.59375 7.5 -L 70.59375 28.15625 -C 70.59375 39.984375 66.703125 46 59 46 -C 53.203125 46 48.09375 43.40625 42.703125 37.609375 -C 40.90625 43.296875 37.5 46 32.09375 46 -C 27.703125 46 24.90625 44.59375 16.59375 38.296875 -L 16.59375 45.796875 -L 15.90625 46 -C 10.796875 44.09375 7.40625 43 1.90625 41.5 -z -" id="Nimbus_Roman_No9_L_Regular-109"/> - <path d="M 15.296875 33.40625 -C 21.203125 33.40625 23.5 33.203125 25.90625 32.3125 -C 32.09375 30.109375 36 24.40625 36 17.5 -C 36 9.109375 30.296875 2.609375 22.90625 2.609375 -C 20.203125 2.609375 18.203125 3.3125 14.5 5.703125 -C 11.5 7.5 9.796875 8.203125 8.09375 8.203125 -C 5.796875 8.203125 4.296875 6.8125 4.296875 4.703125 -C 4.296875 1.203125 8.59375 -1 15.59375 -1 -C 23.296875 -1 31.203125 1.609375 35.90625 5.703125 -C 40.59375 9.8125 43.203125 15.609375 43.203125 22.3125 -C 43.203125 27.40625 41.59375 32.109375 38.703125 35.203125 -C 36.703125 37.40625 34.796875 38.609375 30.40625 40.5 -C 37.296875 45.203125 39.796875 48.90625 39.796875 54.3125 -C 39.796875 62.40625 33.40625 68 24.203125 68 -C 19.203125 68 14.796875 66.3125 11.203125 63.109375 -C 8.203125 60.40625 6.703125 57.796875 4.5 51.796875 -L 6 51.40625 -C 10.09375 58.703125 14.59375 62 20.90625 62 -C 27.40625 62 31.90625 57.609375 31.90625 51.3125 -C 31.90625 47.703125 30.40625 44.109375 27.90625 41.609375 -C 24.90625 38.609375 22.09375 37.109375 15.296875 34.703125 -z -" id="Nimbus_Roman_No9_L_Regular-51"/> - <path d="M 15.90625 75.015625 -L 2.203125 75.015625 -L 2.203125 71 -L 11.90625 71 -L 11.90625 -20.984375 -L 2.203125 -20.984375 -L 2.203125 -25 -L 15.90625 -25 -z -" id="CMR10-93"/> + <path d="M 3.296875 0 +L 3.296875 3.09375 +L 5.703125 3.09375 +Q 11.09375 3.09375 12.34375 4 +Q 13.59375 4.90625 13.59375 7.796875 +L 13.59375 60.5 +Q 13.59375 63.40625 12.34375 64.296875 +Q 11.09375 65.203125 5.703125 65.203125 +L 3.296875 65.203125 +L 3.296875 68.296875 +Q 6.796875 68 18.09375 68 +Q 29.296875 68 32.796875 68.296875 +L 32.796875 65.203125 +L 30.40625 65.203125 +Q 25 65.203125 23.75 64.296875 +Q 22.5 63.40625 22.5 60.5 +L 22.5 37.09375 +L 52.40625 37.09375 +L 52.40625 60.5 +Q 52.40625 63.40625 51.15625 64.296875 +Q 49.90625 65.203125 44.5 65.203125 +L 42.09375 65.203125 +L 42.09375 68.296875 +Q 45.59375 68 56.90625 68 +Q 68.09375 68 71.59375 68.296875 +L 71.59375 65.203125 +L 69.203125 65.203125 +Q 63.796875 65.203125 62.546875 64.296875 +Q 61.296875 63.40625 61.296875 60.5 +L 61.296875 7.796875 +Q 61.296875 4.90625 62.546875 4 +Q 63.796875 3.09375 69.203125 3.09375 +L 71.59375 3.09375 +L 71.59375 0 +Q 68.09375 0.296875 56.796875 0.296875 +Q 45.59375 0.296875 42.09375 0 +L 42.09375 3.09375 +L 44.5 3.09375 +Q 49.90625 3.09375 51.15625 4 +Q 52.40625 4.90625 52.40625 7.796875 +L 52.40625 34 +L 22.5 34 +L 22.5 7.796875 +Q 22.5 4.90625 23.75 4 +Q 25 3.09375 30.40625 3.09375 +L 32.796875 3.09375 +L 32.796875 0 +Q 29.296875 0.296875 18 0.296875 +Q 6.796875 0.296875 3.296875 0 +z +" id="CMUSerif-Roman-72"/> + <path d="M 1.90625 -12.40625 +Q 1.90625 -10.296875 3.15625 -9.1875 +Q 4.40625 -8.09375 6.09375 -8.09375 +Q 7.90625 -8.09375 9.09375 -9.25 +Q 10.296875 -10.40625 10.296875 -12.296875 +Q 10.296875 -16 6.40625 -16.5 +Q 8.296875 -18.296875 11.09375 -18.296875 +Q 14.09375 -18.296875 16.5 -16.09375 +Q 18.90625 -13.90625 19.953125 -11.796875 +Q 21 -9.703125 22.5 -5.90625 +Q 23.90625 -2.90625 25 0 +L 10 36.5 +Q 9 38.90625 7.5 39.453125 +Q 6 40 1.90625 40 +L 1.90625 43.09375 +Q 6.40625 42.796875 11.59375 42.796875 +Q 14.703125 42.796875 22.5 43.09375 +L 22.5 40 +Q 16.90625 40 16.90625 37.40625 +Q 16.90625 37.09375 17.5 35.59375 +L 28.59375 8.703125 +L 38.703125 33.296875 +Q 39.296875 34.703125 39.296875 35.703125 +Q 39.296875 39.796875 34.59375 40 +L 34.59375 43.09375 +Q 41.203125 42.796875 43.296875 42.796875 +Q 47.40625 42.796875 50.796875 43.09375 +L 50.796875 40 +Q 44.09375 40 41.5 33.59375 +L 23.90625 -9.09375 +Q 19.09375 -20.5 11.09375 -20.5 +Q 7.296875 -20.5 4.59375 -18.140625 +Q 1.90625 -15.796875 1.90625 -12.40625 +z +" id="CMUSerif-Roman-121"/> + <path d="M 3.40625 21.5 +Q 3.40625 31 10.046875 37.59375 +Q 16.703125 44.203125 25.703125 44.203125 +Q 33.296875 44.203125 38.296875 38 +L 38.296875 59.59375 +Q 38.296875 63.296875 37 64.25 +Q 35.703125 65.203125 30.5 65.203125 +L 30.5 68.296875 +L 44.90625 69.40625 +L 44.90625 8.703125 +Q 44.90625 5 46.203125 4.046875 +Q 47.5 3.09375 52.703125 3.09375 +L 52.703125 0 +L 38 -1.09375 +L 38 5.5 +Q 32.796875 -1.09375 24.59375 -1.09375 +Q 16 -1.09375 9.703125 5.5 +Q 3.40625 12.09375 3.40625 21.5 +z +M 11.703125 21.40625 +Q 11.703125 12.09375 14.59375 7.5 +Q 18.59375 1.09375 25.09375 1.09375 +Q 32.5 1.09375 36.90625 8.09375 +Q 38 9.796875 38 11.796875 +L 38 32.296875 +Q 38 34.296875 36.90625 36 +Q 32.796875 42 26.09375 42 +Q 19.09375 42 14.796875 35.59375 +Q 11.703125 30.796875 11.703125 21.40625 +z +" id="CMUSerif-Roman-100"/> + <path d="M 2.796875 0 +L 2.796875 3.09375 +Q 8.09375 3.09375 9.34375 3.75 +Q 10.59375 4.40625 10.59375 7.59375 +L 10.59375 34.40625 +Q 10.59375 38.09375 9.296875 39.046875 +Q 8 40 2.796875 40 +L 2.796875 43.09375 +L 16.703125 44.203125 +L 16.703125 33.203125 +Q 18.09375 37.5 21.09375 40.84375 +Q 24.09375 44.203125 29 44.203125 +Q 32.203125 44.203125 34.296875 42.390625 +Q 36.40625 40.59375 36.40625 38.09375 +Q 36.40625 35.90625 35.046875 34.796875 +Q 33.703125 33.703125 32.09375 33.703125 +Q 30.296875 33.703125 29.046875 34.84375 +Q 27.796875 36 27.796875 38 +Q 27.796875 39.203125 28.34375 40.140625 +Q 28.90625 41.09375 29.34375 41.4375 +Q 29.796875 41.796875 30.09375 41.90625 +Q 29.90625 42 29 42 +Q 23.5 42 20.34375 36.5 +Q 17.203125 31 17.203125 23.203125 +L 17.203125 7.796875 +Q 17.203125 4.90625 18.390625 4 +Q 19.59375 3.09375 24.796875 3.09375 +L 26.90625 3.09375 +L 26.90625 0 +Q 22.90625 0.296875 14.203125 0.296875 +Q 13 0.296875 11.09375 0.25 +Q 9.203125 0.203125 6.703125 0.09375 +Q 4.203125 0 2.796875 0 +z +" id="CMUSerif-Roman-114"/> + <path d="M 16 -1.09375 +Q 2.796875 11.90625 2.796875 21.40625 +Q 2.796875 30.90625 9.25 37.84375 +Q 15.703125 44.796875 25 44.796875 +Q 34.09375 44.796875 40.59375 37.890625 +Q 47.09375 31 47.09375 21.40625 +Q 47.09375 12 40.546875 5.453125 +Q 34 -1.09375 24.90625 -1.09375 +Q 16 -1.09375 2.796875 11.90625 +z +M 11.09375 22.203125 +Q 11.09375 12.5 13.59375 8.09375 +Q 17.5 1.40625 25 1.40625 +Q 28.703125 1.40625 31.796875 3.40625 +Q 34.90625 5.40625 36.59375 8.796875 +Q 38.796875 13.203125 38.796875 22.203125 +Q 38.796875 31.796875 36.203125 36.09375 +Q 32.296875 42.59375 24.90625 42.59375 +Q 21.703125 42.59375 18.546875 40.890625 +Q 15.40625 39.203125 13.5 35.90625 +Q 11.09375 31.5 11.09375 22.203125 +z +" id="CMUSerif-Roman-111"/> + <path d="M 2.796875 -7.90625 +Q 2.796875 -4.703125 5.25 -1.890625 +Q 7.703125 0.90625 12 2.09375 +Q 7.59375 4.90625 7.59375 11 +Q 7.59375 15.703125 10.703125 19.296875 +Q 6 23.203125 6 29.59375 +Q 6 35.5 10.703125 39.84375 +Q 15.40625 44.203125 22.203125 44.203125 +Q 28.203125 44.203125 32.796875 40.59375 +Q 37.59375 45.296875 43.40625 45.296875 +Q 46 45.296875 47.25 43.6875 +Q 48.5 42.09375 48.5 40.40625 +Q 48.5 38.90625 47.546875 38.15625 +Q 46.59375 37.40625 45.59375 37.40625 +Q 44.40625 37.40625 43.546875 38.203125 +Q 42.703125 39 42.703125 40.296875 +Q 42.703125 42.40625 44.296875 43 +Q 44 43.09375 43.296875 43.09375 +Q 38.40625 43.09375 34.296875 39.203125 +Q 38.40625 35.40625 38.40625 29.5 +Q 38.40625 23.59375 33.703125 19.25 +Q 29 14.90625 22.203125 14.90625 +Q 16.59375 14.90625 12.296875 18 +Q 10.59375 16 10.59375 13.296875 +Q 10.59375 10.796875 12.09375 8.84375 +Q 13.59375 6.90625 15.90625 6.59375 +Q 16.59375 6.5 23.40625 6.5 +Q 27.40625 6.5 29.59375 6.390625 +Q 31.796875 6.296875 34.9375 5.640625 +Q 38.09375 5 40.59375 3.703125 +Q 47.09375 0.09375 47.09375 -7.703125 +Q 47.09375 -13.40625 40.546875 -17 +Q 34 -20.59375 24.90625 -20.59375 +Q 15.703125 -20.59375 9.25 -16.9375 +Q 2.796875 -13.296875 2.796875 -7.90625 +z +M 8 -7.90625 +Q 8 -12 12.84375 -15.140625 +Q 17.703125 -18.296875 25 -18.296875 +Q 32.203125 -18.296875 37.046875 -15.1875 +Q 41.90625 -12.09375 41.90625 -7.90625 +Q 41.90625 -4.90625 40.203125 -3 +Q 38.5 -1.09375 35 -0.34375 +Q 31.5 0.40625 29.046875 0.546875 +Q 26.59375 0.703125 22.09375 0.703125 +L 16.203125 0.703125 +Q 12.796875 0.5 10.390625 -2 +Q 8 -4.5 8 -7.90625 +z +M 13.5 29.5 +Q 13.5 17.203125 22.203125 17.203125 +Q 26.59375 17.203125 29.296875 21.203125 +Q 30.90625 23.90625 30.90625 29.59375 +Q 30.90625 41.90625 22.203125 41.90625 +Q 17.796875 41.90625 15.09375 37.90625 +Q 13.5 35.203125 13.5 29.5 +z +" id="CMUSerif-Roman-103"/> + <path d="M 2.796875 22 +Q 2.796875 31.40625 8.84375 38.09375 +Q 14.90625 44.796875 23.59375 44.796875 +Q 32.40625 44.796875 36.953125 39.09375 +Q 41.5 33.40625 41.5 25.203125 +Q 41.5 23.703125 41.09375 23.390625 +Q 40.703125 23.09375 39 23.09375 +L 11.09375 23.09375 +Q 11.09375 12.90625 14.09375 8.09375 +Q 18.296875 1.40625 25.40625 1.40625 +Q 26.40625 1.40625 27.546875 1.59375 +Q 28.703125 1.796875 31.09375 2.640625 +Q 33.5 3.5 35.59375 5.796875 +Q 37.703125 8.09375 38.90625 11.703125 +Q 39.203125 13.09375 40.203125 13.09375 +Q 41.5 13.09375 41.5 11.90625 +Q 41.5 11 40.546875 9.046875 +Q 39.59375 7.09375 37.796875 4.75 +Q 36 2.40625 32.5 0.65625 +Q 29 -1.09375 24.796875 -1.09375 +Q 16 -1.09375 9.390625 5.546875 +Q 2.796875 12.203125 2.796875 22 +z +M 11.203125 25.203125 +L 34.90625 25.203125 +Q 34.90625 27.296875 34.546875 29.640625 +Q 34.203125 32 33.140625 35.25 +Q 32.09375 38.5 29.640625 40.546875 +Q 27.203125 42.59375 23.59375 42.59375 +Q 22 42.59375 20.25 41.890625 +Q 18.5 41.203125 16.390625 39.546875 +Q 14.296875 37.90625 12.84375 34.15625 +Q 11.40625 30.40625 11.203125 25.203125 +z +" id="CMUSerif-Roman-101"/> + <path d="M 3.203125 0 +L 3.203125 3.09375 +Q 8.5 3.09375 9.75 3.75 +Q 11 4.40625 11 7.59375 +L 11 34.40625 +Q 11 38.09375 9.703125 39.046875 +Q 8.40625 40 3.203125 40 +L 3.203125 43.09375 +L 17.296875 44.203125 +L 17.296875 33.703125 +Q 22 44.203125 32.09375 44.203125 +Q 39.59375 44.203125 42.59375 40.5 +Q 44.796875 38 45.25 35.203125 +Q 45.703125 32.40625 45.703125 25.203125 +L 45.703125 6.09375 +Q 45.796875 4 47.390625 3.546875 +Q 49 3.09375 53.5 3.09375 +L 53.5 0 +Q 43.296875 0.296875 42.296875 0.296875 +Q 41.5 0.296875 31 0 +L 31 3.09375 +Q 36.296875 3.09375 37.546875 3.75 +Q 38.796875 4.40625 38.796875 7.59375 +L 38.796875 30.90625 +Q 38.796875 36 37.25 39 +Q 35.703125 42 31.40625 42 +Q 26.203125 42 22.046875 37.640625 +Q 17.90625 33.296875 17.90625 26 +L 17.90625 7.59375 +Q 17.90625 4.40625 19.15625 3.75 +Q 20.40625 3.09375 25.703125 3.09375 +L 25.703125 0 +Q 15.5 0.296875 14.5 0.296875 +Q 13.703125 0.296875 3.203125 0 +z +" id="CMUSerif-Roman-110"/> + <path id="CMUSerif-Roman-32"/> + <path d="M 3.203125 40 +L 3.203125 43.09375 +L 17.90625 44.203125 +L 17.90625 11 +Q 17.90625 8.59375 18.09375 7.1875 +Q 18.296875 5.796875 19.09375 4.1875 +Q 19.90625 2.59375 21.796875 1.84375 +Q 23.703125 1.09375 26.703125 1.09375 +Q 32.09375 1.09375 35.4375 5.546875 +Q 38.796875 10 38.796875 16.59375 +L 38.796875 34.40625 +Q 38.796875 38.09375 37.5 39.046875 +Q 36.203125 40 31 40 +L 31 43.09375 +L 45.703125 44.203125 +L 45.703125 8.703125 +Q 45.703125 5 47 4.046875 +Q 48.296875 3.09375 53.5 3.09375 +L 53.5 0 +L 39.09375 -1.09375 +L 39.09375 7.90625 +Q 34.90625 -1.09375 26.203125 -1.09375 +Q 21.796875 -1.09375 18.796875 0 +Q 15.796875 1.09375 14.296875 2.5 +Q 12.796875 3.90625 12 6.59375 +Q 11.203125 9.296875 11.09375 10.9375 +Q 11 12.59375 11 15.796875 +L 11 30.796875 +Q 11 37.59375 10 38.796875 +Q 9 40 3.203125 40 +z +" id="CMUSerif-Roman-117"/> + <path d="M 3.203125 0 +L 3.203125 3.09375 +Q 8.5 3.09375 9.75 3.75 +Q 11 4.40625 11 7.59375 +L 11 34.40625 +Q 11 38.09375 9.703125 39.046875 +Q 8.40625 40 3.203125 40 +L 3.203125 43.09375 +L 17.296875 44.203125 +L 17.296875 33.703125 +Q 22 44.203125 32.09375 44.203125 +Q 43.796875 44.203125 45.40625 34.40625 +Q 47.09375 38.203125 50.6875 41.203125 +Q 54.296875 44.203125 59.90625 44.203125 +Q 67.40625 44.203125 70.40625 40.5 +Q 72.59375 38 73.046875 35.203125 +Q 73.5 32.40625 73.5 25.203125 +L 73.5 6.09375 +Q 73.59375 4 75.1875 3.546875 +Q 76.796875 3.09375 81.296875 3.09375 +L 81.296875 0 +Q 71.09375 0.296875 70.09375 0.296875 +Q 69.296875 0.296875 58.796875 0 +L 58.796875 3.09375 +Q 64.09375 3.09375 65.34375 3.75 +Q 66.59375 4.40625 66.59375 7.59375 +L 66.59375 30.90625 +Q 66.59375 36 65.046875 39 +Q 63.5 42 59.203125 42 +Q 54 42 49.84375 37.640625 +Q 45.703125 33.296875 45.703125 26 +L 45.703125 7.59375 +Q 45.703125 4.40625 46.953125 3.75 +Q 48.203125 3.09375 53.5 3.09375 +L 53.5 0 +Q 43.296875 0.296875 42.296875 0.296875 +Q 41.5 0.296875 31 0 +L 31 3.09375 +Q 36.296875 3.09375 37.546875 3.75 +Q 38.796875 4.40625 38.796875 7.59375 +L 38.796875 30.90625 +Q 38.796875 36 37.25 39 +Q 35.703125 42 31.40625 42 +Q 26.203125 42 22.046875 37.640625 +Q 17.90625 33.296875 17.90625 26 +L 17.90625 7.59375 +Q 17.90625 4.40625 19.15625 3.75 +Q 20.40625 3.09375 25.703125 3.09375 +L 25.703125 0 +Q 15.5 0.296875 14.5 0.296875 +Q 13.703125 0.296875 3.203125 0 +z +" id="CMUSerif-Roman-109"/> + <path d="M 2.796875 65.203125 +L 2.796875 68.296875 +L 17.203125 69.40625 +L 17.203125 37.703125 +Q 23 44.203125 30.90625 44.203125 +Q 39.5 44.203125 45.796875 37.59375 +Q 52.09375 31 52.09375 21.59375 +Q 52.09375 12.09375 45.5 5.5 +Q 38.90625 -1.09375 29.796875 -1.09375 +Q 21.5 -1.09375 16.703125 6.203125 +Q 13.203125 0.09375 13.09375 0 +L 10.59375 0 +L 10.59375 59.59375 +Q 10.59375 63.296875 9.296875 64.25 +Q 8 65.203125 2.796875 65.203125 +z +M 17.5 11.40625 +Q 17.5 9.296875 18.90625 7.203125 +Q 22.90625 1.09375 29.40625 1.09375 +Q 36.40625 1.09375 40.703125 7.5 +Q 43.796875 12.296875 43.796875 21.703125 +Q 43.796875 31 40.90625 35.59375 +Q 36.90625 42 30.40625 42 +Q 23.09375 42 18.59375 35.59375 +Q 17.5 34 17.5 32 +z +" id="CMUSerif-Roman-98"/> + <path d="M 3.296875 1.296875 +L 3.296875 14.5 +Q 3.296875 15.59375 3.34375 16 +Q 3.40625 16.40625 3.703125 16.703125 +Q 4 17 4.59375 17 +Q 5.296875 17 5.546875 16.703125 +Q 5.796875 16.40625 6 15.296875 +Q 7.5 8.40625 10.75 4.75 +Q 14 1.09375 19.90625 1.09375 +Q 25.5 1.09375 28.34375 3.59375 +Q 31.203125 6.09375 31.203125 10.203125 +Q 31.203125 17.5 20.796875 19.40625 +Q 14.796875 20.59375 12.296875 21.390625 +Q 9.796875 22.203125 7.59375 24 +Q 3.296875 27.5 3.296875 32.5 +Q 3.296875 37.5 7.09375 41.140625 +Q 10.90625 44.796875 19.296875 44.796875 +Q 24.90625 44.796875 28.703125 42 +Q 29.796875 42.90625 30.40625 43.59375 +Q 31.703125 44.796875 32.40625 44.796875 +Q 33.203125 44.796875 33.34375 44.296875 +Q 33.5 43.796875 33.5 42.40625 +L 33.5 32.296875 +Q 33.5 31.203125 33.453125 30.796875 +Q 33.40625 30.40625 33.09375 30.15625 +Q 32.796875 29.90625 32.203125 29.90625 +Q 31.09375 29.90625 31 30.796875 +Q 30.203125 42.90625 19.296875 42.90625 +Q 13.40625 42.90625 10.75 40.65625 +Q 8.09375 38.40625 8.09375 35.296875 +Q 8.09375 33.59375 8.890625 32.296875 +Q 9.703125 31 10.75 30.25 +Q 11.796875 29.5 13.75 28.796875 +Q 15.703125 28.09375 16.890625 27.84375 +Q 18.09375 27.59375 20.40625 27.09375 +Q 28.40625 25.59375 31.796875 22.296875 +Q 36 18.09375 36 12.796875 +Q 36 6.90625 32 2.90625 +Q 28 -1.09375 19.90625 -1.09375 +Q 13.40625 -1.09375 8.90625 3.203125 +Q 8.296875 2.59375 7.84375 2.09375 +Q 7.40625 1.59375 7.25 1.390625 +Q 7.09375 1.203125 7.046875 1.09375 +Q 7 1 6.90625 0.90625 +Q 4.90625 -1.09375 4.40625 -1.09375 +Q 3.59375 -1.09375 3.4375 -0.59375 +Q 3.296875 -0.09375 3.296875 1.296875 +z +" id="CMUSerif-Roman-115"/> + <path d="M 3.296875 0 +L 3.296875 3.09375 +Q 8.59375 3.09375 9.84375 3.75 +Q 11.09375 4.40625 11.09375 7.59375 +L 11.09375 34.5 +Q 11.09375 38.203125 9.84375 39.09375 +Q 8.59375 40 3.703125 40 +L 3.703125 43.09375 +L 17.703125 44.203125 +L 17.703125 7.5 +Q 17.703125 4.5 18.75 3.796875 +Q 19.796875 3.09375 24.703125 3.09375 +L 24.703125 0 +Q 14.5 0.296875 14.296875 0.296875 +Q 12.90625 0.296875 3.296875 0 +z +M 7.5 61.59375 +Q 7.5 63.59375 9.046875 65.25 +Q 10.59375 66.90625 12.796875 66.90625 +Q 15 66.90625 16.546875 65.40625 +Q 18.09375 63.90625 18.09375 61.59375 +Q 18.09375 59.296875 16.546875 57.796875 +Q 15 56.296875 12.796875 56.296875 +Q 10.5 56.296875 9 57.890625 +Q 7.5 59.5 7.5 61.59375 +z +" id="CMUSerif-Roman-105"/> + <path d="M 1.90625 40 +L 1.90625 42.203125 +Q 6.5 42.40625 9.546875 45.65625 +Q 12.59375 48.90625 13.640625 52.90625 +Q 14.703125 56.90625 14.796875 61.5 +L 17.296875 61.5 +L 17.296875 43.09375 +L 31.59375 43.09375 +L 31.59375 40 +L 17.296875 40 +L 17.296875 12.203125 +Q 17.296875 1.40625 24 1.40625 +Q 26.90625 1.40625 28.796875 4.34375 +Q 30.703125 7.296875 30.703125 12.59375 +L 30.703125 18.09375 +L 33.203125 18.09375 +L 33.203125 12.40625 +Q 33.203125 7 30.703125 2.953125 +Q 28.203125 -1.09375 23.296875 -1.09375 +Q 21.5 -1.09375 19.703125 -0.640625 +Q 17.90625 -0.203125 15.59375 1 +Q 13.296875 2.203125 11.84375 5.140625 +Q 10.40625 8.09375 10.40625 12.40625 +L 10.40625 40 +z +" id="CMUSerif-Roman-116"/> + <path d="M 7.71875 1.703125 +Q 7.71875 2.296875 7.8125 2.59375 +L 15.28125 32.421875 +Q 16.015625 35.203125 16.015625 37.3125 +Q 16.015625 41.609375 13.09375 41.609375 +Q 9.96875 41.609375 8.453125 37.859375 +Q 6.9375 34.125 5.515625 28.421875 +Q 5.515625 28.125 5.21875 27.953125 +Q 4.9375 27.78125 4.6875 27.78125 +L 3.515625 27.78125 +Q 3.171875 27.78125 2.921875 28.140625 +Q 2.6875 28.515625 2.6875 28.8125 +Q 3.765625 33.15625 4.765625 36.171875 +Q 5.765625 39.203125 7.890625 41.6875 +Q 10.015625 44.1875 13.1875 44.1875 +Q 16.9375 44.1875 19.8125 41.8125 +Q 22.703125 39.453125 22.703125 35.796875 +Q 25.6875 39.703125 29.6875 41.9375 +Q 33.6875 44.1875 38.1875 44.1875 +Q 41.75 44.1875 44.328125 42.96875 +Q 46.921875 41.75 48.359375 39.28125 +Q 49.8125 36.8125 49.8125 33.40625 +Q 49.8125 29.296875 47.96875 23.484375 +Q 46.140625 17.671875 43.40625 10.5 +Q 42 7.234375 42 4.5 +Q 42 1.515625 44.28125 1.515625 +Q 48.1875 1.515625 50.796875 5.703125 +Q 53.421875 9.90625 54.5 14.703125 +Q 54.6875 15.28125 55.328125 15.28125 +L 56.5 15.28125 +Q 56.890625 15.28125 57.15625 15.03125 +Q 57.421875 14.796875 57.421875 14.40625 +Q 57.421875 14.3125 57.328125 14.109375 +Q 55.953125 8.453125 52.5625 3.65625 +Q 49.171875 -1.125 44.09375 -1.125 +Q 40.578125 -1.125 38.078125 1.296875 +Q 35.59375 3.71875 35.59375 7.171875 +Q 35.59375 9.03125 36.375 11.078125 +Q 37.640625 14.359375 39.28125 18.890625 +Q 40.921875 23.4375 41.96875 27.578125 +Q 43.015625 31.734375 43.015625 34.90625 +Q 43.015625 37.703125 41.859375 39.65625 +Q 40.71875 41.609375 37.984375 41.609375 +Q 34.328125 41.609375 31.25 39.984375 +Q 28.171875 38.375 25.875 35.71875 +Q 23.578125 33.0625 21.6875 29.390625 +L 14.890625 2.203125 +Q 14.546875 0.828125 13.34375 -0.140625 +Q 12.15625 -1.125 10.6875 -1.125 +Q 9.46875 -1.125 8.59375 -0.34375 +Q 7.71875 0.4375 7.71875 1.703125 +z +" id="Cmmi10-110"/> + <path d="M 3.078125 0 +L 3.078125 3.515625 +Q 13.375 3.515625 13.375 6.6875 +L 13.375 61.625 +Q 13.375 64.796875 3.078125 64.796875 +L 3.078125 68.3125 +L 33.015625 68.3125 +L 33.015625 64.796875 +Q 22.703125 64.796875 22.703125 61.625 +L 22.703125 37.3125 +L 52.203125 37.3125 +L 52.203125 61.625 +Q 52.203125 64.796875 41.890625 64.796875 +L 41.890625 68.3125 +L 71.78125 68.3125 +L 71.78125 64.796875 +Q 61.53125 64.796875 61.53125 61.625 +L 61.53125 6.6875 +Q 61.53125 3.515625 71.78125 3.515625 +L 71.78125 0 +L 41.890625 0 +L 41.890625 3.515625 +Q 52.203125 3.515625 52.203125 6.6875 +L 52.203125 33.796875 +L 22.703125 33.796875 +L 22.703125 6.6875 +Q 22.703125 3.515625 33.015625 3.515625 +L 33.015625 0 +z +" id="Cmr10-72"/> + <path d="M 10.40625 -25 +L 10.40625 75 +L 25.5 75 +L 25.5 72.703125 +L 17.09375 72.703125 +L 17.09375 -22.703125 +L 25.5 -22.703125 +L 25.5 -25 +z +" id="CMUSerif-Roman-91"/> + <path d="M 16.09375 -1.09375 +Q 3.40625 12.09375 3.40625 21.59375 +Q 3.40625 31.09375 9.65625 37.9375 +Q 15.90625 44.796875 25.09375 44.796875 +Q 31.203125 44.796875 35.796875 41.890625 +Q 40.40625 39 40.40625 34.09375 +Q 40.40625 31.90625 39.09375 30.65625 +Q 37.796875 29.40625 35.796875 29.40625 +Q 33.703125 29.40625 32.453125 30.703125 +Q 31.203125 32 31.203125 34 +Q 31.203125 34.90625 31.5 35.75 +Q 31.796875 36.59375 32.890625 37.546875 +Q 34 38.5 35.90625 38.59375 +Q 32.296875 42.296875 25.203125 42.296875 +Q 20.09375 42.296875 15.890625 37.5 +Q 11.703125 32.703125 11.703125 21.796875 +Q 11.703125 16.09375 13.09375 11.890625 +Q 14.5 7.703125 16.796875 5.546875 +Q 19.09375 3.40625 21.34375 2.40625 +Q 23.59375 1.40625 25.796875 1.40625 +Q 35.59375 1.40625 38.90625 11.90625 +Q 39.203125 12.90625 40.203125 12.90625 +Q 41.5 12.90625 41.5 11.90625 +Q 41.5 11.40625 41.09375 10.15625 +Q 40.703125 8.90625 39.5 6.90625 +Q 38.296875 4.90625 36.546875 3.15625 +Q 34.796875 1.40625 31.75 0.15625 +Q 28.703125 -1.09375 24.90625 -1.09375 +Q 16.09375 -1.09375 3.40625 12.09375 +z +" id="CMUSerif-Roman-99"/> + <path d="M 10.203125 23 +Q 9.375 23 8.828125 23.625 +Q 8.296875 24.265625 8.296875 25 +Q 8.296875 25.734375 8.828125 26.359375 +Q 9.375 27 10.203125 27 +L 67.578125 27 +Q 68.359375 27 68.875 26.359375 +Q 69.390625 25.734375 69.390625 25 +Q 69.390625 24.265625 68.875 23.625 +Q 68.359375 23 67.578125 23 +z +" id="Cmsy10-161"/> + <path d="M 9.515625 7.71875 +Q 11.859375 4.296875 15.8125 2.640625 +Q 19.78125 0.984375 24.3125 0.984375 +Q 30.125 0.984375 32.5625 5.9375 +Q 35.015625 10.890625 35.015625 17.1875 +Q 35.015625 20.015625 34.5 22.84375 +Q 33.984375 25.6875 32.765625 28.125 +Q 31.546875 30.5625 29.421875 32.03125 +Q 27.296875 33.5 24.21875 33.5 +L 17.578125 33.5 +Q 16.703125 33.5 16.703125 34.421875 +L 16.703125 35.296875 +Q 16.703125 36.078125 17.578125 36.078125 +L 23.09375 36.53125 +Q 26.609375 36.53125 28.921875 39.15625 +Q 31.25 41.796875 32.328125 45.578125 +Q 33.40625 49.359375 33.40625 52.78125 +Q 33.40625 57.5625 31.15625 60.640625 +Q 28.90625 63.71875 24.3125 63.71875 +Q 20.515625 63.71875 17.046875 62.28125 +Q 13.578125 60.84375 11.53125 57.90625 +Q 11.71875 57.953125 11.859375 57.984375 +Q 12.015625 58.015625 12.203125 58.015625 +Q 14.453125 58.015625 15.96875 56.453125 +Q 17.484375 54.890625 17.484375 52.6875 +Q 17.484375 50.53125 15.96875 48.96875 +Q 14.453125 47.40625 12.203125 47.40625 +Q 10.015625 47.40625 8.453125 48.96875 +Q 6.890625 50.53125 6.890625 52.6875 +Q 6.890625 56.984375 9.46875 60.15625 +Q 12.0625 63.328125 16.140625 64.96875 +Q 20.21875 66.609375 24.3125 66.609375 +Q 27.34375 66.609375 30.703125 65.703125 +Q 34.078125 64.796875 36.8125 63.109375 +Q 39.546875 61.421875 41.28125 58.78125 +Q 43.015625 56.15625 43.015625 52.78125 +Q 43.015625 48.578125 41.140625 45.015625 +Q 39.265625 41.453125 35.984375 38.859375 +Q 32.71875 36.28125 28.8125 35.015625 +Q 33.15625 34.1875 37.0625 31.734375 +Q 40.96875 29.296875 43.328125 25.484375 +Q 45.703125 21.6875 45.703125 17.28125 +Q 45.703125 11.765625 42.671875 7.296875 +Q 39.65625 2.828125 34.71875 0.3125 +Q 29.78125 -2.203125 24.3125 -2.203125 +Q 19.625 -2.203125 14.90625 -0.40625 +Q 10.203125 1.375 7.203125 4.9375 +Q 4.203125 8.5 4.203125 13.484375 +Q 4.203125 15.96875 5.859375 17.625 +Q 7.515625 19.28125 10.015625 19.28125 +Q 11.625 19.28125 12.96875 18.53125 +Q 14.3125 17.78125 15.0625 16.40625 +Q 15.828125 15.046875 15.828125 13.484375 +Q 15.828125 11.03125 14.109375 9.375 +Q 12.40625 7.71875 10.015625 7.71875 +z +" id="Cmr10-51"/> + <path d="M 2.09375 -22.703125 +L 10.5 -22.703125 +L 10.5 72.703125 +L 2.09375 72.703125 +L 2.09375 75 +L 17.203125 75 +L 17.203125 -25 +L 2.09375 -25 +z +" id="CMUSerif-Roman-93"/> </defs> - <g transform="translate(91.250474 222.339856)scale(0.1 -0.1)"> - <use transform="translate(0 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-68"/> - <use transform="translate(71.929985 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-101"/> - <use transform="translate(116.163554 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-110"/> - <use transform="translate(165.976754 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-115"/> - <use transform="translate(204.73046 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-105"/> - <use transform="translate(232.42563 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-116"/> - <use transform="translate(260.120799 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-121"/> - <use transform="translate(341.163113 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular_Italic-110"/> - <use transform="translate(390.976313 0)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-72"/> - <use transform="translate(475.932143 15.050129)scale(0.996264)" xlink:href="#CMR10-91"/> - <use transform="translate(503.52765 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-99"/> - <use transform="translate(547.761218 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-109"/> - <use transform="translate(625.269588 51.213361)scale(0.737241)" xlink:href="#CMSY10-0"/> - <use transform="translate(682.552458 51.213361)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-51"/> - <use transform="translate(719.912632 15.050129)scale(0.996264)" xlink:href="#CMR10-93"/> + <g transform="translate(48.976 221.69725)scale(0.1 -0.1)"> + <use transform="translate(0 0.109375)" xlink:href="#CMUSerif-Roman-72"/> + <use transform="translate(74.999985 0.109375)" xlink:href="#CMUSerif-Roman-121"/> + <use transform="translate(127.699982 0.109375)" xlink:href="#CMUSerif-Roman-100"/> + <use transform="translate(183.199966 0.109375)" xlink:href="#CMUSerif-Roman-114"/> + <use transform="translate(222.299957 0.109375)" xlink:href="#CMUSerif-Roman-111"/> + <use transform="translate(272.299942 0.109375)" xlink:href="#CMUSerif-Roman-103"/> + <use transform="translate(322.299927 0.109375)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(366.699921 0.109375)" xlink:href="#CMUSerif-Roman-110"/> + <use transform="translate(422.199905 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(455.499893 0.109375)" xlink:href="#CMUSerif-Roman-110"/> + <use transform="translate(510.999878 0.109375)" xlink:href="#CMUSerif-Roman-117"/> + <use transform="translate(566.499863 0.109375)" xlink:href="#CMUSerif-Roman-109"/> + <use transform="translate(649.79985 0.109375)" xlink:href="#CMUSerif-Roman-98"/> + <use transform="translate(705.299835 0.109375)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(749.699829 0.109375)" xlink:href="#CMUSerif-Roman-114"/> + <use transform="translate(788.79982 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(822.099808 0.109375)" xlink:href="#CMUSerif-Roman-100"/> + <use transform="translate(877.599792 0.109375)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(921.999786 0.109375)" xlink:href="#CMUSerif-Roman-110"/> + <use transform="translate(977.499771 0.109375)" xlink:href="#CMUSerif-Roman-115"/> + <use transform="translate(1016.899765 0.109375)" xlink:href="#CMUSerif-Roman-105"/> + <use transform="translate(1044.599762 0.109375)" xlink:href="#CMUSerif-Roman-116"/> + <use transform="translate(1083.39975 0.109375)" xlink:href="#CMUSerif-Roman-121"/> + <use transform="translate(1136.099747 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(1169.399734 0.109375)" xlink:href="#Cmmi10-110"/> + <use transform="translate(1229.4095 -16.896875)scale(0.7)" xlink:href="#Cmr10-72"/> + <use transform="translate(1288.286844 0.109375)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(1321.586832 0.109375)" xlink:href="#CMUSerif-Roman-91"/> + <use transform="translate(1349.386819 0.109375)" xlink:href="#CMUSerif-Roman-99"/> + <use transform="translate(1393.786813 0.109375)" xlink:href="#CMUSerif-Roman-109"/> + <use transform="translate(1481.550942 38.373438)scale(0.7)" xlink:href="#Cmsy10-161"/> + <use transform="translate(1535.930825 38.373438)scale(0.7)" xlink:href="#Cmr10-51"/> + <use transform="translate(1577.308168 0.109375)" xlink:href="#CMUSerif-Roman-93"/> </g> </g> </g> @@ -601,88 +1093,151 @@ z <defs> <path d="M 0 0 L -3.5 0 -" id="mec8c027021" style="stroke:#000000;stroke-width:0.8;"/> +" id="me1123541e6" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> - <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#mec8c027021" y="163.232825"/> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#me1123541e6" y="163.232825"/> </g> </g> <g id="text_7"> - <!-- $10^{2}$ --> - <g transform="translate(13.371186 166.692074)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-49"/> - <use transform="translate(49.8132 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-48"/> - <use transform="translate(99.626401 36.163231)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-50"/> + <!-- $\mathdefault{10^{2}}$ --> + <g transform="translate(13.22 166.703137)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-50"/> </g> </g> </g> <g id="ytick_2"> <g id="line2d_7"> <g> - <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#mec8c027021" y="114.470825"/> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#me1123541e6" y="114.470825"/> </g> </g> <g id="text_8"> - <!-- $10^{3}$ --> - <g transform="translate(13.371186 117.930074)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-49"/> - <use transform="translate(49.8132 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-48"/> - <use transform="translate(99.626401 36.163231)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-51"/> + <!-- $\mathdefault{10^{3}}$ --> + <defs> + <path d="M 4.203125 13.5 +Q 4.203125 16.5 5.890625 17.890625 +Q 7.59375 19.296875 9.796875 19.296875 +Q 12.09375 19.296875 13.75 17.796875 +Q 15.40625 16.296875 15.40625 13.703125 +Q 15.40625 10.90625 13.453125 9.34375 +Q 11.5 7.796875 8.796875 8.203125 +Q 11.203125 4.203125 15.59375 2.390625 +Q 20 0.59375 24.09375 0.59375 +Q 28.40625 0.59375 31.90625 4.296875 +Q 35.40625 8 35.40625 17.09375 +Q 35.40625 24.796875 32.40625 29.25 +Q 29.40625 33.703125 23.5 33.703125 +L 19.09375 33.703125 +Q 17.59375 33.703125 17.140625 33.84375 +Q 16.703125 34 16.703125 34.796875 +Q 16.703125 35.796875 18.203125 36 +Q 19.703125 36 22.09375 36.296875 +Q 27.90625 36.5 31 41.5 +Q 33.796875 46.203125 33.796875 52.90625 +Q 33.796875 59 30.890625 61.546875 +Q 28 64.09375 24.203125 64.09375 +Q 20.703125 64.09375 16.84375 62.640625 +Q 13 61.203125 10.90625 57.90625 +Q 17.09375 57.90625 17.09375 52.90625 +Q 17.09375 50.703125 15.6875 49.25 +Q 14.296875 47.796875 12 47.796875 +Q 9.796875 47.796875 8.34375 49.1875 +Q 6.90625 50.59375 6.90625 53 +Q 6.90625 58.703125 12 62.640625 +Q 17.09375 66.59375 24.59375 66.59375 +Q 32 66.59375 37.5 62.6875 +Q 43 58.796875 43 52.796875 +Q 43 46.90625 39.09375 42.046875 +Q 35.203125 37.203125 29 35.203125 +Q 36.59375 33.703125 41.140625 28.546875 +Q 45.703125 23.40625 45.703125 17.09375 +Q 45.703125 9.296875 39.546875 3.546875 +Q 33.40625 -2.203125 24.40625 -2.203125 +Q 16.09375 -2.203125 10.140625 2.296875 +Q 4.203125 6.796875 4.203125 13.5 +z +" id="CMUSerif-Roman-51"/> + </defs> + <g transform="translate(13.22 117.941137)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-51"/> </g> </g> </g> <g id="ytick_3"> <g id="line2d_8"> <g> - <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#mec8c027021" y="65.708825"/> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#me1123541e6" y="65.708825"/> </g> </g> <g id="text_9"> - <!-- $10^{4}$ --> - <g transform="translate(13.371186 69.168074)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-49"/> - <use transform="translate(49.8132 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-48"/> - <use transform="translate(99.626401 36.163231)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-52"/> + <!-- $\mathdefault{10^{4}}$ --> + <g transform="translate(13.22 69.179137)scale(0.1 -0.1)"> + <use transform="translate(0 0.442188)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.442188)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.607813)scale(0.7)" xlink:href="#CMUSerif-Roman-52"/> </g> </g> </g> <g id="ytick_4"> <g id="line2d_9"> <g> - <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#mec8c027021" y="16.946825"/> + <use style="stroke:#000000;stroke-width:0.8;" x="34.02" xlink:href="#me1123541e6" y="16.946825"/> </g> </g> <g id="text_10"> - <!-- $10^{5}$ --> + <!-- $\mathdefault{10^{5}}$ --> <defs> - <path d="M 18.09375 59 -L 37.703125 59 -C 39.296875 59 39.703125 59.203125 40 59.90625 -L 43.796875 68.796875 -L 42.90625 69.5 -C 41.40625 67.40625 40.40625 66.90625 38.296875 66.90625 -L 17.40625 66.90625 -L 6.5 43.109375 -C 6.40625 42.90625 6.40625 42.8125 6.40625 42.609375 -C 6.40625 42.109375 6.796875 41.8125 7.59375 41.8125 -C 10.796875 41.8125 14.796875 41.109375 18.90625 39.796875 -C 30.40625 36.078125 35.703125 29.84375 35.703125 19.90625 -C 35.703125 10.25 29.59375 2.703125 21.796875 2.703125 -C 19.796875 2.703125 18.09375 3.40625 15.09375 5.625 -C 11.90625 7.9375 9.59375 8.9375 7.5 8.9375 -C 4.59375 8.9375 3.203125 7.734375 3.203125 5.21875 -C 3.203125 1.40625 7.90625 -1 15.40625 -1 -C 23.796875 -1 31 1.71875 36 6.84375 -C 40.59375 11.375 42.703125 17.09375 42.703125 24.734375 -C 42.703125 31.96875 40.796875 36.59375 35.796875 41.609375 -C 31.40625 46.046875 25.703125 48.34375 13.90625 50.453125 -z -" id="Nimbus_Roman_No9_L_Regular-53"/> + <path d="M 5 16.09375 +Q 5 19.09375 6.59375 20.25 +Q 8.203125 21.40625 9.90625 21.40625 +Q 12.203125 21.40625 13.546875 19.953125 +Q 14.90625 18.5 14.90625 16.5 +Q 14.90625 14.5 13.546875 13.046875 +Q 12.203125 11.59375 9.90625 11.59375 +Q 8.796875 11.59375 8.203125 11.796875 +Q 9.5 7.203125 13.546875 3.890625 +Q 17.59375 0.59375 22.90625 0.59375 +Q 29.59375 0.59375 33.59375 7.09375 +Q 36 11.296875 36 20.796875 +Q 36 29.203125 34.203125 33.40625 +Q 31.40625 39.796875 25.703125 39.796875 +Q 17.59375 39.796875 12.796875 32.796875 +Q 12.203125 31.90625 11.5 31.90625 +Q 10.5 31.90625 10.296875 32.453125 +Q 10.09375 33 10.09375 34.5 +L 10.09375 64.09375 +Q 10.09375 66.5 11.09375 66.5 +Q 11.5 66.5 12.296875 66.203125 +Q 18.59375 63.40625 25.59375 63.40625 +Q 32.796875 63.40625 39.203125 66.296875 +Q 39.703125 66.59375 40 66.59375 +Q 41 66.59375 41 65.5 +Q 41 65.09375 40.203125 63.9375 +Q 39.40625 62.796875 37.703125 61.296875 +Q 36 59.796875 33.796875 58.390625 +Q 31.59375 57 28.390625 56.046875 +Q 25.203125 55.09375 21.703125 55.09375 +Q 17.5 55.09375 13.203125 56.40625 +L 13.203125 36.90625 +Q 18.40625 42 25.90625 42 +Q 33.90625 42 39.40625 35.546875 +Q 44.90625 29.09375 44.90625 20.09375 +Q 44.90625 10.703125 38.40625 4.25 +Q 31.90625 -2.203125 23.09375 -2.203125 +Q 15.09375 -2.203125 10.046875 3.5 +Q 5 9.203125 5 16.09375 +z +" id="CMUSerif-Roman-53"/> </defs> - <g transform="translate(13.371186 20.406074)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-49"/> - <use transform="translate(49.8132 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-48"/> - <use transform="translate(99.626401 36.163231)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-53"/> + <g transform="translate(13.22 20.417137)scale(0.1 -0.1)"> + <use transform="translate(0 0.21875)" xlink:href="#CMUSerif-Roman-49"/> + <use transform="translate(49.999985 0.21875)" xlink:href="#CMUSerif-Roman-48"/> + <use transform="translate(100.75411 30.384375)scale(0.7)" xlink:href="#CMUSerif-Roman-53"/> </g> </g> </g> @@ -691,470 +1246,516 @@ z <defs> <path d="M 0 0 L -2 0 -" id="mc0ad7d39b4" style="stroke:#000000;stroke-width:0.6;"/> +" id="m389a2448bd" style="stroke:#000000;stroke-width:0.6;"/> </defs> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="197.316"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="197.316"/> </g> </g> </g> <g id="ytick_6"> <g id="line2d_11"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="188.729438"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="188.729438"/> </g> </g> </g> <g id="ytick_7"> <g id="line2d_12"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="182.637175"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="182.637175"/> </g> </g> </g> <g id="ytick_8"> <g id="line2d_13"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="177.911649"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="177.911649"/> </g> </g> </g> <g id="ytick_9"> <g id="line2d_14"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="174.050613"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="174.050613"/> </g> </g> </g> <g id="ytick_10"> <g id="line2d_15"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="170.786154"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="170.786154"/> </g> </g> </g> <g id="ytick_11"> <g id="line2d_16"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="167.958351"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="167.958351"/> </g> </g> </g> <g id="ytick_12"> <g id="line2d_17"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="165.464051"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="165.464051"/> </g> </g> </g> <g id="ytick_13"> <g id="line2d_18"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="148.554"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="148.554"/> </g> </g> </g> <g id="ytick_14"> <g id="line2d_19"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="139.967438"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="139.967438"/> </g> </g> </g> <g id="ytick_15"> <g id="line2d_20"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="133.875175"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="133.875175"/> </g> </g> </g> <g id="ytick_16"> <g id="line2d_21"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="129.149649"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="129.149649"/> </g> </g> </g> <g id="ytick_17"> <g id="line2d_22"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="125.288613"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="125.288613"/> </g> </g> </g> <g id="ytick_18"> <g id="line2d_23"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="122.024154"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="122.024154"/> </g> </g> </g> <g id="ytick_19"> <g id="line2d_24"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="119.196351"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="119.196351"/> </g> </g> </g> <g id="ytick_20"> <g id="line2d_25"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="116.702051"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="116.702051"/> </g> </g> </g> <g id="ytick_21"> <g id="line2d_26"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="99.792"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="99.792"/> </g> </g> </g> <g id="ytick_22"> <g id="line2d_27"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="91.205438"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="91.205438"/> </g> </g> </g> <g id="ytick_23"> <g id="line2d_28"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="85.113175"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="85.113175"/> </g> </g> </g> <g id="ytick_24"> <g id="line2d_29"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="80.387649"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="80.387649"/> </g> </g> </g> <g id="ytick_25"> <g id="line2d_30"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="76.526613"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="76.526613"/> </g> </g> </g> <g id="ytick_26"> <g id="line2d_31"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="73.262154"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="73.262154"/> </g> </g> </g> <g id="ytick_27"> <g id="line2d_32"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="70.434351"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="70.434351"/> </g> </g> </g> <g id="ytick_28"> <g id="line2d_33"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="67.940051"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="67.940051"/> </g> </g> </g> <g id="ytick_29"> <g id="line2d_34"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="51.03"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="51.03"/> </g> </g> </g> <g id="ytick_30"> <g id="line2d_35"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="42.443438"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="42.443438"/> </g> </g> </g> <g id="ytick_31"> <g id="line2d_36"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="36.351175"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="36.351175"/> </g> </g> </g> <g id="ytick_32"> <g id="line2d_37"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="31.625649"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="31.625649"/> </g> </g> </g> <g id="ytick_33"> <g id="line2d_38"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="27.764613"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="27.764613"/> </g> </g> </g> <g id="ytick_34"> <g id="line2d_39"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="24.500154"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="24.500154"/> </g> </g> </g> <g id="ytick_35"> <g id="line2d_40"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="21.672351"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="21.672351"/> </g> </g> </g> <g id="ytick_36"> <g id="line2d_41"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="19.178051"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="19.178051"/> </g> </g> </g> <g id="ytick_37"> <g id="line2d_42"> <g> - <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#mc0ad7d39b4" y="2.268"/> + <use style="stroke:#000000;stroke-width:0.6;" x="34.02" xlink:href="#m389a2448bd" y="2.268"/> </g> </g> </g> <g id="text_11"> - <!-- ${\rm Temperature}~T~[{\rm K}]$ --> + <!-- Temperature $T$ [K] --> <defs> - <path d="M 25.40625 62 -L 25.40625 11.734375 -C 25.40625 3.1875 24.296875 2.09375 16 2.09375 -L 16 0 -L 45.203125 0 -L 45.203125 2.09375 -C 37 2.09375 35.59375 3.390625 35.59375 10.734375 -L 35.59375 62 -L 41 62 -C 52.40625 62 54.59375 60.203125 56.90625 49.203125 -L 59.296875 49.203125 -L 58.703125 66.203125 -L 2.296875 66.203125 -L 1.703125 49.203125 -L 4.09375 49.203125 -C 6.5 60.09375 8.796875 62 20 62 -z -" id="Nimbus_Roman_No9_L_Regular-84"/> - <path d="M 0.90625 39.3125 -C 1.796875 39.40625 2.5 39.40625 3.40625 39.40625 -C 6.796875 39.40625 7.5 38.40625 7.5 33.671875 -L 7.5 -13.359375 -C 7.5 -18.578125 6.40625 -19.703125 0.5 -20.296875 -L 0.5 -22 -L 24.703125 -22 -L 24.703125 -20.203125 -C 17.203125 -20.203125 15.90625 -19.09375 15.90625 -12.75 -L 15.90625 3.109375 -C 19.40625 -0.203125 21.796875 -1.203125 26 -1.203125 -C 37.796875 -1.203125 47 10.046875 47 24.609375 -C 47 37.0625 40 46 30.296875 46 -C 24.703125 46 20.296875 43.5 15.90625 38.09375 -L 15.90625 45.796875 -L 15.296875 46 -C 9.90625 43.90625 6.40625 42.59375 0.90625 40.90625 -z -M 15.90625 33.375 -C 15.90625 36.390625 21.5 40 26.09375 40 -C 33.5 40 38.40625 32.359375 38.40625 20.6875 -C 38.40625 9.546875 33.5 2 26.296875 2 -C 21.59375 2 15.90625 5.609375 15.90625 8.625 -z -" id="Nimbus_Roman_No9_L_Regular-112"/> - <path d="M 0.703125 39 -C 2.09375 39.296875 3 39.40625 4.203125 39.40625 -C 6.703125 39.40625 7.59375 37.796875 7.59375 33.40625 -L 7.59375 8.40625 -C 7.59375 3.40625 6.90625 2.703125 0.5 1.5 -L 0.5 0 -L 24.5 0 -L 24.5 1.59375 -C 17.703125 1.59375 16 3.109375 16 8.828125 -L 16 31.453125 -C 16 34.671875 20.296875 39.703125 23 39.703125 -C 23.59375 39.703125 24.5 39.203125 25.59375 38.203125 -C 27.203125 36.796875 28.296875 36.203125 29.59375 36.203125 -C 32 36.203125 33.5 37.90625 33.5 40.703125 -C 33.5 44 31.40625 46 28 46 -C 23.796875 46 20.90625 43.703125 16 36.609375 -L 16 45.796875 -L 15.5 46 -C 10.203125 43.796875 6.59375 42.515625 0.703125 40.609375 -z -" id="Nimbus_Roman_No9_L_Regular-114"/> - <path d="M 44.203125 6.609375 -C 42.5 5.203125 41.296875 4.703125 39.796875 4.703125 -C 37.5 4.703125 36.796875 6.09375 36.796875 10.5 -L 36.796875 30 -C 36.796875 35.203125 36.296875 38.09375 34.796875 40.5 -C 32.59375 44.09375 28.296875 46 22.40625 46 -C 13 46 5.59375 41.09375 5.59375 34.796875 -C 5.59375 32.5 7.59375 30.5 9.90625 30.5 -C 12.296875 30.5 14.40625 32.5 14.40625 34.703125 -C 14.40625 35.09375 14.296875 35.59375 14.203125 36.296875 -C 14 37.203125 13.90625 38 13.90625 38.703125 -C 13.90625 41.40625 17.09375 43.59375 21.09375 43.59375 -C 26 43.59375 28.703125 40.703125 28.703125 35.296875 -L 28.703125 29.203125 -C 13.296875 23 11.59375 22.203125 7.296875 18.40625 -C 5.09375 16.40625 3.703125 13 3.703125 9.703125 -C 3.703125 3.40625 8.09375 -1 14.203125 -1 -C 18.59375 -1 22.703125 1.09375 28.796875 6.296875 -C 29.296875 1.09375 31.09375 -1 35.203125 -1 -C 38.59375 -1 40.703125 0.203125 44.203125 4 -z -M 28.703125 12.234375 -C 28.703125 9.125 28.203125 8.21875 26.09375 7.015625 -C 23.703125 5.609375 20.90625 4.703125 18.796875 4.703125 -C 15.296875 4.703125 12.5 8.125 12.5 12.4375 -L 12.5 12.84375 -C 12.5 18.765625 16.59375 22.390625 28.703125 26.796875 -z -" id="Nimbus_Roman_No9_L_Regular-97"/> - <path d="M 47.90625 5 -L 47.40625 5 -C 42.796875 5 41.703125 6.09375 41.703125 10.703125 -L 41.703125 45 -L 25.90625 45 -L 25.90625 43.09375 -C 32.09375 43.09375 33.296875 42.09375 33.296875 37.109375 -L 33.296875 13.671875 -C 33.296875 10.890625 32.796875 9.484375 31.40625 8.390625 -C 28.703125 6.203125 25.59375 5 22.59375 5 -C 18.703125 5 15.5 8.390625 15.5 12.578125 -L 15.5 45 -L 0.90625 45 -L 0.90625 43.40625 -C 5.703125 43.40625 7.09375 41.90625 7.09375 37.296875 -L 7.09375 12.03125 -C 7.09375 4.109375 11.90625 -1 19.203125 -1 -C 22.90625 -1 26.796875 0.59375 29.5 3.296875 -L 33.796875 7.59375 -L 33.796875 -0.703125 -L 34.203125 -0.90625 -C 39.203125 1.09375 42.796875 2.203125 47.90625 3.59375 -z -" id="Nimbus_Roman_No9_L_Regular-117"/> - <path d="M 63.296875 65 -L 10.09375 65 -L 5.90625 49.671875 -L 7.703125 49.265625 -C 13 59.921875 16.203125 61.609375 31.5 61.609375 -L 17.09375 8.984375 -C 15.5 3.6875 13.09375 2.09375 6.5 1.59375 -L 6.5 0 -L 35.5 0 -L 35.5 1.59375 -C 33.796875 1.59375 32.296875 2 31.703125 2 -C 27.703125 2 26.5 2.890625 26.5 5.90625 -C 26.5 7.203125 26.796875 8.390625 27.703125 11.78125 -L 41.59375 61.609375 -L 47.09375 61.609375 -C 54.296875 61.609375 57.5 59.09375 57.5 53.46875 -C 57.5 52.171875 57.40625 50.6875 57.203125 48.96875 -L 58.90625 48.765625 -z -" id="Nimbus_Roman_No9_L_Regular_Italic-84"/> - <path d="M 41.296875 64.203125 -C 42.5 64 43.5 64 43.90625 64 -C 46.90625 64 48.09375 63.203125 48.09375 61.203125 -C 48.09375 58.984375 45.796875 55.984375 40.296875 50.890625 -L 22.59375 34.75 -L 22.59375 55.21875 -C 22.59375 62.5 23.703125 63.609375 31.796875 64.203125 -L 31.796875 66.109375 -L 3.40625 66.109375 -L 3.40625 64.203125 -C 11.203125 63.609375 12.40625 62.3125 12.40625 55.171875 -L 12.40625 11.71875 -C 12.40625 3.390625 11.296875 2.09375 3.40625 2.09375 -L 3.40625 0 -L 31.59375 0 -L 31.59375 2.09375 -C 23.796875 2.09375 22.59375 3.296875 22.59375 10.671875 -L 22.59375 29.546875 -L 25.203125 31.65625 -L 35.796875 21.171875 -C 43.40625 13.6875 48.796875 6.59375 48.796875 4.203125 -C 48.796875 2.796875 47.40625 2.09375 44.59375 2.09375 -C 44.09375 2.09375 43 2.09375 41.796875 1.890625 -L 41.796875 0 -L 72.296875 0 -L 72.296875 2.09375 -C 67.09375 2.09375 65.703125 3.09375 56.59375 12.75 -L 33.296875 37.640625 -L 52.296875 56.421875 -C 59.09375 62.90625 60.703125 63.703125 67.5 64.203125 -L 67.5 66.109375 -L 41.296875 66.109375 -z -" id="Nimbus_Roman_No9_L_Regular-75"/> + <path d="M 3.59375 45.203125 +L 5.5 67.703125 +L 66.59375 67.703125 +L 68.5 45.203125 +L 66 45.203125 +Q 65.59375 49.703125 65.25 52.296875 +Q 64.90625 54.90625 64.046875 57.34375 +Q 63.203125 59.796875 62.140625 61 +Q 61.09375 62.203125 59.09375 63.140625 +Q 57.09375 64.09375 54.5 64.34375 +Q 51.90625 64.59375 48 64.59375 +Q 43.40625 64.59375 42.296875 64.40625 +Q 41.09375 64.09375 40.796875 63.25 +Q 40.5 62.40625 40.5 60.59375 +L 40.5 7.90625 +Q 40.5 5.90625 40.890625 5.09375 +Q 41.296875 4.296875 43.59375 3.6875 +Q 45.90625 3.09375 51 3.09375 +L 55 3.09375 +L 55 0 +Q 50.90625 0.296875 36 0.296875 +Q 21.203125 0.296875 17.09375 0 +L 17.09375 3.09375 +L 21.09375 3.09375 +Q 26.203125 3.09375 28.5 3.6875 +Q 30.796875 4.296875 31.1875 5.09375 +Q 31.59375 5.90625 31.59375 7.90625 +L 31.59375 60.59375 +Q 31.59375 62 31.5 62.59375 +Q 31.40625 63.203125 30.953125 63.703125 +Q 30.5 64.203125 29.5 64.390625 +Q 28.5 64.59375 24.09375 64.59375 +Q 20.203125 64.59375 17.59375 64.34375 +Q 15 64.09375 13 63.140625 +Q 11 62.203125 9.953125 61 +Q 8.90625 59.796875 8.046875 57.34375 +Q 7.203125 54.90625 6.84375 52.296875 +Q 6.5 49.703125 6.09375 45.203125 +z +" id="CMUSerif-Roman-84"/> + <path d="M 2.796875 -16.296875 +Q 8.09375 -16.296875 9.34375 -15.640625 +Q 10.59375 -15 10.59375 -11.796875 +L 10.59375 35 +Q 10.59375 38.296875 9.34375 39.140625 +Q 8.09375 40 2.796875 40 +L 2.796875 43.09375 +L 17.203125 44.203125 +L 17.203125 37.59375 +Q 23.203125 44.203125 31.203125 44.203125 +Q 39.703125 44.203125 45.890625 37.59375 +Q 52.09375 31 52.09375 21.59375 +Q 52.09375 12.09375 45.5 5.5 +Q 38.90625 -1.09375 29.796875 -1.09375 +Q 24.796875 -1.09375 21.4375 1.453125 +Q 18.09375 4 17.5 5.90625 +L 17.5 5 +L 17.5 -11.796875 +Q 17.5 -15 18.75 -15.640625 +Q 20 -16.296875 25.296875 -16.296875 +L 25.296875 -19.40625 +Q 14.796875 -19.09375 14 -19.09375 +Q 13 -19.09375 2.796875 -19.40625 +z +M 17.5 11.40625 +Q 17.5 9.90625 17.703125 9.34375 +Q 17.90625 8.796875 18.90625 7.203125 +Q 22.90625 1.09375 29.40625 1.09375 +Q 35.09375 1.09375 39.4375 6.9375 +Q 43.796875 12.796875 43.796875 21.59375 +Q 43.796875 30 39.84375 35.84375 +Q 35.90625 41.703125 30.40625 41.703125 +Q 26.5 41.703125 23.09375 39.59375 +Q 19.703125 37.5 17.5 33.703125 +z +" id="CMUSerif-Roman-112"/> + <path d="M 4.203125 9.5 +Q 4.203125 18 14.203125 22.5 +Q 20.203125 25.40625 32.59375 26.09375 +L 32.59375 29.796875 +Q 32.59375 36 29.34375 39.296875 +Q 26.09375 42.59375 22 42.59375 +Q 14.703125 42.59375 11.203125 38 +Q 14.203125 37.90625 15.25 36.40625 +Q 16.296875 34.90625 16.296875 33.40625 +Q 16.296875 31.40625 15.046875 30.09375 +Q 13.796875 28.796875 11.703125 28.796875 +Q 9.703125 28.796875 8.390625 30.046875 +Q 7.09375 31.296875 7.09375 33.5 +Q 7.09375 38.40625 11.5 41.59375 +Q 15.90625 44.796875 22.203125 44.796875 +Q 30.40625 44.796875 35.90625 39.296875 +Q 37.59375 37.59375 38.4375 35.390625 +Q 39.296875 33.203125 39.390625 31.75 +Q 39.5 30.296875 39.5 27.5 +L 39.5 7.5 +Q 39.5 6.90625 39.703125 5.953125 +Q 39.90625 5 40.796875 3.75 +Q 41.703125 2.5 43.203125 2.5 +Q 46.796875 2.5 46.796875 8.90625 +L 46.796875 14.5 +L 49.296875 14.5 +L 49.296875 8.90625 +Q 49.296875 3.59375 46.5 1.5 +Q 43.703125 -0.59375 41.09375 -0.59375 +Q 37.796875 -0.59375 35.6875 1.84375 +Q 33.59375 4.296875 33.296875 7.59375 +Q 31.796875 3.796875 28.34375 1.34375 +Q 24.90625 -1.09375 20.203125 -1.09375 +Q 16.59375 -1.09375 13.1875 -0.1875 +Q 9.796875 0.703125 7 3.203125 +Q 4.203125 5.703125 4.203125 9.5 +z +M 11.90625 9.59375 +Q 11.90625 5.90625 14.546875 3.5 +Q 17.203125 1.09375 20.90625 1.09375 +Q 25.09375 1.09375 28.84375 4.34375 +Q 32.59375 7.59375 32.59375 14 +L 32.59375 24 +Q 21.5 23.59375 16.703125 19.1875 +Q 11.90625 14.796875 11.90625 9.59375 +z +" id="CMUSerif-Roman-97"/> + <path d="M 4.59375 1.3125 +Q 4.640625 1.5625 4.8125 2.1875 +Q 4.984375 2.828125 5.25 3.171875 +Q 5.515625 3.515625 6 3.515625 +Q 14.59375 3.515625 17.390625 4 +Q 20.0625 4.6875 20.609375 6.890625 +L 34.28125 61.8125 +Q 34.71875 63.03125 34.71875 64.015625 +Q 34.71875 64.796875 31.203125 64.796875 +L 25.390625 64.796875 +Q 18.703125 64.796875 15.0625 62.734375 +Q 11.421875 60.6875 9.71875 57.3125 +Q 8.015625 53.953125 5.328125 46.296875 +Q 4.984375 45.40625 4.296875 45.40625 +L 3.421875 45.40625 +Q 2.390625 45.40625 2.390625 46.6875 +L 9.515625 67.390625 +Q 9.71875 68.3125 10.5 68.3125 +L 69.578125 68.3125 +Q 70.609375 68.3125 70.609375 67 +L 67.28125 46.296875 +Q 67.28125 46 66.9375 45.703125 +Q 66.609375 45.40625 66.3125 45.40625 +L 65.375 45.40625 +Q 64.40625 45.40625 64.40625 46.6875 +Q 65.484375 53.765625 65.484375 56.6875 +Q 65.484375 60.203125 64.015625 62 +Q 62.546875 63.8125 60.203125 64.296875 +Q 57.859375 64.796875 54.109375 64.796875 +L 48.1875 64.796875 +Q 45.515625 64.796875 44.578125 64.296875 +Q 43.65625 63.8125 43.015625 61.375 +L 29.296875 6.5 +Q 29.25 6.296875 29.21875 6.09375 +Q 29.203125 5.90625 29.109375 5.609375 +Q 29.109375 4.34375 30.609375 4 +Q 33.203125 3.515625 41.703125 3.515625 +Q 42.671875 3.515625 42.671875 2.203125 +Q 42.328125 0.78125 42.125 0.390625 +Q 41.9375 0 41.015625 0 +L 5.609375 0 +Q 4.59375 0 4.59375 1.3125 +z +" id="Cmmi10-84"/> + <path d="M 3.296875 0 +L 3.296875 3.09375 +L 5.703125 3.09375 +Q 11.09375 3.09375 12.34375 4 +Q 13.59375 4.90625 13.59375 7.796875 +L 13.59375 60.5 +Q 13.59375 63.40625 12.34375 64.296875 +Q 11.09375 65.203125 5.703125 65.203125 +L 3.296875 65.203125 +L 3.296875 68.296875 +Q 6.796875 68 18.09375 68 +Q 29.296875 68 32.796875 68.296875 +L 32.796875 65.203125 +L 30.40625 65.203125 +Q 25 65.203125 23.75 64.296875 +Q 22.5 63.40625 22.5 60.5 +L 22.5 28.703125 +L 53.796875 58.59375 +Q 55.59375 60.203125 55.59375 61.90625 +Q 55.59375 62.5 55.34375 63.140625 +Q 55.09375 63.796875 53.9375 64.5 +Q 52.796875 65.203125 51 65.203125 +L 51 68.296875 +Q 54.40625 68 63.703125 68 +Q 69.59375 68 72.203125 68.296875 +L 72.203125 65.203125 +Q 63.90625 65.09375 58 59.203125 +L 40 41.90625 +L 63.09375 7.90625 +Q 65.203125 4.796875 67.25 3.9375 +Q 69.296875 3.09375 73.59375 3.09375 +L 73.59375 0 +Q 67.296875 0.296875 62.09375 0.296875 +Q 51.296875 0.296875 47.796875 0 +L 47.796875 3.09375 +Q 53.703125 3.09375 53.703125 6.09375 +Q 53.703125 7.203125 52.203125 9.5 +L 34.09375 36.296875 +L 22.5 25.296875 +L 22.5 7.796875 +Q 22.5 4.90625 23.75 4 +Q 25 3.09375 30.40625 3.09375 +L 32.796875 3.09375 +L 32.796875 0 +Q 29.296875 0.296875 18 0.296875 +Q 6.796875 0.296875 3.296875 0 +z +" id="CMUSerif-Roman-75"/> </defs> - <g transform="translate(8.880526 137.975632)rotate(-90)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-84"/> - <use transform="translate(53.898284 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-101"/> - <use transform="translate(98.131853 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-109"/> - <use transform="translate(175.640223 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-112"/> - <use transform="translate(225.453424 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-101"/> - <use transform="translate(269.686992 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-114"/> - <use transform="translate(302.862222 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-97"/> - <use transform="translate(347.095791 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-116"/> - <use transform="translate(374.79096 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-117"/> - <use transform="translate(424.604161 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-114"/> - <use transform="translate(457.779391 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-101"/> - <use transform="translate(533.242072 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular_Italic-84"/> - <use transform="translate(632.514439 0)scale(0.996264)" xlink:href="#CMR10-91"/> - <use transform="translate(660.109945 0)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular-75"/> - <use transform="translate(732.03993 0)scale(0.996264)" xlink:href="#CMR10-93"/> + <g transform="translate(8.72 141.042)rotate(-90)scale(0.1 -0.1)"> + <use xlink:href="#CMUSerif-Roman-84"/> + <use transform="translate(72.199982 0)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(116.599976 0)" xlink:href="#CMUSerif-Roman-109"/> + <use transform="translate(199.899963 0)" xlink:href="#CMUSerif-Roman-112"/> + <use transform="translate(255.399948 0)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(299.799942 0)" xlink:href="#CMUSerif-Roman-114"/> + <use transform="translate(338.899933 0)" xlink:href="#CMUSerif-Roman-97"/> + <use transform="translate(388.899918 0)" xlink:href="#CMUSerif-Roman-116"/> + <use transform="translate(427.699905 0)" xlink:href="#CMUSerif-Roman-117"/> + <use transform="translate(483.19989 0)" xlink:href="#CMUSerif-Roman-114"/> + <use transform="translate(522.299881 0)" xlink:href="#CMUSerif-Roman-101"/> + <use transform="translate(566.699875 0)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(599.999863 0)" xlink:href="#Cmmi10-84"/> + <use transform="translate(658.3983 0)" xlink:href="#CMUSerif-Roman-32"/> + <use transform="translate(691.698288 0)" xlink:href="#CMUSerif-Roman-91"/> + <use transform="translate(719.498276 0)" xlink:href="#CMUSerif-Roman-75"/> + <use transform="translate(797.198257 0)" xlink:href="#CMUSerif-Roman-93"/> </g> </g> </g> <g id="line2d_43"> - <path clip-path="url(#p107a2e5a22)" d="M 77.714425 70.434351 + <path clip-path="url(#pf19aa30d2c)" d="M 77.714425 70.434351 L 227.8 70.434351 L 227.8 70.434351 " style="fill:none;stroke:#000000;stroke-linecap:square;"/> </g> <g id="line2d_44"> - <path clip-path="url(#p107a2e5a22)" d="M 146.991516 85.113175 + <path clip-path="url(#pf19aa30d2c)" d="M 146.991516 85.113175 L 227.8 9.275054 L 227.8 9.275054 " style="fill:none;stroke:#000000;stroke-linecap:square;"/> </g> <g id="line2d_45"> - <path clip-path="url(#p107a2e5a22)" d="M -1 70.434351 + <path clip-path="url(#pf19aa30d2c)" d="M -1 70.434351 L 77.714425 70.434351 " style="fill:none;stroke:#000000;stroke-dasharray:0.6,0.99;stroke-dashoffset:0;stroke-width:0.6;"/> </g> <g id="line2d_46"> - <path clip-path="url(#p107a2e5a22)" d="M -1 85.113175 + <path clip-path="url(#pf19aa30d2c)" d="M -1 85.113175 L 146.991516 85.113175 " style="fill:none;stroke:#000000;stroke-dasharray:0.6,0.99;stroke-dashoffset:0;stroke-width:0.6;"/> </g> <g id="line2d_47"> - <path clip-path="url(#p107a2e5a22)" d="M 77.714425 197.316 + <path clip-path="url(#pf19aa30d2c)" d="M 77.714425 197.316 L 77.714425 70.434351 " style="fill:none;stroke:#000000;stroke-dasharray:0.6,0.99;stroke-dashoffset:0;stroke-width:0.6;"/> </g> <g id="line2d_48"> - <path clip-path="url(#p107a2e5a22)" d="M 146.991516 197.316 + <path clip-path="url(#pf19aa30d2c)" d="M 146.991516 197.316 L 146.991516 85.113175 " style="fill:none;stroke:#000000;stroke-dasharray:0.6,0.99;stroke-dashoffset:0;stroke-width:0.6;"/> </g> <g id="line2d_49"> - <path clip-path="url(#p107a2e5a22)" d="M 68.658545 43.904505 + <path clip-path="url(#pf19aa30d2c)" d="M 68.658545 43.904505 L 103.297091 43.904505 " style="fill:none;stroke:#000000;stroke-dasharray:2.22,0.96;stroke-dashoffset:0;stroke-width:0.6;"/> </g> <g id="line2d_50"> - <path clip-path="url(#p107a2e5a22)" d="M 155.254909 57.122263 + <path clip-path="url(#pf19aa30d2c)" d="M 155.254909 57.122263 L 189.893455 24.614263 " style="fill:none;stroke:#000000;stroke-dasharray:2.22,0.96;stroke-dashoffset:0;stroke-width:0.6;"/> </g> @@ -1179,923 +1780,732 @@ L 224.532 2.268 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="text_12"> - <!-- $n_{\rm H}~\widehat{}~{\tt Cool\_gamma\_effective}$ --> + <!-- $n_{\rm H}$^Cool_gamma_effective --> <defs> - <path d="M 27.703125 68.5 -L 54.90625 56.203125 -L 56.09375 58.40625 -L 27.796875 74.40625 -L -0.5 58.40625 -L 0.59375 56.203125 -z -" id="CMEX10-98"/> - <path d="M 47.40625 58.296875 -C 47.40625 59.890625 47.40625 62.09375 44.59375 62.09375 -C 42.796875 62.09375 42.296875 61 41.90625 60.296875 -C 41.59375 59.5 40.796875 57.703125 40.5 57 -C 36.40625 60.59375 31.796875 62.09375 27.59375 62.09375 -C 14.703125 62.09375 4 48.390625 4 30.59375 -C 4 12.40625 15 -1 27.59375 -1 -C 39.296875 -1 47.40625 8.21875 47.40625 16.96875 -C 47.40625 20.03125 45.296875 20.03125 44.09375 20.03125 -C 42.703125 20.03125 41.09375 19.53125 40.90625 17.859375 -C 40.09375 5.109375 30 5.109375 28.296875 5.109375 -C 19 5.109375 10.5 15.859375 10.5 30.75 -C 10.5 45.65625 19.09375 56.296875 28.203125 56.296875 -C 33.59375 56.296875 39.5 52 40.90625 42.796875 -C 41.203125 40.59375 42.09375 40 44.09375 40 -C 47.40625 40 47.40625 41.796875 47.40625 43.796875 -z -" id="CMTT12-67"/> - <path d="M 45.59375 21.640625 -C 45.59375 34.109375 36.5 44 25.703125 44 -C 14.90625 44 5.796875 34.109375 5.796875 21.640625 -C 5.796875 9.078125 15 -0.5 25.703125 -0.5 -C 36.40625 -0.5 45.59375 9.078125 45.59375 21.640625 -z -M 25.703125 5.296875 -C 18.5 5.296875 12.296875 12.875 12.296875 22.34375 -C 12.296875 31.609375 18.703125 38.203125 25.703125 38.203125 -C 32.703125 38.203125 39.09375 31.609375 39.09375 22.34375 -C 39.09375 12.78125 32.90625 5.296875 25.703125 5.296875 -z -" id="CMTT12-111"/> - <path d="M 29 56.90625 -C 29 60 28.40625 61 25 61 -L 10.296875 61 -C 8.90625 61 6.296875 61 6.296875 58.109375 -C 6.296875 55.203125 8.90625 55.203125 10.296875 55.203125 -L 22.5 55.203125 -L 22.5 5.796875 -L 10.296875 5.796875 -C 8.90625 5.796875 6.296875 5.796875 6.296875 2.90625 -C 6.296875 0 8.90625 0 10.296875 0 -L 41.203125 0 -C 42.59375 0 45.203125 0 45.203125 2.90625 -C 45.203125 5.796875 42.59375 5.796875 41.203125 5.796875 -L 29 5.796875 -z -" id="CMTT12-108"/> - <path d="M 19 6.59375 -C 17.796875 6.59375 13.203125 6.59375 13.203125 12.015625 -C 13.203125 13.921875 13.5 14.3125 13.90625 15.109375 -C 15.90625 13.703125 19.203125 12.40625 22.796875 12.40625 -C 31.90625 12.40625 38.90625 19.703125 38.90625 28.28125 -C 38.90625 30.78125 38.296875 33.890625 36.203125 37.1875 -C 38.796875 38.421875 41.203125 38.703125 42.703125 38.703125 -C 43.296875 36 46.203125 36 46.296875 36 -C 47.5 36 50 36.796875 50 39.796875 -C 50 41.703125 48.5 45 42.90625 45 -C 41.09375 45 36.59375 44.5625 32.40625 40.90625 -C 29.09375 43.203125 25.703125 44 22.90625 44 -C 13.796875 44 6.796875 36.765625 6.796875 28.21875 -C 6.796875 26.03125 7.296875 22.265625 10.09375 18.703125 -C 8.203125 15.90625 7.90625 12.90625 7.90625 11.703125 -C 7.90625 8.203125 9.59375 5.40625 10.40625 4.5 -C 4.90625 1.484375 2.90625 -3.9375 2.90625 -7.84375 -C 2.90625 -16.171875 13 -22.5 25.703125 -22.5 -C 38.40625 -22.5 48.5 -16.28125 48.5 -7.84375 -C 48.5 6.59375 30.796875 6.59375 27.5 6.59375 -z -M 22.796875 18 -C 17.796875 18 13.296875 22.359375 13.296875 28.203125 -C 13.296875 34.046875 17.90625 38.390625 22.796875 38.390625 -C 28.09375 38.390625 32.40625 33.84375 32.40625 28.203125 -C 32.40625 22.546875 28.09375 18 22.796875 18 -z -M 25.703125 -16.890625 -C 15.90625 -16.890625 8.59375 -12.484375 8.59375 -7.84375 -C 8.59375 -6.328125 9.09375 -2.8125 12.796875 -0.515625 -C 15.09375 1 16.09375 1 23 1 -C 31.796875 1 42.796875 1 42.796875 -7.84375 -C 42.796875 -12.484375 35.5 -16.890625 25.703125 -16.890625 -z -" id="CMTT12-103"/> - <path d="M 41.40625 28.375 -C 41.40625 35.984375 35.703125 44 22.203125 44 -C 18 44 8.296875 44 8.296875 37.1875 -C 8.296875 34.53125 10.203125 33.046875 12.40625 33.046875 -C 13 33.046875 16.296875 33.046875 16.40625 37.3125 -C 16.40625 37.796875 16.5 37.90625 18.59375 38.09375 -C 19.796875 38.203125 21.09375 38.203125 22.296875 38.203125 -C 24.59375 38.203125 28 38.203125 31.296875 35.65625 -C 34.90625 32.8125 34.90625 29.9375 34.90625 27 -C 29 27 23.203125 27 17 24.984375 -C 12 23.265625 5.59375 19.625 5.59375 12.75 -C 5.59375 5.5625 11.90625 -0.5 21.203125 -0.5 -C 24.40625 -0.5 30.59375 0 35.796875 3.53125 -C 37.796875 0 42.796875 0 46.59375 0 -C 49 0 51.40625 0 51.40625 2.859375 -C 51.40625 5.703125 48.796875 5.703125 47.40625 5.703125 -C 44.796875 5.703125 42.796875 5.90625 41.40625 6.515625 -z -M 34.90625 13.296875 -C 34.90625 11 34.90625 8.890625 30.796875 7 -C 27.296875 5.296875 22.59375 5.296875 22.296875 5.296875 -C 16.40625 5.296875 12.09375 8.5 12.09375 12.59375 -C 12.09375 18.5 22.796875 21.890625 34.90625 21.890625 -z -" id="CMTT12-97"/> - <path d="M 45.296875 30.359375 -C 45.296875 32.5625 45.296875 43.796875 36.5 43.796875 -C 33 43.796875 29.59375 42.1875 26.90625 38.484375 -C 26.296875 39.984375 24.09375 43.796875 19.296875 43.796875 -C 14.796875 43.796875 11.703125 40.828125 10.90625 39.921875 -C 10.796875 43 8.703125 43 6.90625 43 -L 3.90625 43 -C 2.5 43 -0.09375 43 -0.09375 40.109375 -C -0.09375 37.203125 2.203125 37.203125 5.296875 37.203125 -L 5.296875 5.796875 -C 2.09375 5.796875 -0.09375 5.796875 -0.09375 2.90625 -C -0.09375 0 2.5 0 3.90625 0 -L 12.296875 0 -C 13.703125 0 16.296875 0 16.296875 2.90625 -C 16.296875 5.796875 14 5.796875 10.90625 5.796875 -L 10.90625 24.25 -C 10.90625 32.671875 14.5 38 18.90625 38 -C 21.703125 38 22.5 34.484375 22.5 29.765625 -L 22.5 5.796875 -C 20.796875 5.796875 18.09375 5.796875 18.09375 2.90625 -C 18.09375 0 20.796875 0 22.203125 0 -L 29.5 0 -C 30.90625 0 33.5 0 33.5 2.90625 -C 33.5 5.796875 31.203125 5.796875 28.09375 5.796875 -L 28.09375 24.25 -C 28.09375 32.671875 31.703125 38 36.09375 38 -C 38.90625 38 39.703125 34.484375 39.703125 29.765625 -L 39.703125 5.796875 -C 38 5.796875 35.296875 5.796875 35.296875 2.90625 -C 35.296875 0 38 0 39.40625 0 -L 46.703125 0 -C 48.09375 0 50.703125 0 50.703125 2.90625 -C 50.703125 5.796875 48.40625 5.796875 45.296875 5.796875 -z -" id="CMTT12-109"/> - <path d="M 41.59375 19.5 -C 43.703125 19.5 45.59375 19.5 45.59375 23.15625 -C 45.59375 34.703125 39 44 26.5 44 -C 14.90625 44 5.59375 34.015625 5.59375 21.84375 -C 5.59375 9.28125 15.703125 -0.5 28 -0.5 -C 40.90625 -0.5 45.59375 8.453125 45.59375 11.078125 -C 45.59375 11.6875 45.40625 13.921875 42.296875 13.921875 -C 40.40625 13.921875 39.796875 13.203125 39.203125 11.6875 -C 36.703125 5.796875 30.203125 5.296875 28.296875 5.296875 -C 20 5.296875 13.40625 11.6875 12.296875 19.5 -z -M 12.40625 25 -C 13.703125 33.3125 20.203125 38.203125 26.5 38.203125 -C 36.5 38.203125 38.59375 29.890625 39 25 -z -" id="CMTT12-101"/> - <path d="M 24.703125 37.203125 -L 36.796875 37.203125 -C 38.203125 37.203125 40.796875 37.203125 40.796875 40.109375 -C 40.796875 43 38.203125 43 36.796875 43 -L 24.703125 43 -L 24.703125 48.078125 -C 24.703125 56 31.703125 56 34.90625 56 -C 34.90625 55.796875 35.703125 52.03125 39 52.03125 -C 40.59375 52.03125 42.90625 53.234375 42.90625 56.0625 -C 42.90625 61.796875 35.296875 61.796875 33.796875 61.796875 -C 26.203125 61.796875 18.203125 57.453125 18.203125 48.453125 -L 18.203125 43 -L 8.296875 43 -C 6.90625 43 4.203125 43 4.203125 40.109375 -C 4.203125 37.203125 6.796875 37.203125 8.203125 37.203125 -L 18.203125 37.203125 -L 18.203125 5.796875 -L 8.703125 5.796875 -C 7.296875 5.796875 4.703125 5.796875 4.703125 2.90625 -C 4.703125 0 7.296875 0 8.703125 0 -L 34.203125 0 -C 35.59375 0 38.203125 0 38.203125 2.90625 -C 38.203125 5.796875 35.59375 5.796875 34.203125 5.796875 -L 24.703125 5.796875 -z -" id="CMTT12-102"/> - <path d="M 45.59375 10.96875 -C 45.59375 13.5625 43.09375 13.5625 42.296875 13.5625 -C 40 13.5625 39.59375 12.765625 39.09375 11.375 -C 36.90625 5.890625 32 5.296875 29.59375 5.296875 -C 21.09375 5.296875 13.90625 12.375 13.90625 21.640625 -C 13.90625 26.734375 16.796875 38.203125 29.90625 38.203125 -C 32.59375 38.203125 34.703125 38 35.59375 37.90625 -C 36.296875 37.703125 36.40625 37.578125 36.40625 37.078125 -C 36.703125 32.921875 39.796875 32.921875 40.40625 32.921875 -C 42.59375 32.921875 44.5 34.421875 44.5 37.109375 -C 44.5 44 34.40625 44 30 44 -C 12.90625 44 7.40625 30.03125 7.40625 21.640625 -C 7.40625 9.484375 16.703125 -0.5 28.703125 -0.5 -C 42.09375 -0.5 45.59375 9.375 45.59375 10.96875 -z -" id="CMTT12-99"/> - <path d="M 21.59375 37.203125 -L 37.796875 37.203125 -C 39.203125 37.203125 41.796875 37.203125 41.796875 40.109375 -C 41.796875 43 39.203125 43 37.796875 43 -L 21.59375 43 -L 21.59375 51.328125 -C 21.59375 53.15625 21.59375 55.5 18.40625 55.5 -C 15.09375 55.5 15.09375 53.15625 15.09375 51.328125 -L 15.09375 43 -L 6.59375 43 -C 5.203125 43 2.5 43 2.5 40.109375 -C 2.5 37.203125 5.09375 37.203125 6.5 37.203125 -L 15.09375 37.203125 -L 15.09375 12.125 -C 15.09375 2.875 21.5 -0.5 28.703125 -0.5 -C 34.09375 -0.5 44 2.171875 44 12.34375 -C 44 14.34375 44 16.53125 40.703125 16.53125 -C 37.5 16.53125 37.5 14.34375 37.5 12.265625 -C 37.40625 6.296875 31.703125 5.296875 29.40625 5.296875 -C 21.59375 5.296875 21.59375 10.265625 21.59375 12.640625 -z -" id="CMTT12-116"/> - <path d="M 30.203125 56.5 -C 30.203125 59 28.203125 61 25.703125 61 -C 23.203125 61 21.203125 59 21.203125 56.5 -C 21.203125 54 23.203125 52 25.703125 52 -C 28.203125 52 30.203125 54 30.203125 56.5 -z -M 13 43 -C 11.59375 43 9 43 9 40.109375 -C 9 37.203125 11.59375 37.203125 13 37.203125 -L 23.703125 37.203125 -L 23.703125 5.796875 -L 12.296875 5.796875 -C 10.90625 5.796875 8.203125 5.796875 8.203125 2.90625 -C 8.203125 0 10.90625 0 12.296875 0 -L 40.09375 0 -C 41.5 0 44.09375 0 44.09375 2.90625 -C 44.09375 5.796875 41.5 5.796875 40.09375 5.796875 -L 30.203125 5.796875 -L 30.203125 38.921875 -C 30.203125 42 29.59375 43 26.203125 43 -z -" id="CMTT12-105"/> - <path d="M 42.40625 37.203125 -L 45 37.203125 -C 46.40625 37.203125 49.09375 37.203125 49.09375 40.109375 -C 49.09375 43 46.40625 43 45 43 -L 34 43 -C 32.59375 43 29.90625 43 29.90625 40.109375 -C 29.90625 37.203125 32.59375 37.203125 34 37.203125 -L 36.5 37.203125 -L 25.703125 5.078125 -L 14.90625 37.203125 -L 17.40625 37.203125 -C 18.796875 37.203125 21.5 37.203125 21.5 40.109375 -C 21.5 43 18.796875 43 17.40625 43 -L 6.40625 43 -C 5 43 2.296875 43 2.296875 40.109375 -C 2.296875 37.203125 5 37.203125 6.40625 37.203125 -L 9 37.203125 -L 20.5 2.890625 -C 21.59375 -0.5 23.796875 -0.5 25.703125 -0.5 -C 27.59375 -0.5 29.796875 -0.5 30.90625 2.890625 -z -" id="CMTT12-118"/> + <path d="M 34.421875 72.90625 +L 56.6875 45.703125 +L 48 45.703125 +L 30.078125 64.984375 +L 12.203125 45.703125 +L 3.515625 45.703125 +L 25.78125 72.90625 +z +" id="DejaVuSansMono-94"/> + <path d="M 52.390625 2.59375 +Q 48.640625 0.59375 44.671875 -0.40625 +Q 40.71875 -1.421875 36.28125 -1.421875 +Q 22.265625 -1.421875 14.515625 8.484375 +Q 6.78125 18.40625 6.78125 36.375 +Q 6.78125 54.25 14.5625 64.234375 +Q 22.359375 74.21875 36.28125 74.21875 +Q 40.71875 74.21875 44.671875 73.21875 +Q 48.640625 72.21875 52.390625 70.21875 +L 52.390625 60.109375 +Q 48.78125 63.09375 44.625 64.65625 +Q 40.484375 66.21875 36.28125 66.21875 +Q 26.65625 66.21875 21.875 58.796875 +Q 17.09375 51.375 17.09375 36.375 +Q 17.09375 21.4375 21.875 14.015625 +Q 26.65625 6.59375 36.28125 6.59375 +Q 40.578125 6.59375 44.703125 8.15625 +Q 48.828125 9.71875 52.390625 12.703125 +z +" id="DejaVuSansMono-67"/> + <path d="M 30.078125 48.390625 +Q 23.25 48.390625 19.734375 43.0625 +Q 16.21875 37.75 16.21875 27.296875 +Q 16.21875 16.890625 19.734375 11.546875 +Q 23.25 6.203125 30.078125 6.203125 +Q 36.96875 6.203125 40.484375 11.546875 +Q 44 16.890625 44 27.296875 +Q 44 37.75 40.484375 43.0625 +Q 36.96875 48.390625 30.078125 48.390625 +z +M 30.078125 56 +Q 41.453125 56 47.484375 48.625 +Q 53.515625 41.265625 53.515625 27.296875 +Q 53.515625 13.28125 47.5 5.921875 +Q 41.5 -1.421875 30.078125 -1.421875 +Q 18.703125 -1.421875 12.6875 5.921875 +Q 6.6875 13.28125 6.6875 27.296875 +Q 6.6875 41.265625 12.6875 48.625 +Q 18.703125 56 30.078125 56 +z +" id="DejaVuSansMono-111"/> + <path d="M 31.203125 19.828125 +Q 31.203125 13.765625 33.421875 10.6875 +Q 35.640625 7.625 39.984375 7.625 +L 50.484375 7.625 +L 50.484375 0 +L 39.109375 0 +Q 31.0625 0 26.640625 5.171875 +Q 22.21875 10.359375 22.21875 19.828125 +L 22.21875 69.484375 +L 7.8125 69.484375 +L 7.8125 76.515625 +L 31.203125 76.515625 +z +" id="DejaVuSansMono-108"/> + <path d="M 60.203125 -19.671875 +L 60.203125 -23.578125 +L 0 -23.578125 +L 0 -19.671875 +z +" id="DejaVuSansMono-95"/> + <path d="M 41.890625 27.78125 +Q 41.890625 37.890625 38.59375 43.140625 +Q 35.296875 48.390625 29 48.390625 +Q 22.40625 48.390625 18.9375 43.140625 +Q 15.484375 37.890625 15.484375 27.78125 +Q 15.484375 17.671875 18.96875 12.375 +Q 22.46875 7.078125 29.109375 7.078125 +Q 35.296875 7.078125 38.59375 12.390625 +Q 41.890625 17.71875 41.890625 27.78125 +z +M 50.875 3.515625 +Q 50.875 -8.796875 45.0625 -15.140625 +Q 39.265625 -21.484375 27.984375 -21.484375 +Q 24.265625 -21.484375 20.203125 -20.796875 +Q 16.15625 -20.125 12.109375 -18.796875 +L 12.109375 -9.90625 +Q 16.890625 -12.15625 20.796875 -13.234375 +Q 24.703125 -14.3125 27.984375 -14.3125 +Q 35.25 -14.3125 38.5625 -10.34375 +Q 41.890625 -6.390625 41.890625 2.203125 +L 41.890625 2.59375 +L 41.890625 8.6875 +Q 39.75 4.109375 36.03125 1.859375 +Q 32.328125 -0.390625 27 -0.390625 +Q 17.4375 -0.390625 11.71875 7.265625 +Q 6 14.9375 6 27.78125 +Q 6 40.671875 11.71875 48.328125 +Q 17.4375 56 27 56 +Q 32.28125 56 35.9375 53.90625 +Q 39.59375 51.8125 41.890625 47.40625 +L 41.890625 54.5 +L 50.875 54.5 +z +" id="DejaVuSansMono-103"/> + <path d="M 34.28125 27.484375 +L 31.296875 27.484375 +Q 23.4375 27.484375 19.453125 24.71875 +Q 15.484375 21.96875 15.484375 16.5 +Q 15.484375 11.578125 18.453125 8.84375 +Q 21.4375 6.109375 26.703125 6.109375 +Q 34.125 6.109375 38.375 11.25 +Q 42.625 16.40625 42.671875 25.484375 +L 42.671875 27.484375 +z +M 51.703125 31.203125 +L 51.703125 0 +L 42.671875 0 +L 42.671875 8.109375 +Q 39.796875 3.21875 35.421875 0.890625 +Q 31.0625 -1.421875 24.8125 -1.421875 +Q 16.453125 -1.421875 11.46875 3.296875 +Q 6.5 8.015625 6.5 15.921875 +Q 6.5 25.046875 12.625 29.78125 +Q 18.75 34.515625 30.609375 34.515625 +L 42.671875 34.515625 +L 42.671875 35.9375 +Q 42.625 42.484375 39.34375 45.4375 +Q 36.078125 48.390625 28.90625 48.390625 +Q 24.3125 48.390625 19.625 47.0625 +Q 14.9375 45.75 10.5 43.21875 +L 10.5 52.203125 +Q 15.484375 54.109375 20.046875 55.046875 +Q 24.609375 56 28.90625 56 +Q 35.6875 56 40.5 54 +Q 45.3125 52 48.296875 48 +Q 50.140625 45.5625 50.921875 41.96875 +Q 51.703125 38.375 51.703125 31.203125 +z +" id="DejaVuSansMono-97"/> + <path d="M 33.015625 49.125 +Q 34.671875 52.640625 37.234375 54.3125 +Q 39.796875 56 43.40625 56 +Q 50 56 52.703125 50.890625 +Q 55.421875 45.796875 55.421875 31.6875 +L 55.421875 0 +L 47.21875 0 +L 47.21875 31.296875 +Q 47.21875 42.875 45.921875 45.671875 +Q 44.625 48.484375 41.21875 48.484375 +Q 37.3125 48.484375 35.859375 45.484375 +Q 34.421875 42.484375 34.421875 31.296875 +L 34.421875 0 +L 26.21875 0 +L 26.21875 31.296875 +Q 26.21875 43.015625 24.828125 45.75 +Q 23.4375 48.484375 19.828125 48.484375 +Q 16.265625 48.484375 14.875 45.484375 +Q 13.484375 42.484375 13.484375 31.296875 +L 13.484375 0 +L 5.328125 0 +L 5.328125 54.6875 +L 13.484375 54.6875 +L 13.484375 50 +Q 15.09375 52.9375 17.5 54.46875 +Q 19.921875 56 23 56 +Q 26.703125 56 29.171875 54.296875 +Q 31.640625 52.59375 33.015625 49.125 +z +" id="DejaVuSansMono-109"/> + <path d="M 54.296875 29.59375 +L 54.296875 25.203125 +L 15.375 25.203125 +L 15.375 24.90625 +Q 15.375 15.96875 20.03125 11.078125 +Q 24.703125 6.203125 33.203125 6.203125 +Q 37.5 6.203125 42.1875 7.5625 +Q 46.875 8.9375 52.203125 11.71875 +L 52.203125 2.78125 +Q 47.078125 0.6875 42.3125 -0.359375 +Q 37.546875 -1.421875 33.109375 -1.421875 +Q 20.359375 -1.421875 13.171875 6.21875 +Q 6 13.875 6 27.296875 +Q 6 40.375 13.03125 48.1875 +Q 20.0625 56 31.78125 56 +Q 42.234375 56 48.265625 48.921875 +Q 54.296875 41.84375 54.296875 29.59375 +z +M 45.3125 32.234375 +Q 45.125 40.140625 41.578125 44.265625 +Q 38.03125 48.390625 31.390625 48.390625 +Q 24.90625 48.390625 20.703125 44.09375 +Q 16.5 39.796875 15.71875 32.171875 +z +" id="DejaVuSansMono-101"/> + <path d="M 51.90625 75.984375 +L 51.90625 68.5 +L 41.703125 68.5 +Q 36.859375 68.5 34.984375 66.515625 +Q 33.109375 64.546875 33.109375 59.515625 +L 33.109375 54.6875 +L 51.90625 54.6875 +L 51.90625 47.703125 +L 33.109375 47.703125 +L 33.109375 0 +L 24.125 0 +L 24.125 47.703125 +L 9.515625 47.703125 +L 9.515625 54.6875 +L 24.125 54.6875 +L 24.125 58.5 +Q 24.125 67.484375 28.25 71.734375 +Q 32.375 75.984375 41.109375 75.984375 +z +" id="DejaVuSansMono-102"/> + <path d="M 51.8125 2.78125 +Q 48.1875 0.6875 44.359375 -0.359375 +Q 40.53125 -1.421875 36.53125 -1.421875 +Q 23.828125 -1.421875 16.671875 6.1875 +Q 9.515625 13.8125 9.515625 27.296875 +Q 9.515625 40.765625 16.671875 48.375 +Q 23.828125 56 36.53125 56 +Q 40.484375 56 44.234375 54.96875 +Q 48 53.953125 51.8125 51.8125 +L 51.8125 42.390625 +Q 48.25 45.5625 44.65625 46.96875 +Q 41.0625 48.390625 36.53125 48.390625 +Q 28.078125 48.390625 23.53125 42.921875 +Q 19 37.453125 19 27.296875 +Q 19 17.1875 23.5625 11.6875 +Q 28.125 6.203125 36.53125 6.203125 +Q 41.21875 6.203125 44.921875 7.640625 +Q 48.640625 9.078125 51.8125 12.109375 +z +" id="DejaVuSansMono-99"/> + <path d="M 29.984375 70.21875 +L 29.984375 54.6875 +L 50.390625 54.6875 +L 50.390625 47.703125 +L 29.984375 47.703125 +L 29.984375 18.015625 +Q 29.984375 11.96875 32.28125 9.5625 +Q 34.578125 7.171875 40.28125 7.171875 +L 50.390625 7.171875 +L 50.390625 0 +L 39.40625 0 +Q 29.296875 0 25.140625 4.046875 +Q 21 8.109375 21 18.015625 +L 21 47.703125 +L 6.390625 47.703125 +L 6.390625 54.6875 +L 21 54.6875 +L 21 70.21875 +z +" id="DejaVuSansMono-116"/> + <path d="M 12.5 54.6875 +L 35.5 54.6875 +L 35.5 6.984375 +L 53.328125 6.984375 +L 53.328125 0 +L 8.6875 0 +L 8.6875 6.984375 +L 26.515625 6.984375 +L 26.515625 47.703125 +L 12.5 47.703125 +z +M 26.515625 75.984375 +L 35.5 75.984375 +L 35.5 64.59375 +L 26.515625 64.59375 +z +" id="DejaVuSansMono-105"/> + <path d="M 4.890625 54.6875 +L 14.203125 54.6875 +L 30.078125 8.796875 +L 46 54.6875 +L 55.328125 54.6875 +L 35.890625 0 +L 24.3125 0 +z +" id="DejaVuSansMono-118"/> </defs> - <g transform="translate(68.658545 53.766087)scale(0.07 -0.07)"> - <use transform="translate(0 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular_Italic-110"/> - <use transform="translate(49.8132 0)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-72"/> - <use transform="translate(107.123069 15.050129)scale(0.996264)" xlink:href="#CMEX10-98"/> - <use transform="translate(165.998143 15.050129)scale(0.996264)" xlink:href="#CMTT12-67"/> - <use transform="translate(217.264254 15.050129)scale(0.996264)" xlink:href="#CMTT12-111"/> - <use transform="translate(268.530365 15.050129)scale(0.996264)" xlink:href="#CMTT12-111"/> - <use transform="translate(319.796475 15.050129)scale(0.996264)" xlink:href="#CMTT12-108"/> - <use transform="translate(404.790082 15.050129)scale(0.996264)" xlink:href="#CMTT12-103"/> - <use transform="translate(456.056192 15.050129)scale(0.996264)" xlink:href="#CMTT12-97"/> - <use transform="translate(507.322303 15.050129)scale(0.996264)" xlink:href="#CMTT12-109"/> - <use transform="translate(558.588414 15.050129)scale(0.996264)" xlink:href="#CMTT12-109"/> - <use transform="translate(609.854525 15.050129)scale(0.996264)" xlink:href="#CMTT12-97"/> - <use transform="translate(694.848131 15.050129)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(746.114242 15.050129)scale(0.996264)" xlink:href="#CMTT12-102"/> - <use transform="translate(797.380353 15.050129)scale(0.996264)" xlink:href="#CMTT12-102"/> - <use transform="translate(848.646464 15.050129)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(899.912575 15.050129)scale(0.996264)" xlink:href="#CMTT12-99"/> - <use transform="translate(951.178685 15.050129)scale(0.996264)" xlink:href="#CMTT12-116"/> - <use transform="translate(1002.444796 15.050129)scale(0.996264)" xlink:href="#CMTT12-105"/> - <use transform="translate(1053.710907 15.050129)scale(0.996264)" xlink:href="#CMTT12-118"/> - <use transform="translate(1104.977018 15.050129)scale(0.996264)" xlink:href="#CMTT12-101"/> - <path d="M 376.683597 15.050129 -L 404.790082 15.050129 -L 404.790082 15.448629 -L 376.683597 15.448629 -L 376.683597 15.050129 -z -"/> - <path d="M 666.741647 15.050129 -L 694.848131 15.050129 -L 694.848131 15.448629 -L 666.741647 15.448629 -L 666.741647 15.050129 -z -"/> + <g transform="translate(68.658545 53.155701)scale(0.06 -0.06)"> + <use transform="translate(0 0.484375)" xlink:href="#Cmmi10-110"/> + <use transform="translate(60.009766 -16.521875)scale(0.7)" xlink:href="#Cmr10-72"/> + <use transform="translate(118.887109 0.484375)" xlink:href="#DejaVuSansMono-94"/> + <use transform="translate(179.092187 0.484375)" xlink:href="#DejaVuSansMono-67"/> + <use transform="translate(239.297266 0.484375)" xlink:href="#DejaVuSansMono-111"/> + <use transform="translate(299.502344 0.484375)" xlink:href="#DejaVuSansMono-111"/> + <use transform="translate(359.707422 0.484375)" xlink:href="#DejaVuSansMono-108"/> + <use transform="translate(419.9125 0.484375)" xlink:href="#DejaVuSansMono-95"/> + <use transform="translate(480.117578 0.484375)" xlink:href="#DejaVuSansMono-103"/> + <use transform="translate(540.322656 0.484375)" xlink:href="#DejaVuSansMono-97"/> + <use transform="translate(600.527734 0.484375)" xlink:href="#DejaVuSansMono-109"/> + <use transform="translate(660.732813 0.484375)" xlink:href="#DejaVuSansMono-109"/> + <use transform="translate(720.937891 0.484375)" xlink:href="#DejaVuSansMono-97"/> + <use transform="translate(781.142969 0.484375)" xlink:href="#DejaVuSansMono-95"/> + <use transform="translate(841.348047 0.484375)" xlink:href="#DejaVuSansMono-101"/> + <use transform="translate(901.553125 0.484375)" xlink:href="#DejaVuSansMono-102"/> + <use transform="translate(961.758203 0.484375)" xlink:href="#DejaVuSansMono-102"/> + <use transform="translate(1021.963281 0.484375)" xlink:href="#DejaVuSansMono-101"/> + <use transform="translate(1082.168359 0.484375)" xlink:href="#DejaVuSansMono-99"/> + <use transform="translate(1142.373437 0.484375)" xlink:href="#DejaVuSansMono-116"/> + <use transform="translate(1202.578516 0.484375)" xlink:href="#DejaVuSansMono-105"/> + <use transform="translate(1262.783594 0.484375)" xlink:href="#DejaVuSansMono-118"/> + <use transform="translate(1322.988672 0.484375)" xlink:href="#DejaVuSansMono-101"/> </g> </g> <g id="text_13"> - <!-- $n_{\rm H}~\widehat{}~{\tt Jeans\_gamma\_effective}$ --> + <!-- $n_{\rm H}$^Jeans_gamma_effective --> <defs> - <path d="M 40 55.203125 -L 42.703125 55.203125 -C 44.09375 55.203125 46.796875 55.203125 46.796875 58.109375 -C 46.796875 61 44.09375 61 42.703125 61 -L 25.796875 61 -C 24.40625 61 21.796875 61 21.796875 58.109375 -C 21.796875 55.203125 24.40625 55.203125 25.796875 55.203125 -L 33.5 55.203125 -L 33.5 14.234375 -C 33.5 5.515625 25.40625 4.90625 23.703125 4.90625 -C 22.5 4.90625 17.5 4.90625 14.90625 7.984375 -C 15.40625 8.59375 15.703125 9.46875 15.703125 10.375 -C 15.703125 12.453125 14.09375 14.34375 11.703125 14.34375 -C 9.40625 14.34375 7.59375 12.84375 7.59375 10.0625 -C 7.59375 3.6875 14.40625 -1 23.59375 -1 -C 32 -1 40 4.265625 40 13.53125 -z -" id="CMTT12-74"/> - <path d="M 41.796875 29.359375 -C 41.796875 39.171875 37.203125 43.796875 29 43.796875 -C 22.203125 43.796875 17.796875 40 16.09375 38.09375 -C 16.09375 41.65625 16.09375 43 12.09375 43 -L 5.5 43 -C 4.09375 43 1.5 43 1.5 40.109375 -C 1.5 37.203125 4.09375 37.203125 5.5 37.203125 -L 9.59375 37.203125 -L 9.59375 5.796875 -L 5.5 5.796875 -C 4.09375 5.796875 1.5 5.796875 1.5 2.90625 -C 1.5 0 4.09375 0 5.5 0 -L 20.203125 0 -C 21.59375 0 24.203125 0 24.203125 2.90625 -C 24.203125 5.796875 21.59375 5.796875 20.203125 5.796875 -L 16.09375 5.796875 -L 16.09375 23.953125 -C 16.09375 33.671875 22.90625 38 28.296875 38 -C 34.09375 38 35.296875 34.671875 35.296875 28.96875 -L 35.296875 5.796875 -L 31.203125 5.796875 -C 29.796875 5.796875 27.203125 5.796875 27.203125 2.90625 -C 27.203125 0 29.796875 0 31.203125 0 -L 45.90625 0 -C 47.296875 0 49.90625 0 49.90625 2.90625 -C 49.90625 5.796875 47.296875 5.796875 45.90625 5.796875 -L 41.796875 5.796875 -z -" id="CMTT12-110"/> - <path d="M 42 40.203125 -C 42 41.796875 42 44 39.203125 44 -C 36.796875 44 36.203125 41.703125 36.203125 41.59375 -C 32.203125 44 27.59375 44 25.59375 44 -C 9.296875 44 7.09375 35.71875 7.09375 32.328125 -C 7.09375 28.234375 9.5 25.453125 12.90625 23.546875 -C 16.09375 21.75 19 21.265625 27.203125 19.96875 -C 31.09375 19.265625 39.09375 17.96875 39.09375 12.484375 -C 39.09375 8.78125 35.703125 5.296875 26.40625 5.296875 -C 20 5.296875 15.796875 7.796875 13.703125 15 -C 13.203125 16.390625 12.90625 17.5 10.40625 17.5 -C 7.09375 17.5 7.09375 15.59375 7.09375 13.59375 -L 7.09375 3.296875 -C 7.09375 1.6875 7.09375 -0.5 9.90625 -0.5 -C 11.09375 -0.5 12 -0.5 13.5 3.59375 -C 18.09375 -0.5 23.296875 -0.5 26.40625 -0.5 -C 44.90625 -0.5 44.90625 11.46875 44.90625 12.46875 -C 44.90625 22.828125 32.5 24.9375 27.703125 25.625 -C 18.90625 27.125 12.90625 28.125 12.90625 32.3125 -C 12.90625 35.015625 16 38.203125 25.40625 38.203125 -C 34.90625 38.203125 35.296875 33.703125 35.5 31.09375 -C 35.703125 29.09375 37.5 28.796875 38.703125 28.796875 -C 42 28.796875 42 30.59375 42 32.59375 -z -" id="CMTT12-115"/> + <path d="M 5.328125 2.984375 +L 5.328125 14.5 +Q 9.765625 10.546875 14.5 8.5625 +Q 19.234375 6.59375 24.3125 6.59375 +Q 31.296875 6.59375 34.046875 10.234375 +Q 36.8125 13.875 36.8125 23.78125 +L 36.8125 64.59375 +L 18.21875 64.59375 +L 18.21875 72.90625 +L 46.6875 72.90625 +L 46.6875 23.78125 +Q 46.6875 10.015625 41.53125 4.296875 +Q 36.375 -1.421875 24.3125 -1.421875 +Q 19.625 -1.421875 14.984375 -0.34375 +Q 10.359375 0.734375 5.328125 2.984375 +z +" id="DejaVuSansMono-74"/> + <path d="M 51.3125 33.890625 +L 51.3125 0 +L 42.28125 0 +L 42.28125 33.890625 +Q 42.28125 41.265625 39.6875 44.71875 +Q 37.109375 48.1875 31.59375 48.1875 +Q 25.296875 48.1875 21.890625 43.71875 +Q 18.5 39.265625 18.5 30.90625 +L 18.5 0 +L 9.515625 0 +L 9.515625 54.6875 +L 18.5 54.6875 +L 18.5 46.484375 +Q 20.90625 51.171875 25 53.578125 +Q 29.109375 56 34.71875 56 +Q 43.0625 56 47.1875 50.5 +Q 51.3125 45.015625 51.3125 33.890625 +z +" id="DejaVuSansMono-110"/> + <path d="M 47.515625 52.78125 +L 47.515625 44 +Q 43.65625 46.234375 39.75 47.359375 +Q 35.84375 48.484375 31.78125 48.484375 +Q 25.6875 48.484375 22.671875 46.5 +Q 19.671875 44.53125 19.671875 40.484375 +Q 19.671875 36.8125 21.921875 35 +Q 24.171875 33.203125 33.109375 31.5 +L 36.71875 30.8125 +Q 43.40625 29.546875 46.84375 25.734375 +Q 50.296875 21.921875 50.296875 15.828125 +Q 50.296875 7.71875 44.53125 3.140625 +Q 38.765625 -1.421875 28.515625 -1.421875 +Q 24.46875 -1.421875 20.015625 -0.5625 +Q 15.578125 0.296875 10.40625 2 +L 10.40625 11.28125 +Q 15.4375 8.6875 20.015625 7.390625 +Q 24.609375 6.109375 28.71875 6.109375 +Q 34.671875 6.109375 37.9375 8.515625 +Q 41.21875 10.9375 41.21875 15.28125 +Q 41.21875 21.53125 29.25 23.921875 +L 28.859375 24.03125 +L 25.484375 24.703125 +Q 17.71875 26.21875 14.15625 29.8125 +Q 10.59375 33.40625 10.59375 39.59375 +Q 10.59375 47.46875 15.90625 51.734375 +Q 21.234375 56 31.109375 56 +Q 35.5 56 39.546875 55.1875 +Q 43.609375 54.390625 47.515625 52.78125 +z +" id="DejaVuSansMono-115"/> </defs> - <g transform="translate(158.822024 66.279355)rotate(-43)scale(0.07 -0.07)"> - <use transform="translate(0 15.050129)scale(0.996264)" xlink:href="#Nimbus_Roman_No9_L_Regular_Italic-110"/> - <use transform="translate(49.8132 0)scale(0.737241)" xlink:href="#Nimbus_Roman_No9_L_Regular-72"/> - <use transform="translate(107.123069 15.050129)scale(0.996264)" xlink:href="#CMEX10-98"/> - <use transform="translate(165.998143 15.050129)scale(0.996264)" xlink:href="#CMTT12-74"/> - <use transform="translate(217.264254 15.050129)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(268.530365 15.050129)scale(0.996264)" xlink:href="#CMTT12-97"/> - <use transform="translate(319.796475 15.050129)scale(0.996264)" xlink:href="#CMTT12-110"/> - <use transform="translate(371.062586 15.050129)scale(0.996264)" xlink:href="#CMTT12-115"/> - <use transform="translate(456.056192 15.050129)scale(0.996264)" xlink:href="#CMTT12-103"/> - <use transform="translate(507.322303 15.050129)scale(0.996264)" xlink:href="#CMTT12-97"/> - <use transform="translate(558.588414 15.050129)scale(0.996264)" xlink:href="#CMTT12-109"/> - <use transform="translate(609.854525 15.050129)scale(0.996264)" xlink:href="#CMTT12-109"/> - <use transform="translate(661.120636 15.050129)scale(0.996264)" xlink:href="#CMTT12-97"/> - <use transform="translate(746.114242 15.050129)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(797.380353 15.050129)scale(0.996264)" xlink:href="#CMTT12-102"/> - <use transform="translate(848.646464 15.050129)scale(0.996264)" xlink:href="#CMTT12-102"/> - <use transform="translate(899.912575 15.050129)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(951.178685 15.050129)scale(0.996264)" xlink:href="#CMTT12-99"/> - <use transform="translate(1002.444796 15.050129)scale(0.996264)" xlink:href="#CMTT12-116"/> - <use transform="translate(1053.710907 15.050129)scale(0.996264)" xlink:href="#CMTT12-105"/> - <use transform="translate(1104.977018 15.050129)scale(0.996264)" xlink:href="#CMTT12-118"/> - <use transform="translate(1156.243129 15.050129)scale(0.996264)" xlink:href="#CMTT12-101"/> - <path d="M 427.949708 15.050129 -L 456.056192 15.050129 -L 456.056192 15.448629 -L 427.949708 15.448629 -L 427.949708 15.050129 -z -"/> - <path d="M 718.007758 15.050129 -L 746.114242 15.050129 -L 746.114242 15.448629 -L 718.007758 15.448629 -L 718.007758 15.050129 -z -"/> + <g transform="translate(158.364822 64.691311)rotate(-43)scale(0.06 -0.06)"> + <use transform="translate(0 0.015625)" xlink:href="#Cmmi10-110"/> + <use transform="translate(60.009766 -16.990625)scale(0.7)" xlink:href="#Cmr10-72"/> + <use transform="translate(118.887109 0.015625)" xlink:href="#DejaVuSansMono-94"/> + <use transform="translate(179.092187 0.015625)" xlink:href="#DejaVuSansMono-74"/> + <use transform="translate(239.297266 0.015625)" xlink:href="#DejaVuSansMono-101"/> + <use transform="translate(299.502344 0.015625)" xlink:href="#DejaVuSansMono-97"/> + <use transform="translate(359.707422 0.015625)" xlink:href="#DejaVuSansMono-110"/> + <use transform="translate(419.9125 0.015625)" xlink:href="#DejaVuSansMono-115"/> + <use transform="translate(480.117578 0.015625)" xlink:href="#DejaVuSansMono-95"/> + <use transform="translate(540.322656 0.015625)" xlink:href="#DejaVuSansMono-103"/> + <use transform="translate(600.527734 0.015625)" xlink:href="#DejaVuSansMono-97"/> + <use transform="translate(660.732813 0.015625)" xlink:href="#DejaVuSansMono-109"/> + <use transform="translate(720.937891 0.015625)" xlink:href="#DejaVuSansMono-109"/> + <use transform="translate(781.142969 0.015625)" xlink:href="#DejaVuSansMono-97"/> + <use transform="translate(841.348047 0.015625)" xlink:href="#DejaVuSansMono-95"/> + <use transform="translate(901.553125 0.015625)" xlink:href="#DejaVuSansMono-101"/> + <use transform="translate(961.758203 0.015625)" xlink:href="#DejaVuSansMono-102"/> + <use transform="translate(1021.963281 0.015625)" xlink:href="#DejaVuSansMono-102"/> + <use transform="translate(1082.168359 0.015625)" xlink:href="#DejaVuSansMono-101"/> + <use transform="translate(1142.373437 0.015625)" xlink:href="#DejaVuSansMono-99"/> + <use transform="translate(1202.578516 0.015625)" xlink:href="#DejaVuSansMono-116"/> + <use transform="translate(1262.783594 0.015625)" xlink:href="#DejaVuSansMono-105"/> + <use transform="translate(1322.988672 0.015625)" xlink:href="#DejaVuSansMono-118"/> + <use transform="translate(1383.19375 0.015625)" xlink:href="#DejaVuSansMono-101"/> </g> </g> <g id="text_14"> - <!-- ${\tt Cool\_density\_threshold\_H\_p\_cm3}$ --> + <!-- Cool_density_threshold_H_p_cm3 --> <defs> - <path d="M 41.796875 56.90625 -C 41.796875 60 41.203125 61 37.796875 61 -L 31.203125 61 -C 29.796875 61 27.203125 61 27.203125 58.109375 -C 27.203125 55.203125 29.796875 55.203125 31.203125 55.203125 -L 35.296875 55.203125 -L 35.296875 38.796875 -C 33.703125 40.390625 29.59375 43.796875 23.5 43.796875 -C 12.90625 43.796875 3.703125 34.1875 3.703125 21.59375 -C 3.703125 9.296875 12.296875 -0.5 22.59375 -0.5 -C 29.09375 -0.5 33.40625 3.359375 35.296875 5.546875 -C 35.296875 1.3125 35.296875 0 39.296875 0 -L 45.90625 0 -C 47.296875 0 49.90625 0 49.90625 2.90625 -C 49.90625 5.796875 47.296875 5.796875 45.90625 5.796875 -L 41.796875 5.796875 -z -M 35.296875 19.09375 -C 35.296875 13.5 30.703125 5.296875 23.203125 5.296875 -C 16 5.296875 10.203125 12.59375 10.203125 21.59375 -C 10.203125 31.1875 17 38 24.09375 38 -C 30.59375 38 35.296875 32.09375 35.296875 26.890625 -z -" id="CMTT12-100"/> - <path d="M 42.40625 37.203125 -L 45 37.203125 -C 46.40625 37.203125 49.09375 37.203125 49.09375 40.109375 -C 49.09375 43 46.40625 43 45 43 -L 34 43 -C 32.59375 43 29.90625 43 29.90625 40.109375 -C 29.90625 37.203125 32.59375 37.203125 34 37.203125 -L 36.5 37.203125 -C 33.703125 29.0625 28 12.515625 26.59375 6.859375 -L 26.5 6.859375 -C 26 9.046875 25.59375 10.125 24.59375 12.8125 -L 15.296875 37.203125 -L 17.59375 37.203125 -C 19 37.203125 21.703125 37.203125 21.703125 40.109375 -C 21.703125 43 19 43 17.59375 43 -L 6.59375 43 -C 5.203125 43 2.5 43 2.5 40.109375 -C 2.5 37.203125 5.203125 37.203125 6.59375 37.203125 -L 9.296875 37.203125 -L 23.296875 1.46875 -C 23.703125 0.46875 23.703125 0.265625 23.703125 0.171875 -C 23.703125 -0.03125 21.09375 -8.671875 19.59375 -11.4375 -C 19 -12.4375 16.5 -17.109375 11.703125 -16.609375 -C 11.796875 -16.296875 12.09375 -15.703125 12.09375 -14.609375 -C 12.09375 -12.296875 10.5 -10.703125 8.203125 -10.703125 -C 5.703125 -10.703125 4.203125 -12.40625 4.203125 -14.703125 -C 4.203125 -18.5 7.40625 -22.5 12.40625 -22.5 -C 22.09375 -22.5 26.40625 -9.6875 26.703125 -8.890625 -z -" id="CMTT12-121"/> - <path d="M 41.796875 29.359375 -C 41.796875 39.171875 37.203125 43.796875 29 43.796875 -C 22.203125 43.796875 17.796875 40 16.09375 38.09375 -L 16.09375 56.9375 -C 16.09375 60.015625 15.5 61 12.09375 61 -L 5.5 61 -C 4.09375 61 1.5 61 1.5 58.109375 -C 1.5 55.203125 4.09375 55.203125 5.5 55.203125 -L 9.59375 55.203125 -L 9.59375 5.796875 -L 5.5 5.796875 -C 4.09375 5.796875 1.5 5.796875 1.5 2.90625 -C 1.5 0 4.09375 0 5.5 0 -L 20.203125 0 -C 21.59375 0 24.203125 0 24.203125 2.90625 -C 24.203125 5.796875 21.59375 5.796875 20.203125 5.796875 -L 16.09375 5.796875 -L 16.09375 23.953125 -C 16.09375 33.671875 22.90625 38 28.296875 38 -C 34.09375 38 35.296875 34.671875 35.296875 28.96875 -L 35.296875 5.796875 -L 31.203125 5.796875 -C 29.796875 5.796875 27.203125 5.796875 27.203125 2.90625 -C 27.203125 0 29.796875 0 31.203125 0 -L 45.90625 0 -C 47.296875 0 49.90625 0 49.90625 2.90625 -C 49.90625 5.796875 47.296875 5.796875 45.90625 5.796875 -L 41.796875 5.796875 -z -" id="CMTT12-104"/> - <path d="M 21.59375 18.9375 -C 21.59375 30.875 30 38 38.5 38 -C 39 38 39.59375 38 40.09375 37.890625 -C 40.40625 34.140625 43.203125 33.828125 43.90625 33.828125 -C 46.203125 33.828125 47.796875 35.546875 47.796875 37.78125 -C 47.796875 42.15625 43.59375 43.796875 38.59375 43.796875 -C 31.90625 43.796875 26.203125 40.734375 21.59375 35.015625 -L 21.59375 38.921875 -C 21.59375 42 21 43 17.59375 43 -L 7.5 43 -C 6.09375 43 3.5 43 3.5 40.109375 -C 3.5 37.203125 6.09375 37.203125 7.5 37.203125 -L 15.09375 37.203125 -L 15.09375 5.796875 -L 7.5 5.796875 -C 6.09375 5.796875 3.5 5.796875 3.5 2.90625 -C 3.5 0 6.09375 0 7.5 0 -L 32.09375 0 -C 33.5 0 36.09375 0 36.09375 2.90625 -C 36.09375 5.796875 33.5 5.796875 32.09375 5.796875 -L 21.59375 5.796875 -z -" id="CMTT12-114"/> - <path d="M 42.796875 55.203125 -L 45 55.203125 -C 46.40625 55.203125 49 55.203125 49 58.109375 -C 49 61 46.5 61 45 61 -L 34.09375 61 -C 32.703125 61 30 61 30 58.109375 -C 30 55.203125 32.703125 55.203125 34.09375 55.203125 -L 36.296875 55.203125 -L 36.296875 34.796875 -L 15.09375 34.796875 -L 15.09375 55.203125 -L 17.296875 55.203125 -C 18.703125 55.203125 21.40625 55.203125 21.40625 58.109375 -C 21.40625 61 18.703125 61 17.296875 61 -L 6.40625 61 -C 4.90625 61 2.40625 61 2.40625 58.109375 -C 2.40625 55.203125 5 55.203125 6.40625 55.203125 -L 8.59375 55.203125 -L 8.59375 5.796875 -L 6.40625 5.796875 -C 5 5.796875 2.40625 5.796875 2.40625 2.90625 -C 2.40625 0 4.90625 0 6.40625 0 -L 17.296875 0 -C 18.703125 0 21.40625 0 21.40625 2.90625 -C 21.40625 5.796875 18.703125 5.796875 17.296875 5.796875 -L 15.09375 5.796875 -L 15.09375 29 -L 36.296875 29 -L 36.296875 5.796875 -L 34.09375 5.796875 -C 32.703125 5.796875 30 5.796875 30 2.90625 -C 30 0 32.703125 0 34.09375 0 -L 45 0 -C 46.5 0 49 0 49 2.90625 -C 49 5.796875 46.40625 5.796875 45 5.796875 -L 42.796875 5.796875 -z -" id="CMTT12-72"/> - <path d="M 20.203125 -22 -C 21.59375 -22 24.203125 -22 24.203125 -19.09375 -C 24.203125 -16.203125 21.59375 -16.203125 20.203125 -16.203125 -L 16.09375 -16.203125 -L 16.09375 5.09375 -C 18.5 2.390625 22.203125 -0.5 27.796875 -0.5 -C 38.40625 -0.5 47.703125 9.046875 47.703125 21.796875 -C 47.703125 34.15625 39.296875 44 28.90625 44 -C 21.59375 44 17 39.578125 16.09375 38.578125 -C 16.09375 41.625 16.09375 43 12.09375 43 -L 5.5 43 -C 4.09375 43 1.5 43 1.5 40.109375 -C 1.5 37.203125 4.09375 37.203125 5.5 37.203125 -L 9.59375 37.203125 -L 9.59375 -16.203125 -L 5.5 -16.203125 -C 4.09375 -16.203125 1.5 -16.203125 1.5 -19.09375 -C 1.5 -22 4.09375 -22 5.5 -22 -z -M 16.09375 26.828125 -C 16.09375 32.5625 21.703125 38.203125 28.203125 38.203125 -C 35.40625 38.203125 41.203125 30.84375 41.203125 21.796875 -C 41.203125 12.140625 34.40625 5.296875 27.296875 5.296875 -C 19.796875 5.296875 16.09375 13.84375 16.09375 18.875 -z -" id="CMTT12-112"/> - <path d="M 25.59375 30.59375 -C 36 30.59375 40.59375 23.21875 40.59375 17.765625 -C 40.59375 11.078125 34.796875 4.796875 26 4.796875 -C 16 4.796875 11.5 10.25 11.5 11.671875 -C 11.5 11.859375 11.59375 12.0625 11.703125 12.171875 -C 12.09375 12.875 12.40625 13.703125 12.40625 14.609375 -C 12.40625 16.734375 10.796875 18.65625 8.40625 18.65625 -C 6.296875 18.65625 4.296875 17.34375 4.296875 14.234375 -C 4.296875 5.453125 13.796875 -1 26 -1 -C 38.59375 -1 47.09375 8.078125 47.09375 17.65625 -C 47.09375 22.8125 44.296875 29.96875 35.5 33.796875 -C 41.59375 37.609375 44.296875 43.625 44.296875 48.84375 -C 44.296875 56.375 36.796875 62.890625 26 62.890625 -C 14.90625 62.890625 7.09375 58.078125 7.09375 50.65625 -C 7.09375 47.34375 9.59375 46.34375 11.203125 46.34375 -C 13 46.34375 15.203125 47.765625 15.203125 50.515625 -C 15.203125 52.125 14.40625 53.046875 14.40625 53.140625 -C 17.40625 57 24.296875 57 26 57 -C 32.796875 57 37.796875 53.3125 37.796875 48.484375 -C 37.796875 45.515625 35.90625 37 25.40625 37 -C 21.703125 37 20.09375 36.796875 19.703125 36.796875 -C 17.703125 36.578125 17.203125 35.203125 17.203125 33.703125 -C 17.203125 30.59375 19.296875 30.59375 21 30.59375 -z -" id="CMTT12-51"/> + <path d="M 41.890625 47.703125 +L 41.890625 75.984375 +L 50.875 75.984375 +L 50.875 0 +L 41.890625 0 +L 41.890625 6.890625 +Q 39.65625 2.828125 35.90625 0.703125 +Q 32.171875 -1.421875 27.296875 -1.421875 +Q 17.390625 -1.421875 11.6875 6.265625 +Q 6 13.96875 6 27.484375 +Q 6 40.828125 11.71875 48.40625 +Q 17.4375 56 27.296875 56 +Q 32.234375 56 35.984375 53.875 +Q 39.75 51.765625 41.890625 47.703125 +z +M 15.484375 27.296875 +Q 15.484375 16.84375 18.796875 11.515625 +Q 22.125 6.203125 28.609375 6.203125 +Q 35.109375 6.203125 38.5 11.5625 +Q 41.890625 16.9375 41.890625 27.296875 +Q 41.890625 37.703125 38.5 43.046875 +Q 35.109375 48.390625 28.609375 48.390625 +Q 22.125 48.390625 18.796875 43.0625 +Q 15.484375 37.75 15.484375 27.296875 +z +" id="DejaVuSansMono-100"/> + <path d="M 41.890625 17.578125 +Q 39.65625 11.859375 36.1875 2.546875 +Q 31.34375 -10.359375 29.6875 -13.1875 +Q 27.4375 -17 24.0625 -18.890625 +Q 20.703125 -20.796875 16.21875 -20.796875 +L 8.984375 -20.796875 +L 8.984375 -13.28125 +L 14.3125 -13.28125 +Q 18.265625 -13.28125 20.5 -10.984375 +Q 22.75 -8.6875 26.21875 0.875 +L 5.078125 54.6875 +L 14.59375 54.6875 +L 30.8125 11.921875 +L 46.78125 54.6875 +L 56.296875 54.6875 +z +" id="DejaVuSansMono-121"/> + <path d="M 51.3125 33.890625 +L 51.3125 0 +L 42.28125 0 +L 42.28125 33.890625 +Q 42.28125 41.265625 39.6875 44.71875 +Q 37.109375 48.1875 31.59375 48.1875 +Q 25.296875 48.1875 21.890625 43.71875 +Q 18.5 39.265625 18.5 30.90625 +L 18.5 0 +L 9.515625 0 +L 9.515625 75.984375 +L 18.5 75.984375 +L 18.5 46.484375 +Q 20.90625 51.171875 25 53.578125 +Q 29.109375 56 34.71875 56 +Q 43.0625 56 47.1875 50.5 +Q 51.3125 45.015625 51.3125 33.890625 +z +" id="DejaVuSansMono-104"/> + <path d="M 56.390625 43.40625 +Q 53.515625 45.65625 50.53125 46.671875 +Q 47.5625 47.703125 44 47.703125 +Q 35.59375 47.703125 31.140625 42.421875 +Q 26.703125 37.15625 26.703125 27.203125 +L 26.703125 0 +L 17.671875 0 +L 17.671875 54.6875 +L 26.703125 54.6875 +L 26.703125 44 +Q 28.953125 49.8125 33.609375 52.90625 +Q 38.28125 56 44.671875 56 +Q 48 56 50.875 55.171875 +Q 53.765625 54.34375 56.390625 52.59375 +z +" id="DejaVuSansMono-114"/> + <path d="M 6.6875 72.90625 +L 16.609375 72.90625 +L 16.609375 43.015625 +L 43.609375 43.015625 +L 43.609375 72.90625 +L 53.515625 72.90625 +L 53.515625 0 +L 43.609375 0 +L 43.609375 34.71875 +L 16.609375 34.71875 +L 16.609375 0 +L 6.6875 0 +z +" id="DejaVuSansMono-72"/> + <path d="M 18.3125 6.890625 +L 18.3125 -20.796875 +L 9.28125 -20.796875 +L 9.28125 54.6875 +L 18.3125 54.6875 +L 18.3125 47.703125 +Q 20.5625 51.765625 24.296875 53.875 +Q 28.03125 56 32.90625 56 +Q 42.828125 56 48.46875 48.328125 +Q 54.109375 40.671875 54.109375 27.09375 +Q 54.109375 13.765625 48.4375 6.171875 +Q 42.78125 -1.421875 32.90625 -1.421875 +Q 27.9375 -1.421875 24.1875 0.703125 +Q 20.453125 2.828125 18.3125 6.890625 +z +M 44.671875 27.296875 +Q 44.671875 37.75 41.375 43.0625 +Q 38.09375 48.390625 31.59375 48.390625 +Q 25.046875 48.390625 21.671875 43.046875 +Q 18.3125 37.703125 18.3125 27.296875 +Q 18.3125 16.9375 21.671875 11.5625 +Q 25.046875 6.203125 31.59375 6.203125 +Q 38.09375 6.203125 41.375 11.515625 +Q 44.671875 16.84375 44.671875 27.296875 +z +" id="DejaVuSansMono-112"/> + <path d="M 37.890625 39.015625 +Q 45.0625 37.109375 48.875 32.25 +Q 52.6875 27.390625 52.6875 20.125 +Q 52.6875 10.0625 45.921875 4.3125 +Q 39.15625 -1.421875 27.203125 -1.421875 +Q 22.171875 -1.421875 16.9375 -0.484375 +Q 11.71875 0.4375 6.6875 2.203125 +L 6.6875 12.015625 +Q 11.671875 9.421875 16.5 8.15625 +Q 21.34375 6.890625 26.125 6.890625 +Q 34.234375 6.890625 38.578125 10.546875 +Q 42.921875 14.203125 42.921875 21.09375 +Q 42.921875 27.4375 38.578125 31.171875 +Q 34.234375 34.90625 26.8125 34.90625 +L 19.28125 34.90625 +L 19.28125 43.015625 +L 26.8125 43.015625 +Q 33.59375 43.015625 37.40625 45.984375 +Q 41.21875 48.96875 41.21875 54.296875 +Q 41.21875 59.90625 37.671875 62.90625 +Q 34.125 65.921875 27.59375 65.921875 +Q 23.25 65.921875 18.609375 64.9375 +Q 13.96875 63.96875 8.890625 62.015625 +L 8.890625 71.09375 +Q 14.796875 72.65625 19.40625 73.4375 +Q 24.03125 74.21875 27.59375 74.21875 +Q 38.234375 74.21875 44.609375 68.875 +Q 50.984375 63.53125 50.984375 54.6875 +Q 50.984375 48.6875 47.625 44.671875 +Q 44.28125 40.671875 37.890625 39.015625 +z +" id="DejaVuSansMono-51"/> </defs> - <g transform="translate(75.778884 192.590474)rotate(-90)scale(0.07 -0.07)"> - <use transform="scale(0.996264)" xlink:href="#CMTT12-67"/> - <use transform="translate(51.266111 0)scale(0.996264)" xlink:href="#CMTT12-111"/> - <use transform="translate(102.532222 0)scale(0.996264)" xlink:href="#CMTT12-111"/> - <use transform="translate(153.798333 0)scale(0.996264)" xlink:href="#CMTT12-108"/> - <use transform="translate(238.791939 0)scale(0.996264)" xlink:href="#CMTT12-100"/> - <use transform="translate(290.05805 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(341.32416 0)scale(0.996264)" xlink:href="#CMTT12-110"/> - <use transform="translate(392.590271 0)scale(0.996264)" xlink:href="#CMTT12-115"/> - <use transform="translate(443.856382 0)scale(0.996264)" xlink:href="#CMTT12-105"/> - <use transform="translate(495.122493 0)scale(0.996264)" xlink:href="#CMTT12-116"/> - <use transform="translate(546.388604 0)scale(0.996264)" xlink:href="#CMTT12-121"/> - <use transform="translate(631.38221 0)scale(0.996264)" xlink:href="#CMTT12-116"/> - <use transform="translate(682.648321 0)scale(0.996264)" xlink:href="#CMTT12-104"/> - <use transform="translate(733.914432 0)scale(0.996264)" xlink:href="#CMTT12-114"/> - <use transform="translate(785.180542 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(836.446653 0)scale(0.996264)" xlink:href="#CMTT12-115"/> - <use transform="translate(887.712764 0)scale(0.996264)" xlink:href="#CMTT12-104"/> - <use transform="translate(938.978875 0)scale(0.996264)" xlink:href="#CMTT12-111"/> - <use transform="translate(990.244986 0)scale(0.996264)" xlink:href="#CMTT12-108"/> - <use transform="translate(1041.511097 0)scale(0.996264)" xlink:href="#CMTT12-100"/> - <use transform="translate(1126.504703 0)scale(0.996264)" xlink:href="#CMTT12-72"/> - <use transform="translate(1211.498309 0)scale(0.996264)" xlink:href="#CMTT12-112"/> - <use transform="translate(1296.491915 0)scale(0.996264)" xlink:href="#CMTT12-99"/> - <use transform="translate(1347.758026 0)scale(0.996264)" xlink:href="#CMTT12-109"/> - <use transform="translate(1399.024137 0)scale(0.996264)" xlink:href="#CMTT12-51"/> - <path d="M 210.685454 0 -L 238.791939 0 -L 238.791939 0.3985 -L 210.685454 0.3985 -L 210.685454 0 -z -"/> - <path d="M 603.275726 0 -L 631.38221 0 -L 631.38221 0.3985 -L 603.275726 0.3985 -L 603.275726 0 -z -"/> - <path d="M 1098.398219 0 -L 1126.504703 0 -L 1126.504703 0.3985 -L 1098.398219 0.3985 -L 1098.398219 0 -z -"/> - <path d="M 1183.391825 0 -L 1211.498309 0 -L 1211.498309 0.3985 -L 1183.391825 0.3985 -L 1183.391825 0 -z -"/> - <path d="M 1268.385431 0 -L 1296.491915 0 -L 1296.491915 0.3985 -L 1268.385431 0.3985 -L 1268.385431 0 -z -"/> + <g transform="translate(75.913927 194.356252)rotate(-90)scale(0.06 -0.06)"> + <use xlink:href="#DejaVuSansMono-67"/> + <use x="60.205078" xlink:href="#DejaVuSansMono-111"/> + <use x="120.410156" xlink:href="#DejaVuSansMono-111"/> + <use x="180.615234" xlink:href="#DejaVuSansMono-108"/> + <use x="240.820312" xlink:href="#DejaVuSansMono-95"/> + <use x="301.025391" xlink:href="#DejaVuSansMono-100"/> + <use x="361.230469" xlink:href="#DejaVuSansMono-101"/> + <use x="421.435547" xlink:href="#DejaVuSansMono-110"/> + <use x="481.640625" xlink:href="#DejaVuSansMono-115"/> + <use x="541.845703" xlink:href="#DejaVuSansMono-105"/> + <use x="602.050781" xlink:href="#DejaVuSansMono-116"/> + <use x="662.255859" xlink:href="#DejaVuSansMono-121"/> + <use x="722.460938" xlink:href="#DejaVuSansMono-95"/> + <use x="782.666016" xlink:href="#DejaVuSansMono-116"/> + <use x="842.871094" xlink:href="#DejaVuSansMono-104"/> + <use x="903.076172" xlink:href="#DejaVuSansMono-114"/> + <use x="963.28125" xlink:href="#DejaVuSansMono-101"/> + <use x="1023.486328" xlink:href="#DejaVuSansMono-115"/> + <use x="1083.691406" xlink:href="#DejaVuSansMono-104"/> + <use x="1143.896484" xlink:href="#DejaVuSansMono-111"/> + <use x="1204.101562" xlink:href="#DejaVuSansMono-108"/> + <use x="1264.306641" xlink:href="#DejaVuSansMono-100"/> + <use x="1324.511719" xlink:href="#DejaVuSansMono-95"/> + <use x="1384.716797" xlink:href="#DejaVuSansMono-72"/> + <use x="1444.921875" xlink:href="#DejaVuSansMono-95"/> + <use x="1505.126953" xlink:href="#DejaVuSansMono-112"/> + <use x="1565.332031" xlink:href="#DejaVuSansMono-95"/> + <use x="1625.537109" xlink:href="#DejaVuSansMono-99"/> + <use x="1685.742188" xlink:href="#DejaVuSansMono-109"/> + <use x="1745.947266" xlink:href="#DejaVuSansMono-51"/> </g> </g> <g id="text_15"> - <!-- ${\tt Jeans\_density\_threshold\_H\_p\_cm3}$ --> - <g transform="translate(145.055974 192.590474)rotate(-90)scale(0.07 -0.07)"> - <use transform="scale(0.996264)" xlink:href="#CMTT12-74"/> - <use transform="translate(51.266111 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(102.532222 0)scale(0.996264)" xlink:href="#CMTT12-97"/> - <use transform="translate(153.798333 0)scale(0.996264)" xlink:href="#CMTT12-110"/> - <use transform="translate(205.064443 0)scale(0.996264)" xlink:href="#CMTT12-115"/> - <use transform="translate(290.05805 0)scale(0.996264)" xlink:href="#CMTT12-100"/> - <use transform="translate(341.32416 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(392.590271 0)scale(0.996264)" xlink:href="#CMTT12-110"/> - <use transform="translate(443.856382 0)scale(0.996264)" xlink:href="#CMTT12-115"/> - <use transform="translate(495.122493 0)scale(0.996264)" xlink:href="#CMTT12-105"/> - <use transform="translate(546.388604 0)scale(0.996264)" xlink:href="#CMTT12-116"/> - <use transform="translate(597.654715 0)scale(0.996264)" xlink:href="#CMTT12-121"/> - <use transform="translate(682.648321 0)scale(0.996264)" xlink:href="#CMTT12-116"/> - <use transform="translate(733.914432 0)scale(0.996264)" xlink:href="#CMTT12-104"/> - <use transform="translate(785.180542 0)scale(0.996264)" xlink:href="#CMTT12-114"/> - <use transform="translate(836.446653 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(887.712764 0)scale(0.996264)" xlink:href="#CMTT12-115"/> - <use transform="translate(938.978875 0)scale(0.996264)" xlink:href="#CMTT12-104"/> - <use transform="translate(990.244986 0)scale(0.996264)" xlink:href="#CMTT12-111"/> - <use transform="translate(1041.511097 0)scale(0.996264)" xlink:href="#CMTT12-108"/> - <use transform="translate(1092.777208 0)scale(0.996264)" xlink:href="#CMTT12-100"/> - <use transform="translate(1177.770814 0)scale(0.996264)" xlink:href="#CMTT12-72"/> - <use transform="translate(1262.76442 0)scale(0.996264)" xlink:href="#CMTT12-112"/> - <use transform="translate(1347.758026 0)scale(0.996264)" xlink:href="#CMTT12-99"/> - <use transform="translate(1399.024137 0)scale(0.996264)" xlink:href="#CMTT12-109"/> - <use transform="translate(1450.290248 0)scale(0.996264)" xlink:href="#CMTT12-51"/> - <path d="M 261.951565 0 -L 290.05805 0 -L 290.05805 0.3985 -L 261.951565 0.3985 -L 261.951565 0 -z -"/> - <path d="M 654.541837 0 -L 682.648321 0 -L 682.648321 0.3985 -L 654.541837 0.3985 -L 654.541837 0 -z -"/> - <path d="M 1149.664329 0 -L 1177.770814 0 -L 1177.770814 0.3985 -L 1149.664329 0.3985 -L 1149.664329 0 -z -"/> - <path d="M 1234.657936 0 -L 1262.76442 0 -L 1262.76442 0.3985 -L 1234.657936 0.3985 -L 1234.657936 0 -z -"/> - <path d="M 1319.651542 0 -L 1347.758026 0 -L 1347.758026 0.3985 -L 1319.651542 0.3985 -L 1319.651542 0 -z -"/> + <!-- Jeans_density_threshold_H_p_cm3 --> + <g transform="translate(145.308908 194.356252)rotate(-90)scale(0.055 -0.055)"> + <use xlink:href="#DejaVuSansMono-74"/> + <use x="60.205078" xlink:href="#DejaVuSansMono-101"/> + <use x="120.410156" xlink:href="#DejaVuSansMono-97"/> + <use x="180.615234" xlink:href="#DejaVuSansMono-110"/> + <use x="240.820312" xlink:href="#DejaVuSansMono-115"/> + <use x="301.025391" xlink:href="#DejaVuSansMono-95"/> + <use x="361.230469" xlink:href="#DejaVuSansMono-100"/> + <use x="421.435547" xlink:href="#DejaVuSansMono-101"/> + <use x="481.640625" xlink:href="#DejaVuSansMono-110"/> + <use x="541.845703" xlink:href="#DejaVuSansMono-115"/> + <use x="602.050781" xlink:href="#DejaVuSansMono-105"/> + <use x="662.255859" xlink:href="#DejaVuSansMono-116"/> + <use x="722.460938" xlink:href="#DejaVuSansMono-121"/> + <use x="782.666016" xlink:href="#DejaVuSansMono-95"/> + <use x="842.871094" xlink:href="#DejaVuSansMono-116"/> + <use x="903.076172" xlink:href="#DejaVuSansMono-104"/> + <use x="963.28125" xlink:href="#DejaVuSansMono-114"/> + <use x="1023.486328" xlink:href="#DejaVuSansMono-101"/> + <use x="1083.691406" xlink:href="#DejaVuSansMono-115"/> + <use x="1143.896484" xlink:href="#DejaVuSansMono-104"/> + <use x="1204.101562" xlink:href="#DejaVuSansMono-111"/> + <use x="1264.306641" xlink:href="#DejaVuSansMono-108"/> + <use x="1324.511719" xlink:href="#DejaVuSansMono-100"/> + <use x="1384.716797" xlink:href="#DejaVuSansMono-95"/> + <use x="1444.921875" xlink:href="#DejaVuSansMono-72"/> + <use x="1505.126953" xlink:href="#DejaVuSansMono-95"/> + <use x="1565.332031" xlink:href="#DejaVuSansMono-112"/> + <use x="1625.537109" xlink:href="#DejaVuSansMono-95"/> + <use x="1685.742188" xlink:href="#DejaVuSansMono-99"/> + <use x="1745.947266" xlink:href="#DejaVuSansMono-109"/> + <use x="1806.152344" xlink:href="#DejaVuSansMono-51"/> </g> </g> <g id="text_16"> - <!-- ${\tt Cool\_temperature\_norm\_K}$ --> + <!-- Cool_temperature_norm_K --> <defs> - <path d="M 41.796875 38.921875 -C 41.796875 42 41.203125 43 37.796875 43 -L 31.203125 43 -C 29.796875 43 27.203125 43 27.203125 40.109375 -C 27.203125 37.203125 29.796875 37.203125 31.203125 37.203125 -L 35.296875 37.203125 -L 35.296875 15.625 -C 35.296875 7.484375 28.5 5.296875 24 5.296875 -C 16.09375 5.296875 16.09375 8.875 16.09375 11.96875 -L 16.09375 38.921875 -C 16.09375 42 15.5 43 12.09375 43 -L 5.5 43 -C 4.09375 43 1.5 43 1.5 40.109375 -C 1.5 37.203125 4.09375 37.203125 5.5 37.203125 -L 9.59375 37.203125 -L 9.59375 11.4375 -C 9.59375 2.28125 15.59375 -0.5 23.296875 -0.5 -C 29.40625 -0.5 33.203125 1.984375 35.203125 3.671875 -C 35.203125 0 37.59375 0 39.296875 0 -L 45.90625 0 -C 47.296875 0 49.90625 0 49.90625 2.90625 -C 49.90625 5.796875 47.296875 5.796875 45.90625 5.796875 -L 41.796875 5.796875 -z -" id="CMTT12-117"/> - <path d="M 27.09375 35.734375 -L 42.40625 55.203125 -C 45.296875 55.203125 47.59375 55.203125 47.59375 58.109375 -C 47.59375 61 45 61 43.59375 61 -L 35.203125 61 -C 33.796875 61 31.203125 61 31.203125 58.109375 -C 31.203125 55.203125 33.796875 55.203125 35.203125 55.203125 -L 14.203125 28.453125 -L 14.203125 55.203125 -L 16.203125 55.203125 -C 17.59375 55.203125 20.203125 55.203125 20.203125 58.109375 -C 20.203125 61 17.59375 61 16.203125 61 -L 6.59375 61 -C 5.203125 61 2.59375 61 2.59375 58.109375 -C 2.59375 55.203125 5.203125 55.203125 6.59375 55.203125 -L 8.59375 55.203125 -L 8.59375 5.796875 -L 6.59375 5.796875 -C 5.203125 5.796875 2.59375 5.796875 2.59375 2.90625 -C 2.59375 0 5.203125 0 6.59375 0 -L 16.203125 0 -C 17.59375 0 20.203125 0 20.203125 2.90625 -C 20.203125 5.796875 17.59375 5.796875 16.203125 5.796875 -L 14.203125 5.796875 -L 14.203125 19.375 -L 23.296875 30.953125 -L 37.203125 5.796875 -C 35.90625 5.796875 33.296875 5.796875 33.296875 2.90625 -C 33.296875 0 35.90625 0 37.296875 0 -L 44.5 0 -C 45.90625 0 48.5 0 48.5 2.90625 -C 48.5 5.796875 46.09375 5.796875 43.59375 5.796875 -z -" id="CMTT12-75"/> + <path d="M 9.515625 20.703125 +L 9.515625 54.59375 +L 18.5 54.59375 +L 18.5 20.703125 +Q 18.5 13.328125 21.109375 9.859375 +Q 23.734375 6.390625 29.203125 6.390625 +Q 35.546875 6.390625 38.90625 10.859375 +Q 42.28125 15.328125 42.28125 23.6875 +L 42.28125 54.59375 +L 51.3125 54.59375 +L 51.3125 0 +L 42.28125 0 +L 42.28125 8.203125 +Q 39.890625 3.46875 35.765625 1.015625 +Q 31.640625 -1.421875 26.125 -1.421875 +Q 17.71875 -1.421875 13.609375 4.078125 +Q 9.515625 9.578125 9.515625 20.703125 +z +" id="DejaVuSansMono-117"/> + <path d="M 6.6875 72.90625 +L 16.609375 72.90625 +L 16.609375 40.484375 +L 47.40625 72.90625 +L 58.984375 72.90625 +L 30.609375 43.109375 +L 59.8125 0 +L 47.90625 0 +L 24.125 36.53125 +L 16.609375 28.515625 +L 16.609375 0 +L 6.6875 0 +z +" id="DejaVuSansMono-75"/> </defs> - <g transform="translate(37.862259 66.86623)scale(0.07 -0.07)"> - <use transform="scale(0.996264)" xlink:href="#CMTT12-67"/> - <use transform="translate(51.266111 0)scale(0.996264)" xlink:href="#CMTT12-111"/> - <use transform="translate(102.532222 0)scale(0.996264)" xlink:href="#CMTT12-111"/> - <use transform="translate(153.798333 0)scale(0.996264)" xlink:href="#CMTT12-108"/> - <use transform="translate(238.791939 0)scale(0.996264)" xlink:href="#CMTT12-116"/> - <use transform="translate(290.05805 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(341.32416 0)scale(0.996264)" xlink:href="#CMTT12-109"/> - <use transform="translate(392.590271 0)scale(0.996264)" xlink:href="#CMTT12-112"/> - <use transform="translate(443.856382 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(495.122493 0)scale(0.996264)" xlink:href="#CMTT12-114"/> - <use transform="translate(546.388604 0)scale(0.996264)" xlink:href="#CMTT12-97"/> - <use transform="translate(597.654715 0)scale(0.996264)" xlink:href="#CMTT12-116"/> - <use transform="translate(648.920825 0)scale(0.996264)" xlink:href="#CMTT12-117"/> - <use transform="translate(700.186936 0)scale(0.996264)" xlink:href="#CMTT12-114"/> - <use transform="translate(751.453047 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(836.446653 0)scale(0.996264)" xlink:href="#CMTT12-110"/> - <use transform="translate(887.712764 0)scale(0.996264)" xlink:href="#CMTT12-111"/> - <use transform="translate(938.978875 0)scale(0.996264)" xlink:href="#CMTT12-114"/> - <use transform="translate(990.244986 0)scale(0.996264)" xlink:href="#CMTT12-109"/> - <use transform="translate(1075.238592 0)scale(0.996264)" xlink:href="#CMTT12-75"/> - <path d="M 210.685454 0 -L 238.791939 0 -L 238.791939 0.3985 -L 210.685454 0.3985 -L 210.685454 0 -z -"/> - <path d="M 808.340169 0 -L 836.446653 0 -L 836.446653 0.3985 -L 808.340169 0.3985 -L 808.340169 0 -z -"/> - <path d="M 1047.132108 0 -L 1075.238592 0 -L 1075.238592 0.3985 -L 1047.132108 0.3985 -L 1047.132108 0 -z -"/> + <g transform="translate(37.862259 67.001273)scale(0.06 -0.06)"> + <use xlink:href="#DejaVuSansMono-67"/> + <use x="60.205078" xlink:href="#DejaVuSansMono-111"/> + <use x="120.410156" xlink:href="#DejaVuSansMono-111"/> + <use x="180.615234" xlink:href="#DejaVuSansMono-108"/> + <use x="240.820312" xlink:href="#DejaVuSansMono-95"/> + <use x="301.025391" xlink:href="#DejaVuSansMono-116"/> + <use x="361.230469" xlink:href="#DejaVuSansMono-101"/> + <use x="421.435547" xlink:href="#DejaVuSansMono-109"/> + <use x="481.640625" xlink:href="#DejaVuSansMono-112"/> + <use x="541.845703" xlink:href="#DejaVuSansMono-101"/> + <use x="602.050781" xlink:href="#DejaVuSansMono-114"/> + <use x="662.255859" xlink:href="#DejaVuSansMono-97"/> + <use x="722.460938" xlink:href="#DejaVuSansMono-116"/> + <use x="782.666016" xlink:href="#DejaVuSansMono-117"/> + <use x="842.871094" xlink:href="#DejaVuSansMono-114"/> + <use x="903.076172" xlink:href="#DejaVuSansMono-101"/> + <use x="963.28125" xlink:href="#DejaVuSansMono-95"/> + <use x="1023.486328" xlink:href="#DejaVuSansMono-110"/> + <use x="1083.691406" xlink:href="#DejaVuSansMono-111"/> + <use x="1143.896484" xlink:href="#DejaVuSansMono-114"/> + <use x="1204.101562" xlink:href="#DejaVuSansMono-109"/> + <use x="1264.306641" xlink:href="#DejaVuSansMono-95"/> + <use x="1324.511719" xlink:href="#DejaVuSansMono-75"/> </g> </g> <g id="text_17"> - <!-- ${\tt Jeans\_temperature\_norm\_K}$ --> - <g transform="translate(37.862259 81.545055)scale(0.07 -0.07)"> - <use transform="scale(0.996264)" xlink:href="#CMTT12-74"/> - <use transform="translate(51.266111 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(102.532222 0)scale(0.996264)" xlink:href="#CMTT12-97"/> - <use transform="translate(153.798333 0)scale(0.996264)" xlink:href="#CMTT12-110"/> - <use transform="translate(205.064443 0)scale(0.996264)" xlink:href="#CMTT12-115"/> - <use transform="translate(290.05805 0)scale(0.996264)" xlink:href="#CMTT12-116"/> - <use transform="translate(341.32416 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(392.590271 0)scale(0.996264)" xlink:href="#CMTT12-109"/> - <use transform="translate(443.856382 0)scale(0.996264)" xlink:href="#CMTT12-112"/> - <use transform="translate(495.122493 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(546.388604 0)scale(0.996264)" xlink:href="#CMTT12-114"/> - <use transform="translate(597.654715 0)scale(0.996264)" xlink:href="#CMTT12-97"/> - <use transform="translate(648.920825 0)scale(0.996264)" xlink:href="#CMTT12-116"/> - <use transform="translate(700.186936 0)scale(0.996264)" xlink:href="#CMTT12-117"/> - <use transform="translate(751.453047 0)scale(0.996264)" xlink:href="#CMTT12-114"/> - <use transform="translate(802.719158 0)scale(0.996264)" xlink:href="#CMTT12-101"/> - <use transform="translate(887.712764 0)scale(0.996264)" xlink:href="#CMTT12-110"/> - <use transform="translate(938.978875 0)scale(0.996264)" xlink:href="#CMTT12-111"/> - <use transform="translate(990.244986 0)scale(0.996264)" xlink:href="#CMTT12-114"/> - <use transform="translate(1041.511097 0)scale(0.996264)" xlink:href="#CMTT12-109"/> - <use transform="translate(1126.504703 0)scale(0.996264)" xlink:href="#CMTT12-75"/> - <path d="M 261.951565 0 -L 290.05805 0 -L 290.05805 0.3985 -L 261.951565 0.3985 -L 261.951565 0 -z -"/> - <path d="M 859.60628 0 -L 887.712764 0 -L 887.712764 0.3985 -L 859.60628 0.3985 -L 859.60628 0 -z -"/> - <path d="M 1098.398219 0 -L 1126.504703 0 -L 1126.504703 0.3985 -L 1098.398219 0.3985 -L 1098.398219 0 -z -"/> + <!-- Jeans_temperature_norm_K --> + <g transform="translate(37.862259 81.680098)scale(0.06 -0.06)"> + <use xlink:href="#DejaVuSansMono-74"/> + <use x="60.205078" xlink:href="#DejaVuSansMono-101"/> + <use x="120.410156" xlink:href="#DejaVuSansMono-97"/> + <use x="180.615234" xlink:href="#DejaVuSansMono-110"/> + <use x="240.820312" xlink:href="#DejaVuSansMono-115"/> + <use x="301.025391" xlink:href="#DejaVuSansMono-95"/> + <use x="361.230469" xlink:href="#DejaVuSansMono-116"/> + <use x="421.435547" xlink:href="#DejaVuSansMono-101"/> + <use x="481.640625" xlink:href="#DejaVuSansMono-109"/> + <use x="541.845703" xlink:href="#DejaVuSansMono-112"/> + <use x="602.050781" xlink:href="#DejaVuSansMono-101"/> + <use x="662.255859" xlink:href="#DejaVuSansMono-114"/> + <use x="722.460938" xlink:href="#DejaVuSansMono-97"/> + <use x="782.666016" xlink:href="#DejaVuSansMono-116"/> + <use x="842.871094" xlink:href="#DejaVuSansMono-117"/> + <use x="903.076172" xlink:href="#DejaVuSansMono-114"/> + <use x="963.28125" xlink:href="#DejaVuSansMono-101"/> + <use x="1023.486328" xlink:href="#DejaVuSansMono-95"/> + <use x="1083.691406" xlink:href="#DejaVuSansMono-110"/> + <use x="1143.896484" xlink:href="#DejaVuSansMono-111"/> + <use x="1204.101562" xlink:href="#DejaVuSansMono-114"/> + <use x="1264.306641" xlink:href="#DejaVuSansMono-109"/> + <use x="1324.511719" xlink:href="#DejaVuSansMono-95"/> + <use x="1384.716797" xlink:href="#DejaVuSansMono-75"/> </g> </g> </g> </g> <defs> - <clipPath id="p107a2e5a22"> + <clipPath id="pf19aa30d2c"> <rect height="195.048" width="190.512" x="34.02" y="2.268"/> </clipPath> </defs> diff --git a/doc/RTD/source/SubgridModels/EAGLE/index.rst b/doc/RTD/source/SubgridModels/EAGLE/index.rst index 620572f962948308884414622ca2ae7d555d158f..b9942628563f5ccc56bd44ee90270dd65cff2e44 100644 --- a/doc/RTD/source/SubgridModels/EAGLE/index.rst +++ b/doc/RTD/source/SubgridModels/EAGLE/index.rst @@ -17,9 +17,10 @@ Entropy floors The gas particles in the EAGLE model are prevented from cooling below a certain temperature. The temperature limit depends on the density of the particles. Two floors are used in conjonction. Both are implemented as -polytropic "equations of states" :math:`P = P_c -\left(\rho/\rho_c\right)^\gamma`, with the constants derived from the user -input given in terms of temperature and Hydrogen number density. +polytropic "equations of states":math:`P = P_c +\left(\rho/\rho_c\right)^\gamma` (all done in physical coordinates), with +the constants derived from the user input given in terms of temperature and +Hydrogen number density. The first limit, labelled as ``Cool``, is typically used to prevent low-density high-metallicity particles to cool below the warm phase because @@ -27,12 +28,7 @@ of over-cooling induced by the absence of metal diffusion. This limit plays only a small role in practice. The second limit, labelled as ``Jeans``, is used to prevent the fragmentation of high-density gas into clumps that cannot be resolved by the coupled hydro+gravity solver. The two limits are -sketched on the following figure. An additional over-density criterion is -applied to prevent gas not collapsed into structures from being -affected. This criterion demands that :math:`\rho > \Delta_{\rm floor} -\Omega_b \rho_{\rm crit}`, with :math:`\Delta_{\rm floor}` specified by the -user and :math:`\rho_{\rm crit}` the critical density at that redshift -[#f1]_. +sketched on the following figure. .. figure:: EAGLE_entropy_floor.svg :width: 400px @@ -51,6 +47,15 @@ user and :math:`\rho_{\rm crit}` the critical density at that redshift the figure for clarity reasons, typical values for EAGLE runs place both anchors at the same temperature. +An additional over-density criterion above the mean baryonic density is +applied to prevent gas not collapsed into structures from being +affected. To be precise, this criterion demands that the floor is applied +only if :math:`\rho_{\rm com} > \Delta_{\rm floor}\bar{\rho_b} = +\Delta_{\rm floor} \Omega_b \rho_{\rm crit,0}`, with :math:`\Delta_{\rm +floor}` specified by the user, :math:`\rho_{\rm crit,0} = 3H_0/8\pi G` the +critical density at redshift zero [#f1]_, and :math:`\rho_{\rm com}` the +gas co-moving density. Typical values for :math:`\Delta_{\rm floor}` are of +order 10. The model is governed by 4 parameters for each of the two limits. These are given in the ``EAGLEEntropyFloor`` section of the @@ -280,7 +285,7 @@ these elements from the abundance of `Si`. More specifically, we assume that their abundance by mass relative to the table's solar abundance pattern is the same as the relative abundance of `Si` (i.e. :math:`[Ca/Si] = 0` and :math:`[S/Si] = 0`). Users can optionally modify the ratios used for `S` and -`Ca`. +`Ca`. Note that we use the *smoothed* abundances of elements for all calculations. Above the redshift of Hydrogen re-ionization we use the extra table containing net cooling rates for gas exposed to the CMB and a UV + X-ray background at @@ -288,9 +293,13 @@ redshift nine truncated above 1 Rydberg. At the redshift or re-ionization, we additionally inject a fixed user-defined amount of energy per unit mass to all the gas particles. -In addition to the tables we inject extra energy from Helium re-ionization using -a Gaussian model with a user-defined redshift for the centre, width and total -amount of energy injected per unit mass. +In addition to the tables we inject extra energy from Helium II re-ionization +using a Gaussian model with a user-defined redshift for the centre, width and +total amount of energy injected per unit mass. Additional energy is also +injected instantaneously for Hydrogen re-ionisation to all particles (active and +inactive) to make sure the whole Universe reaches the expected temperature +quickly (i.e not just via the interaction with the now much stronger UV +background). For non-cosmological run, we use the :math:`z = 0` table and the interpolation along the redshift dimension then becomes a trivial operation. @@ -326,7 +335,7 @@ they are listed for every gas particle: +---------------------+-------------------------------------+-----------+-------------------------------------+ Note that if one is running without cooling switched on at runtime, the -temperatures can be computed by passing the ``--temparature`` runtime flag (see +temperatures can be computed by passing the ``--temperature`` runtime flag (see :ref:`cmdline-options`). Note that the tables then have to be available as in the case with cooling switched on. @@ -341,9 +350,10 @@ implicit problem. A valid section of the YAML file looks like: EAGLECooling: dir_name: /path/to/the/Wiersma/tables/directory # Absolute or relative path H_reion_z: 11.5 # Redhift of Hydrogen re-ionization + H_reion_ev_p_H: 2.0 # Energy injected in eV per Hydrogen atom for Hydrogen re-ionization. He_reion_z_centre: 3.5 # Centre of the Gaussian used for Helium re-ionization He_reion_z_sigma: 0.5 # Width of the Gaussian used for Helium re-ionization - He_reion_ev_p_H: 2.0 # Energy injected in eV per Hydrogen atom for Helium re-ionization. + He_reion_ev_p_H: 2.0 # Energy injected in eV per Hydrogen atom for Helium II re-ionization. And the optional parameters are: @@ -384,8 +394,61 @@ the snapshots for each gas and star particle: .. _EAGLE_star_formation: -Star formation: Schaye+2008 -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Star formation: Schaye+2008 modified for EAGLE +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. figure:: EAGLE_SF_Z_dep.svg + :width: 400px + :align: center + :figclass: align-center + :alt: Metal-dependance of the threshold for star formation in the + EAGLE model. + + The dependency of the SF threshold density on the metallicty of the gas + in the EAGLE model (black line). The function is described by the four + parameters indicated on the figure. These are the slope of the + dependency, its position on the metallicity-axis and normalisation + (black circle) as well as the maximal threshold density allowed. For + reference, the black arrow indicates the value typically assumed for + solar metallicity :math:`Z_\odot=0.014` (note, however, that this value + does *not* enter the model at all). The values used to produce this + figure are the ones assumed in the reference EAGLE model. + +.. figure:: EAGLE_SF_EOS.svg + :width: 400px + :align: center + :figclass: align-center + :alt: Equation-of-state assumed for the star-forming gas + + The equation-of-state assumed for the star-forming gas in the EAGLE + model (black line). The function is described by the three parameters + indicated on the figure. These are the slope of the relation, the + position of the normalisation point on the density axis and the + temperature expected at this density. Note that this is a normalisation + and *not* a threshold. Gas at densities lower than the normalisation + point will also be put on this equation of state when computing its + star formation rate. The values used to produce this figure are the + ones assumed in the reference EAGLE model. + +.. code:: YAML + + # EAGLE star formation parameters + EAGLEStarFormation: + EOS_density_norm_H_p_cm3: 0.1 # Physical density used for the normalisation of the EOS assumed for the star-forming gas in Hydrogen atoms per cm^3. + EOS_temperature_norm_K: 8000 # Temperature om the polytropic EOS assumed for star-forming gas at the density normalisation in Kelvin. + EOS_gamma_effective: 1.3333333 # Slope the of the polytropic EOS assumed for the star-forming gas. + KS_normalisation: 1.515e-4 # The normalization of the Kennicutt-Schmidt law in Msun / kpc^2 / yr. + KS_exponent: 1.4 # The exponent of the Kennicutt-Schmidt law. + KS_min_over_density: 57.7 # The over-density above which star-formation is allowed. + KS_high_density_threshold_H_p_cm3: 1e3 # Hydrogen number density above which the Kennicut-Schmidt law changes slope in Hydrogen atoms per cm^3. + KS_high_density_exponent: 2.0 # Slope of the Kennicut-Schmidt law above the high-density threshold. + KS_temperature_margin_dex: 0.5 # Logarithm base 10 of the maximal temperature difference above the EOS allowed to form stars. + KS_max_density_threshold_H_p_cm3: 1e5 # Hydrogen number density above which a particle gets automatically turned into a star in Hydrogen atoms per cm^3. + threshold_norm_H_p_cm3: 0.1 # Normalisation of the metal-dependant density threshold for star formation in Hydrogen atoms per cm^3. + threshold_Z0: 0.002 # Reference metallicity (metal mass fraction) for the metal-dependant threshold for star formation. + threshold_slope: -0.64 # Slope of the metal-dependant star formation threshold + threshold_max_density_H_p_cm3: 10.0 # Maximal density of the metal-dependant density threshold for star formation in Hydrogen atoms per cm^3. + gas_fraction: 0.1 # The gas fraction used internally by the model. .. _EAGLE_enrichment: diff --git a/doc/RTD/source/SubgridModels/EAGLE/plot_EAGLE_SF_EOS.py b/doc/RTD/source/SubgridModels/EAGLE/plot_EAGLE_SF_EOS.py new file mode 100644 index 0000000000000000000000000000000000000000..88ca56d750bf716fea8b4bf72b70c2b598953ac7 --- /dev/null +++ b/doc/RTD/source/SubgridModels/EAGLE/plot_EAGLE_SF_EOS.py @@ -0,0 +1,78 @@ +import matplotlib + +matplotlib.use("Agg") +from pylab import * +from scipy import stats + +# Plot parameters +params = { + "axes.labelsize": 10, + "axes.titlesize": 10, + "font.size": 9, + "font.sans-serif": [ + "Computer Modern", + "Computer Modern Roman", + "CMU Serif", + "cmunrm", + "DejaVu Sans", + ], + "mathtext.fontset": "cm", + "legend.fontsize": 9, + "xtick.labelsize": 10, + "ytick.labelsize": 10, + "text.usetex": False, + "figure.figsize": (3.15, 3.15), + "lines.markersize": 6, + "figure.subplot.left": 0.15, + "figure.subplot.right": 0.99, + "figure.subplot.bottom": 0.13, + "figure.subplot.top": 0.99, + "figure.subplot.wspace": 0.15, + "figure.subplot.hspace": 0.12, + "lines.linewidth": 2.0, +} + +rcParams.update(params) + +# Equations of state +eos_SF_rho = np.logspace(-10, 5, 1000) +eos_SF_T = (eos_SF_rho / 10 ** (-1)) ** (1.0 / 3.0) * 8000.0 + +# Plot the phase space diagram +figure() +subplot(111, xscale="log", yscale="log") +plot(eos_SF_rho, eos_SF_T, "k-", lw=1.0) + +plot([1e-10, 1e-1], [8000, 8000], "k:", lw=0.6) +plot([1e-1, 1e-1], [20, 8000], "k:", lw=0.6) +plot([1e-1, 1e1], [20000.0, 20000.0 * 10.0 ** (2.0 / 3.0)], "k--", lw=0.6) +text( + 0.5e-1, + 200000, + "$n_{\\rm H}$^EOS_gamma_effective", + va="top", + rotation=43, + fontsize=6.5, + family="monospace", +) +text( + 0.95e-1, + 25, + "EOS_density_norm_H_p_cm3", + rotation=90, + va="bottom", + ha="right", + fontsize=7, + family="monospace", +) +text(5e-8, 8400, "EOS_temperature_norm_K", va="bottom", fontsize=7, family="monospace") + +scatter([1e-1], [8000], s=4, color="k") + +xlabel("Hydrogen number density $n_{\\rm H}$ [cm$^{-3}$]", labelpad=0) +ylabel("Temperature $T$ [K]", labelpad=2) +xlim(3e-8, 3e3) +ylim(20.0, 2e5) + + +savefig("EAGLE_SF_EOS.svg", dpi=200) diff --git a/doc/RTD/source/SubgridModels/EAGLE/plot_EAGLE_SF_Z_dep.py b/doc/RTD/source/SubgridModels/EAGLE/plot_EAGLE_SF_Z_dep.py new file mode 100644 index 0000000000000000000000000000000000000000..26ae522947ecc9e75f6f287bafed0bb9acb9134a --- /dev/null +++ b/doc/RTD/source/SubgridModels/EAGLE/plot_EAGLE_SF_Z_dep.py @@ -0,0 +1,99 @@ +import matplotlib + +matplotlib.use("Agg") +from pylab import * +from scipy import stats + +# Plot parameters +params = { + "axes.labelsize": 10, + "axes.titlesize": 10, + "font.size": 9, + "font.sans-serif": [ + "Computer Modern", + "Computer Modern Roman", + "CMU Serif", + "cmunrm", + "DejaVu Sans", + ], + "mathtext.fontset": "cm", + "legend.fontsize": 9, + "xtick.labelsize": 10, + "ytick.labelsize": 10, + "text.usetex": False, + "figure.figsize": (3.15, 3.15), + "lines.markersize": 6, + "figure.subplot.left": 0.15, + "figure.subplot.right": 0.99, + "figure.subplot.bottom": 0.13, + "figure.subplot.top": 0.99, + "figure.subplot.wspace": 0.15, + "figure.subplot.hspace": 0.12, + "lines.linewidth": 2.0, +} + +rcParams.update(params) + +# Metal dependance parameters +Z_0 = 0.002 +norm = 0.1 +slope = -0.64 +max_n = 10.0 + +# Function +Z = logspace(-8, 3, 1000) +n = norm * (Z / Z_0) ** slope +n = np.minimum(n, np.ones(np.size(n)) * (max_n)) + + +# Plot the phase space diagram +figure() +subplot(111, xscale="log", yscale="log") + +plot(Z, n, "k-", lw=1.0) + +plot([3e-4, 3e-2], [1.0, 1.0 * 100.0 ** (slope)], "k--", lw=0.6) +plot([1e-10, 1e10], [max_n, max_n], "k:", lw=0.6) +plot([Z_0, Z_0], [1e-10, norm], "k:", lw=0.6) +plot([1e-10, Z_0], [norm, norm], "k:", lw=0.6) +scatter([Z_0], [norm], s=4, color="k") + +annotate( + "", + xy=(0.014, 1e-3), + xytext=(0.014, 3e-4), + arrowprops=dict( + facecolor="black", shrink=0.0, width=0.1, headwidth=3.0, headlength=5.0 + ), +) +text(0.016, 3.5e-4, "${Z_\\odot}$", fontsize=9) + +text( + 3e-4, + 1.45, + "Z^threshold_slope", + va="top", + rotation=-40, + fontsize=7, + family="monospace", +) +text(3e-5, 12.0, "threshold_max_density_H_p_cm3", fontsize=7, family="monospace") +text(3e-7, 0.12, "threshold_norm_H_p_cm3", fontsize=7, family="monospace") +text( + 0.0018, + 0.0004, + "threshold_Z0", + rotation=90, + va="bottom", + ha="right", + fontsize=7, + family="monospace", +) + +xlabel("Metallicity (metal mass fraction) $Z$ [-]", labelpad=2) +ylabel("SF threshold number density $n_{\\rm H, thresh}$ [cm$^{-3}$]", labelpad=-1) + +xlim(1e-7, 1.0) +ylim(0.0002, 50) + +savefig("EAGLE_SF_Z_dep.svg", dpi=200) diff --git a/doc/RTD/source/SubgridModels/EAGLE/plot_EAGLE_entropy_floor.py b/doc/RTD/source/SubgridModels/EAGLE/plot_EAGLE_entropy_floor.py index 5b02dd657fdb32e411961f04d0d758119344b809..1e7dad6c95211a8e43805a904fb8d9901305b692 100644 --- a/doc/RTD/source/SubgridModels/EAGLE/plot_EAGLE_entropy_floor.py +++ b/doc/RTD/source/SubgridModels/EAGLE/plot_EAGLE_entropy_floor.py @@ -1,4 +1,5 @@ import matplotlib + matplotlib.use("Agg") from pylab import * from scipy import stats @@ -8,53 +9,97 @@ params = { "axes.labelsize": 10, "axes.titlesize": 10, "font.size": 9, + "font.sans-serif": [ + "Computer Modern", + "Computer Modern Roman", + "CMU Serif", + "cmunrm", + "DejaVu Sans", + ], + "mathtext.fontset": "cm", "legend.fontsize": 9, "xtick.labelsize": 10, "ytick.labelsize": 10, - "text.usetex": True, + "text.usetex": False, "figure.figsize": (3.15, 3.15), + "lines.markersize": 6, "figure.subplot.left": 0.15, "figure.subplot.right": 0.99, "figure.subplot.bottom": 0.13, "figure.subplot.top": 0.99, "figure.subplot.wspace": 0.15, "figure.subplot.hspace": 0.12, - "lines.markersize": 6, "lines.linewidth": 2.0, - "text.latex.unicode": True, } + rcParams.update(params) -rc("font", **{"family": "sans-serif", "sans-serif": ["Times"]}) # Equations of state eos_cool_rho = np.logspace(-5, 5, 1000) -eos_cool_T = eos_cool_rho**0. * 8000. +eos_cool_T = eos_cool_rho ** 0.0 * 8000.0 eos_Jeans_rho = np.logspace(-1, 5, 1000) -eos_Jeans_T = (eos_Jeans_rho/ 10**(-1))**(1./3.) * 4000. +eos_Jeans_T = (eos_Jeans_rho / 10 ** (-1)) ** (1.0 / 3.0) * 4000.0 # Plot the phase space diagram figure() subplot(111, xscale="log", yscale="log") -plot(eos_cool_rho, eos_cool_T, 'k-', lw=1.) -plot(eos_Jeans_rho, eos_Jeans_T, 'k-', lw=1.) -plot([1e-10, 1e-5], [8000, 8000], 'k:', lw=0.6) -plot([1e-10, 1e-1], [4000, 4000], 'k:', lw=0.6) -plot([1e-5, 1e-5], [20, 8000], 'k:', lw=0.6) -plot([1e-1, 1e-1], [20, 4000], 'k:', lw=0.6) -plot([3e-6, 3e-4], [28000, 28000], 'k--', lw=0.6) -text(3e-6, 22500, "$n_{\\rm H}~\\widehat{}~{\\tt Cool\\_gamma\\_effective}$", va="top", fontsize=7) -plot([3e-1, 3e1], [15000., 15000.*10.**(2./3.)], 'k--', lw=0.6) -text(3e-1, 200000, "$n_{\\rm H}~\\widehat{}~{\\tt Jeans\\_gamma\\_effective}$", va="top", rotation=43, fontsize=7) -text(0.95e-5, 25, "${\\tt Cool\\_density\\_threshold\\_H\\_p\\_cm3}$", rotation=90, va="bottom", ha="right", fontsize=7) -text(0.95e-1, 25, "${\\tt Jeans\\_density\\_threshold\\_H\\_p\\_cm3}$", rotation=90, va="bottom", ha="right", fontsize=7) -text(5e-8, 8800, "${\\tt Cool\\_temperature\\_norm\\_K}$", va="bottom", fontsize=7) -text(5e-8, 4400, "${\\tt Jeans\\_temperature\\_norm\\_K}$", va="bottom", fontsize=7) -fill_between([1e-5, 1e5], [10, 10], [8000, 8000], color='0.9') -fill_between([1e-1, 1e5], [4000, 400000], color='0.9') -scatter([1e-5], [8000], s=4, color='k') -scatter([1e-1], [4000], s=4, color='k') -xlabel("${\\rm Density}~n_{\\rm H}~[{\\rm cm^{-3}}]$", labelpad=0) -ylabel("${\\rm Temperature}~T~[{\\rm K}]$", labelpad=2) +plot(eos_cool_rho, eos_cool_T, "k-", lw=1.0) +plot(eos_Jeans_rho, eos_Jeans_T, "k-", lw=1.0) +plot([1e-10, 1e-5], [8000, 8000], "k:", lw=0.6) +plot([1e-10, 1e-1], [4000, 4000], "k:", lw=0.6) +plot([1e-5, 1e-5], [20, 8000], "k:", lw=0.6) +plot([1e-1, 1e-1], [20, 4000], "k:", lw=0.6) +plot([3e-6, 3e-4], [28000, 28000], "k--", lw=0.6) + +text( + 3e-6, + 22500, + "$n_{\\rm H}$^Cool_gamma_effective", + va="top", + fontsize=6, + family="monospace", +) +plot([3e-1, 3e1], [15000.0, 15000.0 * 10.0 ** (2.0 / 3.0)], "k--", lw=0.6) +text( + 3e-1, + 200000, + "$n_{\\rm H}$^Jeans_gamma_effective", + va="top", + rotation=43, + fontsize=6, + family="monospace", +) +text( + 0.95e-5, + 23, + "Cool_density_threshold_H_p_cm3", + rotation=90, + va="bottom", + ha="right", + fontsize=6, + family="monospace", +) +text( + 0.95e-1, + 23, + "Jeans_density_threshold_H_p_cm3", + rotation=90, + va="bottom", + ha="right", + fontsize=5.5, + family="monospace", +) +text(5e-8, 8800, "Cool_temperature_norm_K", va="bottom", fontsize=6, family="monospace") +text( + 5e-8, 4400, "Jeans_temperature_norm_K", va="bottom", fontsize=6, family="monospace" +) +fill_between([1e-5, 1e5], [10, 10], [8000, 8000], color="0.9") +fill_between([1e-1, 1e5], [4000, 400000], color="0.9") +scatter([1e-5], [8000], s=4, color="k") +scatter([1e-1], [4000], s=4, color="k") +xlabel("Hydrogen number density $n_{\\rm H}$ [cm$^{-3}$]", labelpad=0) +ylabel("Temperature $T$ [K]", labelpad=2) xlim(3e-8, 3e3) -ylim(20., 2e5) -savefig("EAGLE_entropy_floor.png", dpi=200) +ylim(20.0, 2e5) + +savefig("EAGLE_entropy_floor.svg", dpi=200) diff --git a/doc/RTD/source/Task/index.rst b/doc/RTD/source/Task/index.rst index 82210895618618f87faaada472c72afe321b1d04..549a89c834570c45e7b4233f3c412fe8afba226d 100644 --- a/doc/RTD/source/Task/index.rst +++ b/doc/RTD/source/Task/index.rst @@ -9,11 +9,8 @@ Task System This section of the documentation includes information on the task system available in SWIFT, as well as how to implement your own task. -SWIFT can produce a graph containing all the dependencies using graphviz. -At the beginning of each simulation a ``csv`` file is generated and can be transformed into a ``png`` with the script ``tools/plot_task_dependencies.py``. -This script has also the possibility to generate a list of function calls for each task with the option ``--with-calls``. -You can convert the ``dot`` file into a ``png`` with the following command -``dot -Tpng dependency_graph.dot -o dependency_graph.png`` or directly read it with the python module ``xdot`` with ``python -m xdot dependency_graph.dot``. +SWIFT can produce a graph containing all the dependencies. +Everything is described in :ref:`_analysistools`. .. toctree:: diff --git a/doc/RTD/source/conf.py b/doc/RTD/source/conf.py index fac755bbb4ee9cd25bf3526bc435c69be3a9d5b5..327c5524820772c4c891418cff72a3c22a4fb2b0 100644 --- a/doc/RTD/source/conf.py +++ b/doc/RTD/source/conf.py @@ -25,7 +25,7 @@ author = 'SWIFT Team' # The short X.Y version version = '0.8' # The full version, including alpha/beta/rc tags -release = '0.8.0' +release = '0.8.1' # -- General configuration --------------------------------------------------- diff --git a/doc/RTD/source/index.rst b/doc/RTD/source/index.rst index 83422b4e5caf05bacb3824d06426b9cdeba3921e..b7c4205b0ac45680ee14e4a3941f03d116ab8c69 100644 --- a/doc/RTD/source/index.rst +++ b/doc/RTD/source/index.rst @@ -26,3 +26,4 @@ difference is the parameter file that will need to be adapted for SWIFT. NewOption/index Task/index VELOCIraptorInterface/index + AnalysisTools/index diff --git a/examples/Cooling/ConstantCosmoTempEvolution/README b/examples/Cooling/ConstantCosmoTempEvolution/README new file mode 100644 index 0000000000000000000000000000000000000000..1ca1c87c06337fb3b44dfdf0227e99da3b79fdd0 --- /dev/null +++ b/examples/Cooling/ConstantCosmoTempEvolution/README @@ -0,0 +1,18 @@ +This example runs a cosmological simulation using 32^3 particles with +the gas density set to the mean baryonic density and no fluctuations +(i.e. sigma_8 == 0). The simulation is run without gravity to prevent +any numerical fluctuation from growing. + +The gas is cooling/heating via its interaction with the UV background +set by the cooling model. In practice, the gas will follow the +equilibirum temperature of the model at all z and only be affected by +reionization. Assuming primoridal abundance, the temperature of the +gas at different redshifts can be compared to temperatures inferred +from observations of the Lyman-alpha forrest. The plotting script runs +this comparison once the simulation has completed. + +Within the EAGLE cooling model, interesting changes are to switch +on/off the Helium II reionisation (or change its redshift) as well as +the position and amount of energy injected by Hydrogen +reionisation. The parameters given the YAML file are the ones used for +actual EAGLE galaxy formation runs. diff --git a/examples/Cooling/ConstantCosmoTempEvolution/const_cosmo_temp_evol.yml b/examples/Cooling/ConstantCosmoTempEvolution/const_cosmo_temp_evol.yml new file mode 100644 index 0000000000000000000000000000000000000000..01dcbc96fd329f53b1fd345bc198b05a53861982 --- /dev/null +++ b/examples/Cooling/ConstantCosmoTempEvolution/const_cosmo_temp_evol.yml @@ -0,0 +1,77 @@ +# Define the system of units to use internally. +InternalUnitSystem: + UnitMass_in_cgs: 1.98848e43 # 10^10 M_sun + UnitLength_in_cgs: 3.08567758e24 # 1 Mpc + UnitVelocity_in_cgs: 1e5 # 1 km/s + UnitCurrent_in_cgs: 1 # Amperes + UnitTemp_in_cgs: 1 # Kelvin + +# Cosmological parameters +Cosmology: + h: 0.6777 # Reduced Hubble constant + a_begin: 0.0099 # Initial scale-factor of the simulation (z = 100.0) + a_end: 1.0 # Final scale factor of the simulation + Omega_m: 0.307 # Matter density parameter + Omega_lambda: 0.693 # Dark-energy density parameter + Omega_b: 0.0455 # Baryon density parameter + +# Parameters governing the time integration +TimeIntegration: + dt_min: 1e-7 + dt_max: 5e-3 + +# Parameters governing the snapshots +Snapshots: + basename: cooling_box + delta_time: 1.04 + scale_factor_first: 0.00991 + compression: 4 + +# Parameters governing the conserved quantities statistics +Statistics: + scale_factor_first: 0.00991 + delta_time: 1.1 + +# Parameters for the hydrodynamics scheme +SPH: + resolution_eta: 1.2348 # Target smoothing length in units of the mean inter-particle separation (1.2348 == 48Ngbs with the cubic spline kernel). + CFL_condition: 0.1 # Courant-Friedrich-Levy condition for time integration. + minimal_temperature: 100 # K + +# Parameters related to the initial conditions +InitialConditions: + file_name: ./constantBox.hdf5 # The file to read + periodic: 1 + +# Parameters for the EAGLE chemistry +EAGLEChemistry: # Solar abundances + init_abundance_metal: 0. + init_abundance_Hydrogen: 0.752 + init_abundance_Helium: 0.248 + init_abundance_Carbon: 0. + init_abundance_Nitrogen: 0. + init_abundance_Oxygen: 0. + init_abundance_Neon: 0. + init_abundance_Magnesium: 0. + init_abundance_Silicon: 0. + init_abundance_Iron: 0. + +# Parameters for the EAGLE cooling +EAGLECooling: + dir_name: ./coolingtables/ + H_reion_z: 11.5 + H_reion_eV_p_H: 2.0 + He_reion_z_centre: 3.5 + He_reion_z_sigma: 0.5 + He_reion_eV_p_H: 2.0 + +# Parameters for the EAGLE "equation of state" +EAGLEEntropyFloor: + Jeans_density_threshold_H_p_cm3: 0.1 # Physical density above which the EAGLE Jeans limiter entropy floor kicks in expressed in Hydrogen atoms per cm^3. + Jeans_over_density_threshold: 10. # Overdensity above which the EAGLE Jeans limiter entropy floor can kick in. + Jeans_temperature_norm_K: 8000 # Temperature of the EAGLE Jeans limiter entropy floor at the density threshold expressed in Kelvin. + Jeans_gamma_effective: 1.3333333 # Slope the of the EAGLE Jeans limiter entropy floor + Cool_density_threshold_H_p_cm3: 1e-5 # Physical density above which the EAGLE Cool limiter entropy floor kicks in expressed in Hydrogen atoms per cm^3. + Cool_over_density_threshold: 10. # Overdensity above which the EAGLE Cool limiter entropy floor can kick in. + Cool_temperature_norm_K: 8000 # Temperature of the EAGLE Cool limiter entropy floor at the density threshold expressed in Kelvin. + Cool_gamma_effective: 1. # Slope the of the EAGLE Cool limiter entropy floor diff --git a/examples/Cooling/ConstantCosmoTempEvolution/datasets/schaye_et_al_2000_thermal_history.dat b/examples/Cooling/ConstantCosmoTempEvolution/datasets/schaye_et_al_2000_thermal_history.dat new file mode 100644 index 0000000000000000000000000000000000000000..11c58fbc3255640b11269a95b9c7f00fc30fb4b1 --- /dev/null +++ b/examples/Cooling/ConstantCosmoTempEvolution/datasets/schaye_et_al_2000_thermal_history.dat @@ -0,0 +1,18 @@ +### Data from Figure 6 in Schaye et al. (2000) (2000MNRAS.318..817S) +# z ########## z_lb ######### z_ub ######## T_0/1e4K ##### T_0_lb/1e4K ## T_0_ub/1e4K +1.95804 1.84615 2.08042 1.09915 0.76847 2.27999 +2.20979 2.09790 2.32867 1.40112 0.90638 1.98188 +2.28322 2.22378 2.37762 1.19902 1.01236 1.36980 +2.49650 2.33217 2.62238 1.39889 1.15520 1.74657 +2.59441 2.48601 2.70629 1.60171 1.44953 1.76021 +2.65385 2.54895 2.87762 2.29650 1.57475 2.44105 +2.83916 2.70629 2.94056 1.72395 1.43950 2.30056 +3.00000 2.88462 3.13636 2.28574 1.89278 2.71473 +3.07343 2.90210 3.21329 2.01108 1.88150 2.13172 +3.23427 3.14685 3.41259 2.26386 1.40872 3.34756 +3.36014 3.22378 3.51748 1.53842 1.39604 1.69997 +3.54545 3.43007 3.69930 1.08649 0.88238 1.39077 +3.72028 3.61189 3.81469 1.25736 1.08243 1.62749 +3.83217 3.68531 4.01399 1.32092 1.03191 1.74809 +3.90909 3.81469 4.00350 1.55086 1.14616 2.01291 +4.30420 4.14685 4.42657 1.15002 0.92882 2.01412 diff --git a/examples/Cooling/ConstantCosmoTempEvolution/datasets/walther_et_al_2019_thermal_history.dat b/examples/Cooling/ConstantCosmoTempEvolution/datasets/walther_et_al_2019_thermal_history.dat new file mode 100644 index 0000000000000000000000000000000000000000..d11c770a710f970d50c08aa58db705018eb29aed --- /dev/null +++ b/examples/Cooling/ConstantCosmoTempEvolution/datasets/walther_et_al_2019_thermal_history.dat @@ -0,0 +1,18 @@ +### Data from Figure 13 in Walther et al. (2019) (2019ApJ...872...13W) +# z ######### T_0/1e4K ##### T_0_lb/1e4K ## T_0_ub/1e4K ######## +1.7793 0.77828 0.56109 1.1403 +1.9793 0.74208 0.65158 0.90950 +2.1793 1.0226 0.87330 1.2715 +2.3793 1.1719 0.98190 1.4570 +2.5793 1.2398 1.0995 1.4299 +2.7793 1.2941 1.1493 1.4796 +2.9793 1.3032 1.1538 1.4887 +3.1793 1.1900 1.0724 1.3258 +3.3770 1.4118 1.2443 1.6109 +3.5770 1.0452 0.78281 1.3575 +3.7770 1.2081 1.0181 1.4344 +3.9770 0.95023 0.77828 1.1674 +4.1770 0.89593 0.82805 0.99095 +4.5770 0.88688 0.77828 1.0136 +4.9770 0.54299 0.45701 0.66516 +5.3747 0.61086 0.47511 0.76018 diff --git a/examples/Cooling/ConstantCosmoTempEvolution/getGlass.sh b/examples/Cooling/ConstantCosmoTempEvolution/getGlass.sh new file mode 100755 index 0000000000000000000000000000000000000000..01b4474ac21666c843b7abedfa39a76948934911 --- /dev/null +++ b/examples/Cooling/ConstantCosmoTempEvolution/getGlass.sh @@ -0,0 +1,2 @@ +#!/bin/bash +wget http://virgodb.cosma.dur.ac.uk/swift-webstorage/ICs/gravity_glassCube_32.hdf5 diff --git a/examples/Cooling/ConstantCosmoTempEvolution/makeIC.py b/examples/Cooling/ConstantCosmoTempEvolution/makeIC.py new file mode 100644 index 0000000000000000000000000000000000000000..c6ae39206e14770df590efb2d2d468bfc5c088fb --- /dev/null +++ b/examples/Cooling/ConstantCosmoTempEvolution/makeIC.py @@ -0,0 +1,84 @@ +################################################################################ +# This file is part of SWIFT. +# Copyright (c) 2019 Stefan Arridge (stefan.arridge@durham.ac.uk) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +################################################################################ + +from swiftsimio import Writer +from swiftsimio.units import cosmo_units + +import unyt +import numpy as np +import h5py as h5 + + +# Parameters +boxsize = 100 * unyt.Mpc +T_i = 1000.0 # Initial temperature of the gas (in K) +z_i = 100.0 # Initial redshift +gamma = 5.0 / 3.0 # Gas adiabatic index +n_p_1D = 32 +glassFile = "gravity_glassCube_32.hdf5" +filename = "constantBox.hdf5" + +# Cosmology (must be same as param file) +hubble_param = 0.6777 # same as in param file +Omega_bar = 0.0455 # same as in param file + + +# Read the glass file +glass = h5.File(glassFile, "r") + +# Total number of particles +n_p = n_p_1D ** 3 +# Read particle positions and from the glass +glass_pos = glass["/PartType1/Coordinates"][:, :] +glass.close() + +# Calculate mean baryon density today from comological parameters +H_0 = 100.0 * hubble_param * unyt.km / unyt.s / unyt.Mpc +rho_crit_0 = 3.0 * H_0 ** 2 / (8.0 * np.pi * unyt.G) +rho_bar_0 = Omega_bar * rho_crit_0 + +# From this, we calculate the mass of the gas particles +gas_particle_mass = rho_bar_0 * boxsize ** 3 / (n_p_1D ** 3) + +# Generate object. cosmo_units corresponds to default Gadget-oid units +# of 10^10 Msun, Mpc, and km/s +x = Writer(cosmo_units, boxsize) + +# 32^3 particles. +n_p = 32 ** 3 + +# Make gas coordinates from 0, 100 Mpc in each direction +x.gas.coordinates = glass_pos * boxsize + +# Random velocities from 0 to 1 km/s +x.gas.velocities = np.zeros((n_p, 3)) * (unyt.km / unyt.s) + +# Generate uniform masses as 10^6 solar masses for each particle +x.gas.masses = np.ones(n_p, dtype=float) * gas_particle_mass + +# Generate internal energy corresponding to 10^4 K +x.gas.internal_energy = ( + np.ones(n_p, dtype=float) * (T_i * unyt.kb * unyt.K) / (1e6 * unyt.msun) +) + +# Generate initial guess for smoothing lengths based on MIPS +x.gas.generate_smoothing_lengths(boxsize=boxsize, dimension=3) + +# If IDs are not present, this automatically generates +x.write(filename) diff --git a/examples/Cooling/ConstantCosmoTempEvolution/plot_thermal_history.py b/examples/Cooling/ConstantCosmoTempEvolution/plot_thermal_history.py new file mode 100644 index 0000000000000000000000000000000000000000..1494102531104b252e3edaa467920db7383ac6e6 --- /dev/null +++ b/examples/Cooling/ConstantCosmoTempEvolution/plot_thermal_history.py @@ -0,0 +1,184 @@ +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt +import h5py as h5 +import swiftsimio +import sys +import glob +import unyt +import numpy as np + +## read command line arguments +snapshot_name = sys.argv[1] + +params = {'axes.labelsize': 10, +'axes.titlesize': 10, +'font.size': 9, +'legend.fontsize': 9, +'xtick.labelsize': 10, +'ytick.labelsize': 10, +'text.usetex': False, +'figure.figsize' : (4.15,3.15), +'figure.subplot.left' : 0.12, +'figure.subplot.right' : 0.99, +'figure.subplot.bottom' : 0.12, +'figure.subplot.top' : 0.99, +'figure.subplot.wspace' : 0.15, +'figure.subplot.hspace' : 0.12, +'lines.markersize' : 6, +'lines.linewidth' : 2., +'text.latex.unicode': True +} +plt.rcParams.update(params) + +################# Read in observational data + +data_schaye = np.genfromtxt("./datasets/schaye_et_al_2000_thermal_history.dat",skip_header = 2) +data_walther = np.genfromtxt("./datasets/walther_et_al_2019_thermal_history.dat",skip_header = 2) + +data_schaye = data_schaye.T +data_walther = data_walther.T + +schaye_z_lower_error = data_schaye[0] - data_schaye[1] +schaye_z_upper_error = data_schaye[2] - data_schaye[0] +schaye_T_lower_error = np.log10(data_schaye[3]*1.0e4) - np.log10(data_schaye[4]*1.0e4) +schaye_T_upper_error = np.log10(data_schaye[5]*1.0e4) - np.log10(data_schaye[3]*1.0e4) +walther_T_lower_error = np.log10(data_walther[1]*1.0e4) - np.log10(data_walther[2]*1.0e4) +walther_T_upper_error = np.log10(data_walther[3]*1.0e4) - np.log10(data_walther[1]*1.0e4) + +############### Read in simulation data + +## First, get list of all snapshots +reg_exp = "%s*.hdf5" %snapshot_name +snap_list = glob.glob(reg_exp) + +z = [] +T_mean = [] +T_std = [] +rho_mean = [] +rho_std = [] + +## loop through list +for snap in snap_list: + + # This loads all metadata but explicitly does _not_ read any particle data yet + data = swiftsimio.load(snap) + + # Get the redshift + z = np.append(z, data.metadata.z) + + # Convert gas temperatures and densities to right units + data.gas.temperature.convert_to_cgs() + + # Get mean and standard deviation of temperature + T_mean.append(np.mean(data.gas.temperature) * data.gas.temperature.units) + T_std.append(np.std(data.gas.temperature) * data.gas.temperature.units) + + # Get mean and standard deviation of density + rho_mean.append(np.mean(data.gas.density) * data.gas.density.units) + rho_std.append(np.std(data.gas.density) * data.gas.density.units) + +## Turn into numpy arrays +T_mean = np.array(T_mean) * data.gas.temperature.units +T_std = np.array(T_std) * data.gas.temperature.units +rho_mean = np.array(rho_mean) * data.gas.density.units +rho_std = np.array(rho_std) * data.gas.density.units + +## Put Density into units of mean baryon density today + +# first calculate rho_bar_0 from snapshot metadata +### from the first snapshot, get cosmology information +d = swiftsimio.load(snap_list[0]) +cosmology = d.metadata.cosmology +H0 = cosmology["H0 [internal units]"] / (d.units.time) +Omega_bar = cosmology["Omega_b"] + +### now calculate rho_bar_0 and divide through +rho_bar_0 = 3.0 * H0**2 / (8. * np.pi * unyt.G) * Omega_bar +rho_mean /= rho_bar_0 +rho_std /= rho_bar_0 + +### sort arrays into redshift order +ind_sorted = np.argsort(z) +z = z[ind_sorted] +T_mean = T_mean[ind_sorted] +T_std = T_std[ind_sorted] +rho_mean = rho_mean[ind_sorted] +rho_std = rho_std[ind_sorted] + +### from the first snapshot, get code information +d = swiftsimio.load(snap_list[0]) +code_info = d.metadata.code +git_branch = code_info["Git Branch"].decode('UTF-8') +git_revision = code_info["Git Revision"].decode('UTF-8') +hydro_metadata = d.metadata.hydro_scheme +scheme = hydro_metadata["Scheme"].decode('UTF-8') +params = d.metadata.parameters + +subgrid_metadata = d.metadata.subgrid_scheme +cooling_model = subgrid_metadata["Cooling Model"].decode('UTF-8') +chemistry_model = subgrid_metadata["Chemistry Model"].decode('UTF-8') + +if cooling_model == 'EAGLE': + z_r_H = float(params['EAGLECooling:H_reion_z']) + H_heat_input = float(params['EAGLECooling:H_reion_eV_p_H']) + z_r_He_centre = float(params['EAGLECooling:He_reion_z_centre']) + z_r_He_sigma = float(params['EAGLECooling:He_reion_z_sigma']) + He_heat_input = float(params['EAGLECooling:He_reion_eV_p_H']) + +metallicity = "Unknown" +if chemistry_model == 'EAGLE': + metallicity = float(params['EAGLEChemistry:init_abundance_metal']) + +# Make plot of temperature evolution -------------------------------- +fig = plt.figure() + +# Plot sim properties +if cooling_model == 'EAGLE': + plt.plot([z_r_H, z_r_H], [3.4, 4.4], 'k--', alpha=0.5, lw=0.7) + plt.text(z_r_H + 0.1, 3.55, "H reion.", rotation=90, alpha=0.5, fontsize=7, va="bottom") + plt.plot([z_r_He_centre, z_r_He_centre], [3.4, 4.4], 'k--', alpha=0.5, lw=0.7) + plt.text(z_r_He_centre + 0.1, 3.55, "HeII reion.", rotation=90, alpha=0.5, fontsize=7, va="bottom") + +# Plot observational data +plt.errorbar(data_schaye[0], + np.log10(data_schaye[3]*1.0e4), + xerr = [schaye_z_lower_error,schaye_z_upper_error], + yerr = [schaye_T_lower_error,schaye_T_upper_error], + fmt='s', mec='0.3', color='0.3', markersize=4, markeredgewidth=0.5, linewidth=0.5, mfc='w', label="Schaye et al. (2000)") +plt.errorbar(data_walther[0], + np.log10(data_walther[1]*1.0e4), + yerr = [walther_T_lower_error,walther_T_upper_error], + fmt='.', mec='0.3', color='0.3', markersize=7, markeredgewidth=0.5, linewidth=0.5, mfc='w', label = "Walther et al. (2019)") + +# Plot simulation +plt.plot(z, np.log10(T_mean)) + +# Legend +plt.legend(loc="upper right", frameon=True, fontsize=8, handletextpad=0.1, facecolor="w", edgecolor="w", framealpha=1.) +plt.text(0.2, 4.8, "SWIFT %s \nCooling model: %s \n$\\rho=%.3f$ $\\Omega_{b}\\rho_{crit,0}$\n$Z=%s$"%(git_revision, cooling_model, rho_mean[-1], metallicity), va="top", ha="left", fontsize=8) + +plt.xlim(0, 12.2) +plt.ylim(3.5,4.85) +plt.xlabel("Redshift", labelpad=-0.5) +plt.ylabel(r"$\log_{10}(T/K)$", labelpad=0) +plt.savefig("Temperature_evolution.png", dpi=200) + + +# Make plot of denisty evolution -------------------------------- +plt.rcParams.update({'figure.subplot.left' : 0.14}) +fig = plt.figure() + +plt.text(0.2, 1.011, "SWIFT %s"%git_revision, va="top", ha="left", fontsize=8) + +plt.fill_between(z,rho_mean - rho_std,rho_mean + rho_std,alpha = 0.5) +plt.plot(z,rho_mean) + +plt.axhline(y = 1.0, linestyle = '--', color='k', alpha=0.5, lw=1.) + +plt.xlim(0.0,12.2) +plt.ylabel(r"$\delta_b = \rho / \Omega_b\rho_{crit,0}$", labelpad=0.) +plt.ylim(0.988,1.012) +plt.yticks([0.99, 1., 1.01]) +plt.xlabel("Redshift", labelpad=-0.5) +plt.savefig("Density_evolution.png", dpi=200) diff --git a/examples/Cooling/ConstantCosmoTempEvolution/run.sh b/examples/Cooling/ConstantCosmoTempEvolution/run.sh new file mode 100755 index 0000000000000000000000000000000000000000..710613ec9a431a007ed7b83e2d5634ee24eea7ec --- /dev/null +++ b/examples/Cooling/ConstantCosmoTempEvolution/run.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Generate the initial conditions if they are not present. +if [ ! -e gravity_glassCube_32.hdf5 ] +then + echo "Fetching initial gravity glass file for the constant cosmological box example..." + ./getGlass.sh +fi +if [ ! -e coolingtables ] +then + echo "Fetching EAGLE Cooling Tables" + ../getEagleCoolingTable.sh +fi + +# Fetch the cooling tables +if [ ! -e constantBox.hdf5 ] +then + echo "Generating initial conditions for the uniform cosmo box example..." + python3 makeIC.py +fi + +# Run SWIFT +../../swift --hydro --cosmology --cooling --threads=4 const_cosmo_temp_evol.yml 2>&1 | tee output.log + +# Plot the result +python3 plot_thermal_history.py cooling_box diff --git a/examples/Cooling/CoolingBox/coolingBox.yml b/examples/Cooling/CoolingBox/coolingBox.yml index 853e480cd4ffba4baa659232e6d5f068b4ea2815..ca97793aa9b4de43872db38f55c4060a2b27ddc9 100644 --- a/examples/Cooling/CoolingBox/coolingBox.yml +++ b/examples/Cooling/CoolingBox/coolingBox.yml @@ -57,6 +57,7 @@ GearChemistry: EAGLECooling: dir_name: ./coolingtables/ H_reion_z: 11.5 + H_reion_eV_p_H: 2.0 He_reion_z_center: 3.5 He_reion_z_sigma: 0.5 He_reion_eV_p_H: 2.0 diff --git a/examples/Cooling/CoolingRates/cooling_rates.c b/examples/Cooling/CoolingRates/cooling_rates.c index e7ff0340853e5cd5361286bd8af5c547681b4f63..f23a987e3ae56db0811eb9997a8c1c48772f7f09 100644 --- a/examples/Cooling/CoolingRates/cooling_rates.c +++ b/examples/Cooling/CoolingRates/cooling_rates.c @@ -166,6 +166,7 @@ int main(int argc, char **argv) { struct phys_const internal_const; struct cooling_function_data cooling; struct cosmology cosmo; + struct space s; const char *parametersFileName = "./cooling_rates.yml"; /* Initialize CPU frequency, this also starts time. */ @@ -229,7 +230,7 @@ int main(int argc, char **argv) { // Init cooling cooling_init(params, &us, &internal_const, &cooling); cooling_print(&cooling); - cooling_update(&cosmo, &cooling); + cooling_update(&cosmo, &cooling, &s); // Calculate abundance ratios float abundance_ratio[(chemistry_element_count + 2)]; diff --git a/examples/Cooling/CoolingRates/cooling_rates.yml b/examples/Cooling/CoolingRates/cooling_rates.yml index 1d67ad0af79368c39c24879b101a540d0bccb3d1..985eef220b24bd398deec09ea56630118d0bc5ab 100644 --- a/examples/Cooling/CoolingRates/cooling_rates.yml +++ b/examples/Cooling/CoolingRates/cooling_rates.yml @@ -30,6 +30,7 @@ EAGLEChemistry: EAGLECooling: dir_name: ./coolingtables/ H_reion_z: 11.5 + H_reion_eV_p_H: 2.0 He_reion_z_centre: 3.5 He_reion_z_sigma: 0.5 He_reion_eV_p_H: 2.0 diff --git a/examples/Cooling/CoolingRates/getCoolingTable.sh b/examples/Cooling/getEagleCoolingTable.sh similarity index 100% rename from examples/Cooling/CoolingRates/getCoolingTable.sh rename to examples/Cooling/getEagleCoolingTable.sh diff --git a/examples/Cooling/getCoolingTable.sh b/examples/Cooling/getGrackleCoolingTable.sh similarity index 100% rename from examples/Cooling/getCoolingTable.sh rename to examples/Cooling/getGrackleCoolingTable.sh diff --git a/examples/Cosmology/ConstantCosmoVolume/run.sh b/examples/Cosmology/ConstantCosmoVolume/run.sh index 4a30410e868aef58b1a9dac0a3225e5844c5873f..9c0e0ccdcbbdd52b14230d98393637e99d9ad80f 100755 --- a/examples/Cosmology/ConstantCosmoVolume/run.sh +++ b/examples/Cosmology/ConstantCosmoVolume/run.sh @@ -9,11 +9,11 @@ fi if [ ! -e constantBox.hdf5 ] then echo "Generating initial conditions for the uniform cosmo box example..." - python makeIC.py + python3 makeIC.py fi # Run SWIFT ../../swift --hydro --cosmology --self-gravity --threads=8 constant_volume.yml 2>&1 | tee output.log # Plot the result -python plotSolution.py $i +python3 plotSolution.py $i diff --git a/examples/EAGLE_ICs/EAGLE_12/eagle_12.yml b/examples/EAGLE_ICs/EAGLE_12/eagle_12.yml index 4c3d7f0a3516ea7919a7ecd28efa6808c2f0f046..df4c05811bae17a65b54e45c6625ff97a21357f6 100644 --- a/examples/EAGLE_ICs/EAGLE_12/eagle_12.yml +++ b/examples/EAGLE_ICs/EAGLE_12/eagle_12.yml @@ -80,6 +80,7 @@ EAGLEChemistry: EAGLECooling: dir_name: ./coolingtables/ H_reion_z: 11.5 + H_reion_eV_p_H: 2.0 He_reion_z_centre: 3.5 He_reion_z_sigma: 0.5 He_reion_eV_p_H: 2.0 diff --git a/examples/EAGLE_low_z/EAGLE_12/eagle_12.yml b/examples/EAGLE_low_z/EAGLE_12/eagle_12.yml index d09bbb51e90d843dd6731c5fcbd48b9c586713f9..ada36234d6a9691a8d78a33a047088920e2c6a11 100644 --- a/examples/EAGLE_low_z/EAGLE_12/eagle_12.yml +++ b/examples/EAGLE_low_z/EAGLE_12/eagle_12.yml @@ -73,6 +73,7 @@ EAGLEChemistry: # Solar abundances EAGLECooling: dir_name: ./coolingtables/ H_reion_z: 11.5 + H_reion_eV_p_H: 2.0 He_reion_z_centre: 3.5 He_reion_z_sigma: 0.5 He_reion_eV_p_H: 2.0 diff --git a/examples/EAGLE_low_z/EAGLE_25/eagle_25.yml b/examples/EAGLE_low_z/EAGLE_25/eagle_25.yml index 75799647b4e95ebd75202748c67a2c18c423f532..b1d897ec390ca0488229c460a4308c1ee793dbf7 100644 --- a/examples/EAGLE_low_z/EAGLE_25/eagle_25.yml +++ b/examples/EAGLE_low_z/EAGLE_25/eagle_25.yml @@ -80,6 +80,7 @@ EAGLEChemistry: # Solar abundances EAGLECooling: dir_name: ./coolingtables/ H_reion_z: 11.5 + H_reion_eV_p_H: 2.0 He_reion_z_centre: 3.5 He_reion_z_sigma: 0.5 He_reion_eV_p_H: 2.0 diff --git a/examples/EAGLE_low_z/EAGLE_50/eagle_50.yml b/examples/EAGLE_low_z/EAGLE_50/eagle_50.yml index 6c0c7421ba4f804437a8086b42fb2878bd3904b1..c837c88d870f21907b9fe7fc1408c5df8db5dd0c 100644 --- a/examples/EAGLE_low_z/EAGLE_50/eagle_50.yml +++ b/examples/EAGLE_low_z/EAGLE_50/eagle_50.yml @@ -75,6 +75,7 @@ EAGLEChemistry: # Solar abundances EAGLECooling: dir_name: ./coolingtables/ H_reion_z: 11.5 + H_reion_eV_p_H: 2.0 He_reion_z_centre: 3.5 He_reion_z_sigma: 0.5 He_reion_eV_p_H: 2.0 diff --git a/examples/EAGLE_low_z/EAGLE_6/eagle_6.yml b/examples/EAGLE_low_z/EAGLE_6/eagle_6.yml index 313a5a384324eecd56455ea22bbc96d147982d6b..4f68413fa4c69b8e2b9ff28e66f4f269d21a1a7b 100644 --- a/examples/EAGLE_low_z/EAGLE_6/eagle_6.yml +++ b/examples/EAGLE_low_z/EAGLE_6/eagle_6.yml @@ -84,9 +84,11 @@ EAGLEChemistry: # Solar abundances EAGLECooling: dir_name: ./coolingtables/ H_reion_z: 11.5 + H_reion_eV_p_H: 2.0 He_reion_z_centre: 3.5 He_reion_z_sigma: 0.5 He_reion_eV_p_H: 2.0 + # EAGLE star formation parameters EAGLEStarFormation: EOS_density_norm_H_p_cm3: 0.1 # Physical density used for the normalisation of the EOS assumed for the star-forming gas in Hydrogen atoms per cm^3. diff --git a/examples/HydroTests/Diffusion_1D/.gitignore b/examples/HydroTests/Diffusion_1D/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..dadfbc6e8ce185fc82169300e6f289ed8abc9bf2 --- /dev/null +++ b/examples/HydroTests/Diffusion_1D/.gitignore @@ -0,0 +1 @@ +beta_* diff --git a/examples/HydroTests/Diffusion_1D/README b/examples/HydroTests/Diffusion_1D/README new file mode 100644 index 0000000000000000000000000000000000000000..6254e0ce9a7aa1af5f54ba388b2b08af6bb78739 --- /dev/null +++ b/examples/HydroTests/Diffusion_1D/README @@ -0,0 +1,19 @@ +Diffusion 1D +============ + +This is a very simple, 1D test. It sets up a uniform density particle +distribution, with energy discontinuities generated at every particle. +Particles have their internal energy set in a binary manner, with them +alternating between "low" and "high" states. Under a standard SPH +scheme, we expect to see no evolution whatsoever in the box. However, +under a scheme with thermal diffusion, we expect that there will be +some diffusion between the particles and that the distribution of +internal energy will equalise. + +Included are some scripts to create initial conditions (`makeIC.py`), +plot a solution (`plotSolution.py`), and to run the code (`run.sh`). +Also included is a script to run a convergence test by changing the +`SPH:beta_diffusion` parameter (`run_set.sh`). + +To make the initial conditions and produce the plots, the `swiftsimio` +library (http://gitlab.cosma.dur.ac.uk/jborrow/swiftsimio) is required. \ No newline at end of file diff --git a/examples/HydroTests/Diffusion_1D/diffusion.yml b/examples/HydroTests/Diffusion_1D/diffusion.yml new file mode 100644 index 0000000000000000000000000000000000000000..099cad637bf947926baa3571a2b1361d16293547 --- /dev/null +++ b/examples/HydroTests/Diffusion_1D/diffusion.yml @@ -0,0 +1,38 @@ +# Define the system of units to use internally. +InternalUnitSystem: + UnitMass_in_cgs: 1 # Grams + UnitLength_in_cgs: 1 # Centimeters + UnitVelocity_in_cgs: 1 # Centimeters per second + UnitCurrent_in_cgs: 1 # Amperes + UnitTemp_in_cgs: 1 # Kelvin + +# Parameters governing the time integration +TimeIntegration: + time_begin: 0. # The starting time of the simulation (in internal units). + time_end: 1e-0 # The end time of the simulation (in internal units). + dt_min: 1e-7 # The minimal time-step size of the simulation (in internal units). + dt_max: 1e-2 # The maximal time-step size of the simulation (in internal units). + +# Parameters governing the snapshots +Snapshots: + basename: diffusion # Common part of the name of output files + time_first: 0. # Time of the first output (in internal units) + delta_time: 2e-2 # Time difference between consecutive outputs (in internal units) + +# Parameters governing the conserved quantities statistics +Statistics: + delta_time: 1e-1 # Time between statistics output + +# Parameters for the hydrodynamics scheme +SPH: + resolution_eta: 1.2348 # Target smoothing length in units of the mean inter-particle separation (1.2348 == 48Ngbs with the cubic spline kernel). + CFL_condition: 0.1 # Courant-Friedrich-Levy condition for time integration. + diffusion_alpha: 0.0 # (Optional) Override the initial value for the thermal diffusion coefficient in schemes with thermal diffusion. + diffusion_beta: 0.01 # (Optional) Override the decay/rise rate tuning parameter for the thermal diffusion. + diffusion_alpha_max: 1.0 # (Optional) Override the maximal thermal diffusion coefficient that is allowed for a given particle. + diffusion_alpha_min: 0.0 # (Optional) Override the minimal thermal diffusion coefficient that is allowed for a given particle. + +# Parameters related to the initial conditions +InitialConditions: + file_name: ./diffusion.hdf5 # The file to read + periodic: 1 diff --git a/examples/HydroTests/Diffusion_1D/diffusion_fixed_alpha.yml b/examples/HydroTests/Diffusion_1D/diffusion_fixed_alpha.yml new file mode 100644 index 0000000000000000000000000000000000000000..36f70e2492a05e90ab29496d4fc064cc2c35f62f --- /dev/null +++ b/examples/HydroTests/Diffusion_1D/diffusion_fixed_alpha.yml @@ -0,0 +1,38 @@ +# Define the system of units to use internally. +InternalUnitSystem: + UnitMass_in_cgs: 1 # Grams + UnitLength_in_cgs: 1 # Centimeters + UnitVelocity_in_cgs: 1 # Centimeters per second + UnitCurrent_in_cgs: 1 # Amperes + UnitTemp_in_cgs: 1 # Kelvin + +# Parameters governing the time integration +TimeIntegration: + time_begin: 0. # The starting time of the simulation (in internal units). + time_end: 1e-0 # The end time of the simulation (in internal units). + dt_min: 1e-7 # The minimal time-step size of the simulation (in internal units). + dt_max: 1e-2 # The maximal time-step size of the simulation (in internal units). + +# Parameters governing the snapshots +Snapshots: + basename: diffusion_fixed_alpha # Common part of the name of output files + time_first: 0. # Time of the first output (in internal units) + delta_time: 2e-2 # Time difference between consecutive outputs (in internal units) + +# Parameters governing the conserved quantities statistics +Statistics: + delta_time: 1e-1 # Time between statistics output + +# Parameters for the hydrodynamics scheme +SPH: + resolution_eta: 1.2348 # Target smoothing length in units of the mean inter-particle separation (1.2348 == 48Ngbs with the cubic spline kernel). + CFL_condition: 0.1 # Courant-Friedrich-Levy condition for time integration. + diffusion_alpha: 0.1 # (Optional) Override the initial value for the thermal diffusion coefficient in schemes with thermal diffusion. + diffusion_beta: 0.01 # (Optional) Override the decay/rise rate tuning parameter for the thermal diffusion. + diffusion_alpha_max: 0.1 # (Optional) Override the maximal thermal diffusion coefficient that is allowed for a given particle. + diffusion_alpha_min: 0.1 # (Optional) Override the minimal thermal diffusion coefficient that is allowed for a given particle. + +# Parameters related to the initial conditions +InitialConditions: + file_name: ./diffusion.hdf5 # The file to read + periodic: 1 diff --git a/examples/HydroTests/Diffusion_1D/makeIC.py b/examples/HydroTests/Diffusion_1D/makeIC.py new file mode 100644 index 0000000000000000000000000000000000000000..09a4b5c698c7351a8a08f53a268c2b333bfef991 --- /dev/null +++ b/examples/HydroTests/Diffusion_1D/makeIC.py @@ -0,0 +1,143 @@ +""" +This file is part of SWIFT. +Copyright (c) 2019 Josh Borrow (joshua.borrow@durham.ac.uk) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. + +Creates initial conditiosn for the ContactDiscontinuty_1D test. +Requires the swiftsimio library. +""" + +import numpy as np +import unyt + + +def get_particle_positions(box_length: float, n_part: int) -> np.array: + """ + Gets the particle positions evenly spaced along a _periodic_ box. + """ + + dx = box_length / float(n_part) + x = np.arange(n_part, dtype=float) * dx + (0.5 * dx) + + return x + + +def get_particle_u(low: float, high: float, n_part: int) -> np.array: + """ + Gets the particle internal energies, which alternate between low + and high. Make sure n_part is even. + """ + + indicies = np.arange(n_part) + u = unyt.unyt_array(np.empty(n_part, dtype=float), low.units) + u[...] = low + u[(indicies % 2).astype(bool)] = high + + return u + + +def get_particle_masses(mass: float, n_part: int) -> np.array: + """ + Gets the particle masses. + """ + + m = unyt.unyt_array(np.empty(n_part, dtype=float), mass.units) + m[...] = mass + + return m + + +def get_particle_hsml(box_length: float, n_part: int) -> np.array: + """ + Gets the particle smoothing lengths based on their MIPS. + """ + + mips = box_length / float(n_part) + hsml = unyt.unyt_array(np.empty(n_part, dtype=float), box_length.units) + hsml[...] = mips + + return hsml + + +if __name__ == "__main__": + import argparse as ap + from swiftsimio import Writer + + parser = ap.ArgumentParser( + description="Makes initial conditions for the ContactDiscontinuity_1D test." + ) + + parser.add_argument( + "-n", + "--npart", + help="Number of particles in the box. Make sure this is even. Default: 900", + type=int, + default=900, + ) + + parser.add_argument( + "-m", + "--mass", + help="Particle mass in grams. Default: 1e-4", + type=float, + default=1e-4, + ) + + parser.add_argument( + "-l", + "--low", + help="Low value for the internal energy (in ergs/g). Default: 1e-6", + type=float, + default=1e-6, + ) + + parser.add_argument( + "-t", + "--high", + help="Top/high value for the internal energy (in ergs/g). Default: 1e-4", + type=float, + default=1e-4, + ) + + parser.add_argument( + "-b", "--boxsize", help="Boxsize in cm. Default: 1.0", type=float, default=1.0 + ) + + args = vars(parser.parse_args()) + boxsize = args["boxsize"] * unyt.cm + n_part = args["npart"] + mass = args["mass"] * unyt.g + low = args["low"] * unyt.erg / unyt.g + high = args["high"] * unyt.erg / unyt.g + + if not (n_part % 2 == 0): + raise AttributeError("Please ensure --npart is even.") + + cgs = unyt.unit_systems.cgs_unit_system + + boxsize = 1.0 * unyt.cm + + writer = Writer(cgs, boxsize, dimension=1) + + coordinates = np.zeros((n_part, 3), dtype=float) * unyt.cm + coordinates[:, 0] = get_particle_positions(boxsize, n_part) + + writer.gas.coordinates = coordinates + writer.gas.velocities = np.zeros((n_part, 3), dtype=float) * unyt.cm / unyt.s + writer.gas.masses = get_particle_masses(mass, n_part) + writer.gas.internal_energy = get_particle_u(low, high, n_part) + writer.gas.smoothing_length = get_particle_hsml(boxsize, n_part) + + writer.write("diffusion.hdf5") diff --git a/examples/HydroTests/Diffusion_1D/plotSolution.py b/examples/HydroTests/Diffusion_1D/plotSolution.py new file mode 100644 index 0000000000000000000000000000000000000000..66c8ffc6418f06589a2918ae4d8ed460b0081972 --- /dev/null +++ b/examples/HydroTests/Diffusion_1D/plotSolution.py @@ -0,0 +1,341 @@ +""" +This file is part of SWIFT. +Copyright (c) 2019 Josh Borrow (joshua.borrow@durham.ac.uk) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. + +Plots the solution for the ContactDiscontinuity_1D test. +""" + +import matplotlib +import matplotlib.pyplot as plt +import numpy as np + +try: + from scipy.integrate import solve_ivp + solve_ode = True +except: + solve_ode = False + +from swiftsimio import load + +matplotlib.use("Agg") + +def solve_analytic(u_0, u_1, t_0, t_1, alpha=0.1): + """ + Solves the analytic equation: + + $$ + \frac{d \Delta}{d t} = \kappa \alpha ( + \sqrt{u_0 + \Delta} + \sqrt{u_1 + \Delta} + ) ( + u_1 - u_0 - 2 \Delta + ) + $$ + + from time t0 to t1. + + + alpha is the gradient term + + u_0 is the "low" state + + u_1 is the "high" state. + """ + + if not solve_ode: + return [0.0], [0.0] + + def gradient(t, u): + """ + Returns du0/dt, du1/dt + """ + + common = alpha * (np.sqrt(u[0]) + np.sqrt(u[1])) * (u[0] - u[1]) + + return np.array([-1.0 * common, 1.0 * common]) + + ret = solve_ivp(gradient, t_span=[t_0.value, t_1.value], y0=[u_0.value, u_1.value], t_eval=np.linspace(t_0.value, t_1.value, 100)) + + t = ret.t + high = ret.y[1] + low = ret.y[0] + + return t, (high - low) * u_0.units + + +def get_data_dump(metadata): + """ + Gets a big data dump from the SWIFT metadata + """ + + try: + viscosity = metadata.viscosity_info + except: + viscosity = "No info" + + try: + diffusion = metadata.diffusion_info + except: + diffusion = "No info" + + output = ( + "SWIFT\n" + + metadata.code_info + + "\n\n" + + "Compiler\n" + + metadata.compiler_info + + "\n\n" + + "Hydrodynamics\n" + + metadata.hydro_info + + "\n\n" + + "Viscosity\n" + + viscosity + + "\n\n" + + "Diffusion\n" + + diffusion + ) + + return output + + +def get_data_list(start: int, stop: int, handle: str): + """ + Gets a list of swiftsimio objects that contains all of the data. + """ + + data = [load("{}_{:04d}.hdf5".format(handle, x)) for x in range(start, stop + 1)] + + return data + + +def setup_axes(size=[8, 8], dpi=300): + """ + Sets up the axes with the correct labels, etc. + """ + fig, ax = plt.subplots(ncols=2, nrows=2, figsize=size, dpi=dpi) + + ax = ax.flatten() + + ax[0].axis("off") + ax[1].set_xlabel("Time [s]") + ax[1].set_ylabel("Relative energy difference $u/\\left<u\\right>$") + + ax[2].set_xlabel("Time [s]") + ax[2].set_ylabel("Deviation in position relative to MIPS [$\\times 10^{6}$]") + + ax[3].set_xlabel("Time [s]") + + return fig, ax + +def mean_std_max_min(data): + """ + Returns: + mean, stdev, max, min + for your data. + """ + means = np.array([np.mean(x) for x in data]) + stdevs = np.array([np.std(x) for x in data]) + maxs = np.array([np.max(x) for x in data]) + mins = np.array([np.min(x) for x in data]) + + return means, stdevs, maxs, mins + + +def extract_plottables_u(data_list): + """ + Extracts the plottables for the internal energies. Returns: + mean, stdev, max, min differences between adjacent internal energies + """ + + data = [ + np.diff(x.gas.internal_energy.value) / np.mean(x.gas.internal_energy.value) + for x in data_list + ] + + return mean_std_max_min(data) + + +def extract_plottables_x(data_list): + """ + Extracts the plottables for positions. Returns: + mean, stdev, max, min * 1e6 deviations from original position + """ + + n_part = data_list[0].metadata.n_gas + boxsize = data_list[0].metadata.boxsize[0].value + dx = boxsize / n_part + + original_x = np.arange(n_part, dtype=float) * dx + (0.5 * dx) + + deviations = [1e6 * abs(original_x - x.gas.coordinates.value[:, 0]) / dx for x in data_list] + + return mean_std_max_min(deviations) + + +def extract_plottables_rho(data_list): + """ + Extracts the plottables for pressure. Returns: + mean, stdev, max, min * 1e6 deviations from mean density + """ + + P = [x.gas.density.value for x in data_list] + mean_P = [np.mean(x) for x in P] + deviations = [1e6 * (x - y) / x for x, y in zip(mean_P, P)] + + return mean_std_max_min(deviations) + + +def extract_plottables_diff(data_list): + """ + Extracts the plottables for pressure. Returns: + mean, stdev, max, min * 1e6 deviations from mean density + """ + + P = [x.gas.diffusion.value for x in data_list] + + return mean_std_max_min(P) + + +def make_plot(start: int, stop: int, handle: str): + """ + Makes the plot and returns the figure and axes objects. + """ + fig, ax = setup_axes() + data_list = get_data_list(start, stop, handle) + data_dump = get_data_dump(data_list[0].metadata) + t = [x.metadata.t for x in data_list] + means, stdevs, maxs, mins = extract_plottables_u(data_list) + x_means, x_stdevs, x_maxs, x_mins = extract_plottables_x(data_list) + + try: + alpha = np.mean([np.mean(x.gas.diffusion) for x in data_list]) + except AttributeError: + # Must be using a non-diffusive scheme. + alpha = 0.0 + + ax[0].text( + 0.5, + 0.5, + data_dump, + ha="center", + va="center", + fontsize=8, + transform=ax[0].transAxes, + ) + + ax[1].fill_between( + t, means - stdevs, means + stdevs, color="C0", alpha=0.5, edgecolor="none" + ) + ax[1].plot(t, means, label="Mean", c="C0") + ax[1].plot(t, maxs, label="Max", linestyle="dashed", c="C1") + ax[1].plot(t, mins, label="Min", linestyle="dashed", c="C2") + + if solve_ode: + times_ode, diff = solve_analytic( + u_0=data_list[0].gas.internal_energy.min(), + u_1=data_list[0].gas.internal_energy.max(), + t_0=t[0], + t_1=t[-1], + alpha=( + np.sqrt(5.0/3.0 * (5.0/3.0 - 1.0)) * + alpha / data_list[0].gas.smoothing_length[0].value + ) + ) + + ax[1].plot( + times_ode, + (diff) / np.mean(data_list[0].gas.internal_energy), + label="Analytic", + linestyle="dotted", + c="C3" + ) + + #import pdb;pdb.set_trace() + + ax[2].fill_between( + t, x_means - x_stdevs, x_means + x_stdevs, color="C0", alpha=0.5, edgecolor="none" + ) + ax[2].plot(t, x_means, label="Mean", c="C0") + ax[2].plot(t, x_maxs, label="Max", linestyle="dashed", c="C1") + ax[2].plot(t, x_mins, label="Min", linestyle="dashed", c="C2") + + try: + # Give diffusion info a go; this may not be present + diff_means, diff_stdevs, diff_maxs, diff_mins = extract_plottables_diff(data_list) + + ax[3].set_ylabel(r"Diffusion parameter $\alpha_{diff}$") + ax[3].fill_between( + t, diff_means - diff_stdevs, diff_means + diff_stdevs, color="C0", alpha=0.5, edgecolor="none" + ) + ax[3].plot(t, diff_means, label="Mean", c="C0") + ax[3].plot(t, diff_maxs, label="Max", linestyle="dashed", c="C1") + ax[3].plot(t, diff_mins, label="Min", linestyle="dashed", c="C2") + + except: + # Diffusion info must not be present. + rho_means, rho_stdevs, rho_maxs, rho_mins = extract_plottables_rho(data_list) + + ax[3].set_ylabel("Deviation from mean density $(\\rho_i - \\bar{\\rho}) / \\bar{\\rho}$ [$\\times 10^{6}$]") + ax[3].fill_between( + t, rho_means - rho_stdevs, rho_means + rho_stdevs, color="C0", alpha=0.5, edgecolor="none" + ) + ax[3].plot(t, rho_means, label="Mean", c="C0") + ax[3].plot(t, rho_maxs, label="Max", linestyle="dashed", c="C1") + ax[3].plot(t, rho_mins, label="Min", linestyle="dashed", c="C2") + + ax[1].legend(loc=1, markerfirst=False) + + ax[1].set_xlim(t[0], t[-1]) + ax[2].set_xlim(t[0], t[-1]) + ax[3].set_xlim(t[0], t[-1]) + + fig.tight_layout() + + return fig, ax + + +if __name__ == "__main__": + import argparse as ap + + parser = ap.ArgumentParser( + description="Makes a plot of the data from the ContactDiscontinuity_1D test." + ) + + parser.add_argument( + "-i", "--initial", help="Initial snapshot. Default: 0", type=int, default=0 + ) + + parser.add_argument( + "-f", "--final", help="Final snapshot. Default: 50", type=int, default=50 + ) + + parser.add_argument( + "-s", + "--snapshot", + help="First part of the snapshot filename. Default: diffusion", + type=str, + default="diffusion", + ) + + parser.add_argument( + "-o", + "--output", + help="Output filename. Default: diffusion.png", + type=str, + default="diffusion.png", + ) + + args = vars(parser.parse_args()) + + fig, ax = make_plot(args["initial"], args["final"], args["snapshot"]) + + fig.savefig(args["output"]) diff --git a/examples/HydroTests/Diffusion_1D/run.sh b/examples/HydroTests/Diffusion_1D/run.sh new file mode 100755 index 0000000000000000000000000000000000000000..fb70805ca01b96df20fff438b2141b03ccf6e7ab --- /dev/null +++ b/examples/HydroTests/Diffusion_1D/run.sh @@ -0,0 +1,11 @@ +#!/bin/bash + + # Generate the initial conditions if they are not present. +if [ ! -e diffusion.hdf5 ] +then + echo "Generating initial conditions for the Sedov blast example..." + python makeIC.py +fi + +# Run SWIFT +../../swift --hydro --limiter --threads=1 diffusion.yml 2>&1 | tee output.log diff --git a/examples/HydroTests/Diffusion_1D/run_set.sh b/examples/HydroTests/Diffusion_1D/run_set.sh new file mode 100644 index 0000000000000000000000000000000000000000..d6b1f233e65b4e7851f15cf3bc8aadceff4710d7 --- /dev/null +++ b/examples/HydroTests/Diffusion_1D/run_set.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +beta=(1.0 0.1 0.01 0.001) +swift_location="../../swift" +flags="--hydro --limiter --threads=2" +parameter="diffusion.yml" +parameter_fixed="diffusion_fixed_alpha.yml" +make_ic_script="makeIC.py" +plot_script="plotSolution.py" + +for i in ${beta[@]}; +do + mkdir beta_$i + cd beta_$i + + python ../$make_ic_script + + ../$swift_location $flags -P "SPH:diffusion_beta:${i}" ../$parameter + python ../$plot_script + ../$swift_location $flags -P "SPH:diffusion_beta:${i}" ../$parameter_fixed + python ../$plot_script -s diffusion_fixed_alpha -o diffusion_fixed_alpha.png + + rm *.hdf5 + + cd .. +done diff --git a/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/isolated_galaxy.yml b/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/isolated_galaxy.yml index 7ba1e601c764d9c12b93178efd8226601af8373c..7dac0a8a6c3b8d4c583ae6138513f0c5259227b1 100644 --- a/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/isolated_galaxy.yml +++ b/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/isolated_galaxy.yml @@ -50,6 +50,7 @@ SPH: EAGLECooling: dir_name: ./coolingtables/ # Location of the Wiersma+08 cooling tables H_reion_z: 11.5 # Redshift of Hydrogen re-ionization + H_reion_eV_p_H: 2.0 He_reion_z_centre: 3.5 # Redshift of the centre of the Helium re-ionization Gaussian He_reion_z_sigma: 0.5 # Spread in redshift of the Helium re-ionization Gaussian He_reion_eV_p_H: 2.0 # Energy inject by Helium re-ionization in electron-volt per Hydrogen atom diff --git a/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/run.sh b/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/run.sh index f2aa93fd0e11cd9b07be991187cf0780a82ebec8..dc0b49478cdabefbe4dbf3544e097f18593cfb16 100755 --- a/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/run.sh +++ b/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/run.sh @@ -6,7 +6,7 @@ then ./getIC.sh fi -../../swift --threads=32 --external-gravity --self-gravity --stars --star-formation --cooling --temperature --hydro isolated_galaxy.yml 2>&1 | tee output.log +../../swift --threads=16 --external-gravity --self-gravity --stars --star-formation --cooling --hydro isolated_galaxy.yml -v 1 2>&1 | tee output.log # Kennicutt-Schmidt law plot python3 plotSolution.py diff --git a/examples/SantaBarbara/SantaBarbara-256/santa_barbara.yml b/examples/SantaBarbara/SantaBarbara-256/santa_barbara.yml index 0abbc91019957952276b51db01a3a1b71d6e4fdf..9f6585e0c589d3d016921eb85dd6af13a0643784 100644 --- a/examples/SantaBarbara/SantaBarbara-256/santa_barbara.yml +++ b/examples/SantaBarbara/SantaBarbara-256/santa_barbara.yml @@ -76,6 +76,7 @@ EAGLEChemistry: EAGLECooling: dir_name: ./coolingtables/ H_reion_z: 11.5 + H_reion_eV_p_H: 2.0 He_reion_z_centre: 3.5 He_reion_z_sigma: 0.5 He_reion_eV_p_H: 2.0 diff --git a/examples/SmallCosmoVolume/SmallCosmoVolume_cooling/small_cosmo_volume.yml b/examples/SmallCosmoVolume/SmallCosmoVolume_cooling/small_cosmo_volume.yml index 96f10465410ac120b30904a8655da4d8133d09bd..b108290fcd146461827d5858742bd0971ac66945 100644 --- a/examples/SmallCosmoVolume/SmallCosmoVolume_cooling/small_cosmo_volume.yml +++ b/examples/SmallCosmoVolume/SmallCosmoVolume_cooling/small_cosmo_volume.yml @@ -67,6 +67,7 @@ LambdaCooling: EAGLECooling: dir_name: ./coolingtables/ H_reion_z: 11.5 + H_reion_eV_p_H: 2.0 He_reion_z_centre: 3.5 He_reion_z_sigma: 0.5 He_reion_eV_p_H: 2.0 diff --git a/src/cell.c b/src/cell.c index 15ea5fc6981d671fff163b52efb3bc36e371aaba..a13a955a9bb61e0f3eaac39ff18555fc1ac5dc4f 100644 --- a/src/cell.c +++ b/src/cell.c @@ -3226,9 +3226,12 @@ int cell_unskip_hydro_tasks(struct cell *c, struct scheduler *s) { if (c->timestep != NULL) scheduler_activate(s, c->timestep); if (c->hydro.end_force != NULL) scheduler_activate(s, c->hydro.end_force); if (c->hydro.cooling != NULL) scheduler_activate(s, c->hydro.cooling); - if (c->hydro.star_formation != NULL) - scheduler_activate(s, c->hydro.star_formation); if (c->logger != NULL) scheduler_activate(s, c->logger); + + if (c->hydro.star_formation != NULL) { + scheduler_activate(s, c->hydro.star_formation); + cell_activate_drift_spart(c, s); + } } return rebuild; diff --git a/src/cell.h b/src/cell.h index baae12e4a5797e3b1e00eee144635e41b52c157e..92f6bf95692bd01ddd2b6fe681ae159d72840917 100644 --- a/src/cell.h +++ b/src/cell.h @@ -687,9 +687,12 @@ struct cell { /*! The maximal depth of this cell and its progenies */ char maxdepth; -#ifdef SWIFT_DEBUG_CHECKS +#if defined(SWIFT_DEBUG_CHECKS) || defined(SWIFT_CELL_GRAPH) /* Cell ID (for debugging) */ int cellID; +#endif + +#ifdef SWIFT_DEBUG_CHECKS /*! The list of tasks that have been executed on this cell */ char tasks_executed[64]; diff --git a/src/common_io.c b/src/common_io.c index 733cf1dacac5f0c73ea401a584e2aa40eadd4a23..2b8a55f0eba047a6076a3023569d05ddf49b376b 100644 --- a/src/common_io.c +++ b/src/common_io.c @@ -557,7 +557,7 @@ void io_write_cell_offsets(hid_t h_grp, const int cdim[3], H5Gclose(h_subgrp); /* Write the centres to the group */ - hsize_t shape[2] = {nr_cells, 3}; + hsize_t shape[2] = {(hsize_t)nr_cells, 3}; hid_t h_space = H5Screate(H5S_SIMPLE); if (h_space < 0) error("Error while creating data space for cell centres"); hid_t h_err = H5Sset_extent_simple(h_space, 2, shape, shape); diff --git a/src/cooling.h b/src/cooling.h index 875ef5054491f783d526e7c8e2caf3e005c8a5a0..9b9b255dc7f845adeed8177b4385e08aaffbd977 100644 --- a/src/cooling.h +++ b/src/cooling.h @@ -31,6 +31,7 @@ #include "parser.h" #include "physical_constants.h" #include "restart.h" +#include "space.h" #include "units.h" /* Import the right cooling definition */ diff --git a/src/cooling/Compton/cooling.h b/src/cooling/Compton/cooling.h index c796375c33c586e2c9a95515f4124062a41640eb..9e5a5ad34a9086152b98a1f1709e3755d875fb83 100644 --- a/src/cooling/Compton/cooling.h +++ b/src/cooling/Compton/cooling.h @@ -49,9 +49,11 @@ * * @param cosmo The current cosmological model. * @param cooling The #cooling_function_data used in the run. + * @param s The #space containing all the particles. */ INLINE static void cooling_update(const struct cosmology* cosmo, - struct cooling_function_data* cooling) { + struct cooling_function_data* cooling, + struct space* s) { // Add content if required. } diff --git a/src/cooling/EAGLE/cooling.c b/src/cooling/EAGLE/cooling.c index 87c12e73d970b4d1caa6ce33c20666556463e08c..2e829c9f1852d96f40a91e6c95cc8d803a8095a6 100644 --- a/src/cooling/EAGLE/cooling.c +++ b/src/cooling/EAGLE/cooling.c @@ -45,6 +45,7 @@ #include "parser.h" #include "part.h" #include "physical_constants.h" +#include "space.h" #include "units.h" /* Maximum number of iterations for newton @@ -57,8 +58,8 @@ static const float explicit_tolerance = 0.05; static const float newton_tolerance = 1.0e-4; static const float bisection_tolerance = 1.0e-6; static const float rounding_tolerance = 1.0e-4; -static const double bracket_factor = 1.5; /* sqrt(1.1) */ -static const double newton_log_u_guess_cgs = 12.30103; /* log10(2e12) */ +static const double bracket_factor = 1.5; +static const double newton_log_u_guess_cgs = 12; /** * @brief Find the index of the current redshift along the redshift dimension @@ -123,11 +124,14 @@ __attribute__((always_inline)) INLINE void get_redshift_index( * given time-step or redshift. Predominantly used to read cooling tables * above and below the current redshift, if not already read in. * + * Also calls the additional H reionisation energy injection if need be. + * * @param cosmo The current cosmological model. * @param cooling The #cooling_function_data used in the run. + * @param s The space data, including a pointer to array of particles */ void cooling_update(const struct cosmology *cosmo, - struct cooling_function_data *cooling) { + struct cooling_function_data *cooling, struct space *s) { /* Current redshift */ const float redshift = cosmo->z; @@ -138,6 +142,23 @@ void cooling_update(const struct cosmology *cosmo, get_redshift_index(redshift, &z_index, &dz, cooling); cooling->dz = dz; + /* Extra energy for reionization? */ + if (!cooling->H_reion_done) { + + /* Does this timestep straddle Hydrogen reionization? If so, we need to + * input extra heat */ + if (cosmo->z <= cooling->H_reion_z && cosmo->z_old > cooling->H_reion_z) { + + if (s == NULL) error("Trying to do H reionization on an empty space!"); + + /* Inject energy to all particles */ + cooling_Hydrogen_reionization(cooling, cosmo, s); + + /* Flag that reionization happened */ + cooling->H_reion_done = 1; + } + } + /* Do we already have the correct tables loaded? */ if (cooling->z_index == z_index) return; @@ -209,7 +230,8 @@ INLINE static float newton_iter( const float log_table_bound_low = (cooling->Therm[0] + 0.05) / M_LOG10E; /* convert Hydrogen mass fraction in Hydrogen number density */ - const float XH = p->chemistry_data.metal_mass_fraction[chemistry_element_H]; + const float XH = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H]; const double n_H = hydro_get_physical_density(p, cosmo) * XH / phys_const->const_proton_mass; const double n_H_cgs = n_H * cooling->number_density_to_cgs; @@ -501,8 +523,10 @@ void cooling_cool_part(const struct phys_const *phys_const, abundance_ratio_to_solar(p, cooling, abundance_ratio); /* Get the Hydrogen and Helium mass fractions */ - const float XH = p->chemistry_data.metal_mass_fraction[chemistry_element_H]; - const float XHe = p->chemistry_data.metal_mass_fraction[chemistry_element_He]; + const float XH = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H]; + const float XHe = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_He]; /* Get the Helium mass fraction. Note that this is He / (H + He), i.e. a * metal-free Helium mass fraction as per the Wiersma+08 definition */ @@ -531,15 +555,17 @@ void cooling_cool_part(const struct phys_const *phys_const, re-ionization as this needs to be added on no matter what */ /* Get helium and hydrogen reheating term */ - const double Helium_reion_heat_cgs = eagle_helium_reionization_extraheat( - cooling->z_index, delta_redshift, cooling); + const double Helium_reion_heat_cgs = + eagle_helium_reionization_extraheat(cosmo->z, delta_redshift, cooling); /* Convert this into a rate */ const double Lambda_He_reion_cgs = Helium_reion_heat_cgs / (dt_cgs * ratefact_cgs); /* Let's compute the internal energy at the end of the step */ - double u_final_cgs; + /* Initialise to the initial energy to appease compiler; this will never not + be overwritten. */ + double u_final_cgs = u_0_cgs; /* First try an explicit integration (note we ignore the derivative) */ const double LambdaNet_cgs = @@ -719,8 +745,10 @@ float cooling_get_temperature( const double u_cgs = u * cooling->internal_energy_to_cgs; /* Get the Hydrogen and Helium mass fractions */ - const float XH = p->chemistry_data.metal_mass_fraction[chemistry_element_H]; - const float XHe = p->chemistry_data.metal_mass_fraction[chemistry_element_He]; + const float XH = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H]; + const float XHe = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_He]; /* Get the Helium mass fraction. Note that this is He / (H + He), i.e. a * metal-free Helium mass fraction as per the Wiersma+08 definition */ @@ -760,6 +788,41 @@ __attribute__((always_inline)) INLINE float cooling_get_radiated_energy( return xp->cooling_data.radiated_energy; } +/** + * @brief Inject a fixed amount of energy to each particle in the simulation + * to mimic Hydrogen reionization. + * + * @param cooling The properties of the cooling model. + * @param cosmo The cosmological model. + * @param s The #space containing the particles. + */ +void cooling_Hydrogen_reionization(const struct cooling_function_data *cooling, + const struct cosmology *cosmo, + struct space *s) { + + struct part *parts = s->parts; + struct xpart *xparts = s->xparts; + + /* Energy to inject in internal units */ + const float extra_heat = + cooling->H_reion_heat_cgs * cooling->internal_energy_from_cgs; + + message("Applying extra energy for H reionization!"); + + /* Loop through particles and set new heat */ + for (size_t i = 0; i < s->nr_parts; i++) { + + struct part *p = &parts[i]; + struct xpart *xp = &xparts[i]; + + const float old_u = hydro_get_physical_internal_energy(p, xp, cosmo); + const float new_u = old_u + extra_heat; + + hydro_set_physical_internal_energy(p, xp, cosmo, new_u); + hydro_set_drifted_physical_internal_energy(p, cosmo, new_u); + } +} + /** * @brief Initialises properties stored in the cooling_function_data struct * @@ -774,10 +837,19 @@ void cooling_init_backend(struct swift_params *parameter_file, struct cooling_function_data *cooling) { /* read some parameters */ + + /* Despite the names, the values of H_reion_heat_cgs and He_reion_heat_cgs + * that are read in are actually in units of electron volts per proton mass. + * We later convert to units just below */ + parser_get_param_string(parameter_file, "EAGLECooling:dir_name", cooling->cooling_table_path); + + cooling->H_reion_done = 0; cooling->H_reion_z = parser_get_param_float(parameter_file, "EAGLECooling:H_reion_z"); + cooling->H_reion_heat_cgs = + parser_get_param_float(parameter_file, "EAGLECooling:H_reion_eV_p_H"); cooling->He_reion_z_centre = parser_get_param_float(parameter_file, "EAGLECooling:He_reion_z_centre"); cooling->He_reion_z_sigma = @@ -791,10 +863,19 @@ void cooling_init_backend(struct swift_params *parameter_file, cooling->S_over_Si_ratio_in_solar = parser_get_opt_param_float( parameter_file, "EAGLECooling:S_over_Si_in_solar", 1.f); - /* Convert to cgs (units used internally by the cooling routines) */ + /* Convert H_reion_heat_cgs and He_reion_heat_cgs to cgs + * (units used internally by the cooling routines). This is done by + * multiplying by 'eV/m_H' in internal units, then converting to cgs units. + * Note that the dimensions of these quantities are energy/mass = velocity^2 + */ + + cooling->H_reion_heat_cgs *= + phys_const->const_electron_volt / phys_const->const_proton_mass * + units_cgs_conversion_factor(us, UNIT_CONV_ENERGY_PER_UNIT_MASS); + cooling->He_reion_heat_cgs *= - phys_const->const_electron_volt * - units_cgs_conversion_factor(us, UNIT_CONV_ENERGY); + phys_const->const_electron_volt / phys_const->const_proton_mass * + units_cgs_conversion_factor(us, UNIT_CONV_ENERGY_PER_UNIT_MASS); /* Read in the list of redshifts */ get_cooling_redshifts(cooling); @@ -884,7 +965,7 @@ void cooling_restore_tables(struct cooling_function_data *cooling, /* Force a re-read of the cooling tables */ cooling->z_index = -10; cooling->previous_z_index = eagle_cooling_N_redshifts - 2; - cooling_update(cosmo, cooling); + cooling_update(cosmo, cooling, /*space=*/NULL); } /** diff --git a/src/cooling/EAGLE/cooling.h b/src/cooling/EAGLE/cooling.h index d95c75e58aecfd8fb4816f1e50c7a3f379a08e51..eac3425d25f5f4c8fd0a5ed7656423379a3ad3f9 100644 --- a/src/cooling/EAGLE/cooling.h +++ b/src/cooling/EAGLE/cooling.h @@ -32,9 +32,10 @@ struct xpart; struct cosmology; struct hydro_props; struct entropy_floor_properties; +struct space; void cooling_update(const struct cosmology *cosmo, - struct cooling_function_data *cooling); + struct cooling_function_data *cooling, struct space *s); void cooling_cool_part(const struct phys_const *phys_const, const struct unit_system *us, @@ -70,14 +71,15 @@ float cooling_get_temperature( float cooling_get_radiated_energy(const struct xpart *restrict xp); +void cooling_Hydrogen_reionization(const struct cooling_function_data *cooling, + const struct cosmology *cosmo, + struct space *s); + void cooling_init_backend(struct swift_params *parameter_file, const struct unit_system *us, const struct phys_const *phys_const, struct cooling_function_data *cooling); -void cooling_restore_tables(struct cooling_function_data *cooling, - const struct cosmology *cosmo); - void cooling_print_backend(const struct cooling_function_data *cooling); void cooling_clean(struct cooling_function_data *data); diff --git a/src/cooling/EAGLE/cooling_rates.h b/src/cooling/EAGLE/cooling_rates.h index d315a5ba339956828505c5f48165abdd2b2e0486..35a53b43fb26466686fa87704ec174a849667a78 100644 --- a/src/cooling/EAGLE/cooling_rates.h +++ b/src/cooling/EAGLE/cooling_rates.h @@ -54,39 +54,49 @@ __attribute__((always_inline)) INLINE void abundance_ratio_to_solar( const struct part *p, const struct cooling_function_data *cooling, float ratio_solar[chemistry_element_count + 2]) { - ratio_solar[0] = p->chemistry_data.metal_mass_fraction[chemistry_element_H] * - cooling->SolarAbundances_inv[0 /* H */]; + ratio_solar[0] = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_H] * + cooling->SolarAbundances_inv[0 /* H */]; - ratio_solar[1] = p->chemistry_data.metal_mass_fraction[chemistry_element_He] * - cooling->SolarAbundances_inv[1 /* He */]; + ratio_solar[1] = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_He] * + cooling->SolarAbundances_inv[1 /* He */]; - ratio_solar[2] = p->chemistry_data.metal_mass_fraction[chemistry_element_C] * - cooling->SolarAbundances_inv[2 /* C */]; + ratio_solar[2] = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_C] * + cooling->SolarAbundances_inv[2 /* C */]; - ratio_solar[3] = p->chemistry_data.metal_mass_fraction[chemistry_element_N] * - cooling->SolarAbundances_inv[3 /* N */]; + ratio_solar[3] = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_N] * + cooling->SolarAbundances_inv[3 /* N */]; - ratio_solar[4] = p->chemistry_data.metal_mass_fraction[chemistry_element_O] * - cooling->SolarAbundances_inv[4 /* O */]; + ratio_solar[4] = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_O] * + cooling->SolarAbundances_inv[4 /* O */]; - ratio_solar[5] = p->chemistry_data.metal_mass_fraction[chemistry_element_Ne] * - cooling->SolarAbundances_inv[5 /* Ne */]; + ratio_solar[5] = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Ne] * + cooling->SolarAbundances_inv[5 /* Ne */]; - ratio_solar[6] = p->chemistry_data.metal_mass_fraction[chemistry_element_Mg] * - cooling->SolarAbundances_inv[6 /* Mg */]; + ratio_solar[6] = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Mg] * + cooling->SolarAbundances_inv[6 /* Mg */]; - ratio_solar[7] = p->chemistry_data.metal_mass_fraction[chemistry_element_Si] * - cooling->SolarAbundances_inv[7 /* Si */]; + ratio_solar[7] = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Si] * + cooling->SolarAbundances_inv[7 /* Si */]; /* For S, we use the same ratio as Si */ - ratio_solar[8] = p->chemistry_data.metal_mass_fraction[chemistry_element_Si] * - cooling->SolarAbundances_inv[7 /* Si */] * - cooling->S_over_Si_ratio_in_solar; + ratio_solar[8] = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Si] * + cooling->SolarAbundances_inv[7 /* Si */] * + cooling->S_over_Si_ratio_in_solar; /* For Ca, we use the same ratio as Si */ - ratio_solar[9] = p->chemistry_data.metal_mass_fraction[chemistry_element_Si] * - cooling->SolarAbundances_inv[7 /* Si */] * - cooling->Ca_over_Si_ratio_in_solar; + ratio_solar[9] = + p->chemistry_data.smoothed_metal_mass_fraction[chemistry_element_Si] * + cooling->SolarAbundances_inv[7 /* Si */] * + cooling->Ca_over_Si_ratio_in_solar; ratio_solar[10] = p->chemistry_data.metal_mass_fraction[chemistry_element_Fe] * diff --git a/src/cooling/EAGLE/cooling_struct.h b/src/cooling/EAGLE/cooling_struct.h index 0922bf74461c222bd6485bdc07cc35edc462ddba..88e49036f62962d35025f7fa81d5703a1245e3ce 100644 --- a/src/cooling/EAGLE/cooling_struct.h +++ b/src/cooling/EAGLE/cooling_struct.h @@ -74,9 +74,15 @@ struct cooling_function_data { /*! Filepath to the directory containing the HDF5 cooling tables */ char cooling_table_path[eagle_table_path_name_length]; - /*! Redshit of H reionization */ + /*! Redshift of H reionization */ float H_reion_z; + /*! H reionization energy in CGS units */ + float H_reion_heat_cgs; + + /*! Have we already done H reioisation? */ + int H_reion_done; + /*! Ca over Si abundance divided by the solar ratio for these elements */ float Ca_over_Si_ratio_in_solar; diff --git a/src/cooling/const_du/cooling.h b/src/cooling/const_du/cooling.h index 15eecc43093e9cc571d166aa49392e7dfea60c11..c57ef4a6874e0314bcea672cd514d1419b1acdd8 100644 --- a/src/cooling/const_du/cooling.h +++ b/src/cooling/const_du/cooling.h @@ -54,9 +54,11 @@ * * @param cosmo The current cosmological model. * @param cooling The #cooling_function_data used in the run. + * @param s The #space containing all the particles. */ INLINE static void cooling_update(const struct cosmology* cosmo, - struct cooling_function_data* cooling) { + struct cooling_function_data* cooling, + struct space* s) { // Add content if required. } diff --git a/src/cooling/const_lambda/cooling.h b/src/cooling/const_lambda/cooling.h index 974b055b1f8942f53b72e6ccf17389d8f85b666e..1e50c162d02e8c326f67978a7de73fda5c6aecd8 100644 --- a/src/cooling/const_lambda/cooling.h +++ b/src/cooling/const_lambda/cooling.h @@ -51,9 +51,11 @@ * * @param cosmo The current cosmological model. * @param cooling The #cooling_function_data used in the run. + * @param s The #space containing all the particles. */ INLINE static void cooling_update(const struct cosmology* cosmo, - struct cooling_function_data* cooling) { + struct cooling_function_data* cooling, + struct space* s) { // Add content if required. } diff --git a/src/cooling/grackle/cooling.h b/src/cooling/grackle/cooling.h index 2632de7e223306a6c6400e350f8cb62a62e58206..edf8f0ca50cc498b8d1b235196addb5a694a0b80 100644 --- a/src/cooling/grackle/cooling.h +++ b/src/cooling/grackle/cooling.h @@ -66,9 +66,11 @@ static gr_float cooling_new_energy( * * @param cosmo The current cosmological model. * @param cooling The #cooling_function_data used in the run. + * @param s The #space containing all the particles. */ INLINE static void cooling_update(const struct cosmology* cosmo, - struct cooling_function_data* cooling) { + struct cooling_function_data* cooling, + struct space* s) { /* set current time */ if (cooling->redshift == -1) cooling->units.a_value = cosmo->a; diff --git a/src/cooling/none/cooling.h b/src/cooling/none/cooling.h index 3f90d357ad863da0525859f06e85a4cc492d3ae2..20aef187d912db379bb1c51ad9e8a4f16e47778c 100644 --- a/src/cooling/none/cooling.h +++ b/src/cooling/none/cooling.h @@ -41,13 +41,13 @@ * @brief Common operations performed on the cooling function at a * given time-step or redshift. * - * @param phys_const The physical constants in internal units. - * @param us The internal system of units. * @param cosmo The current cosmological model. * @param cooling The #cooling_function_data used in the run. + * @param s The #space containing all the particles. */ INLINE static void cooling_update(const struct cosmology* cosmo, - struct cooling_function_data* cooling) { + struct cooling_function_data* cooling, + struct space* s) { // Add content if required. } diff --git a/src/cosmology.c b/src/cosmology.c index be23343d0d62584cd3a811e547b327120db744ef..a18f52b84da330238caaa0a16bb69de025e92046 100644 --- a/src/cosmology.c +++ b/src/cosmology.c @@ -140,6 +140,10 @@ double cosmology_get_time_since_big_bang(const struct cosmology *c, double a) { void cosmology_update(struct cosmology *c, const struct phys_const *phys_const, integertime_t ti_current) { + /* Save the previous state */ + c->z_old = c->z; + c->a_old = c->a; + /* Get scale factor and powers of it */ const double a = c->a_begin * exp(ti_current * c->time_base); const double a_inv = 1. / a; @@ -527,6 +531,10 @@ void cosmology_init(struct swift_params *params, const struct unit_system *us, /* Update the times */ c->time_begin = cosmology_get_time_since_big_bang(c, c->a_begin); c->time_end = cosmology_get_time_since_big_bang(c, c->a_end); + + /* Initialise the old values to a valid state */ + c->a_old = c->a_begin; + c->z_old = 1. / c->a_old - 1.; } /** @@ -568,6 +576,9 @@ void cosmology_init_no_cosmo(struct cosmology *c) { c->a_factor_hydro_accel = 1.; c->a_factor_grav_accel = 1.; + c->a_old = 1.; + c->z_old = 0.; + c->critical_density = 0.; c->critical_density_0 = 0.; diff --git a/src/cosmology.h b/src/cosmology.h index d6b7dfbdc854a66f89c5511a5076c4fb4a7a5d3f..f2abdb6c62e7509c593b5edfbdb9dd8fe0c99e72 100644 --- a/src/cosmology.h +++ b/src/cosmology.h @@ -93,6 +93,12 @@ struct cosmology { /*! Dark-energy equation of state at the current time */ double w; + /*! Scale-factor at the previous time-step */ + double a_old; + + /*! Redshit at the previous time-step */ + double z_old; + /*------------------------------------------------------------------ */ /*! Starting expansion factor */ diff --git a/src/engine.c b/src/engine.c index 17b4c50dae2b54cb749238bc100f216b975ff16e..38614c3ca2fb69142e7e5bd2f769e37326fc13a2 100644 --- a/src/engine.c +++ b/src/engine.c @@ -2878,7 +2878,7 @@ void engine_init_particles(struct engine *e, int flag_entropy_ICs, /* Update the cooling function */ if ((e->policy & engine_policy_cooling) || (e->policy & engine_policy_temperature)) - cooling_update(e->cosmology, e->cooling_func); + cooling_update(e->cosmology, e->cooling_func, e->s); #ifdef WITH_LOGGER /* Mark the first time step in the particle logger file. */ @@ -2948,6 +2948,7 @@ void engine_init_particles(struct engine *e, int flag_entropy_ICs, #endif scheduler_write_dependencies(&e->sched, e->verbose); + space_write_cell_hierarchy(e->s); if (e->nodeID == 0) scheduler_write_task_level(&e->sched); /* Run the 0th time-step */ @@ -3143,7 +3144,7 @@ void engine_step(struct engine *e) { /* Update the cooling function */ if ((e->policy & engine_policy_cooling) || (e->policy & engine_policy_temperature)) - cooling_update(e->cosmology, e->cooling_func); + cooling_update(e->cosmology, e->cooling_func, e->s); /*****************************************************/ /* OK, we now know what the next end of time-step is */ @@ -4040,7 +4041,7 @@ void engine_collect_stars_counter(struct engine *e) { } free(n_sparts); - free(n_sparts_in); + free(n_sparts_int); swift_free("sparts", sparts); #endif } diff --git a/src/engine_marktasks.c b/src/engine_marktasks.c index c02eb5d2bd272111808701269faed07cef505449..9b34b3ea95a9ae8bc848a90113647b3e68b121b1 100644 --- a/src/engine_marktasks.c +++ b/src/engine_marktasks.c @@ -642,13 +642,17 @@ void engine_marktasks_mapper(void *map_data, int num_elements, scheduler_activate(s, t); } - /* Subgrid tasks */ + /* Subgrid tasks: cooling */ else if (t_type == task_type_cooling) { - if (cell_is_active_hydro(t->ci, e) || cell_is_active_gravity(t->ci, e)) - scheduler_activate(s, t); - } else if (t_type == task_type_star_formation) { - if (cell_is_active_hydro(t->ci, e) || cell_is_active_gravity(t->ci, e)) + if (cell_is_active_hydro(t->ci, e)) scheduler_activate(s, t); + } + + /* Subgrid tasks: star formation */ + else if (t_type == task_type_star_formation) { + if (cell_is_active_hydro(t->ci, e)) { scheduler_activate(s, t); + cell_activate_drift_spart(t->ci, s); + } } } } diff --git a/src/entropy_floor/EAGLE/entropy_floor.h b/src/entropy_floor/EAGLE/entropy_floor.h index 41d35fa0484cc1ee491a3c6293893ad5d2b5583f..5a53b3b39c9df3aa624b3fd93e82bed9d221204c 100644 --- a/src/entropy_floor/EAGLE/entropy_floor.h +++ b/src/entropy_floor/EAGLE/entropy_floor.h @@ -98,48 +98,117 @@ static INLINE float entropy_floor( const struct part *p, const struct cosmology *cosmo, const struct entropy_floor_properties *props) { + /* Comoving density in internal units */ + const float rho_com = hydro_get_comoving_density(p); + /* Physical density in internal units */ - const float rho = hydro_get_physical_density(p, cosmo); + const float rho_phys = hydro_get_physical_density(p, cosmo); - /* Critical density at this redshift. - * Recall that this is 0 in a non-cosmological run */ - const float rho_crit = cosmo->critical_density; - const float rho_crit_baryon = cosmo->Omega_b * rho_crit; + /* Mean baryon density in co-moving internal units for over-density condition + * (Recall cosmo->critical_density_0 is 0 in a non-cosmological run, + * making the over-density condition a no-op) */ + const float rho_crit_0 = cosmo->critical_density_0; + const float rho_crit_baryon = cosmo->Omega_b * rho_crit_0; /* Physical pressure */ float pressure = 0.f; /* Are we in the regime of the Jeans equation of state? */ - if ((rho >= rho_crit_baryon * props->Jeans_over_density_threshold) && - (rho >= props->Jeans_density_threshold)) { + if ((rho_com >= rho_crit_baryon * props->Jeans_over_density_threshold) && + (rho_phys >= props->Jeans_density_threshold)) { - const float pressure_Jeans = props->Jeans_pressure_norm * - powf(rho * props->Jeans_density_threshold_inv, - props->Jeans_gamma_effective); + const float pressure_Jeans = + props->Jeans_pressure_norm * + powf(rho_phys * props->Jeans_density_threshold_inv, + props->Jeans_gamma_effective); pressure = max(pressure, pressure_Jeans); } /* Are we in the regime of the Cool equation of state? */ - if ((rho >= rho_crit_baryon * props->Cool_over_density_threshold) && - (rho >= props->Cool_density_threshold)) { + if ((rho_com >= rho_crit_baryon * props->Cool_over_density_threshold) && + (rho_phys >= props->Cool_density_threshold)) { - const float pressure_Cool = props->Cool_pressure_norm * - powf(rho * props->Cool_density_threshold_inv, - props->Cool_gamma_effective); + const float pressure_Cool = + props->Cool_pressure_norm * + powf(rho_phys * props->Cool_density_threshold_inv, + props->Cool_gamma_effective); pressure = max(pressure, pressure_Cool); } /* Convert to an entropy. * (Recall that the entropy is the same in co-moving and phycial frames) */ - return gas_entropy_from_pressure(rho, pressure); + return gas_entropy_from_pressure(rho_phys, pressure); +} + +/** + * @brief Compute the temperature from the entropy floor for a given #part + * + * Calculate the EoS temperature, the particle is not updated. + * This is the temperature exactly corresponding to the imposed EoS shape. + * It only matches the entropy returned by the entropy_floor() function + * for a neutral gas with primoridal abundance. + * + * @param p The #part. + * @param cosmo The cosmological model. + * @param props The properties of the entropy floor. + */ +static INLINE float entropy_floor_temperature( + const struct part *p, const struct cosmology *cosmo, + const struct entropy_floor_properties *props) { + + /* Comoving density in internal units */ + const float rho_com = hydro_get_comoving_density(p); + + /* Physical density in internal units */ + const float rho_phys = hydro_get_physical_density(p, cosmo); + + /* Mean baryon density in co-moving internal units for over-density condition + * (Recall cosmo->critical_density_0 is 0 in a non-cosmological run, + * making the over-density condition a no-op) */ + const float rho_crit_0 = cosmo->critical_density_0; + const float rho_crit_baryon = cosmo->Omega_b * rho_crit_0; + + /* Physical */ + float temperature = 0.f; + + /* Are we in the regime of the Jeans equation of state? */ + if ((rho_com >= rho_crit_baryon * props->Jeans_over_density_threshold) && + (rho_phys >= props->Jeans_density_threshold)) { + + const float jeans_slope = props->Jeans_gamma_effective - 1.f; + + const float temperature_Jeans = + props->Jeans_temperature_norm * + pow(rho_phys * props->Jeans_density_threshold_inv, jeans_slope); + + temperature = max(temperature, temperature_Jeans); + } + + /* Are we in the regime of the Cool equation of state? */ + if ((rho_com >= rho_crit_baryon * props->Cool_over_density_threshold) && + (rho_phys >= props->Cool_density_threshold)) { + + const float cool_slope = props->Cool_gamma_effective - 1.f; + + const float temperature_Cool = + props->Cool_temperature_norm * + pow(rho_phys * props->Cool_density_threshold_inv, cool_slope); + + temperature = max(temperature, temperature_Cool); + } + + return temperature; } /** * @brief Initialise the entropy floor by reading the parameters and converting * to internal units. * + * The input temperatures and number densities are converted to entropy and + * density assuming a neutral gas of primoridal abundance. + * * @param params The YAML parameter file. * @param us The system of units used internally. * @param phys_const The physical constants. diff --git a/src/entropy_floor/none/entropy_floor.h b/src/entropy_floor/none/entropy_floor.h index 871ef8977e091841128e280184646e3be02957fd..6ce5319c8c76cf8f9e6dc1716f383452d7cce7d6 100644 --- a/src/entropy_floor/none/entropy_floor.h +++ b/src/entropy_floor/none/entropy_floor.h @@ -52,6 +52,21 @@ static INLINE float entropy_floor( return 0.f; } +/** + * @brief Compute the temperature from the entropy floor for a given #part + * + * Simply return 0 (no floor). + * + * @param p The #part. + * @param cosmo The cosmological model. + * @param props The properties of the entropy floor. + */ +static INLINE float entropy_floor_temperature( + const struct part *p, const struct cosmology *cosmo, + const struct entropy_floor_properties *props) { + return 0.f; +} + /** * @brief Initialise the entropy floor by reading the parameters and converting * to internal units. diff --git a/src/exp10.h b/src/exp10.h index b995bfdb3e1b6b1cb60bd4b60708413ea6c96f9f..fbae34af421c9d0bcc773fbfc50ac44df1e8fd42 100644 --- a/src/exp10.h +++ b/src/exp10.h @@ -25,11 +25,11 @@ /* Some standard headers. */ #include <math.h> -#ifndef __GNUC__ - /* Local headers. */ #include "inline.h" +#if !defined(HAVE_EXP10) && !defined(HAVE___EXP10) + /** * @brief Raises 10 to the power of the argument. * @@ -44,6 +44,10 @@ __attribute__((always_inline, const)) INLINE static double exp10( return exp(x * M_LN10); } +#endif + +#if !defined(HAVE_EXP10F) && !defined(HAVE___EXP10F) + /** * @brief Raises 10 to the power of the argument. * @@ -58,6 +62,15 @@ __attribute__((always_inline, const)) INLINE static float exp10f( return expf(x * (float)M_LN10); } -#endif /* __GNUC__ */ +#endif + +/* Use the __exp10 and __exp10f versions if needed. */ +#if !defined(HAVE_EXP10) && defined(HAVE___EXP10) +#define exp10(x) __exp10(x) +#endif + +#if !defined(HAVE_EXP10F) && defined(HAVE___EXP10F) +#define exp10f(x) __exp10f(x) +#endif #endif /* SWIFT_EXP10_H */ diff --git a/src/hydro/AnarchyPU/hydro.h b/src/hydro/AnarchyPU/hydro.h index 9bb53f290acb16b4f9efc44e430a78a6d1f5c5ff..37d182889b703df9ea6d98b63a6daa5dc85274a8 100644 --- a/src/hydro/AnarchyPU/hydro.h +++ b/src/hydro/AnarchyPU/hydro.h @@ -379,6 +379,45 @@ __attribute__((always_inline)) INLINE static void hydro_set_physical_entropy( xp->u_full = gas_internal_energy_from_entropy(p->rho, comoving_entropy); } +/** + * @brief Sets the physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_physical_internal_energy(struct part *p, struct xpart *xp, + const struct cosmology *cosmo, + const float u) { + + xp->u_full = u / cosmo->a_factor_internal_energy; +} + +/** + * @brief Sets the drifted physical internal energy of a particle + * + * @param p The particle of interest. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_drifted_physical_internal_energy(struct part *p, + const struct cosmology *cosmo, + const float u) { + + p->u = u / cosmo->a_factor_internal_energy; + + /* Now recompute the extra quantities */ + + /* Compute the sound speed */ + const float soundspeed = hydro_get_comoving_soundspeed(p); + + /* Update variables. */ + p->force.soundspeed = soundspeed; +} + /** * @brief Computes the hydro time-step of a given particle * @@ -693,11 +732,18 @@ __attribute__((always_inline)) INLINE static void hydro_prepare_force( const float sqrt_u = sqrtf(p->u); /* Calculate initial value of alpha dt before bounding */ /* alpha_diff_dt is cosmology-less */ + /* Evolution term: following Schaller+ 2015 */ float alpha_diff_dt = hydro_props->diffusion.beta * p->h * p->diffusion.laplace_u / sqrt_u; + /* Decay term: not documented in Schaller+ 2015 but was present + * in the original EAGLE code and in Schaye+ 2015 */ + alpha_diff_dt -= + (p->diffusion.alpha - hydro_props->diffusion.alpha_min) / tau; - float new_diffusion_alpha = p->diffusion.alpha + alpha_diff_dt * dt_alpha; + float new_diffusion_alpha = p->diffusion.alpha; + new_diffusion_alpha += alpha_diff_dt * dt_alpha; + /* Consistency checks to ensure min < alpha < max */ if (new_diffusion_alpha > hydro_props->diffusion.alpha_max) { new_diffusion_alpha = hydro_props->diffusion.alpha_max; } else if (new_diffusion_alpha < hydro_props->diffusion.alpha_min) { diff --git a/src/hydro/Default/hydro.h b/src/hydro/Default/hydro.h index 2b1d19bc916889a5cfdc40b1357f1e3dfe9388af..175265dd4707be19e995e2ca6912629876ca2ca2 100644 --- a/src/hydro/Default/hydro.h +++ b/src/hydro/Default/hydro.h @@ -318,6 +318,62 @@ hydro_set_physical_internal_energy_dt(struct part *restrict p, p->force.u_dt = du_dt * cosmo->a_factor_internal_energy; } +/** + * @brief Sets the physical entropy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param entropy The physical entropy + */ +__attribute__((always_inline)) INLINE static void hydro_set_physical_entropy( + struct part *p, struct xpart *xp, const struct cosmology *cosmo, + const float entropy) { + + /* Note there is no conversion from physical to comoving entropy */ + const float comoving_entropy = entropy; + xp->u_full = gas_internal_energy_from_entropy(p->rho, comoving_entropy); +} + +/** + * @brief Sets the physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_physical_internal_energy(struct part *p, struct xpart *xp, + const struct cosmology *cosmo, + const float u) { + + xp->u_full = u / cosmo->a_factor_internal_energy; +} + +/** + * @brief Sets the drifted physical internal energy of a particle + * + * @param p The particle of interest. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_drifted_physical_internal_energy(struct part *p, + const struct cosmology *cosmo, + const float u) { + + p->u = u / cosmo->a_factor_internal_energy; + + /* Now recompute the extra quantities */ + + /* Compute the sound speed */ + const float soundspeed = hydro_get_comoving_soundspeed(p); + + /* Update variables. */ + p->force.soundspeed = soundspeed; +} + /** * @brief Computes the hydro time-step of a given particle * diff --git a/src/hydro/Default/hydro_part.h b/src/hydro/Default/hydro_part.h index 21c0269f78c85b7d11ab5e838d45614161aee013..2ff41da0a7825d2ddba276c3d20a9d2d4aad3224 100644 --- a/src/hydro/Default/hydro_part.h +++ b/src/hydro/Default/hydro_part.h @@ -21,6 +21,7 @@ #include "chemistry_struct.h" #include "cooling_struct.h" +#include "star_formation_struct.h" #include "tracers_struct.h" /* Extra particle data not needed during the SPH loops over neighbours. */ @@ -44,6 +45,9 @@ struct xpart { /* Additional data used by the tracers */ struct tracers_xpart_data tracers_data; + /* Additional data used by the star formation */ + struct star_formation_xpart_data sf_data; + float u_full; /* Old density. */ diff --git a/src/hydro/Gadget2/hydro.h b/src/hydro/Gadget2/hydro.h index 9994be7dc6051b033c052d32a4ebf3d7b59f1a84..bcef2480810c807d61a6545f04fca6144f90e8fe 100644 --- a/src/hydro/Gadget2/hydro.h +++ b/src/hydro/Gadget2/hydro.h @@ -331,6 +331,7 @@ hydro_set_physical_internal_energy_dt(struct part *restrict p, p->entropy_dt = gas_entropy_from_internal_energy(p->rho * cosmo->a3_inv, du_dt); } + /** * @brief Sets the physical entropy of a particle * @@ -347,6 +348,56 @@ __attribute__((always_inline)) INLINE static void hydro_set_physical_entropy( xp->entropy_full = entropy; } +/** + * @brief Sets the physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_physical_internal_energy(struct part *p, struct xpart *xp, + const struct cosmology *cosmo, + const float u) { + + xp->entropy_full = + gas_entropy_from_internal_energy(p->rho * cosmo->a3_inv, u); +} + +/** + * @brief Sets the drifted physical internal energy of a particle + * + * @param p The particle of interest. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_drifted_physical_internal_energy(struct part *p, + const struct cosmology *cosmo, + const float u) { + + p->entropy = gas_entropy_from_internal_energy(p->rho * cosmo->a3_inv, u); + + /* Now recompute the extra quantities */ + + /* Inverse of the co-moving density */ + const float rho_inv = 1.f / p->rho; + + /* Compute the pressure */ + const float pressure = gas_pressure_from_entropy(p->rho, p->entropy); + + /* Compute the sound speed */ + const float soundspeed = gas_soundspeed_from_pressure(p->rho, pressure); + + /* Divide the pressure by the density squared to get the SPH term */ + const float P_over_rho2 = pressure * rho_inv * rho_inv; + + /* Update variables. */ + p->force.P_over_rho2 = P_over_rho2; + p->force.soundspeed = soundspeed; +} + /** * @brief Computes the hydro time-step of a given particle * diff --git a/src/hydro/GizmoMFM/hydro.h b/src/hydro/GizmoMFM/hydro.h index a4a54e7b551cc643bffedb8661f4fe269d348dc4..3456e6f9e0a4c1715951030a8b0a10c081d746bf 100644 --- a/src/hydro/GizmoMFM/hydro.h +++ b/src/hydro/GizmoMFM/hydro.h @@ -987,6 +987,35 @@ __attribute__((always_inline)) INLINE static void hydro_set_physical_entropy( error("Needs implementing"); } +/** + * @brief Sets the physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_physical_internal_energy(struct part* p, struct xpart* xp, + const struct cosmology* cosmo, + const float u) { + error("Need implementing"); +} + +/** + * @brief Sets the drifted physical internal energy of a particle + * + * @param p The particle of interest. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_drifted_physical_internal_energy(struct part* p, + const struct cosmology* cosmo, + const float u) { + error("Need implementing"); +} + /** * @brief Returns the comoving density of a particle * diff --git a/src/hydro/GizmoMFV/hydro.h b/src/hydro/GizmoMFV/hydro.h index 974f57ed68bbc409697111c52c40f36d4a5cb9b1..526d84289554f7e2f4cd183bbf82484f0804be28 100644 --- a/src/hydro/GizmoMFV/hydro.h +++ b/src/hydro/GizmoMFV/hydro.h @@ -1061,6 +1061,35 @@ __attribute__((always_inline)) INLINE static void hydro_set_physical_entropy( error("Needs implementing"); } +/** + * @brief Sets the physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_physical_internal_energy(struct part* p, struct xpart* xp, + const struct cosmology* cosmo, + const float u) { + error("Need implementing"); +} + +/** + * @brief Sets the drifted physical internal energy of a particle + * + * @param p The particle of interest. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_drifted_physical_internal_energy(struct part* p, + const struct cosmology* cosmo, + const float u) { + error("Need implementing"); +} + /** * @brief Returns the comoving density of a particle * diff --git a/src/hydro/Minimal/hydro.h b/src/hydro/Minimal/hydro.h index a5808468300da234a91a86feb897a9398e14db90..1d5d25f734acae72490ae42552abf65983463c07 100644 --- a/src/hydro/Minimal/hydro.h +++ b/src/hydro/Minimal/hydro.h @@ -354,6 +354,45 @@ __attribute__((always_inline)) INLINE static void hydro_set_physical_entropy( xp->u_full = gas_internal_energy_from_entropy(p->rho, comoving_entropy); } +/** + * @brief Sets the physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_physical_internal_energy(struct part *p, struct xpart *xp, + const struct cosmology *cosmo, + const float u) { + + xp->u_full = u / cosmo->a_factor_internal_energy; +} + +/** + * @brief Sets the drifted physical internal energy of a particle + * + * @param p The particle of interest. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_drifted_physical_internal_energy(struct part *p, + const struct cosmology *cosmo, + const float u) { + + p->u = u / cosmo->a_factor_internal_energy; + + /* Now recompute the extra quantities */ + + /* Compute the sound speed */ + const float soundspeed = hydro_get_comoving_soundspeed(p); + + /* Update variables. */ + p->force.soundspeed = soundspeed; +} + /** * @brief Computes the hydro time-step of a given particle * diff --git a/src/hydro/Planetary/hydro.h b/src/hydro/Planetary/hydro.h index fbe0b6c8b9a8844cab3e38e485923fc7543ec528..e03b307bca754eb3a809613b20ebf3b1aae67a9f 100644 --- a/src/hydro/Planetary/hydro.h +++ b/src/hydro/Planetary/hydro.h @@ -378,6 +378,45 @@ __attribute__((always_inline)) INLINE static void hydro_set_physical_entropy( gas_internal_energy_from_entropy(p->rho, comoving_entropy, p->mat_id); } +/** + * @brief Sets the physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_physical_internal_energy(struct part *p, struct xpart *xp, + const struct cosmology *cosmo, + const float u) { + + xp->u_full = u / cosmo->a_factor_internal_energy; +} + +/** + * @brief Sets the drifted physical internal energy of a particle + * + * @param p The particle of interest. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_drifted_physical_internal_energy(struct part *p, + const struct cosmology *cosmo, + const float u) { + + p->u = u / cosmo->a_factor_internal_energy; + + /* Now recompute the extra quantities */ + + /* Compute the sound speed */ + const float soundspeed = hydro_get_comoving_soundspeed(p); + + /* Update variables. */ + p->force.soundspeed = soundspeed; +} + /** * @brief Computes the hydro time-step of a given particle * diff --git a/src/hydro/PressureEnergy/hydro.h b/src/hydro/PressureEnergy/hydro.h index 4af00f7a657d61871dc0a82affb04d411e13e047..0e53b5f2ea12462fb1a618cda44934d113f655dd 100644 --- a/src/hydro/PressureEnergy/hydro.h +++ b/src/hydro/PressureEnergy/hydro.h @@ -379,6 +379,45 @@ __attribute__((always_inline)) INLINE static void hydro_set_physical_entropy( xp->u_full = gas_internal_energy_from_entropy(p->rho, comoving_entropy); } +/** + * @brief Sets the physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_physical_internal_energy(struct part *p, struct xpart *xp, + const struct cosmology *cosmo, + const float u) { + + xp->u_full = u / cosmo->a_factor_internal_energy; +} + +/** + * @brief Sets the drifted physical internal energy of a particle + * + * @param p The particle of interest. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_drifted_physical_internal_energy(struct part *p, + const struct cosmology *cosmo, + const float u) { + + p->u = u / cosmo->a_factor_internal_energy; + + /* Now recompute the extra quantities */ + + /* Compute the sound speed */ + const float soundspeed = hydro_get_comoving_soundspeed(p); + + /* Update variables. */ + p->force.soundspeed = soundspeed; +} + /** * @brief Computes the hydro time-step of a given particle * @@ -820,4 +859,22 @@ hydro_set_init_internal_energy(struct part *p, float u_init) { __attribute__((always_inline)) INLINE static void hydro_remove_part( const struct part *p, const struct xpart *xp) {} +/** + * @brief Inputs extra heat to a particle at redshift of reionization + * + * We assume a constant density. + * @param p The particle of interest + * @param xp The extended particle data + * @param cosmo Cosmology data structure + * @param extra_heat The extra internal energy given to the particle. + */ +__attribute__((always_inline)) INLINE static void hydro_reion_heating( + struct part *p, struct xpart *xp, const struct cosmology *cosmo, + float extra_heat) { + + const float old_u = xp->u_full * cosmo->a_factor_internal_energy; + const float new_u = old_u + extra_heat; + xp->u_full = new_u / cosmo->a_factor_internal_energy; +} + #endif /* SWIFT_PRESSURE_ENERGY_HYDRO_H */ diff --git a/src/hydro/PressureEnergyMorrisMonaghanAV/hydro.h b/src/hydro/PressureEnergyMorrisMonaghanAV/hydro.h index b50ca4e2543af94573ff34954c26a23200b78a1d..9f981569e80021774cebaf11066ebdac2afc6f94 100644 --- a/src/hydro/PressureEnergyMorrisMonaghanAV/hydro.h +++ b/src/hydro/PressureEnergyMorrisMonaghanAV/hydro.h @@ -376,6 +376,45 @@ __attribute__((always_inline)) INLINE static void hydro_set_physical_entropy( xp->u_full = gas_internal_energy_from_entropy(p->rho, comoving_entropy); } +/** + * @brief Sets the physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_physical_internal_energy(struct part *p, struct xpart *xp, + const struct cosmology *cosmo, + const float u) { + + xp->u_full = u / cosmo->a_factor_internal_energy; +} + +/** + * @brief Sets the drifted physical internal energy of a particle + * + * @param p The particle of interest. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_drifted_physical_internal_energy(struct part *p, + const struct cosmology *cosmo, + const float u) { + + p->u = u / cosmo->a_factor_internal_energy; + + /* Now recompute the extra quantities */ + + /* Compute the sound speed */ + const float soundspeed = hydro_get_comoving_soundspeed(p); + + /* Update variables. */ + p->force.soundspeed = soundspeed; +} + /** * @brief Computes the hydro time-step of a given particle * diff --git a/src/hydro/PressureEntropy/hydro.h b/src/hydro/PressureEntropy/hydro.h index 40b3f42eaed7cbff3c6503caa0fc8801d65ac8e3..578bebf635149fe29299800c2a4854c0158d3de9 100644 --- a/src/hydro/PressureEntropy/hydro.h +++ b/src/hydro/PressureEntropy/hydro.h @@ -150,6 +150,36 @@ __attribute__((always_inline)) INLINE static float hydro_get_physical_entropy( return xp->entropy_full; } +/** + * @brief Sets the physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical entropy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_physical_internal_energy(struct part *p, struct xpart *xp, + const struct cosmology *cosmo, + const float u) { + error("To be implemented"); +} + +/** + * @brief Sets the drifted physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical entropy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_drifted_physical_internal_energy(struct part *p, + const struct cosmology *cosmo, + const float u) { + error("To be implemented"); +} + /** * @brief Returns the comoving entropy of a particle drifted to the * current time. diff --git a/src/hydro/Shadowswift/hydro.h b/src/hydro/Shadowswift/hydro.h index b0f3207dfce69ca79899b1134740d035d47251d1..9ac89fa02a3663e521f54b4df0f15884b041fad6 100644 --- a/src/hydro/Shadowswift/hydro.h +++ b/src/hydro/Shadowswift/hydro.h @@ -826,6 +826,50 @@ hydro_get_physical_soundspeed(const struct part* restrict p, return cosmo->a_factor_sound_speed * hydro_get_comoving_soundspeed(p); } +/** + * @brief Sets the physical entropy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param entropy The physical entropy + */ +__attribute__((always_inline)) INLINE static void hydro_set_physical_entropy( + struct part* p, struct xpart* xp, const struct cosmology* cosmo, + const float entropy) { + + error("Needs implementing"); +} + +/** + * @brief Sets the physical internal energy of a particle + * + * @param p The particle of interest. + * @param xp The extended particle data. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_physical_internal_energy(struct part* p, struct xpart* xp, + const struct cosmology* cosmo, + const float u) { + error("Need implementing"); +} + +/** + * @brief Sets the drifted physical internal energy of a particle + * + * @param p The particle of interest. + * @param cosmo Cosmology data structure + * @param u The physical internal energy + */ +__attribute__((always_inline)) INLINE static void +hydro_set_drifted_physical_internal_energy(struct part* p, + const struct cosmology* cosmo, + const float u) { + error("Need implementing"); +} + /** * @brief Returns the comoving pressure of a particle * diff --git a/src/hydro_properties.c b/src/hydro_properties.c index f14c88bfb5128c1da17590f50698e5d038734b71..ff578aec139ad06cb80279d8d827a41975f9773f 100644 --- a/src/hydro_properties.c +++ b/src/hydro_properties.c @@ -317,6 +317,12 @@ void hydro_props_print_snapshot(hid_t h_grpsph, const struct hydro_props *p) { io_write_attribute_f(h_grpsph, "Beta viscosity", const_viscosity_beta); io_write_attribute_f(h_grpsph, "Max v_sig ratio (limiter)", const_limiter_max_v_sig_ratio); + io_write_attribute_f(h_grpsph, "Diffusion alpha", p->diffusion.alpha); + io_write_attribute_f(h_grpsph, "Diffusion alpha (max)", + p->diffusion.alpha_max); + io_write_attribute_f(h_grpsph, "Diffusion alpha (min)", + p->diffusion.alpha_min); + io_write_attribute_f(h_grpsph, "Diffusion beta", p->diffusion.beta); } #endif diff --git a/src/runner.c b/src/runner.c index 4cac34538858da3882f1ac6a6c70d45d9842a022..75a181fa01fd8defbdc861f266fc892bd7bb60d9 100644 --- a/src/runner.c +++ b/src/runner.c @@ -75,6 +75,7 @@ #define TASK_LOOP_GRADIENT 1 #define TASK_LOOP_FORCE 2 #define TASK_LOOP_LIMITER 3 +#define TASK_LOOP_FEEDBACK 4 /* Import the density loop functions. */ #define FUNCTION density @@ -111,14 +112,16 @@ /* Import the stars density loop functions. */ #define FUNCTION density -#define UPDATE_STARS 1 +#define FUNCTION_TASK_LOOP TASK_LOOP_DENSITY #include "runner_doiact_stars.h" -#undef UPDATE_STARS +#undef FUNCTION_TASK_LOOP #undef FUNCTION /* Import the stars feedback loop functions. */ #define FUNCTION feedback +#define FUNCTION_TASK_LOOP TASK_LOOP_FEEDBACK #include "runner_doiact_stars.h" +#undef FUNCTION_TASK_LOOP #undef FUNCTION /** @@ -578,6 +581,7 @@ void runner_do_star_formation(struct runner *r, struct cell *c, int timer) { const struct hydro_props *restrict hydro_props = e->hydro_properties; const struct unit_system *restrict us = e->internal_units; struct cooling_function_data *restrict cooling = e->cooling_func; + const struct entropy_floor_properties *entropy_floor = e->entropy_floor; const double time_base = e->time_base; const integertime_t ti_current = e->ti_current; const int current_stars_count = c->stars.count; @@ -605,7 +609,8 @@ void runner_do_star_formation(struct runner *r, struct cell *c, int timer) { /* Is this particle star forming? */ if (star_formation_is_star_forming(p, xp, sf_props, phys_const, cosmo, - hydro_props, us, cooling)) { + hydro_props, us, cooling, + entropy_floor)) { /* Time-step size for this particle */ double dt_star; @@ -1446,9 +1451,9 @@ void runner_do_ghost(struct runner *r, struct cell *c, int timer) { ((p->h <= hydro_h_min) && (f > 0.f))) { /* We have a particle whose smoothing length is already set (wants - * to be larger but has already hit the maximum OR wants to be smaller - * but has already reached the minimum). So, just tidy up as if the - * smoothing length had converged correctly */ + * to be larger but has already hit the maximum OR wants to be + * smaller but has already reached the minimum). So, just tidy up as + * if the smoothing length had converged correctly */ #ifdef EXTRA_HYDRO_LOOP diff --git a/src/runner_doiact_stars.h b/src/runner_doiact_stars.h index f208f14ac98a31a55df6741a2cc5f9cb0a829762..e56d3b9460381e8408f370cae33e64fb93ecd541 100644 --- a/src/runner_doiact_stars.h +++ b/src/runner_doiact_stars.h @@ -28,15 +28,23 @@ #define _DOSELF1_STARS(f) PASTE(runner_doself_stars, f) #define DOSELF1_STARS _DOSELF1_STARS(FUNCTION) -#define _DO_NONSYM_PAIR1_STARS(f) PASTE(runner_do_nonsym_pair_stars, f) -#define DO_NONSYM_PAIR1_STARS _DO_NONSYM_PAIR1_STARS(FUNCTION) +#define _DO_SYM_PAIR1_STARS(f) PASTE(runner_do_sym_pair_stars, f) +#define DO_SYM_PAIR1_STARS _DO_SYM_PAIR1_STARS(FUNCTION) -#define _DOPAIR1_STARS(f) PASTE(runner_dopair_stars, f) -#define DOPAIR1_STARS _DOPAIR1_STARS(FUNCTION) +#define _DO_NONSYM_PAIR1_STARS_NAIVE(f) \ + PASTE(runner_do_nonsym_pair_stars_naive, f) +#define DO_NONSYM_PAIR1_STARS_NAIVE _DO_NONSYM_PAIR1_STARS_NAIVE(FUNCTION) + +#define _DOPAIR1_STARS_NAIVE(f) PASTE(runner_dopair_stars_naive, f) +#define DOPAIR1_STARS_NAIVE _DOPAIR1_STARS_NAIVE(FUNCTION) #define _DOPAIR1_SUBSET_STARS(f) PASTE(runner_dopair_subset_stars, f) #define DOPAIR1_SUBSET_STARS _DOPAIR1_SUBSET_STARS(FUNCTION) +#define _DOPAIR1_SUBSET_STARS_NAIVE(f) \ + PASTE(runner_dopair_subset_stars_naive, f) +#define DOPAIR1_SUBSET_STARS_NAIVE _DOPAIR1_SUBSET_STARS_NAIVE(FUNCTION) + #define _DOSELF1_SUBSET_STARS(f) PASTE(runner_doself_subset_stars, f) #define DOSELF1_SUBSET_STARS _DOSELF1_SUBSET_STARS(FUNCTION) @@ -83,8 +91,8 @@ void DOSELF1_STARS(struct runner *r, struct cell *c, int timer) { const struct cosmology *cosmo = e->cosmology; /* Anything to do here? */ + if (c->hydro.count == 0 || c->stars.count == 0) return; if (!cell_is_active_stars(c, e)) return; - if (c->hydro.count == 0 && c->stars.count == 0) return; /* Cosmological terms */ const float a = cosmo->a; @@ -100,7 +108,7 @@ void DOSELF1_STARS(struct runner *r, struct cell *c, int timer) { /* Get a hold of the ith spart in ci. */ struct spart *restrict si = &sparts[sid]; - if (!spart_is_active(si, e) || spart_is_inhibited(si, e)) continue; + if (!spart_is_active(si, e)) continue; const float hi = si->h; const float hig2 = hi * hi * kernel_gamma2; @@ -113,7 +121,9 @@ void DOSELF1_STARS(struct runner *r, struct cell *c, int timer) { /* Get a pointer to the jth particle. */ struct part *restrict pj = &parts[pjd]; - const float hj = pj->h; + + /* Early abort? */ + if (part_is_inhibited(pj, e)) continue; /* Compute the pairwise distance. */ const float pjx[3] = {(float)(pj->x[0] - c->loc[0]), @@ -128,8 +138,8 @@ void DOSELF1_STARS(struct runner *r, struct cell *c, int timer) { error("Particle pj not drifted to current time"); #endif - if (r2 > 0.f && r2 < hig2) { - IACT_STARS(r2, dx, hi, hj, si, pj, a, H); + if (r2 < hig2) { + IACT_STARS(r2, dx, hi, pj->h, si, pj, a, H); } } /* loop over the parts in ci. */ } /* loop over the sparts in ci. */ @@ -142,11 +152,11 @@ void DOSELF1_STARS(struct runner *r, struct cell *c, int timer) { * @param ci The first #cell * @param cj The second #cell */ -void DO_NONSYM_PAIR1_STARS(struct runner *r, struct cell *restrict ci, - struct cell *restrict cj) { +void DO_NONSYM_PAIR1_STARS_NAIVE(struct runner *r, struct cell *restrict ci, + struct cell *restrict cj) { #ifdef SWIFT_DEBUG_CHECKS -#ifdef UPDATE_STARS +#if (FUNCTION_TASK_LOOP == TASK_LOOP_DENSITY) if (ci->nodeID != engine_rank) error("Should be run on a different node"); #else if (cj->nodeID != engine_rank) error("Should be run on a different node"); @@ -157,6 +167,7 @@ void DO_NONSYM_PAIR1_STARS(struct runner *r, struct cell *restrict ci, const struct cosmology *cosmo = e->cosmology; /* Anything to do here? */ + if (cj->hydro.count == 0 || ci->stars.count == 0) return; if (!cell_is_active_stars(ci, e)) return; const int scount_i = ci->stars.count; @@ -182,7 +193,8 @@ void DO_NONSYM_PAIR1_STARS(struct runner *r, struct cell *restrict ci, /* Get a hold of the ith spart in ci. */ struct spart *restrict si = &sparts_i[sid]; - if (!spart_is_active(si, e) || spart_is_inhibited(si, e)) continue; + if (!spart_is_active(si, e)) continue; + const float hi = si->h; const float hig2 = hi * hi * kernel_gamma2; const float six[3] = {(float)(si->x[0] - (cj->loc[0] + shift[0])), @@ -194,7 +206,9 @@ void DO_NONSYM_PAIR1_STARS(struct runner *r, struct cell *restrict ci, /* Get a pointer to the jth particle. */ struct part *restrict pj = &parts_j[pjd]; - const float hj = pj->h; + + /* Skip inhibited particles. */ + if (part_is_inhibited(pj, e)) continue; /* Compute the pairwise distance. */ const float pjx[3] = {(float)(pj->x[0] - cj->loc[0]), @@ -209,27 +223,297 @@ void DO_NONSYM_PAIR1_STARS(struct runner *r, struct cell *restrict ci, error("Particle pj not drifted to current time"); #endif - if (r2 < hig2) IACT_STARS(r2, dx, hi, hj, si, pj, a, H); + if (r2 < hig2) IACT_STARS(r2, dx, hi, pj->h, si, pj, a, H); } /* loop over the parts in cj. */ } /* loop over the parts in ci. */ } -void DOPAIR1_STARS(struct runner *r, struct cell *restrict ci, - struct cell *restrict cj, int timer) { +/** + * @brief Compute the interactions between a cell pair. + * + * @param r The #runner. + * @param ci The first #cell. + * @param cj The second #cell. + * @param sid The direction of the pair. + * @param shift The shift vector to apply to the particles in ci. + */ +void DO_SYM_PAIR1_STARS(struct runner *r, struct cell *ci, struct cell *cj, + const int sid, const double *shift) { + + const struct engine *restrict e = r->e; + const struct cosmology *restrict cosmo = e->cosmology; + + /* Get the cutoff shift. */ + double rshift = 0.0; + for (int k = 0; k < 3; k++) rshift += shift[k] * runner_shift[sid][k]; + + /* Cosmological terms */ + const float a = cosmo->a; + const float H = cosmo->H; + +#if (FUNCTION_TASK_LOOP == TASK_LOOP_DENSITY) + const int do_ci_stars = (ci->nodeID == e->nodeID) && (ci->stars.count != 0) && + (cj->hydro.count != 0) && cell_is_active_stars(ci, e); + const int do_cj_stars = (cj->nodeID == e->nodeID) && (cj->stars.count != 0) && + (ci->hydro.count != 0) && cell_is_active_stars(cj, e); +#else + /* here we are updating the hydro -> switch ci, cj for local */ + const int do_ci_stars = (cj->nodeID == e->nodeID) && (ci->stars.count != 0) && + (cj->hydro.count != 0) && cell_is_active_stars(ci, e); + const int do_cj_stars = (ci->nodeID == e->nodeID) && (cj->stars.count != 0) && + (ci->hydro.count != 0) && cell_is_active_stars(cj, e); +#endif + + if (do_ci_stars) { + + /* Pick-out the sorted lists. */ + const struct entry *restrict sort_j = cj->hydro.sort[sid]; + const struct entry *restrict sort_i = ci->stars.sort[sid]; + +#ifdef SWIFT_DEBUG_CHECKS + /* Some constants used to checks that the parts are in the right frame */ + const float shift_threshold_x = + 2. * ci->width[0] + + 2. * max(ci->stars.dx_max_part, cj->hydro.dx_max_part); + const float shift_threshold_y = + 2. * ci->width[1] + + 2. * max(ci->stars.dx_max_part, cj->hydro.dx_max_part); + const float shift_threshold_z = + 2. * ci->width[2] + + 2. * max(ci->stars.dx_max_part, cj->hydro.dx_max_part); +#endif /* SWIFT_DEBUG_CHECKS */ + + /* Get some other useful values. */ + const double hi_max = ci->stars.h_max * kernel_gamma - rshift; + const int count_i = ci->stars.count; + const int count_j = cj->hydro.count; + struct spart *restrict sparts_i = ci->stars.parts; + struct part *restrict parts_j = cj->hydro.parts; + const double dj_min = sort_j[0].d; + const float dx_max_rshift = + (ci->stars.dx_max_sort + cj->hydro.dx_max_sort) - rshift; + const float dx_max = (ci->stars.dx_max_sort + cj->hydro.dx_max_sort); + + /* Loop over the sparts in ci. */ + for (int pid = count_i - 1; + pid >= 0 && sort_i[pid].d + hi_max + dx_max > dj_min; pid--) { + + /* Get a hold of the ith part in ci. */ + struct spart *restrict spi = &sparts_i[sort_i[pid].i]; + const float hi = spi->h; + + /* Skip inactive particles */ + if (!spart_is_active(spi, e)) continue; + + /* Compute distance from the other cell. */ + const double px[3] = {spi->x[0], spi->x[1], spi->x[2]}; + float dist = px[0] * runner_shift[sid][0] + px[1] * runner_shift[sid][1] + + px[2] * runner_shift[sid][2]; + + /* Is there anything we need to interact with ? */ + const double di = dist + hi * kernel_gamma + dx_max_rshift; + if (di < dj_min) continue; + + /* Get some additional information about pi */ + const float hig2 = hi * hi * kernel_gamma2; + const float pix = spi->x[0] - (cj->loc[0] + shift[0]); + const float piy = spi->x[1] - (cj->loc[1] + shift[1]); + const float piz = spi->x[2] - (cj->loc[2] + shift[2]); + + /* Loop over the parts in cj. */ + for (int pjd = 0; pjd < count_j && sort_j[pjd].d < di; pjd++) { + + /* Recover pj */ + struct part *pj = &parts_j[sort_j[pjd].i]; + + /* Skip inhibited particles. */ + if (part_is_inhibited(pj, e)) continue; + + const float hj = pj->h; + const float pjx = pj->x[0] - cj->loc[0]; + const float pjy = pj->x[1] - cj->loc[1]; + const float pjz = pj->x[2] - cj->loc[2]; + + /* Compute the pairwise distance. */ + float dx[3] = {pix - pjx, piy - pjy, piz - pjz}; + const float r2 = dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2]; + +#ifdef SWIFT_DEBUG_CHECKS + /* Check that particles are in the correct frame after the shifts */ + if (pix > shift_threshold_x || pix < -shift_threshold_x) + error( + "Invalid particle position in X for pi (pix=%e ci->width[0]=%e)", + pix, ci->width[0]); + if (piy > shift_threshold_y || piy < -shift_threshold_y) + error( + "Invalid particle position in Y for pi (piy=%e ci->width[1]=%e)", + piy, ci->width[1]); + if (piz > shift_threshold_z || piz < -shift_threshold_z) + error( + "Invalid particle position in Z for pi (piz=%e ci->width[2]=%e)", + piz, ci->width[2]); + if (pjx > shift_threshold_x || pjx < -shift_threshold_x) + error( + "Invalid particle position in X for pj (pjx=%e ci->width[0]=%e)", + pjx, ci->width[0]); + if (pjy > shift_threshold_y || pjy < -shift_threshold_y) + error( + "Invalid particle position in Y for pj (pjy=%e ci->width[1]=%e)", + pjy, ci->width[1]); + if (pjz > shift_threshold_z || pjz < -shift_threshold_z) + error( + "Invalid particle position in Z for pj (pjz=%e ci->width[2]=%e)", + pjz, ci->width[2]); + + /* Check that particles have been drifted to the current time */ + if (spi->ti_drift != e->ti_current) + error("Particle spi not drifted to current time"); + if (pj->ti_drift != e->ti_current) + error("Particle pj not drifted to current time"); +#endif + + /* Hit or miss? */ + if (r2 < hig2) { + + IACT_STARS(r2, dx, hi, hj, spi, pj, a, H); + } + } /* loop over the parts in cj. */ + } /* loop over the parts in ci. */ + } /* do_ci_stars */ + + if (do_cj_stars) { + /* Pick-out the sorted lists. */ + const struct entry *restrict sort_i = ci->hydro.sort[sid]; + const struct entry *restrict sort_j = cj->stars.sort[sid]; + +#ifdef SWIFT_DEBUG_CHECKS + /* Some constants used to checks that the parts are in the right frame */ + const float shift_threshold_x = + 2. * ci->width[0] + + 2. * max(ci->hydro.dx_max_part, cj->stars.dx_max_part); + const float shift_threshold_y = + 2. * ci->width[1] + + 2. * max(ci->hydro.dx_max_part, cj->stars.dx_max_part); + const float shift_threshold_z = + 2. * ci->width[2] + + 2. * max(ci->hydro.dx_max_part, cj->stars.dx_max_part); +#endif /* SWIFT_DEBUG_CHECKS */ + + /* Get some other useful values. */ + const double hj_max = cj->hydro.h_max * kernel_gamma; + const int count_i = ci->hydro.count; + const int count_j = cj->stars.count; + struct part *restrict parts_i = ci->hydro.parts; + struct spart *restrict sparts_j = cj->stars.parts; + const double di_max = sort_i[count_i - 1].d - rshift; + const float dx_max_rshift = + (ci->hydro.dx_max_sort + cj->stars.dx_max_sort) + rshift; + const float dx_max = (ci->hydro.dx_max_sort + cj->stars.dx_max_sort); + + /* Loop over the parts in cj. */ + for (int pjd = 0; pjd < count_j && sort_j[pjd].d - hj_max - dx_max < di_max; + pjd++) { + + /* Get a hold of the jth part in cj. */ + struct spart *spj = &sparts_j[sort_j[pjd].i]; + const float hj = spj->h; + + /* Skip inactive particles */ + if (!spart_is_active(spj, e)) continue; + + /* Compute distance from the other cell. */ + const double px[3] = {spj->x[0], spj->x[1], spj->x[2]}; + float dist = px[0] * runner_shift[sid][0] + px[1] * runner_shift[sid][1] + + px[2] * runner_shift[sid][2]; + + /* Is there anything we need to interact with ? */ + const double dj = dist - hj * kernel_gamma - dx_max_rshift; + if (dj - rshift > di_max) continue; + + /* Get some additional information about pj */ + const float hjg2 = hj * hj * kernel_gamma2; + const float pjx = spj->x[0] - cj->loc[0]; + const float pjy = spj->x[1] - cj->loc[1]; + const float pjz = spj->x[2] - cj->loc[2]; + + /* Loop over the parts in ci. */ + for (int pid = count_i - 1; pid >= 0 && sort_i[pid].d > dj; pid--) { + + /* Recover pi */ + struct part *pi = &parts_i[sort_i[pid].i]; + + /* Skip inhibited particles. */ + if (part_is_inhibited(pi, e)) continue; + + const float hi = pi->h; + const float pix = pi->x[0] - (cj->loc[0] + shift[0]); + const float piy = pi->x[1] - (cj->loc[1] + shift[1]); + const float piz = pi->x[2] - (cj->loc[2] + shift[2]); + + /* Compute the pairwise distance. */ + float dx[3] = {pjx - pix, pjy - piy, pjz - piz}; + const float r2 = dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2]; + +#ifdef SWIFT_DEBUG_CHECKS + /* Check that particles are in the correct frame after the shifts */ + if (pix > shift_threshold_x || pix < -shift_threshold_x) + error( + "Invalid particle position in X for pi (pix=%e ci->width[0]=%e)", + pix, ci->width[0]); + if (piy > shift_threshold_y || piy < -shift_threshold_y) + error( + "Invalid particle position in Y for pi (piy=%e ci->width[1]=%e)", + piy, ci->width[1]); + if (piz > shift_threshold_z || piz < -shift_threshold_z) + error( + "Invalid particle position in Z for pi (piz=%e ci->width[2]=%e)", + piz, ci->width[2]); + if (pjx > shift_threshold_x || pjx < -shift_threshold_x) + error( + "Invalid particle position in X for pj (pjx=%e ci->width[0]=%e)", + pjx, ci->width[0]); + if (pjy > shift_threshold_y || pjy < -shift_threshold_y) + error( + "Invalid particle position in Y for pj (pjy=%e ci->width[1]=%e)", + pjy, ci->width[1]); + if (pjz > shift_threshold_z || pjz < -shift_threshold_z) + error( + "Invalid particle position in Z for pj (pjz=%e ci->width[2]=%e)", + pjz, ci->width[2]); + + /* Check that particles have been drifted to the current time */ + if (pi->ti_drift != e->ti_current) + error("Particle pi not drifted to current time"); + if (spj->ti_drift != e->ti_current) + error("Particle spj not drifted to current time"); +#endif + + /* Hit or miss? */ + if (r2 < hjg2) { + + IACT_STARS(r2, dx, hj, hi, spj, pi, a, H); + } + } /* loop over the parts in ci. */ + } /* loop over the parts in cj. */ + } /* Cell cj is active */ +} + +void DOPAIR1_STARS_NAIVE(struct runner *r, struct cell *restrict ci, + struct cell *restrict cj, int timer) { -#ifdef UPDATE_STARS - const int ci_local = ci->nodeID == engine_rank; - const int cj_local = cj->nodeID == engine_rank; +#if (FUNCTION_TASK_LOOP == TASK_LOOP_DENSITY) + const int do_ci_stars = ci->nodeID == r->e->nodeID; + const int do_cj_stars = cj->nodeID == r->e->nodeID; #else /* here we are updating the hydro -> switch ci, cj */ - const int ci_local = cj->nodeID == engine_rank; - const int cj_local = ci->nodeID == engine_rank; + const int do_ci_stars = cj->nodeID == r->e->nodeID; + const int do_cj_stars = ci->nodeID == r->e->nodeID; #endif - if (ci_local && ci->stars.count != 0 && cj->hydro.count != 0) - DO_NONSYM_PAIR1_STARS(r, ci, cj); - if (cj_local && cj->stars.count != 0 && ci->hydro.count != 0) - DO_NONSYM_PAIR1_STARS(r, cj, ci); + if (do_ci_stars && ci->stars.count != 0 && cj->hydro.count != 0) + DO_NONSYM_PAIR1_STARS_NAIVE(r, ci, cj); + if (do_cj_stars && cj->stars.count != 0 && ci->hydro.count != 0) + DO_NONSYM_PAIR1_STARS_NAIVE(r, cj, ci); } /** @@ -244,12 +528,151 @@ void DOPAIR1_STARS(struct runner *r, struct cell *restrict ci, * @param ind The list of indices of particles in @c ci to interact with. * @param scount The number of particles in @c ind. * @param cj The second #cell. + * @param sid The direction of the pair. + * @param flipped Flag to check whether the cells have been flipped or not. * @param shift The shift vector to apply to the particles in ci. */ void DOPAIR1_SUBSET_STARS(struct runner *r, struct cell *restrict ci, struct spart *restrict sparts_i, int *restrict ind, - int scount, struct cell *restrict cj, - const double *shift) { + int scount, struct cell *restrict cj, const int sid, + const int flipped, const double *shift) { + + const struct engine *e = r->e; + const struct cosmology *cosmo = e->cosmology; + + const int count_j = cj->hydro.count; + struct part *restrict parts_j = cj->hydro.parts; + + /* Early abort? */ + if (count_j == 0) return; + + /* Cosmological terms */ + const float a = cosmo->a; + const float H = cosmo->H; + + /* Pick-out the sorted lists. */ + const struct entry *restrict sort_j = cj->hydro.sort[sid]; + const float dxj = cj->hydro.dx_max_sort; + + /* Sparts are on the left? */ + if (!flipped) { + + /* Loop over the sparts_i. */ + for (int pid = 0; pid < scount; pid++) { + + /* Get a hold of the ith spart in ci. */ + struct spart *restrict spi = &sparts_i[ind[pid]]; + const double pix = spi->x[0] - (shift[0]); + const double piy = spi->x[1] - (shift[1]); + const double piz = spi->x[2] - (shift[2]); + const float hi = spi->h; + const float hig2 = hi * hi * kernel_gamma2; + const double di = hi * kernel_gamma + dxj + pix * runner_shift[sid][0] + + piy * runner_shift[sid][1] + piz * runner_shift[sid][2]; + + /* Loop over the parts in cj. */ + for (int pjd = 0; pjd < count_j && sort_j[pjd].d < di; pjd++) { + + /* Get a pointer to the jth particle. */ + struct part *restrict pj = &parts_j[sort_j[pjd].i]; + + /* Skip inhibited particles. */ + if (part_is_inhibited(pj, e)) continue; + + const double pjx = pj->x[0]; + const double pjy = pj->x[1]; + const double pjz = pj->x[2]; + + /* Compute the pairwise distance. */ + float dx[3] = {(float)(pix - pjx), (float)(piy - pjy), + (float)(piz - pjz)}; + const float r2 = dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2]; + +#ifdef SWIFT_DEBUG_CHECKS + /* Check that particles have been drifted to the current time */ + if (spi->ti_drift != e->ti_current) + error("Particle pi not drifted to current time"); + if (pj->ti_drift != e->ti_current) + error("Particle pj not drifted to current time"); +#endif + + /* Hit or miss? */ + if (r2 < hig2) { + IACT_STARS(r2, dx, hi, pj->h, spi, pj, a, H); + } + } /* loop over the parts in cj. */ + } /* loop over the sparts in ci. */ + } + + /* Sparts are on the right. */ + else { + + /* Loop over the sparts_i. */ + for (int pid = 0; pid < scount; pid++) { + + /* Get a hold of the ith spart in ci. */ + struct spart *restrict spi = &sparts_i[ind[pid]]; + const double pix = spi->x[0] - (shift[0]); + const double piy = spi->x[1] - (shift[1]); + const double piz = spi->x[2] - (shift[2]); + const float hi = spi->h; + const float hig2 = hi * hi * kernel_gamma2; + const double di = -hi * kernel_gamma - dxj + pix * runner_shift[sid][0] + + piy * runner_shift[sid][1] + piz * runner_shift[sid][2]; + + /* Loop over the parts in cj. */ + for (int pjd = count_j - 1; pjd >= 0 && di < sort_j[pjd].d; pjd--) { + + /* Get a pointer to the jth particle. */ + struct part *restrict pj = &parts_j[sort_j[pjd].i]; + + /* Skip inhibited particles. */ + if (part_is_inhibited(pj, e)) continue; + + const double pjx = pj->x[0]; + const double pjy = pj->x[1]; + const double pjz = pj->x[2]; + + /* Compute the pairwise distance. */ + float dx[3] = {(float)(pix - pjx), (float)(piy - pjy), + (float)(piz - pjz)}; + const float r2 = dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2]; + +#ifdef SWIFT_DEBUG_CHECKS + /* Check that particles have been drifted to the current time */ + if (spi->ti_drift != e->ti_current) + error("Particle pi not drifted to current time"); + if (pj->ti_drift != e->ti_current) + error("Particle pj not drifted to current time"); +#endif + + /* Hit or miss? */ + if (r2 < hig2) { + IACT_STARS(r2, dx, hi, pj->h, spi, pj, a, H); + } + } /* loop over the parts in cj. */ + } /* loop over the sparts in ci. */ + } +} + +/** + * @brief Compute the interactions between a cell pair, but only for the + * given indices in ci. + * + * Version using a brute-force algorithm. + * + * @param r The #runner. + * @param ci The first #cell. + * @param sparts_i The #part to interact with @c cj. + * @param ind The list of indices of particles in @c ci to interact with. + * @param scount The number of particles in @c ind. + * @param cj The second #cell. + * @param shift The shift vector to apply to the particles in ci. + */ +void DOPAIR1_SUBSET_STARS_NAIVE(struct runner *r, struct cell *restrict ci, + struct spart *restrict sparts_i, + int *restrict ind, int scount, + struct cell *restrict cj, const double *shift) { #ifdef SWIFT_DEBUG_CHECKS if (ci->nodeID != engine_rank) error("Should be run on a different node"); @@ -260,6 +683,9 @@ void DOPAIR1_SUBSET_STARS(struct runner *r, struct cell *restrict ci, const int count_j = cj->hydro.count; struct part *restrict parts_j = cj->hydro.parts; + /* Early abort? */ + if (count_j == 0) return; + /* Cosmological terms */ const float a = cosmo->a; const float H = cosmo->H; @@ -285,6 +711,9 @@ void DOPAIR1_SUBSET_STARS(struct runner *r, struct cell *restrict ci, /* Get a pointer to the jth particle. */ struct part *restrict pj = &parts_j[pjd]; + /* Skip inhibited particles */ + if (part_is_inhibited(pj, e)) continue; + /* Compute the pairwise distance. */ float r2 = 0.0f; float dx[3]; @@ -334,6 +763,9 @@ void DOSELF1_SUBSET_STARS(struct runner *r, struct cell *restrict ci, const int count_i = ci->hydro.count; struct part *restrict parts_j = ci->hydro.parts; + /* Early abort? */ + if (count_i == 0) return; + /* Loop over the parts in ci. */ for (int spid = 0; spid < scount; spid++) { @@ -355,7 +787,9 @@ void DOSELF1_SUBSET_STARS(struct runner *r, struct cell *restrict ci, /* Get a pointer to the jth particle. */ struct part *restrict pj = &parts_j[pjd]; - const float hj = pj->h; + + /* Early abort? */ + if (part_is_inhibited(pj, e)) continue; /* Compute the pairwise distance. */ const float pjx[3] = {(float)(pj->x[0] - ci->loc[0]), @@ -371,8 +805,8 @@ void DOSELF1_SUBSET_STARS(struct runner *r, struct cell *restrict ci, #endif /* Hit or miss? */ - if (r2 > 0.f && r2 < hig2) { - IACT_STARS(r2, dx, hi, hj, spi, pj, a, H); + if (r2 < hig2) { + IACT_STARS(r2, dx, hi, pj->h, spi, pj, a, H); } } /* loop over the parts in cj. */ } /* loop over the parts in ci. */ @@ -414,6 +848,9 @@ void DOPAIR1_SUBSET_BRANCH_STARS(struct runner *r, struct cell *restrict ci, const struct engine *e = r->e; + /* Anything to do here? */ + if (cj->hydro.count == 0) return; + /* Get the relative distance between the pairs, wrapping. */ double shift[3] = {0.0, 0.0, 0.0}; for (int k = 0; k < 3; k++) { @@ -423,7 +860,27 @@ void DOPAIR1_SUBSET_BRANCH_STARS(struct runner *r, struct cell *restrict ci, shift[k] = -e->s->dim[k]; } - DOPAIR1_SUBSET_STARS(r, ci, sparts_i, ind, scount, cj, shift); +#ifdef SWIFT_USE_NAIVE_INTERACTIONS_STARS + DOPAIR1_SUBSET_STARS_NAIVE(r, ci, sparts_i, ind, scount, cj, shift); +#else + /* Get the sorting index. */ + int sid = 0; + for (int k = 0; k < 3; k++) + sid = 3 * sid + ((cj->loc[k] - ci->loc[k] + shift[k] < 0) + ? 0 + : (cj->loc[k] - ci->loc[k] + shift[k] > 0) ? 2 : 1); + + /* Switch the cells around? */ + const int flipped = runner_flip[sid]; + sid = sortlistID[sid]; + + /* Has the cell cj been sorted? */ + if (!(cj->hydro.sorted & (1 << sid)) || + cj->hydro.dx_max_sort_old > space_maxreldx * cj->dmin) + error("Interacting unsorted cells."); + + DOPAIR1_SUBSET_STARS(r, ci, sparts_i, ind, scount, cj, sid, flipped, shift); +#endif } void DOSUB_SUBSET_STARS(struct runner *r, struct cell *ci, struct spart *sparts, @@ -1075,18 +1532,18 @@ void DOPAIR1_BRANCH_STARS(struct runner *r, struct cell *ci, struct cell *cj) { const int ci_active = cell_is_active_stars(ci, e); const int cj_active = cell_is_active_stars(cj, e); -#ifdef UPDATE_STARS - const int ci_local = ci->nodeID == engine_rank; - const int cj_local = cj->nodeID == engine_rank; +#if (FUNCTION_TASK_LOOP == TASK_LOOP_DENSITY) + const int do_ci_stars = ci->nodeID == e->nodeID; + const int do_cj_stars = cj->nodeID == e->nodeID; #else /* here we are updating the hydro -> switch ci, cj */ - const int ci_local = cj->nodeID == engine_rank; - const int cj_local = ci->nodeID == engine_rank; + const int do_ci_stars = cj->nodeID == e->nodeID; + const int do_cj_stars = ci->nodeID == e->nodeID; #endif - const int do_ci = - (ci->stars.count != 0 && cj->hydro.count != 0 && ci_active && ci_local); - const int do_cj = - (cj->stars.count != 0 && ci->hydro.count != 0 && cj_active && cj_local); + const int do_ci = (ci->stars.count != 0 && cj->hydro.count != 0 && + ci_active && do_ci_stars); + const int do_cj = (cj->stars.count != 0 && ci->hydro.count != 0 && + cj_active && do_cj_stars); /* Anything to do here? */ if (!do_ci && !do_cj) return; @@ -1130,7 +1587,11 @@ void DOPAIR1_BRANCH_STARS(struct runner *r, struct cell *ci, struct cell *cj) { } #endif /* SWIFT_DEBUG_CHECKS */ - DOPAIR1_STARS(r, ci, cj, 1); +#ifdef SWIFT_USE_NAIVE_INTERACTIONS_STARS + DOPAIR1_STARS_NAIVE(r, ci, cj, 1); +#else + DO_SYM_PAIR1_STARS(r, ci, cj, sid, shift); +#endif } /** @@ -1367,18 +1828,18 @@ void DOSUB_PAIR1_STARS(struct runner *r, struct cell *ci, struct cell *cj, /* Otherwise, compute the pair directly. */ else { -#ifdef UPDATE_STARS - const int ci_local = ci->nodeID == engine_rank; - const int cj_local = cj->nodeID == engine_rank; +#if (FUNCTION_TASK_LOOP == TASK_LOOP_DENSITY) + const int do_ci_stars = ci->nodeID == e->nodeID; + const int do_cj_stars = cj->nodeID == e->nodeID; #else /* here we are updating the hydro -> switch ci, cj */ - const int ci_local = cj->nodeID == engine_rank; - const int cj_local = ci->nodeID == engine_rank; + const int do_ci_stars = cj->nodeID == e->nodeID; + const int do_cj_stars = ci->nodeID == e->nodeID; #endif const int do_ci = ci->stars.count != 0 && cj->hydro.count != 0 && - cell_is_active_stars(ci, e) && ci_local; + cell_is_active_stars(ci, e) && do_ci_stars; const int do_cj = cj->stars.count != 0 && ci->hydro.count != 0 && - cell_is_active_stars(cj, e) && cj_local; + cell_is_active_stars(cj, e) && do_cj_stars; if (do_ci) { diff --git a/src/scheduler.c b/src/scheduler.c index 6187949c2e12e00a6caf51813aeaa46959dd0374..496d15ab302e6f0ea1280594ec16c433b117eb32 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -467,7 +467,7 @@ void scheduler_write_dependencies(struct scheduler *s, int verbose) { if (s->nodeID == 0) { /* Create file */ - char *filename = "dependency_graph.csv"; + const char *filename = "dependency_graph.csv"; FILE *f = fopen(filename, "w"); if (f == NULL) error("Error opening dependency graph file."); diff --git a/src/space.c b/src/space.c index b98c1f86c3f1e01fa2553e6dc80a8bd857fb9fc5..bba6001ed63440747601f8abebd9f7a7076e847c 100644 --- a/src/space.c +++ b/src/space.c @@ -83,7 +83,7 @@ int space_extra_gparts = space_extra_gparts_default; /*! Expected maximal number of strays received at a rebuild */ int space_expected_max_nr_strays = space_expected_max_nr_strays_default; -#ifdef SWIFT_DEBUG_CHECKS +#if defined(SWIFT_DEBUG_CHECKS) || defined(SWIFT_CELL_GRAPH) int last_cell_id; #endif @@ -256,7 +256,7 @@ void space_rebuild_recycle_mapper(void *map_data, int num_elements, c->grav.ti_end_max = -1; c->stars.ti_end_min = -1; c->stars.ti_end_max = -1; -#ifdef SWIFT_DEBUG_CHECKS +#if defined(SWIFT_DEBUG_CHECKS) || defined(SWIFT_CELL_GRAPH) c->cellID = 0; #endif if (s->with_self_gravity) @@ -569,7 +569,7 @@ void space_regrid(struct space *s, int verbose) { c->mpi.grav.send = NULL; #endif // WITH_MPI if (s->with_self_gravity) c->grav.multipole = &s->multipoles_top[cid]; -#ifdef SWIFT_DEBUG_CHECKS +#if defined(SWIFT_DEBUG_CHECKS) || defined(SWIFT_CELL_GRAPH) c->cellID = -last_cell_id; last_cell_id++; #endif @@ -1551,7 +1551,7 @@ void space_rebuild(struct space *s, int repartitioned, int verbose) { c->grav.ti_old_multipole = ti_current; c->stars.ti_old_part = ti_current; -#ifdef SWIFT_DEBUG_CHECKS +#if defined(SWIFT_DEBUG_CHECKS) || defined(SWIFT_CELL_GRAPH) c->cellID = -last_cell_id; last_cell_id++; #endif @@ -2744,7 +2744,7 @@ void space_split_recursive(struct space *s, struct cell *c, #ifdef WITH_MPI cp->mpi.tag = -1; #endif // WITH_MPI -#ifdef SWIFT_DEBUG_CHECKS +#if defined(SWIFT_DEBUG_CHECKS) || defined(SWIFT_CELL_GRAPH) cp->cellID = last_cell_id++; #endif } @@ -3977,7 +3977,7 @@ void space_init(struct space *s, struct swift_params *params, /* Init the space lock. */ if (lock_init(&s->lock) != 0) error("Failed to create space spin-lock."); -#ifdef SWIFT_DEBUG_CHECKS +#if defined(SWIFT_DEBUG_CHECKS) || defined(SWIFT_CELL_GRAPH) last_cell_id = 1; #endif @@ -4553,3 +4553,85 @@ void space_struct_restore(struct space *s, FILE *stream) { s->nr_sparts, 1); #endif } + +#define root_cell_id 0 +/** + * @brief write a single cell in a csv file. + * + * @param s The #space. + * @param f The file to use (already open). + * @param c The current #cell. + */ +void space_write_cell(const struct space *s, FILE *f, const struct cell *c) { +#ifdef SWIFT_CELL_GRAPH + + if (c == NULL) return; + + /* Get parent ID */ + int parent = root_cell_id; + if (c->parent != NULL) parent = c->parent->cellID; + + /* Get super ID */ + char superID[100] = ""; + if (c->super != NULL) sprintf(superID, "%i", c->super->cellID); + + /* Get hydro super ID */ + char hydro_superID[100] = ""; + if (c->hydro.super != NULL) + sprintf(hydro_superID, "%i", c->hydro.super->cellID); + + /* Write line for current cell */ + fprintf(f, "%i,%i,%i,", c->cellID, parent, c->nodeID); + fprintf(f, "%i,%i,%i,%s,%s,%g,%g,%g,%g,%g,%g, ", c->hydro.count, + c->stars.count, c->grav.count, superID, hydro_superID, c->loc[0], + c->loc[1], c->loc[2], c->width[0], c->width[1], c->width[2]); + fprintf(f, "%g, %g\n", c->hydro.h_max, c->stars.h_max); + + /* Write children */ + for (int i = 0; i < 8; i++) { + space_write_cell(s, f, c->progeny[i]); + } +#endif +} + +/** + * @brief Write a csv file containing the cell hierarchy + * + * @param s The #space. + */ +void space_write_cell_hierarchy(const struct space *s) { + +#ifdef SWIFT_CELL_GRAPH + + /* Open file */ + char filename[200]; + sprintf(filename, "cell_hierarchy_%04i.csv", engine_rank); + FILE *f = fopen(filename, "w"); + if (f == NULL) error("Error opening task level file."); + + const int root_id = root_cell_id; + /* Write header */ + if (engine_rank == 0) { + fprintf(f, "name,parent,mpi_rank,"); + fprintf(f, + "hydro_count,stars_count,gpart_count,super,hydro_super," + "loc1,loc2,loc3,width1,width2,width3,"); + fprintf(f, "hydro_h_max,stars_h_max\n"); + + /* Write root data */ + fprintf(f, "%i, ,-1,", root_id); + fprintf(f, "%li,%li,%li, , , , , , , , , ", s->nr_parts, s->nr_sparts, + s->nr_gparts); + fprintf(f, ",\n"); + } + + /* Write all the top level cells (and their children) */ + for (int i = 0; i < s->nr_cells; i++) { + struct cell *c = &s->cells_top[i]; + if (c->nodeID == engine_rank) space_write_cell(s, f, c); + } + + /* Cleanup */ + fclose(f); +#endif +} diff --git a/src/space.h b/src/space.h index fe47a2b8b995e5872e79e755b5b8075a409795b8..924c3efaf81f88cb82a8c23707d42883832aa071 100644 --- a/src/space.h +++ b/src/space.h @@ -331,5 +331,6 @@ void space_free_cells(struct space *s); void space_struct_dump(struct space *s, FILE *stream); void space_struct_restore(struct space *s, FILE *stream); +void space_write_cell_hierarchy(const struct space *s); #endif /* SWIFT_SPACE_H */ diff --git a/src/star_formation/EAGLE/star_formation.h b/src/star_formation/EAGLE/star_formation.h index b72bb38babaca51b3875147d04c46f2de95de1a7..43cc820189a117669aba30c36323a2aab840eadf 100644 --- a/src/star_formation/EAGLE/star_formation.h +++ b/src/star_formation/EAGLE/star_formation.h @@ -24,7 +24,9 @@ #include "cooling.h" #include "cosmology.h" #include "engine.h" +#include "entropy_floor.h" #include "equation_of_state.h" +#include "exp10.h" #include "hydro.h" #include "parser.h" #include "part.h" @@ -187,23 +189,6 @@ INLINE static double EOS_pressure(const double n_H, pow(n_H * starform->EOS_density_c_inv, starform->EOS_polytropic_index); } -/** - * @brief Compute the temperarue on the polytropic equation of state for a given - * Hydrogen number density. - * - * Schaye & Dalla Vecchia 2008, eq. 13 rewritten for temperature - * - * @param n_H The Hydrogen number density in internal units. - * @param starform The properties of the star formation model. - * @return The temperature on the equation of state in internal units. - */ -INLINE static double EOS_temperature(const double n_H, - const struct star_formation* starform) { - - return starform->EOS_temperature_c * - pow(n_H, starform->EOS_polytropic_index - 1.); -} - /** * @brief Calculate if the gas has the potential of becoming * a star. @@ -216,7 +201,7 @@ INLINE static double EOS_temperature(const double n_H, * @param hydro_props The properties of the hydro scheme. * @param us The internal system of units. * @param cooling The cooling data struct. - * + * @param entropy_floor The entropy floor assumed in this run. */ INLINE static int star_formation_is_star_forming( const struct part* restrict p, const struct xpart* restrict xp, @@ -224,7 +209,8 @@ INLINE static int star_formation_is_star_forming( const struct cosmology* cosmo, const struct hydro_props* restrict hydro_props, const struct unit_system* restrict us, - const struct cooling_function_data* restrict cooling) { + const struct cooling_function_data* restrict cooling, + const struct entropy_floor_properties* restrict entropy_floor) { /* Minimal density (converted from critical density) for star formation */ const double rho_crit_times_min_over_den = @@ -261,7 +247,8 @@ INLINE static int star_formation_is_star_forming( us, cosmo, cooling, p, xp); /* Temperature on the equation of state */ - const double temperature_eos = EOS_temperature(n_H, starform); + const double temperature_eos = + entropy_floor_temperature(p, cosmo, entropy_floor); /* Check the Scahye & Dalla Vecchia 2012 EOS-based temperature critrion */ return (temperature < diff --git a/src/star_formation/GEAR/star_formation.h b/src/star_formation/GEAR/star_formation.h index 420cecb6f6cdfa6be8d0803064122fa539131d0c..05bb584a5330002e610df9c1866c672f5ae1977f 100644 --- a/src/star_formation/GEAR/star_formation.h +++ b/src/star_formation/GEAR/star_formation.h @@ -21,6 +21,7 @@ /* Local includes */ #include "cosmology.h" +#include "entropy_floor.h" #include "error.h" #include "hydro_properties.h" #include "parser.h" @@ -50,7 +51,8 @@ INLINE static int star_formation_is_star_forming( const struct cosmology* cosmo, const struct hydro_props* restrict hydro_props, const struct unit_system* restrict us, - const struct cooling_function_data* restrict cooling) { + const struct cooling_function_data* restrict cooling, + const struct entropy_floor_properties* restrict entropy_floor) { return 0; } diff --git a/src/star_formation/none/star_formation.h b/src/star_formation/none/star_formation.h index 7dbe5b20cc401c0284036f3c973c9b65fcec8d2e..25c0bcee6a8d2aa2f4be5479556eebc50027aa72 100644 --- a/src/star_formation/none/star_formation.h +++ b/src/star_formation/none/star_formation.h @@ -21,6 +21,7 @@ /* Local includes */ #include "cosmology.h" +#include "entropy_floor.h" #include "error.h" #include "hydro_properties.h" #include "parser.h" @@ -53,7 +54,8 @@ INLINE static int star_formation_is_star_forming( const struct cosmology* cosmo, const struct hydro_props* restrict hydro_props, const struct unit_system* restrict us, - const struct cooling_function_data* restrict cooling) { + const struct cooling_function_data* restrict cooling, + const struct entropy_floor_properties* restrict entropy_floor) { return 0; } diff --git a/src/stars/Default/stars.h b/src/stars/Default/stars.h index 586a87f75600a08acfd84b0f7ecc57fc4573281f..1ff4936284c4d8913417c502db69a372fc83bc06 100644 --- a/src/stars/Default/stars.h +++ b/src/stars/Default/stars.h @@ -72,18 +72,7 @@ __attribute__((always_inline)) INLINE static void stars_init_spart( * @param dt_drift The drift time-step for positions. */ __attribute__((always_inline)) INLINE static void stars_predict_extra( - struct spart* restrict sp, float dt_drift) { - - // MATTHIEU - /* const float h_inv = 1.f / sp->h; */ - - /* /\* Predict smoothing length *\/ */ - /* const float w1 = sp->feedback.h_dt * h_inv * dt_drift; */ - /* if (fabsf(w1) < 0.2f) */ - /* sp->h *= approx_expf(w1); /\* 4th order expansion of exp(w) *\/ */ - /* else */ - /* sp->h *= expf(w1); */ -} + struct spart* restrict sp, float dt_drift) {} /** * @brief Sets the values to be predicted in the drifts to their values at a diff --git a/src/tools.c b/src/tools.c index 43ac0177daef171850ea325f9fa23770fb82ae13..a29408449600ad4b46bd73ba17e20adefdbcb613 100644 --- a/src/tools.c +++ b/src/tools.c @@ -442,6 +442,9 @@ void pairs_all_stars_density(struct runner *r, struct cell *ci, struct part *pj = &cj->hydro.parts[j]; + /* Early abort? */ + if (part_is_inhibited(pj, e)) continue; + /* Pairwise distance */ r2 = 0.0f; for (int k = 0; k < 3; k++) { @@ -472,6 +475,9 @@ void pairs_all_stars_density(struct runner *r, struct cell *ci, struct part *pi = &ci->hydro.parts[i]; + /* Early abort? */ + if (part_is_inhibited(pi, e)) continue; + /* Pairwise distance */ r2 = 0.0f; for (int k = 0; k < 3; k++) { @@ -660,6 +666,9 @@ void self_all_stars_density(struct runner *r, struct cell *ci) { pj = &ci->hydro.parts[j]; hj = pj->h; + /* Early abort? */ + if (part_is_inhibited(pj, e)) continue; + /* Pairwise distance */ r2 = 0.0f; for (int k = 0; k < 3; k++) { @@ -668,7 +677,7 @@ void self_all_stars_density(struct runner *r, struct cell *ci) { } /* Hit or miss? */ - if (r2 > 0.f && r2 < hig2) { + if (r2 < hig2) { /* Interact */ runner_iact_nonsym_stars_density(r2, dxi, hi, hj, spi, pj, a, H); } diff --git a/tests/test27cellsStars.c b/tests/test27cellsStars.c index e7e1b64b1cc99d8a51cf380fde1560bdd634ae20..e97aee278e4b34d7cb1904826aba7a5ff3ed5d67 100644 --- a/tests/test27cellsStars.c +++ b/tests/test27cellsStars.c @@ -70,6 +70,7 @@ struct cell *make_cell(size_t n, size_t n_stars, double *offset, double size, const size_t count = n * n * n; const size_t scount = n_stars * n_stars * n_stars; float h_max = 0.f; + float stars_h_max = 0.f; struct cell *cell = (struct cell *)malloc(sizeof(struct cell)); bzero(cell, sizeof(struct cell)); @@ -143,7 +144,7 @@ struct cell *make_cell(size_t n, size_t n_stars, double *offset, double size, spart->h = size * h * random_uniform(1.f, h_pert) / (float)n_stars; else spart->h = size * h / (float)n_stars; - h_max = fmaxf(h_max, spart->h); + stars_h_max = fmaxf(stars_h_max, spart->h); spart->id = ++(*spartId); spart->time_bin = 1; @@ -161,6 +162,7 @@ struct cell *make_cell(size_t n, size_t n_stars, double *offset, double size, cell->split = 0; cell->hydro.h_max = h_max; cell->hydro.count = count; + cell->stars.h_max = stars_h_max; cell->stars.count = scount; cell->hydro.dx_max_part = 0.; cell->hydro.dx_max_sort = 0.; diff --git a/tools/data/cell_hierarchy.html b/tools/data/cell_hierarchy.html new file mode 100644 index 0000000000000000000000000000000000000000..6c9bcdb995be7970948cf9b9544ae0a59d41caf0 --- /dev/null +++ b/tools/data/cell_hierarchy.html @@ -0,0 +1,387 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + + <title>Cell Hierarchy</title> + + <style> + + div.tooltip { + position: absolute; + text-align: left; + width: 180px; + height: 80px; + padding: 2px; + font: 12px sans-serif; + background: lightsteelblue; + border: 0px; + border-radius: 8px; + pointer-events: none; + } + .node { + cursor: pointer; + } + + .node circle { + fill: #fff; + stroke: steelblue; + stroke-width: 3px; + } + + .node text { + font: 12px sans-serif; + } + + .link { + fill: none; + stroke: #ccc; + stroke-width: 2px; + } + + </style> + + </head> + + <div class="ui-widget"> + <input id="search"> + <button type="button" onclick="searchNode()">Search</button> + <progress value="0" max="100" id="progress">0</progress> + </div> + <body> + +<!-- load the d3.js library --> +<script src="https://d3js.org/d3.v5.min.js"></script> + +<script> + // ************** Generate the tree diagram ***************** + var margin = {top: 20, right: 60, bottom: 20, left: 60}, + width = 1800 - margin.right - margin.left, + height = 900 - margin.top - margin.bottom; + + var i = 0, + duration = 750, + root; + + var tree = d3.tree() + .size([10*width, height]); + + // append the svg object to the body of the page + // appends a 'group' element to 'svg' + // moves the 'group' element to the top left margin + var svg = d3.select("body").append("svg") + .attr("width", width + margin.right + margin.left) + .attr("height", height + margin.top + margin.bottom) + .call(d3.zoom().on("zoom", function () { + svg.attr("transform", d3.event.transform) + })) + .append("g") + .attr("transform", "translate(" + + margin.left + "," + margin.top + ")") + + // load the external data + d3.csv("cell_hierarchy.csv").then(function(data) { + + // *********** Convert flat data into a nice tree *************** + // create a name: node map + var dataMap = data.reduce(function(map, node) { + map[node.name] = node; + return map; + }, {}); + + // create the tree array + var treeData = []; + data.forEach(function(node) { + // add to parent + var parent = dataMap[node.parent]; + if (parent) { + // create child array if it doesn't exist + (parent.children || (parent.children = [])) + // add node to child array + .push(node); + } else { + // parent is null or missing + treeData.push(node); + } + }); + + root = d3.hierarchy(treeData[0], function(d) { return d.children; }); + + root.x0 = width / 2; + root.y0 = 0; + + // Collapse after the second level + root.children.forEach(collapse); + update(root); + + var N = root.children.length + var size = 1. + if (N > 64) + size = 15 * N / 1664 + tree = tree.size([size * width, height]); + update(root) + + }); + + d3.select(self.frameElement).style("height", "500px"); + + function update(source) { + + // Assigns the x and y position for the nodes + var treeData = tree(root); + + // Compute the new tree layout. + var nodes = treeData.descendants(), + links = treeData.descendants().slice(1); + + // Normalize for fixed-depth. + nodes.forEach(function(d){ d.y = d.depth * 100}); + + // ****************** Nodes section *************************** + + // Update the nodes... + var node = svg.selectAll('g.node') + .data(nodes, function(d) {return d.id || (d.id = ++i); }); + + // Enter any new modes at the parent's previous position. + var nodeEnter = node.enter().append('g') + .attr('class', 'node') + .attr("transform", function(d) { + return "translate(" + source.x0 + "," + source.y0 + ")"; + }) + .on('click', click) + + // add tool tip for ps -eo pid,ppid,pcpu,size,comm,ruser,s + .on("mouseover", function(d) { + var n = d.data + div.transition() + .duration(200) + .style("opacity", .9); + div .html( + "ID: " + n.name + "<br/>" + + "MPI rank:" + n.mpi_rank + "<br/>" + + "Part: " + n.hydro_count + "<br/>" + + "Spart: " + n.stars_count + "<br/>" + + "Super: " + n.super + "<br/>" + + "Super Hydro: " + n.hydro_super + "<br/>" + + "Loc: " + n.loc1 + ", " + n.loc2 + ", " + n.loc3 + "<br/>" + + "Width: " + n.width1 + ", " + n.width2 + ", " + n.width3 + "<br/>" + + "Hydro h_max: " + n.hydro_h_max + "<br/>" + + "Stars h_max: " + n.stars_h_max + "<br/>" + ) + .style("left", (d3.event.pageX) + "px") + .style("top", (d3.event.pageY - 28) + "px") + // change here to change the tool tip box size + .style("height", 180 + "px"); + }) + .on("mouseout", function(d) { + div.transition() + .duration(500) + .style("opacity", 0); + }); + + // Add Circle for the nodes + nodeEnter.append('circle') + .attr('class', 'node') + .attr('r', 1e-6) + .style("fill", function(d) { + return d._children ? "lightsteelblue" : "#fff"; + }); + + // Add labels for the nodes + nodeEnter.append('text') + .attr("dy", ".35em") + .attr("x", -55) + .attr("text-anchor", "start") + .attr("transform", "rotate(90)") + .text(function(d) { return d.data.name; }); + + // add the tool tip + var div = d3.select("body").append("div") + .attr("class", "tooltip") + .style("opacity", 0); + + // UPDATE + var nodeUpdate = nodeEnter.merge(node); + + // Transition to the proper position for the node + nodeUpdate.transition() + .duration(duration) + .attr("transform", function(d) { + return "translate(" + d.x + "," + d.y + ")"; + }); + + // Update the node attributes and style + nodeUpdate.select('circle.node') + .attr('r', 10) + .style("fill", function(d) { + return d._children ? "lightsteelblue" : "#fff"; + }) + .attr('cursor', 'pointer'); + + + // Remove any exiting nodes + var nodeExit = node.exit().transition() + .duration(duration) + .attr("transform", function(d) { + return "translate(" + source.x + "," + source.y + ")"; + }) + .remove(); + + // On exit reduce the node circles size to 0 + nodeExit.select('circle') + .attr('r', 1e-6); + + // On exit reduce the opacity of text labels + nodeExit.select('text') + .style('fill-opacity', 1e-6); + + // ****************** links section *************************** + + // Update the links... + var link = svg.selectAll('path.link') + .data(links, function(d) { return d.id; }); + + // Enter any new links at the parent's previous position. + var linkEnter = link.enter().insert('path', "g") + .attr("class", "link") + .attr('d', function(d){ + var o = {x: source.x0, y: source.y0} + return diagonal(o, o) + }); + + // UPDATE + var linkUpdate = linkEnter.merge(link); + + // Transition back to the parent element position + linkUpdate.transition() + .duration(duration) + .attr('d', function(d){ return diagonal(d, d.parent) }); + + // Remove any exiting links + var linkExit = link.exit().transition() + .duration(duration) + .attr('d', function(d) { + var o = {x: source.x, y: source.y} + return diagonal(o, o) + }) + .remove(); + + // Store the old positions for transition. + nodes.forEach(function(d){ + d.x0 = d.x; + d.y0 = d.y; + }); + + // Creates a curved (diagonal) path from parent to the child nodes + function diagonal(s, d) { + + path = `M ${s.x} ${s.y} + C ${(s.x + d.x) / 2} ${s.y}, + ${(s.x + d.x) / 2} ${d.y}, + ${d.x} ${d.y}` + + return path + } + + // Toggle children on click. + function click(d) { + if (d.children) { + d._children = d.children; + d.children = null; + } else { + d.children = d._children; + d._children = null; + } + update(d); + } + } + + + // Collapse the node and all it's children + function collapse(d) { + if(d.children) { + d._children = d.children + d._children.forEach(collapse) + d.children = null + } + } + + // open the node and all it's parent + function openNode(d) { + if (d._children) { + d.children = d._children + d._children = null + } + if (d.parent) + openNode(d.parent) + } + + var selectedVal; + + function searchSubNode(node) { + if (node.data.name == selectedVal) { + openNode(node) + update(root) + return true + } + + var found = false + if (node.children) { + var N = node.children.length + for(var i = 0; i < N; i++) { + found = searchSubNode(node.children[i]) + if (found) { + break + } + } + } + + if (found) + return found + + if (node._children) { + var N = node._children.length + for(var i = 0; i < N; i++) { + found = searchSubNode(node._children[i]) + if (found) { + break + } + } + + } + + return found + + } + + function searchNode() { + //find the node + selectedVal = document.getElementById('search').value; + var progress = document.getElementById("progress"); + progress.innerHTML = "0%" + progress.value = 0 + + var N = root.children.length + for(var i = 0; i < N; i++) { + var found = searchSubNode(root.children[i], selectedVal) + + if (found) { + progress.innerHTML = "100%" + progress.value = 100 + return + } + else { + progress.innerHTML = 100 * i / (N - 1.) + "%" + progress.value = 100 * i / (N - 1.) + } + } + + console.log("Not found") + } + + +</script> + + </body> +</html> diff --git a/tools/make_cell_hierarchy.sh b/tools/make_cell_hierarchy.sh new file mode 100644 index 0000000000000000000000000000000000000000..87fbe4c97f4aadcbb9be5867a62e8acb56415820 --- /dev/null +++ b/tools/make_cell_hierarchy.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +output=cell_hierarchy.html + +# merge all mpi ranks together +csv_output=cell_hierarchy.csv +if [ -f $csv_output ] +then + rm $csv_output +fi + +for filename in ./cell_hierarchy_*.csv; +do + cat $filename >> cell_hierarchy.csv +done + +# copy HTML page to the repository +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +cp $DIR/data/cell_hierarchy.html $output + +echo $output has been generated