From 8106ede0f662d7f89d4ed0da75d6fe4c673df7a8 Mon Sep 17 00:00:00 2001 From: Wolfgang Kerzendorf Date: Mon, 14 Oct 2024 07:59:17 -0700 Subject: [PATCH] Restructure/detailed balance foundation (#2770) * change numberdensity to input * fixed number density * some fixes * removing density * remove atomic and isotope mass * add isotopic_number_density * add opacities package * Update imports in property_collections.py, base.py, test_numba_interface.py, transport_montecarlo_numba_interface.py, conftest.py, formal_integral.py, base.py, and macro_atom.py * Add calculate_transition_probabilities function to util.py in macro_atom package * Add calculate_transition_probabilities function to util.py in macro_atom package * Remove unused imports and update plasma properties * add __init__ to macroatom * blackify tardis * blackified * chore: Update imports and remove unused code * chore: Add PlanckRadiationField and DilutePlanckRadiationField classes * chore: Update imports and remove unused code * removed density * ruff output * cleanup and adding object mode * starting to make radiation_field a thing * switched over to old tau_sobolev calculation * renamed function to indicate numba use * address comments * added dilute planckian radiation field * refactor: Convert species lists to proper format in assemble_plasma function * moved radiation field into plasma. Resulting in some renames * some fixes * black montecarlo * chore: Initialize atom data and simulation state in `initialization.py` * updating the documentation * feat: Add EstimatedRadiationFieldProperties class for Monte Carlo estimators * trying to get rid of j_blues in plasma with MC restructure * completely restructure j_blues. Estimators and all. * cleanup for the restructure * remove parse_input.py * chore: Refactor radiation field configuration parsing and state creation Refactor the `parse_radiation_field_configuration.py` module to improve code organization and readability. Update the import statements to reflect the changes in the module structure. Replace the deprecated `DiluteBlackBodyRadiationFieldState` class with the new `DilutePlanckianRadiationField` class from the `tardis.plasma.radiation_field` module. This change ensures consistency and compatibility with the latest codebase. Also, update the `tardis/simulation/base.py` module to import the `DilutePlanckianRadiationField` class from the `tardis.plasma.radiation_field` module. This change ensures that the correct class is used for creating the radiation field in the simulation. * revert astropy_helpers * remove astropy_helpers * removed test.txt * blackified code * cleanup simulation from merges * fix * remove unused Input * added description * blackiefied codebase * cleanup of branch * blackify code * chore: Refactor atom data parsing and simulation state initialization * restructure logger * working on continuum radfield properties * Refactor continuum processes module structure * Refactor opacities module structure * cleanup from restructure * cleanup * clean up * more cleanup * cleanup standard_plasmas.py * working nlte ionizations * start of assemble plasma cleanup * cleanup standard_plasmas.py * updated tests * some more cleanup * fix benchmarks * cleanup assembly * cleanup assembly * working on the restructure * slowly fixing the assembly module * blackify * reverse the import pygraphviz * fix docstrings * fixed all plasma * slow fixes * Refactor recomb_rate_coeff.py and test_continuum_property_solver.py * fixing assembly * restructure the read in * fixup plasma assemble to be clean * fix shell info widget * fix the widgets * fixing hopefully last bugs * slowly fix up assembly * working on getting the notebook running * Refactor code to address comments * feat: Add RadiativeRatesSolver class for detailed balance rates calculation * feat: Add solve method to RadiativeRatesSolver class * add rates ipynb * remove abundance * feat: Refactor code to improve readability and maintainability * first commit of the rates solver working * fix up detailed balance foundation * further work on including the rates * including the new rates structure * getting the rates ready * feat: Refactor collision_rates module to improve code organization and readability * further work on collisional strengths * further work on the collisional cross sections * further work o nthe collisional rates * feat: Add ThermalCollisionalRateSolver class for calculating thermal collisional rates * further fixes * further testing * refactor: Refactor collisional rates calculation in ThermalCollisionalRateSolver * finished collisional_rates * Fixes collisional rates test so it can run (still fails) * Correct de-excitation rate calculation * Add Chianti upsilon solver * Docstrings and better variable names * Fix rename error * Comparison notebook between Chianti, CMFGEN et al. * Add reference data and config, save notebook with plots * Chianti test beginnings * Working tests * Up to date comparison notebook * Remove irrelevant change * Corrected changes to the plasma solver factory * Partially fixes tests * Slightly dirty fix for electron densities not refreshing properly * Fix NLTE tests by passing electron densities as an option input to the population solvers * Ruff formatting --------- Co-authored-by: Andrew Fullard --- .../collisional_rate_coefficients.hdf | Bin 0 -> 139472 bytes .../plasma/detailed_balance/comparison.ipynb | 2132 +++++++++++++++++ .../plasma/detailed_balance/rates.ipynb | 1419 +++++++++++ ...continuum_template_wkerzen_rate_coeffs.yml | 64 + tardis/plasma/assembly/base.py | 119 +- tardis/plasma/assembly/legacy_assembly.py | 3 +- tardis/plasma/detailed_balance/__init__.py | 0 .../plasma/detailed_balance/rates/__init__.py | 10 + .../rates/collision_strengths.py | 352 +++ .../rates/collisional_rates.py | 149 ++ .../detailed_balance/rates/radiative_rates.py | 57 + .../plasma/detailed_balance/tests/__init__.py | 0 .../tests/test_collisional_transitions.py | 190 ++ .../properties/nlte_rate_equation_solver.py | 26 +- tardis/plasma/radiation_field/__init__.py | 1 + 15 files changed, 4427 insertions(+), 95 deletions(-) create mode 100644 docs/physics/plasma/detailed_balance/collisional_rate_coefficients.hdf create mode 100644 docs/physics/plasma/detailed_balance/comparison.ipynb create mode 100644 docs/physics/plasma/detailed_balance/rates.ipynb create mode 100644 docs/physics/plasma/detailed_balance/test_continuum_template_wkerzen_rate_coeffs.yml create mode 100644 tardis/plasma/detailed_balance/__init__.py create mode 100644 tardis/plasma/detailed_balance/rates/__init__.py create mode 100644 tardis/plasma/detailed_balance/rates/collision_strengths.py create mode 100644 tardis/plasma/detailed_balance/rates/collisional_rates.py create mode 100644 tardis/plasma/detailed_balance/rates/radiative_rates.py create mode 100644 tardis/plasma/detailed_balance/tests/__init__.py create mode 100644 tardis/plasma/detailed_balance/tests/test_collisional_transitions.py diff --git a/docs/physics/plasma/detailed_balance/collisional_rate_coefficients.hdf b/docs/physics/plasma/detailed_balance/collisional_rate_coefficients.hdf new file mode 100644 index 0000000000000000000000000000000000000000..338b62012ca01779db161929f1b476b92d39dab5 GIT binary patch literal 139472 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%0D0{C9zRxUfVN#46Q`6lM0xyU-O7cA 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 literal 0 HcmV?d00001 diff --git a/docs/physics/plasma/detailed_balance/comparison.ipynb b/docs/physics/plasma/detailed_balance/comparison.ipynb new file mode 100644 index 00000000000..f15ceb6145c --- /dev/null +++ b/docs/physics/plasma/detailed_balance/comparison.ipynb @@ -0,0 +1,2132 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "6ce91876833548fe8cd8c4c486b6e70a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Iterations: 0/? [00:00" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAGwCAYAAABSN5pGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABf/klEQVR4nO3deXxM5/4H8M9ksu/7viM7QqJ2kSJBq2iLqqqtei1VqouqFtWSq+1VektutYpe2qpLtT+09qBFEWJLCEkI2fd9n+f3R5iamYSIJDNJPu/XKy+Zs37PZJLz8ZznPEcihBAgIiIiIjktdRdAREREpGkYkIiIiIiUMCARERERKWFAIiIiIlLCgERERESkhAGJiIiISAkDEhEREZESbXUX0FrJZDKkpqbCxMQEEolE3eUQERFRAwghUFRUBEdHR2hp1d9OxIDUSKmpqXBxcVF3GURERNQIt2/fhrOzc73zGZAaycTEBEDtG2xqaqrmaoiIiKghCgsL4eLiIj+P14cBqZHuXVYzNTVlQCIiImplHtY9hp20iYiIiJQwIBEREREpYUAiIiIiUsKARERERKSEAYmIiIhICQMSERERkRIGJCIiIiIlDEhEREREStp1QPr888/h7+8PPz8/vP766xBCqLskIiIi0gDtNiBlZWXhyy+/RHR0NC5duoTo6GicOnVK3WURERGRBmi3AQkAqqurUV5ejqqqKlRVVcHW1lbdJRERETVaVWYmsv79JaoyM9VdymPRhOPQ2IB07NgxjBgxAo6OjpBIJNi1a5fKMuvWrYOHhwf09fURFBSE48ePN3j7NjY2eOutt+Dq6gpHR0cMHjwYHTp0aMIjIKLmoAl/OJsCj0OztJXjqM7KQvbatajOylJ3KY9FE45DYwNSSUkJunbtii+//LLO+du2bcO8efOwaNEinD9/Hv3798ewYcOQnJwsXyYoKAgBAQEqX6mpqcjLy8Pu3btx8+ZNpKSk4MSJEzh27Fi99VRUVKCwsFDhq7m0lV9UHodmaSvHoQl/OJsCj0OztJXjoKajre4C6jNs2DAMGzas3vmrVq3CtGnT8MorrwAAVq9ejX379iEyMhIREREAgOjo6HrX3759Ozp27AhLS0sAwFNPPYVTp05hwIABdS4fERGBDz/8sLGH80ju/aIaPxkKnVZ82Y/HoVnaynEQkaKqzEx5sCuPjVX4FwC0bWxaxe+8ph2HxgakB6msrER0dDTeffddhelhYWE4ceJEg7bh4uKCEydOoLy8HDo6OoiKisKrr75a7/ILFy7E/Pnz5a8LCwvh4uLSuAMgokeiaX84G4vHoVnaynHkb/sJ2WvXKkxL/2Cx/Hvr2bNhM+e1li7rkWnacbTKgJSdnY2amhrY2dkpTLezs0N6enqDttGrVy8MHz4c3bp1g5aWFgYNGoRnnnmm3uX19PSgp6f3WHU/SFv5ReVxaJa2chya9oezsXgcmqWtHIf5uLEwfjIUQO3vd/oHi2H/0TLo+/kBqP09bw007ThaZUC6RyKRKLwWQqhMe5Dly5dj+fLlTV1Wo7SVX1Qeh2ZpK8ehaX84G4vHoVnaynHo2Nqq/EdH388PBv7+aqqocTTtOFplQLK2toZUKlVpLcrMzFRpVWot2sovKo9Ds7SV49C0P5yNxePQLG3lOKh5tMqApKuri6CgIBw4cACjR4+WTz9w4ABGjhypxsoar638ovI4NEtbOQ4iahhtGxtYz57dav7zUx9NOA6NDUjFxcW4ceOG/HVSUhJiYmJgaWkJV1dXzJ8/HxMnTkRwcDB69+6N9evXIzk5GTNmzFBj1UTU3DThD2dT4HFoFrUeh0wGCBkgamr/ldXc930D58lqp+mIGtg82xuouAUkJ8qn37+MwnbqmqYyX9z3fUPWUa7r/nprGlSTjpDBxkQGpNsCtmNb/mcCDQ5IZ8+eRWhoqPz1vTvIJk2ahE2bNmHcuHHIycnBsmXLkJaWhoCAAOzduxdubm7qKrnJ8A+OZuFxaBYdW9tW0W/qYVrsOIS47+SjdLIVstr59c2Tnxzrn6cjZLAZGQyU3QCSriktKxRPhirbramntjrWk7+ua7375jVmPZms9jgsZcD+I0r11BUCHjRPeT8NCDpUP48Qte1aIviE1kYpLCyEmZkZCgoKYGpqqu5yiB6fwomwvq86llE+YTx0O/edQBq9H+X5ddSgUpfSibTe+uv5ktWxbp3H8aB9i3q2qTRfZf3GzOPJt02RaAESae2/WtL7vteqY56W4nLyadK7y0vrmC+573ulbSmsf2++5MHbV1mnvpqUj0epJlt/wNanSd/Khp6/NbYFiZqREHWfgKA8rTmWe9hJVNSzbgP2p7LvhpyoH7CMvIZGBocGz2/ofpp5Pvh/pfZNonjSktx/AtN6xOn3nXCVT9oKJ9e6Tux1rXffvHrX01La//3L1FFnXevVFxpUQkJ926pv3oPCTAPnUYtjQNI0p/4DRG9s2Mm8zhCBhwcVoscmqeeEdO8EV8eJp875dZ2kGrB+nSc3ad3r1ltbPfuud9t11KayrKT+bWvVU98jBY46tl1XsHhoAKjrfWv4EClE7QEDkqYpzQayrqq7ClUSLaicFBVOCErzIFH9g13fssrz69zP/cs85AR6r97GbgPKdSofxyOezBs073G208BlIFE6ATf2iydTImr7GJA0TeAEwGNAA07aDzghAg08eUru2+6DluXJkIiI2hcGJE1j6VH7RURERGqjpe4CiIiIiDQNAxIRERGREgYkIiIiIiUMSERERERKGJCIiIiIlDAgERERESlhQCIiIiJSwoBEREREpIQBiYiIiEgJAxIRERGREgYkIiIiIiUMSERERERKGJCIiIiIlDAgERERESlhQCIiIiJSwoBEREREpIQBiYiIiEgJAxIRERGREgYkIiIiIiUMSERERERKGJCIiIiIlDAgERERESlhQCIiIiJSwoBEREREpIQBiYiIiEgJAxIRERGREgYkIiIiIiUMSERERERKGJCIiIiIlDAgERERESlhQCIiIiJSwoBEREREpIQBiYiIiEgJAxIRERGREgYkIiIiIiUMSERERERKGJCIiIiIlDAgERERESlhQCIiIiJSwoBEREREpIQBiYiIiEgJAxIRERGREgYkIiIiIiUMSERERERKGJCIiIiIlDAgERERESlhQCIiIiJSwoBEREREpIQBiYiIiEgJAxIRERGREgYkIiIiIiUMSERERERKGJCIiIiIlDAgERERESlhQCIiIiJSwoBEREREpKRdBKTRo0fDwsICzz//vMq83bt3w9vbG506dcI333yjhuqIiIhI07SLgPT666/ju+++U5leXV2N+fPn4/Dhwzh37hxWrlyJ3NxcNVRIREREmqRdBKTQ0FCYmJioTD99+jT8/f3h5OQEExMTDB8+HPv27VNDhURERKRJ1B6Qjh07hhEjRsDR0RESiQS7du1SWWbdunXw8PCAvr4+goKCcPz48SbZd2pqKpycnOSvnZ2dkZKS0iTbJiIiotZL7QGppKQEXbt2xZdfflnn/G3btmHevHlYtGgRzp8/j/79+2PYsGFITk6WLxMUFISAgACVr9TU1AfuWwihMk0ikTzeAREREVGrp63uAoYNG4Zhw4bVO3/VqlWYNm0aXnnlFQDA6tWrsW/fPkRGRiIiIgIAEB0d3ah9Ozk5KbQY3blzBz179qxz2YqKClRUVMhfFxYWNmqfREREpPnU3oL0IJWVlYiOjkZYWJjC9LCwMJw4ceKxt//EE0/g8uXLSElJQVFREfbu3Yvw8PA6l42IiICZmZn8y8XF5bH3T0RERJpJowNSdnY2ampqYGdnpzDdzs4O6enpDd5OeHg4xowZg71798LZ2RlnzpwBAGhra+Nf//oXQkND0a1bN7z99tuwsrKqcxsLFy5EQUGB/Ov27duNPzAiIiLSaGq/xNYQyv2ChBCP1FfoQXemPfPMM3jmmWceug09PT3o6ek1eJ9ERETUeml0C5K1tTWkUqlKa1FmZqZKqxIRERFRU9HogKSrq4ugoCAcOHBAYfqBAwfQp08fNVVFREREbZ3aL7EVFxfjxo0b8tdJSUmIiYmBpaUlXF1dMX/+fEycOBHBwcHo3bs31q9fj+TkZMyYMUONVRMREVFbpvaAdPbsWYSGhspfz58/HwAwadIkbNq0CePGjUNOTg6WLVuGtLQ0BAQEYO/evXBzc1NXyURERNTGSURdoyXSQxUWFsLMzAwFBQUwNTVVdzlERETUAA09f2t0HyQiIiIidWBAIiIiIlLCgERERESkhAGJiIiISAkDEhEREZESBiQiIiIiJQxIREREREoYkIiIiIiUMCARERERKWFAIiIiIlLCgERERESkhAGJiIiISAkDEhEREZESBiQiIiIiJQxIREREREoYkIiIiIiUMCARERERKWFAIiIiIlLCgERERESkhAGJiIiISAkDEhEREZESBiQiIiIiJQxIREREREoYkIiIiIiUMCARERERKWFAIiIiIlLCgERERESkhAGJiIiISAkDEhEREZESBiQiIiIiJQxIREREREoYkIiIiIiUMCARERERKWFAIiIiIlLCgERERESkhAGJiIiISAkDEhEREZESBiQiIiIiJQxIREREREoYkIiIiIiUMCARERERKWFAIiIiIlLCgERERESkhAGJiIiISAkDEhEREZESBiQiIiIiJQxIREREREoYkIiIiIiUMCARERERKWFAIiIiIlLCgERERESkhAGJiIiISAkDEhEREZESBiQiIiIiJQxIREREREoYkIiIiIiU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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "chianti_collisional_rates.loc[1,0,0,1].plot(logy=True,label=\"TARDIS exc\",legend=True)\n", + "chianti_collisional_rates.loc[1,0,1,0].plot(logy=True,label=\"TARDIS deexc\",legend=True)\n", + "reference_coeff[\"coll_exc_coeff\"].loc[1,0,0,1].plot(logy=True,label=\"reference exc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')\n", + "reference_coeff[\"coll_deexc_coeff\"].loc[1,0,0,1].plot(logy=True,label=\"reference deexc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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7NOnVbetVCphb29/0/N3h2wyqa6uRkJCAl566SWN6dHR0Th27FiztyOXy+Hq6oqLFy/i+PHj+O9//9vosmvWrMFrr73W4pqb0lnSf2c5DqDzHIux/UXWUjwO42Lm6qpzwrUICWn1E1lb43FQUzpkQMrPz0ddXR3c3Nw0pru5uSE3N7fZ25k0aRKKiopgbW2NTZs2NXmJbenSpYiJiVG/b2hBag2d5ZdmZzkOoPMcS2f5xcnjIOpaTF1c4Pzsswb9XdshA1IDiUSi8V4IoTOtKbfS2iSTySCTyZq9/K3oLL80O8txAJ3rWIjakjGcyFoDj8O4mLm6GryVvkMGJGdnZ0ilUp3WIrlcrtOqRET1OssvTh6HcTGGE1lr4HGQNqO9zb8p5ubmiIiIQFxcnMb0uLg4DB482EBVtY7O8kuzsxwH0HmOpeEXZ0frrKmNx0FE7cFoW5BKS0uRmpqqfp+eno7ExEQ4OjrCx8cHMTExmD59OiIjIzFo0CBs2LABmZmZmDt3rgGrvn2dJf13luMAOtexEBFR8xhtQDp58iSioqLU7xs6SM+YMQObN2/GlClTUFBQgJUrVyInJwehoaHYs2cPfH19DVUyERERdRIdYhwkY9TccRSIiIjIeDT3/N0h+yARERERtSUGJCIiIiItDEhEREREWhiQiIiIiLQwIBERERFpYUAiIiIi0sKARERERKSFAYmIiIhICwMSERERkRYGJCIiIiItDEhEREREWhiQiIiIiLQwIBERERFpYUAiIiIi0sKARERERKSFAYmIiIhICwMSERERkRYGJCIiIiItDEhEREREWhiQiIiIiLQwIBERERFpYUAiIiIi0sKARERERKSFAYmIiIhICwMSERERkRYGJCIiIiItDEhEREREWhiQiIiIiLQwIBERERFpYUAiIiIi0sKARERERKSFAYmIiIhICwMSERERkRYGJCIiIiItDEhEREREWhiQiIiIiLQwIBERERFpYUAiIiIi0sKARERERKSFAYmIiIhICwMSERERkRYGJCIiIiItDEhEREREWhiQiIiIiLQwIBERERFpYUAiIiIi0sKARERERKSFAYmIiIhICwMSERERkRYGJCIiIiItDEhEREREWrpEQJo8eTK6deuGhx566JbmERERUdfUJQLSwoUL8fnnn9/yPCIiIuqaukRAioqKgq2t7S3PIyIi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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "chianti_collisional_rates.loc[1,0,0,2].plot(logy=True,label=\"TARDIS exc\",legend=True)\n", + "chianti_collisional_rates.loc[1,0,2,0].plot(logy=True,label=\"TARDIS deexc\",legend=True)\n", + "reference_coeff[\"coll_exc_coeff\"].loc[1,0,0,2].plot(logy=True,label=\"reference exc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')\n", + "reference_coeff[\"coll_deexc_coeff\"].loc[1,0,0,2].plot(logy=True,label=\"reference deexc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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J05sdv27776L+fPn45lnngEAvP/++zhy5AgiIiKwadMmAEB0dHSH17lp0yasW7euw89DREREuqfzLraWVFVVITo6GqGhoWrLQ0NDcfr06U6tZeXKlVAoFKpXWlpap56fiIiIOo/OW5Bakpubi9raWjg5Oaktd3JyQmZmZquPExYWhvPnz6O0tBRubm7Yt28fhg8ffsd1jclkMshksnu7ICIiIuoS9DogNZBIJGrvhRBay1py5MiRNq0jIiKinkmvu9js7e0hlUq1Wouys7O1WpWIiIiI2oteByRjY2MEBgYiMjJSbXlkZCSCg4N1VBURERF1dzrvYispKUFSUpLqfUpKCmJjY2FrawsPDw+Eh4dj9uzZCAoKwsiRI7Ft2zakpqZi4cKFOqyaiIiIujOdB6Rz584hJCRE9T48PBwAMGfOHOzcuRMzZsxAXl4e1q9fj4yMDAQEBODQoUPw9PTUVclERETUzUmEEELXRXRFRUVFsLKygkKhgKWlpa7LISIiolZo7f1br8cgEREREekCAxIRERGRBgYkIiIiIg0MSEREREQaGJCIiIiINDAgEREREWlgQCIiIiLSwIBEREREpIEBiYiIiEgDAxIRERGRBgYkIiIiIg0MSEREREQaGJCIiIiINDAgEREREWlgQCIiIiLSwIBEREREpIEBiYiIiEgDAxIRERGRBgYkIiIiIg0MSEREREQaGJCIiIiINDAgEREREWlgQCIiIiLSwIBEREREpIEBiYiIiEgDAxIRERGRBgYkIiIiIg0MSEREREQaGJCIiIiINDAgEREREWlgQCIiIiLSwIBEREREpIEBiYiIiEgDAxIRERGRBgYkIiIiIg0MSEREREQaGJCIiIiINDAgEREREWlgQCIiIiLSwIBEREREpIEBiYiIiEgDAxIRERGRBgYkIiIiIg0MSEREREQaekRAmjp1KmxsbDB9+nS15cXFxRg+fDiGDBmCgQMHYvv27TqqkIiIiPSJRAghdF1ERztx4gRKSkqwa9cu7NmzR7W8trYWlZWVMDU1RVlZGQICAvDnn3/Czs7ujscsKiqClZUVFAoFLC0tO7J8IiIiaietvX/3iBakkJAQWFhYaC2XSqUwNTUFAFRUVKC2thY9IC8SERHRHeg8IJ08eRKTJk2Cq6srJBIJ9u/fr7XN1q1b4e3tDblcjsDAQJw6dardzl9Y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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "chianti_collisional_rates.loc[1,0,0,3].plot(logy=True,label=\"TARDIS exc\",legend=True)\n", + "chianti_collisional_rates.loc[1,0,3,0].plot(logy=True,label=\"TARDIS deexc\",legend=True)\n", + "reference_coeff[\"coll_exc_coeff\"].loc[1,0,0,3].plot(logy=True,label=\"reference exc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')\n", + "reference_coeff[\"coll_deexc_coeff\"].loc[1,0,0,3].plot(logy=True,label=\"reference deexc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## CMFGEN collisional rates" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "cmfgen_atom_data = AtomData.from_hdf('/home/afullard/tardis-refdata/nlte_atom_data/TestNLTE_He_Ti.h5')\n", + "cmfgen_radiative_transitions = cmfgen_atom_data.lines.loc[(1,0, slice(None), slice(None)), :]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Number of density points larger than number of shells. Assuming inner point irrelevant\n" + ] + } + ], + "source": [ + "cmfgen_sim_state = SimulationState.from_config(config, atom_data=cmfgen_atom_data)\n", + "\n", + "temperature = reference_coeff[\"t_electrons\"].values * u.K\n", + "rad_field = PlanckianRadiationField(temperature=temperature)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "cmfgen_radiative_rates = get_radiative_rates(rad_field, cmfgen_radiative_transitions)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "cmfgen_upsilon_rates = get_estimated_upsilon_rates(temperature, cmfgen_radiative_transitions)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "cmfgen_collisional_rates = get_cmfgen_collisional_rates(cmfgen_atom_data, temperature, cmfgen_radiative_transitions)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0123456789
atomic_numberion_numberlevel_number_sourcelevel_number_destination
10011.267799e-137.409859e-144.118523e-142.162077e-141.063159e-144.847581e-152.024099e-157.620206e-162.536409e-167.279789e-17
23.356946e-151.788862e-158.989059e-164.223418e-161.836457e-167.299014e-172.611509e-178.253727e-182.250262e-185.134854e-19
31.989207e-169.873436e-174.586649e-171.978074e-177.842777e-182.825076e-189.111826e-192.584272e-196.299419e-201.281514e-20
41.370295e-166.868098e-173.227971e-171.410044e-175.663413e-182.064314e-186.719253e-191.914254e-194.654151e-209.350735e-21
56.270420e-173.114708e-171.449558e-176.263862e-182.486059e-188.942955e-192.868524e-198.039333e-201.918916e-203.775645e-21
....................................
28267.195997e-037.293750e-037.396148e-037.503646e-037.616808e-037.736337e-037.863108e-037.998223e-038.143076e-038.299442e-03
29261.417282e-031.436124e-031.455952e-031.476829e-031.498839e-031.522089e-031.546719e-031.572907e-031.600884e-031.630950e-03
28271.326055e-011.345468e-011.365893e-011.387426e-011.410185e-011.434318e-011.460005e-011.487475e-011.517012e-011.548981e-01
29278.433900e-038.553185e-038.679063e-038.811975e-038.952486e-039.101318e-039.259392e-039.427886e-039.608311e-039.802624e-03
281.551432e-011.574200e-011.598144e-011.623386e-011.650073e-011.678385e-011.708545e-011.740831e-011.775591e-011.813264e-01
\n", + "

870 rows × 10 columns

\n", + "
" + ], + "text/plain": [ + " 0 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 1.267799e-13 \n", + " 2 3.356946e-15 \n", + " 3 1.989207e-16 \n", + " 4 1.370295e-16 \n", + " 5 6.270420e-17 \n", + "... ... \n", + " 28 26 7.195997e-03 \n", + " 29 26 1.417282e-03 \n", + " 28 27 1.326055e-01 \n", + " 29 27 8.433900e-03 \n", + " 28 1.551432e-01 \n", + "\n", + " 1 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 7.409859e-14 \n", + " 2 1.788862e-15 \n", + " 3 9.873436e-17 \n", + " 4 6.868098e-17 \n", + " 5 3.114708e-17 \n", + "... ... \n", + " 28 26 7.293750e-03 \n", + " 29 26 1.436124e-03 \n", + " 28 27 1.345468e-01 \n", + " 29 27 8.553185e-03 \n", + " 28 1.574200e-01 \n", + "\n", + " 2 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 4.118523e-14 \n", + " 2 8.989059e-16 \n", + " 3 4.586649e-17 \n", + " 4 3.227971e-17 \n", + " 5 1.449558e-17 \n", + "... ... \n", + " 28 26 7.396148e-03 \n", + " 29 26 1.455952e-03 \n", + " 28 27 1.365893e-01 \n", + " 29 27 8.679063e-03 \n", + " 28 1.598144e-01 \n", + "\n", + " 3 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 2.162077e-14 \n", + " 2 4.223418e-16 \n", + " 3 1.978074e-17 \n", + " 4 1.410044e-17 \n", + " 5 6.263862e-18 \n", + "... ... \n", + " 28 26 7.503646e-03 \n", + " 29 26 1.476829e-03 \n", + " 28 27 1.387426e-01 \n", + " 29 27 8.811975e-03 \n", + " 28 1.623386e-01 \n", + "\n", + " 4 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 1.063159e-14 \n", + " 2 1.836457e-16 \n", + " 3 7.842777e-18 \n", + " 4 5.663413e-18 \n", + " 5 2.486059e-18 \n", + "... ... \n", + " 28 26 7.616808e-03 \n", + " 29 26 1.498839e-03 \n", + " 28 27 1.410185e-01 \n", + " 29 27 8.952486e-03 \n", + " 28 1.650073e-01 \n", + "\n", + " 5 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 4.847581e-15 \n", + " 2 7.299014e-17 \n", + " 3 2.825076e-18 \n", + " 4 2.064314e-18 \n", + " 5 8.942955e-19 \n", + "... ... \n", + " 28 26 7.736337e-03 \n", + " 29 26 1.522089e-03 \n", + " 28 27 1.434318e-01 \n", + " 29 27 9.101318e-03 \n", + " 28 1.678385e-01 \n", + "\n", + " 6 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 2.024099e-15 \n", + " 2 2.611509e-17 \n", + " 3 9.111826e-19 \n", + " 4 6.719253e-19 \n", + " 5 2.868524e-19 \n", + "... ... \n", + " 28 26 7.863108e-03 \n", + " 29 26 1.546719e-03 \n", + " 28 27 1.460005e-01 \n", + " 29 27 9.259392e-03 \n", + " 28 1.708545e-01 \n", + "\n", + " 7 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 7.620206e-16 \n", + " 2 8.253727e-18 \n", + " 3 2.584272e-19 \n", + " 4 1.914254e-19 \n", + " 5 8.039333e-20 \n", + "... ... \n", + " 28 26 7.998223e-03 \n", + " 29 26 1.572907e-03 \n", + " 28 27 1.487475e-01 \n", + " 29 27 9.427886e-03 \n", + " 28 1.740831e-01 \n", + "\n", + " 8 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 2.536409e-16 \n", + " 2 2.250262e-18 \n", + " 3 6.299419e-20 \n", + " 4 4.654151e-20 \n", + " 5 1.918916e-20 \n", + "... ... \n", + " 28 26 8.143076e-03 \n", + " 29 26 1.600884e-03 \n", + " 28 27 1.517012e-01 \n", + " 29 27 9.608311e-03 \n", + " 28 1.775591e-01 \n", + "\n", + " 9 \n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 7.279789e-17 \n", + " 2 5.134854e-19 \n", + " 3 1.281514e-20 \n", + " 4 9.350735e-21 \n", + " 5 3.775645e-21 \n", + "... ... \n", + " 28 26 8.299442e-03 \n", + " 29 26 1.630950e-03 \n", + " 28 27 1.548981e-01 \n", + " 29 27 9.802624e-03 \n", + " 28 1.813264e-01 \n", + "\n", + "[870 rows x 10 columns]" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cmfgen_collisional_rates" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0123456789
atomic_numberion_numberlevel_number_sourcelevel_number_destination
10011.947332e-141.150685e-146.471781e-153.439696e-151.712729e-157.906211e-163.340165e-161.271031e-164.270088e-171.234665e-17
23.641834e-142.151969e-141.210328e-146.432783e-153.203073e-151.478585e-156.246623e-162.377021e-167.985702e-172.309004e-17
33.896169e-142.302253e-141.294850e-146.881995e-153.426742e-151.581830e-156.682786e-162.542985e-168.543234e-172.470200e-17
45.387536e-162.876504e-161.448241e-166.817268e-172.969700e-171.182313e-174.236734e-181.340854e-183.659825e-198.358726e-20
51.026299e-155.479599e-162.758829e-161.298656e-165.657133e-172.252248e-178.070772e-182.554261e-186.971787e-191.592296e-19
....................................
20141.012879e-081.010773e-081.008320e-081.005477e-081.002191e-089.984012e-099.940370e-099.890124e-099.832251e-099.765511e-09
23141.613469e-051.610114e-051.606207e-051.601678e-051.596443e-051.590407e-051.583455e-051.575451e-051.566232e-051.555601e-05
20152.025768e-072.021555e-072.016650e-072.010963e-072.004391e-071.996813e-071.988084e-071.978035e-071.966460e-071.953112e-07
23151.153401e-061.151002e-061.148210e-061.144972e-061.141230e-061.136915e-061.131945e-061.126223e-061.119633e-061.112033e-06
24151.848863e-051.845018e-051.840541e-051.835351e-051.829353e-051.822436e-051.814470e-051.805298e-051.794734e-051.782552e-05
\n", + "

210 rows × 10 columns

\n", + "
" + ], + "text/plain": [ + " 0 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 1.947332e-14 \n", + " 2 3.641834e-14 \n", + " 3 3.896169e-14 \n", + " 4 5.387536e-16 \n", + " 5 1.026299e-15 \n", + "... ... \n", + " 20 14 1.012879e-08 \n", + " 23 14 1.613469e-05 \n", + " 20 15 2.025768e-07 \n", + " 23 15 1.153401e-06 \n", + " 24 15 1.848863e-05 \n", + "\n", + " 1 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 1.150685e-14 \n", + " 2 2.151969e-14 \n", + " 3 2.302253e-14 \n", + " 4 2.876504e-16 \n", + " 5 5.479599e-16 \n", + "... ... \n", + " 20 14 1.010773e-08 \n", + " 23 14 1.610114e-05 \n", + " 20 15 2.021555e-07 \n", + " 23 15 1.151002e-06 \n", + " 24 15 1.845018e-05 \n", + "\n", + " 2 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 6.471781e-15 \n", + " 2 1.210328e-14 \n", + " 3 1.294850e-14 \n", + " 4 1.448241e-16 \n", + " 5 2.758829e-16 \n", + "... ... \n", + " 20 14 1.008320e-08 \n", + " 23 14 1.606207e-05 \n", + " 20 15 2.016650e-07 \n", + " 23 15 1.148210e-06 \n", + " 24 15 1.840541e-05 \n", + "\n", + " 3 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 3.439696e-15 \n", + " 2 6.432783e-15 \n", + " 3 6.881995e-15 \n", + " 4 6.817268e-17 \n", + " 5 1.298656e-16 \n", + "... ... \n", + " 20 14 1.005477e-08 \n", + " 23 14 1.601678e-05 \n", + " 20 15 2.010963e-07 \n", + " 23 15 1.144972e-06 \n", + " 24 15 1.835351e-05 \n", + "\n", + " 4 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 1.712729e-15 \n", + " 2 3.203073e-15 \n", + " 3 3.426742e-15 \n", + " 4 2.969700e-17 \n", + " 5 5.657133e-17 \n", + "... ... \n", + " 20 14 1.002191e-08 \n", + " 23 14 1.596443e-05 \n", + " 20 15 2.004391e-07 \n", + " 23 15 1.141230e-06 \n", + " 24 15 1.829353e-05 \n", + "\n", + " 5 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 7.906211e-16 \n", + " 2 1.478585e-15 \n", + " 3 1.581830e-15 \n", + " 4 1.182313e-17 \n", + " 5 2.252248e-17 \n", + "... ... \n", + " 20 14 9.984012e-09 \n", + " 23 14 1.590407e-05 \n", + " 20 15 1.996813e-07 \n", + " 23 15 1.136915e-06 \n", + " 24 15 1.822436e-05 \n", + "\n", + " 6 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 3.340165e-16 \n", + " 2 6.246623e-16 \n", + " 3 6.682786e-16 \n", + " 4 4.236734e-18 \n", + " 5 8.070772e-18 \n", + "... ... \n", + " 20 14 9.940370e-09 \n", + " 23 14 1.583455e-05 \n", + " 20 15 1.988084e-07 \n", + " 23 15 1.131945e-06 \n", + " 24 15 1.814470e-05 \n", + "\n", + " 7 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 1.271031e-16 \n", + " 2 2.377021e-16 \n", + " 3 2.542985e-16 \n", + " 4 1.340854e-18 \n", + " 5 2.554261e-18 \n", + "... ... \n", + " 20 14 9.890124e-09 \n", + " 23 14 1.575451e-05 \n", + " 20 15 1.978035e-07 \n", + " 23 15 1.126223e-06 \n", + " 24 15 1.805298e-05 \n", + "\n", + " 8 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 4.270088e-17 \n", + " 2 7.985702e-17 \n", + " 3 8.543234e-17 \n", + " 4 3.659825e-19 \n", + " 5 6.971787e-19 \n", + "... ... \n", + " 20 14 9.832251e-09 \n", + " 23 14 1.566232e-05 \n", + " 20 15 1.966460e-07 \n", + " 23 15 1.119633e-06 \n", + " 24 15 1.794734e-05 \n", + "\n", + " 9 \n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 1.234665e-17 \n", + " 2 2.309004e-17 \n", + " 3 2.470200e-17 \n", + " 4 8.358726e-20 \n", + " 5 1.592296e-19 \n", + "... ... \n", + " 20 14 9.765511e-09 \n", + " 23 14 1.555601e-05 \n", + " 20 15 1.953112e-07 \n", + " 23 15 1.112033e-06 \n", + " 24 15 1.782552e-05 \n", + "\n", + "[210 rows x 10 columns]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chianti_collisional_rates" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "assert cmfgen_collisional_rates.shape == reference_rate_coeff_df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "pd.testing.assert_frame_equal(cmfgen_collisional_rates.sort_index() * (1-0.000015),reference_rate_coeff_df.sort_index(),check_names=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "reference_rate_coeff_df = reference_rate_coeff_df.sort_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "reference_rate_coeff_df.index.names=cmfgen_collisional_rates.sort_index().index.names" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0123456789
atomic_numberion_numberlevel_number_sourcelevel_number_destination
10010.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.000015
20.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.000015
30.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.000014
40.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.000014
50.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000140.000014
....................................
29240.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.000015
250.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.000015
260.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.000015
270.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.000015
280.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.0000150.000015
\n", + "

870 rows × 10 columns

\n", + "
" + ], + "text/plain": [ + " 0 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 0.000015 \n", + " 2 0.000015 \n", + " 3 0.000015 \n", + " 4 0.000015 \n", + " 5 0.000015 \n", + "... ... \n", + " 29 24 0.000015 \n", + " 25 0.000015 \n", + " 26 0.000015 \n", + " 27 0.000015 \n", + " 28 0.000015 \n", + "\n", + " 1 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 0.000015 \n", + " 2 0.000015 \n", + " 3 0.000015 \n", + " 4 0.000015 \n", + " 5 0.000015 \n", + "... ... \n", + " 29 24 0.000015 \n", + " 25 0.000015 \n", + " 26 0.000015 \n", + " 27 0.000015 \n", + " 28 0.000015 \n", + "\n", + " 2 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 0.000015 \n", + " 2 0.000015 \n", + " 3 0.000015 \n", + " 4 0.000015 \n", + " 5 0.000015 \n", + "... ... \n", + " 29 24 0.000015 \n", + " 25 0.000015 \n", + " 26 0.000015 \n", + " 27 0.000015 \n", + " 28 0.000015 \n", + "\n", + " 3 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 0.000015 \n", + " 2 0.000015 \n", + " 3 0.000015 \n", + " 4 0.000015 \n", + " 5 0.000015 \n", + "... ... \n", + " 29 24 0.000015 \n", + " 25 0.000015 \n", + " 26 0.000015 \n", + " 27 0.000015 \n", + " 28 0.000015 \n", + "\n", + " 4 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 0.000015 \n", + " 2 0.000015 \n", + " 3 0.000015 \n", + " 4 0.000015 \n", + " 5 0.000015 \n", + "... ... \n", + " 29 24 0.000015 \n", + " 25 0.000015 \n", + " 26 0.000015 \n", + " 27 0.000015 \n", + " 28 0.000015 \n", + "\n", + " 5 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 0.000015 \n", + " 2 0.000015 \n", + " 3 0.000015 \n", + " 4 0.000015 \n", + " 5 0.000015 \n", + "... ... \n", + " 29 24 0.000015 \n", + " 25 0.000015 \n", + " 26 0.000015 \n", + " 27 0.000015 \n", + " 28 0.000015 \n", + "\n", + " 6 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 0.000015 \n", + " 2 0.000015 \n", + " 3 0.000015 \n", + " 4 0.000015 \n", + " 5 0.000015 \n", + "... ... \n", + " 29 24 0.000015 \n", + " 25 0.000015 \n", + " 26 0.000015 \n", + " 27 0.000015 \n", + " 28 0.000015 \n", + "\n", + " 7 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 0.000015 \n", + " 2 0.000015 \n", + " 3 0.000015 \n", + " 4 0.000015 \n", + " 5 0.000015 \n", + "... ... \n", + " 29 24 0.000015 \n", + " 25 0.000015 \n", + " 26 0.000015 \n", + " 27 0.000015 \n", + " 28 0.000015 \n", + "\n", + " 8 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 0.000015 \n", + " 2 0.000015 \n", + " 3 0.000015 \n", + " 4 0.000015 \n", + " 5 0.000014 \n", + "... ... \n", + " 29 24 0.000015 \n", + " 25 0.000015 \n", + " 26 0.000015 \n", + " 27 0.000015 \n", + " 28 0.000015 \n", + "\n", + " 9 \n", + "atomic_number ion_number level_number_source level_number_destination \n", + "1 0 0 1 0.000015 \n", + " 2 0.000015 \n", + " 3 0.000014 \n", + " 4 0.000014 \n", + " 5 0.000014 \n", + "... ... \n", + " 29 24 0.000015 \n", + " 25 0.000015 \n", + " 26 0.000015 \n", + " 27 0.000015 \n", + " 28 0.000015 \n", + "\n", + "[870 rows x 10 columns]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(cmfgen_collisional_rates - reference_rate_coeff_df) / reference_rate_coeff_df" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "from tardis import constants as const\n", + "import numpy as np\n", + "beta_coll = (\n", + " (const.h**4 / (8 * const.k_B * const.m_e**3 * np.pi**3)) ** 0.5\n", + ").cgs" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.00010054083203834371" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "abs(8.63e-6 - beta_coll.value) / min(8.63e-6, beta_coll.value)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## CMFGEN data compared to reference data" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHACAYAAABKwtdzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABfF0lEQVR4nO3deVxU5eI/8M+wzbAOsoOyqKmIK0opWi6puJQ/bdO85pJm30xLr61WbpV6rW6ppZZlkrcy66LmdSnNRCxtQ9ESN1wCEQQUZthmBpjn98fAkXEGBAQGOJ/363VezDnnOec8B7x3Pj3LOQohhAARERGRjNjZugJEREREjY0BiIiIiGSHAYiIiIhkhwGIiIiIZIcBiIiIiGSHAYiIiIhkhwGIiIiIZIcBiIiIiGSHAYiIiIhkhwGIiIiIZIcB6BYSEhIwevRoBAUFQaFQYPv27Q16vbCwMCgUCotl1qxZDXpdIiIiOWEAuoXCwkL06NEDH3zwQaNc7/fff0dGRoa07Nu3DwDwyCOPNMr1iYiI5IAB6BZGjhyJN998Ew8++KDV/QaDAS+++CJat24NV1dX9OnTB/Hx8XW+nq+vLwICAqRl586daN++PQYOHFjncxIREZE5BqDb9Pjjj+Pnn3/GV199hRMnTuCRRx7BiBEjcO7cuds+t8FgwOeff45p06ZBoVDUQ22JiIgIABRCCGHrSjQXCoUC27Ztw9ixYwEA58+fR4cOHXD58mUEBQVJ5YYOHYq77roLy5Ytu63rff311/jHP/6B1NRUs/MTERHR7WEL0G04evQohBDo2LEj3NzcpOXgwYM4f/48AODSpUtWBzVXXmbPnm31/Bs2bMDIkSMZfoiIiOqZg60r0JwZjUbY29sjMTER9vb2Zvvc3NwAAK1bt8apU6eqPU+rVq0stv3999/44YcfsHXr1vqrMBEREQFgALotkZGRKCsrQ1ZWFu655x6rZRwdHREeHl7rc2/cuBF+fn647777breaREREdBMGoFsoKChASkqKtH7x4kUkJSXBy8sLHTt2xMSJEzF58mT8+9//RmRkJHJycvDjjz+iW7duGDVqVJ2uaTQasXHjRkyZMgUODvwTERER1TcOgr6F+Ph4DB482GL7lClTEBsbi5KSErz55pvYtGkT0tPT4e3tjejoaCxZsgTdunWr0zX37t2L4cOH48yZM+jYsePt3gIRERHdhAGIiIiIZIezwIiIiEh2GICIiIhIdjjC1gqj0YgrV67A3d2dT2AmIiJqJoQQyM/PR1BQEOzsqm/jYQCy4sqVKwgODrZ1NYiIiKgO0tLS0KZNm2rLMABZ4e7uDsD0C/Tw8LBxbYiIiKgmtFotgoODpe/x6jAAWVHR7eXh4cEARERE1MzUZPgKB0ETERGR7DAAERERkewwABEREZHsMAARERGR7DAAERERkewwABEREZHsMAARERGR7Ng0ACUkJGD06NEICgqCQqHA9u3bqy0/depUKBQKi6VLly5SmdjYWKtldDpdA98NERERNRc2DUCFhYXo0aMHPvjggxqVX7VqFTIyMqQlLS0NXl5eeOSRR8zKeXh4mJXLyMiASqVqiFsgIiKiZsimT4IeOXIkRo4cWePyarUaarVaWt++fTtyc3Px+OOPm5VTKBQICAiot3oSERFRy9KsxwBt2LABQ4cORWhoqNn2goIChIaGok2bNrj//vtx7Nixas+j1+uh1WrNFiIiImoYJVlZyH7/A5RkZdmsDs02AGVkZGDPnj144oknzLaHh4cjNjYWO3bswObNm6FSqdC/f3+cO3euynMtX75cal1Sq9V8EzwREVEDKs3ORs6aNSjNzrZZHZptAIqNjYWnpyfGjh1rtr1v37547LHH0KNHD9xzzz34+uuv0bFjR7z//vtVnmv+/PnQaDTSkpaW1sC1JyIikikhgKJrtq5F83wbvBACn376KSZNmgQnJ6dqy9rZ2eHOO++stgVIqVRCqVTWdzWJiIjkS18AXD8P5JwDrqWg5GIyStNSAM1l6LJKAHhCl5wsFXfw9YWjn1+jVa9ZBqCDBw8iJSUF06dPv2VZIQSSkpLQrVu3RqgZERGRjBjLgLy/gZwU4FoKcO1ceeA5D+RfMSua96c7ck66A3CVtmUuWCh99pk1C77PzG6smts2ABUUFCAlJUVav3jxIpKSkuDl5YWQkBDMnz8f6enp2LRpk9lxGzZsQJ8+fdC1a1eLcy5ZsgR9+/ZFhw4doNVqsXr1aiQlJWHNmjUNfj9EREQtTkWX1bWU8nBTHnByzgG5F4EyQ9XHuvgA3ncAPnfAMyoIbvAGPEOgu6xB5uLXEfDG61BFRAAwtQA1JpsGoD/++AODBw+W1ufNmwcAmDJlCmJjY5GRkYHU1FSzYzQaDeLi4rBq1Sqr58zLy8OTTz6JzMxMqNVqREZGIiEhAXfddVfD3QgREVFzV1IMXL8gdVlJS845QJdX9XEOKsCrPeBzhynseHco/9kecPGSijmWLwCAkycBAKqICDhXephxY1IIIYRNrtyEabVaqNVqaDQaeHh42Lo6REREAEzTx/O2fA3P8ePqNl7GaAS0l8uDTXmXVcVnTRqAaiKBOri8Naci4JR/9mgD2NVuTlXxyZO49NDDCIv7b70GoNp8fzfLMUBERERyVDF93O3ewdUHoOI88xacim6ra+eB0uKqj1Opb7Tg+NzUmuPoXG/34eDrC59Zsxq928usDja7MhEREdVdqQHIvVRp4HGlwFOUU/Vxdo6AV1tTuLm528rVB1AoGrzqjn5+jTrg2RoGICIioqbIaAQKs1By4S+Upp4FCq5Cd/osAED3/qOA8iogjHBwLoOjs9HyePdA866qis+eoYA9v/75GyAiImpsQpgGFmsuA5p007gc6XO66bP2CmAsqTR9/IbM+FIA3gAAn74u8L2/501Bpz2gdLe4LN3AAERERFTfDEU3gozmspXP6UBJ4a3Po7CDZ093uPXyA9z8oMt1ROZXxxAwZxJUvfsDLj5w8PMFGvEBgi0FAxAREbV4tz17qrKyElPrTEWQMWu9Kf9cnFuzc7l4Ax6tTTOs1K3LP7cxLR6tAfdAONo7mE8f/+phqAaMsdn08ZaCAYiIiFq8Gs+eMhqBwmwrXVJpNz7nZ6La6eIVnNxuBBl1ecip+OzRBvAIApxc6u0eqXYYgIiISD70+UDmX9a7pDRpQH5G9U82rmDvZAowHuWtNVLrTaWWHJW63mdUNYXp4y0FAxARETVfQgB6LVCYY2q5kZYclGSkofRqJlCcB93f2QAA3XsPAK1KAKDq2VNQmGZQWeuSqmjJcfGp9cP/6kNTmD7eUjAAERFR01KiMwsyNwcbs89FOVW22FidPfW7p/TZZ6A/fAdEWXZPuQcC9o6glo0BiIiIrKq3gcPGMqDoevVBpvJnQ37tr+HkbnqIn6tv+eIDz+5ucDOoAGdP6NK1yFz9BQIWvQZV954Ayl++ydlTssUAREREVlU5cNii2+nmnzcFm6JrqNGg4crsHKUgUznU3Phced3H6msaLF6+ufoLqLr35OwpAsAAREQkb6V603ujdJryJe/Gz9MppjIHlgHHdOahpiYDhc0oTG8GtxpmfExjaiqvN8AAYqLKGICIiOpZvT5z5laMZZXCS+UAo6kUbKxtK99eqjOve7EdSovtAQC6XEcAntD9+qP1gcNObjVsofEFnL1s+voFzp6imzEAERHVsxo/cwYwdScZCuseYPTaeqixAlB5ACo18i46IudX87eFmw0cnvwAfJ9+ytRi04yeYcPZU3QzBiAiajIateWkPhiNptcZGAoBfQFgKDB9Tj1t2p/8LXD9++oDjE4DGEtvvy6OLoDK09R1pFIDzpU+V2y3tk2lBpQe0pRuz6wsuGWXTxlPTkbmgoUIeON1qCIiAJQPHPZsBn8boltgACKiJqNWLSe1ZTQCJUWmgGKoFFYq1vUFlfZZ+Wltf0mRdHqrXUc73q/BM2fK2TncOqhI2z3Nyyo9AAenevk1Ofr5WfzuVRERHDhMLQ4DEFEL0OxaTm5FoIpwcnN4qSacVA44+oKavXiyrhR2yLvkhZzj5iHErOvo/p7wHTmo6lDj6MJBv0SNiAGIZK2lBIcGbTmpIIRp5k9JsWkpLTY9sE76XLFdZ2oZKSn/Waq76Zjy48o/l+QWoFRTDJTpobtqAGAP3YqhNW85qS2FnWnwrpNr+eJmvq50q36/k1t5Gdcb2x1U8MzOvnXXUTP7N8aBw9SSMQCRrDVKcGhIZaVAmR7QlQ+E1VwGMkUtQ0kN95UWA6Ieg0g586f1mrqQzFpOuuvhe5ejZeiw+OkKKN0rBRVX08Pxbg4uDqoGaWlpiV1HHDhMLRkDENVJS2k5uS3GMlNAKNVX+lnpc5m+6n01LVNmuOmYG+sl+QaUlg9BkcacrJvacC0nlSnsTF02js6AgzPgqKr0udJS1T4HVfnxKniOLIGbVgc4qKC7kI7Mtz9EwGsvQNW1B+CggoNf82s5IaKmjwGokbWU4GCzlhMhKgUHw40AUWa4ESCs7tNJ20pyclGaqwHKSm68IPGL14AAJ6DUAAdnIxxdjFaCyU3BpT5m7tyGvHO3eM/RXU7wvbtVpRDiUh48LEPIjX3l61JYsXacs+k9SfXUimL2tF6/kwA+hCqyT7NuOWHXEVHTxwDUyJpdl4sQpi96s3ChB65fMu2/mgy4XL8pdFQKHxaB5Db31frps5asviBx62nps0+XfPh2q+W7iOwcTCHB3sn000FZ/vOmdWl/TcooK/2s9NnetO6ZVwi33HzA3gm6MynIXLS42Y85aSnYdUTU9DEANVUVLR1SN0jlUFCpK6Te9t0cPCp9Lh/3YXWa78ZnG6fLpSr2TuWBoNJPKUQore7zbC/gFiMAOyfoMvKR+eUfCJg8AKq2gYCDExy8vQBfn5sCSDXBxF5pkyfcOnpVajlxVAFo/mNO2HJCRI2FAagRlGRloTQ7G7h+Ebrt7wEAdOtnAN4CKCuFg9IAR1WJeeioh5aO+paX4lp9l0u0G3wH+FYKH05mLRbm26rbVzm0VLGvIpDUoRvG4gWJXz4M1Zhnm3VwaCnYckJEjYUBqBHkbfkaOWvWmG3L/D5X+lyjLhf7m7pLpNaIm4KCFBKq22flcw2O88zVwi3nGoCWM823pWDLCRFR7TAANQLP8ePgdu9goFgD3cGtyPx4FwKefgiqDu0Ae0fTl5a//02ho1LIqccBp7fD0d8Fjv4BZtvY5dI0sOWEiKh2GIAagdnzQZzVwMe7oBoyoVkHh5aCwYGISJ7sbF0Bap5aSssJERHJE1uAGllLCQ5sOSEiouaMAaiRMTgQERHZHrvAiIiISHYYgIiIiEh2GICIiIhIdhiAiIiISHYYgIiIiEh2GICIiIhIdhiAiIiISHYYgIiIiEh2GICIiIhIdmwagBISEjB69GgEBQVBoVBg+/bt1ZaPj4+HQqGwWE6fPm1WLi4uDhEREVAqlYiIiMC2bdsa8C6IiIioubFpACosLESPHj3wwQcf1Oq4M2fOICMjQ1o6dOgg7Tty5AjGjx+PSZMm4fjx45g0aRLGjRuHX3/9tb6rT0RERM2UQgghbF0JAFAoFNi2bRvGjh1bZZn4+HgMHjwYubm58PT0tFpm/Pjx0Gq12LNnj7RtxIgRaNWqFTZv3lyjumi1WqjVamg0Gnh4eNTmNoiIiMhGavP93SzHAEVGRiIwMBBDhgzBgQMHzPYdOXIEMTExZtuGDx+Ow4cPV3k+vV4PrVZrthAREVHL1awCUGBgINavX4+4uDhs3boVnTp1wpAhQ5CQkCCVyczMhL+/v9lx/v7+yMzMrPK8y5cvh1qtlpbg4OAGuwciIiKyPQdbV6A2OnXqhE6dOknr0dHRSEtLwzvvvIMBAwZI2xUKhdlxQgiLbZXNnz8f8+bNk9a1Wi1DEBERUQvWrFqArOnbty/OnTsnrQcEBFi09mRlZVm0ClWmVCrh4eFhthAREVHL1ewD0LFjxxAYGCitR0dHY9++fWZl9u7di379+jV21YiIiKiJsmkXWEFBAVJSUqT1ixcvIikpCV5eXggJCcH8+fORnp6OTZs2AQBWrlyJsLAwdOnSBQaDAZ9//jni4uIQFxcnnWPOnDkYMGAAVqxYgTFjxuDbb7/FDz/8gJ9++qnR74+IiIiaJpsGoD/++AODBw+W1ivG4UyZMgWxsbHIyMhAamqqtN9gMOD5559Heno6nJ2d0aVLF+zatQujRo2SyvTr1w9fffUVXnvtNSxYsADt27fHli1b0KdPn8a7MSIiImrSmsxzgJoSPgeIiIio+WnxzwEiIiIiuh0MQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDsMQERERCQ7DEBEREQkOwxAREREJDs2DUAJCQkYPXo0goKCoFAosH379mrLb926FcOGDYOvry88PDwQHR2N77//3qxMbGwsFAqFxaLT6RrwToiIiKg5sWkAKiwsRI8ePfDBBx/UqHxCQgKGDRuG3bt3IzExEYMHD8bo0aNx7Ngxs3IeHh7IyMgwW1QqVUPcAhERETVDDra8+MiRIzFy5Mgal1+5cqXZ+rJly/Dtt9/if//7HyIjI6XtCoUCAQEB9VVNIiIiamGa9Rggo9GI/Px8eHl5mW0vKChAaGgo2rRpg/vvv9+ihehmer0eWq3WbCEiIqKWq1kHoH//+98oLCzEuHHjpG3h4eGIjY3Fjh07sHnzZqhUKvTv3x/nzp2r8jzLly+HWq2WluDg4MaoPhEREdmIQgghbF0JwNRttW3bNowdO7ZG5Tdv3ownnngC3377LYYOHVplOaPRiF69emHAgAFYvXq11TJ6vR56vV5a12q1CA4OhkajgYeHR63ug4iIiGxDq9VCrVbX6PvbpmOA6mrLli2YPn06vvnmm2rDDwDY2dnhzjvvrLYFSKlUQqlU1nc1iYiIqIlqdl1gmzdvxtSpU/Hll1/ivvvuu2V5IQSSkpIQGBjYCLUjIiKi5sCmLUAFBQVISUmR1i9evIikpCR4eXkhJCQE8+fPR3p6OjZt2gTAFH4mT56MVatWoW/fvsjMzAQAODs7Q61WAwCWLFmCvn37okOHDtBqtVi9ejWSkpKwZs2axr9BIiIiapJs2gL0xx9/IDIyUprCPm/ePERGRmLhwoUAgIyMDKSmpkrlP/roI5SWlmLWrFkIDAyUljlz5khl8vLy8OSTT6Jz586IiYlBeno6EhIScNdddzXuzREREVGT1WQGQTcltRlERURERE1Dbb6/m90YICIiIqLbxQBEREREssMARERERLLDAERERESywwBEREREssMARERERLLDAERERESywwBEREREssMARERERLLDAERERESywwBEREREssMARERERLLDAERERESywwBEREREssMARERERLLDAERERESywwBEREREsuNg6woQEVHzU1ZWhpKSEltXg2TIyckJdna3337DAERERDUmhEBmZiby8vJsXRWSKTs7O7Rt2xZOTk63dR4GICIiqrGK8OPn5wcXFxcoFApbV4lkxGg04sqVK8jIyEBISMht/ftjACIiohopKyuTwo+3t7etq0My5evriytXrqC0tBSOjo51Pg8HQRMRUY1UjPlxcXGxcU1Iziq6vsrKym7rPAxARERUK+z2Iluqr39/DEBEREQkOwxAREREJDsMQERE1KIpFIpql6lTp0plY2JiYG9vj19++cXiPFOnTpWOcXBwQEhICGbOnInc3FyzcmFhYVI5Z2dnhIWFYdy4cfjxxx/Nyl26dAkKhQJJSUnStri4OPTp0wdqtRru7u7o0qULnnvuuXr9fZAJAxAREbVoGRkZ0rJy5Up4eHiYbVu1ahUAIDU1FUeOHMHs2bOxYcMGq+caMWIEMjIycOnSJXzyySf43//+h6efftqi3Ouvv46MjAycOXMGmzZtgqenJ4YOHYqlS5dWWc8ffvgBjz76KB5++GH89ttvSExMxNKlS2EwGOrnF0FmGICIiKhFCwgIkBa1Wg2FQmGxDQA2btyI+++/HzNnzsSWLVtQWFhocS6lUomAgAC0adMGMTExGD9+PPbu3WtRzt3dHQEBAQgJ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NCtnLajExcWhT58+UKvVcHd3R5cuXfDcc8/V6++DTGocgAwGg9Qy8tlnn0Gn0zVYpaoSEBBg0ZKTlZUFBwcHeHt7V1vm5lahyubPnw+NRiMtld/nQkREzVtGRoa0rFy5Eh4eHmbbVq1aBQBITU3FkSNHMHv27Crf/zVixAhkZGTg0qVL+OSTT/C///0PTz/9tEW5119/HRkZGThz5gw2bdoET09PDB06FEuXLq2ynj/88AMeffRRPPzww/jtt9+QmJiIpUuXwmAw1M8vgszUOABFR0dj7NixePzxxyGEwLPPPotp06ZZXRpKdHQ09u3bZ7Zt7969iIqKgqOjY7Vl+vXrV+V5lUolPDw8zBYiImoZAgICpEWtVkOhUFhsA4CNGzfi/vvvx8yZM7FlyxarLwRVKpUICAhAmzZtEBMTg/Hjx2Pv3r0W5dzd3REQEICQkBAMGDAA69evx4IFC7Bw4UKcOXPGaj137tyJu+++Gy+88AI6deqEjh07YuzYsXj//fervb/ffvsNkZGRUKlUiIqKwrFjxyzKJCcnY9SoUXBzc4O/vz8mTZok9eoApp6St956C+3atYOzszN69OiB//73v9K+oUOHYsSIEVKvS15eHkJCQvDqq69K59ixYweioqKgUqng4+ODBx98sNp621qNA9Dnn3+OUaNGoaCgAACg0WiQm5trdampgoICJCUlSc1/Fy9eRFJSElJTUwGYWmYmT54slX/qqafw999/Y968eTh16hQ+/fRTbNiwAc8//7xUZs6cOdi7dy9WrFiB06dPY8WKFfjhhx8wd+7cGteLiIjkRQiBjRs34rHHHkN4eDg6duyIr7/+utpjLly4gO+++076D/BbmTNnDoQQ+Pbbb63uDwgIwMmTJ/HXX3/VuN6FhYW4//770alTJyQmJmLx4sVm34mAqQVs4MCB6NmzJ/744w989913uHr1KsaNGyeVee2117Bx40asW7cOJ0+exD//+U889thjOHjwIBQKBT777DP89ttvWL16NQDT97G/vz8WL14MANi1axcefPBB3HfffTh27Bj279+PqKioGt+HTYg6CAsLEzk5OXU51MyBAwcEAItlypQpQgghpkyZIgYOHGh2THx8vIiMjBROTk4iLCxMrFu3zuK833zzjejUqZNwdHQU4eHhIi4urlb10mg0AoDQaDR1vTUiohanuLhY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HY899hi8vb3h4uKCnj17IjEx0dbVkqXS0lK89tpraNu2LZydndGuXTu8/vrrMBqNtq5as8YA1Ei2bNmCuXPn4tVXX8WxY8dwzz33YOTIkUhNTbV11WTp4MGDmDVrFn755Rfs27cPpaWliImJQWFhoa2rJmu///471q9fj+7du9u6KrKWm5uL/v37w9HREXv27EFycjL+/e9/w9PT09ZVk6UVK1bgww8/xAcffIBTp07hrbfewttvv43333/f1lVr1jgLrJH06dMHvXr1wrp166RtnTt3xtixY7F8+XIb1owAIDs7G35+fjh48CAGDBhg6+rIUkFBAXr16oW1a9fizTffRM+ePbFy5UpbV0uWXn75Zfz8889spW4i7r//fvj7+2PDhg3StoceegguLi74z3/+Y8OaNW9sAWoEBoMBiYmJiImJMdseExODw4cP26hWVJlGowEAeHl52bgm8jVr1izcd999GDp0qK2rIns7duxAVFQUHnnkEfj5+SEyMhIff/yxraslW3fffTf279+Ps2fPAgCOHz+On376CaNGjbJxzZo3vgusEeTk5KCsrAz+/v5m2/39/ZGZmWmjWlEFIQTmzZuHu+++G127drV1dWTpq6++wtGjR/H777/buioE4MKFC1i3bh3mzZuHV155Bb/99hueffZZKJVKTJ482dbVk52XXnoJGo0G4eHhsLe3R1lZGZYuXYoJEybYumrNGgNQI7r5zfJCiHp/2zzV3uzZs3HixAn89NNPtq6KLKWlpWHOnDnYu3cvVCqVratDAIxGI6KiorBs2TIAQGRkJE6ePIl169YxANnAli1b8Pnnn+PLL79Ely5dkJSUhLlz5yIoKAhTpkyxdfWaLQagRuDj4wN7e3uL1p6srCyLViFqXM888wx27NiBhIQEtGnTxtbVkaXExERkZWWhd+/e0raysjIkJCTggw8+gF6vh729vQ1rKD+BgYGIiIgw29a5c2fExcXZqEby9sILL+Dll1/Go48+CgDo1q0b/v77byxfvpwB6DZwDFAjcHJyQu/evbFv3z6z7fv27UO/fv1sVCt5E0Jg9uzZ2Lp1K3788Ue0bdvW1lWSrSFDhuDPP/9EUlKStERFRWHixIlISkpi+LGB/v37WzwW4uzZswgNDbVRjeStqKgIdnbmX9f29vacBn+b2ALUSObNm4dJkyYhKioK0dHRWL9+PVJTU/HUU0/ZumqyNGvWLHz55Zf49ttv4e7uLrXOqdVqODs727h28uLu7m4x9srV1RXe3t4ck2Uj//znP9GvXz8sW7YM48aNw2+//Yb169dj/fr1tq6aLI0ePRpLly5FSEgIunTpgmPHjuHdd9/FtGnTbF21Zo3T4BvR2rVr8dZbbyEjIwNdu3bFe++9xynXNlLV2KuNGzdi6tSpjVsZsjBo0CBOg7exnTt3Yv78+Th37hzatm2LefPmYcaMGbaulizl5+djwYIF2LZtG7KyshAUFIQJEyZg4cKFcHJysnX1mi0GICIiIpIdjgEiIiIi2WEAIiIiItlhACIiIiLZYQAiIiIi2WEAIiIiItlhACIiIiLZYQAiIiIi2WEAIiIiItlhACKiFkmhUGD79u23dY5BgwZh7ty50npYWBifTk3UQjAAEVGzlJWVhf/7v/9DSEgIlEolAgICMHz4cBw5csTWVSOiZoAvQyWiZumhhx5CSUkJPvvsM7Rr1w5Xr17F/v37cf36dVtXjYiaAbYAEVGzk5eXh59++gkrVqzA4MGDERoairvuugvz58/HfffdJ5XLycnBAw88ABcXF3To0AE7duwwO09ycjJGjRoFNzc3+Pv7Y9KkScjJyWns2yEiG2AAIqJmx83NDW5ubti+fTv0en2V5ZYsWYJx48bhxIkTGDVqFCZOnCi1EGVkZGDgwIHo2bMn/vjjD3z33Xe4evUqxo0b11i3QUQ2xABERM2Og4MDYmNj8dlnn8HT0xP9+/fHK6+8ghMnTpiVmzp1KiZMmIA77rgDy5YtQ2FhIX777TcAwLp169CrVy8sW7YM4eHhiIyMxKeffooDBw7g7NmztrgtImpEDEBE1Cw99NBDuHLlCnbs2IHhw4cjPj4evXr1QmxsrFSme/fu0mdXV1e4u7sjKysLAJCYmIgDBw5IrUlubm4IDw8HAJw/f75R74WIGh8HQRNRs6VSqTBs2DAMGzYMCxcuxBNPPIFFixZh6tSpAABHR0ez8gqFAkajEQBgNBoxevRorFixwuK8gYGBDV53IrItBiAiajEiIiJq/OyfXr16IS4uDmFhYXBw4P8VEskNu8CIqNm5du0a7r33Xnz++ec4ceIELl68iG+++QZvvfUWxowZU6NzzJo1C9evX8eECRPw22+/4cKFC9i7dy+mTZuGsrKyBr4DIrI1/mcPETU7bm5u6NOnD9577z2cP38eJSUlCA4OxowZM/DKK6/U6BxBQUH4+eef8dJLL2H48OHQ6/UIDQ3FiBEjYGfH/zYkaukUQghh60oQERERNSb+Zw4RERHJDgMQERERyQ4DEBEREckOAxARERHJDgMQERERyQ4DEBEREckOAxARERHJDgMQERERyQ4DEBEREckOAxARERHJDgMQERERyQ4DEBEREcnO/we2hkgkPuCqCwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cmfgen_collisional_rates.loc[1,0,1,2].plot(logy=False,label=\"TARDIS exc\",legend=True)\n", + "cmfgen_collisional_rates.loc[1,0,2,1].plot(logy=False,label=\"TARDIS deexc\",legend=True)\n", + "#plasma.coll_exc_coeff.loc[1,0,1,2].plot(logy=True,label=\"TARDIS old exc\",legend=True)\n", + "#plasma.coll_deexc_coeff.loc[1,0,1,2].plot(logy=True,label=\"TARDIS old deexc\",legend=True)\n", + "reference_coeff[\"coll_exc_coeff\"].loc[1,0,1,2].plot(logy=False,label=\"reference exc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')\n", + "reference_coeff[\"coll_deexc_coeff\"].loc[1,0,1,2].plot(logy=False,label=\"reference deexc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHACAYAAACMB0PKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABITUlEQVR4nO3deVyU5f7/8ffIMoBsKoIbrqm45lb+XHIpxbL8aptmpplmJ7c0W8zMpUU9Vqeyc8qOZmplJ+tY5lEzzdxKOxpKlpAm6tHcwFRQkf36/YFMDowECswNvJ6Pxzxm5p7rvu/PBeS8u+7rvm+bMcYIAADAgiq4uwAAAIArIagAAADLIqgAAADLIqgAAADLIqgAAADLIqgAAADLIqgAAADLIqgAAADLIqgAAADLIqgAAADLKjNBZfPmzerTp49q1Kghm82m5cuXF+v+zp07p/Hjx6tOnTry9fVVx44dtWPHjmLdJwAA5U2ZCSoXLlzQ9ddfr3/84x8lsr+HH35Y69at0wcffKCffvpJkZGR6tGjh44ePVoi+wcAoDywlcWbEtpsNn3++efq16+fY1laWpqee+45LVmyRGfPnlXz5s01e/ZsdevWrdDbv3jxogICAvTFF1/o9ttvdyxv1aqV7rjjDr300ktF0AsAAODp7gJKykMPPaRDhw7p448/Vo0aNfT555/r1ltv1U8//aSGDRsWalsZGRnKzMyUj4+P03JfX199++23RVk2AADlWrkYUYmLi1PDhg3122+/qUaNGo52PXr00I033qiZM2cWeh8dO3aUt7e3PvroI4WFhelf//qXhgwZooYNG2rv3r1F1RUAAMq1MjNHJT87d+6UMUaNGjWSv7+/47Fp0ybFxcVJkg4dOiSbzZbvY8yYMY5tfvDBBzLGqGbNmrLb7XrzzTd1//33y8PDw13dBACgzCkXh36ysrLk4eGhqKioPEHC399fklSzZk3Fxsbmu51KlSo5Xjdo0ECbNm3ShQsXlJSUpOrVq2vAgAGqV69e0XcAAIByqlwEldatWyszM1Px8fG66aabXLbx8vJSREREobddsWJFVaxYUWfOnNFXX32ll19++VrLBQAAl5SZoHL+/Hnt37/f8f7gwYOKjo5W5cqV1ahRIw0aNEhDhgzR3/72N7Vu3VqnTp3SN998oxYtWqh3796F3t9XX30lY4waN26s/fv366mnnlLjxo310EMPFWW3AAAo18rMZNqNGzeqe/fueZY/+OCDWrRokdLT0/XSSy/p/fff19GjR1WlShV16NBBzz//vFq0aFHo/X3yySeaNGmSfvvtN1WuXFl33323ZsyYoaCgoKLoDgAAUBkKKgAAoOwpF2f9AACA0omgAgAALKtUT6bNysrSsWPHFBAQIJvN5u5yAABAARhjdO7cOdWoUUMVKuQ/ZlKqg8qxY8cUHh7u7jIAAMBVOHLkiGrVqpVvm1IdVAICAiRldzQwMNDN1QAAgIJISkpSeHi443s8P6U6qOQc7gkMDCSoAABQyhRk2gaTaQEAgGURVAAAgGURVAAAgGURVAAAgGURVAAAgGURVAAAgGURVAAAgGURVAAAgGURVAAAgGURVAAAgGURVAAAgEvp8fFK+Ps/lB4f77YaCCoAAMCljIQEnXrrLWUkJLitBoIKAADIyxjp3Al3V1G6754MAACukTFS0jEpIVaKj1X6/h+VcXivdOaQUuIzJAUrJSbG0dyzalV5hYaWWHkEFQAAyoOcEZKEWCn+l8uef5FSkxzNzv4UoFN7AiT5O5admDLV8Tpk9GhVHTumxMomqAAAUJYYI52PdxFIYqWURNfr2DykKtdJoREKblVH/h5hUnA9pRw7pxPTnle1F1+QT9OmkrJHVEoSQQUAgNLqwikpPjZ7VOTy54unXbe3VZAq15eqRkihTf54rnKd5GmXJHldekiS9uyRJPk0bSrfZs2KvTuuEFQAALC65NOXgshlh2viY6XkU1dYwSZVridVbSKFRvzxXKWh5OVToqVfK4IKAABFLD0+XmeXfqLgAf0LN/H04pm8h2vif5Eu5HMdk0p18waSkEaSl+8198OzalWFjB5d4od7nGpw254BACijcq4/4n9zd9dBJSVRStib97DNueNX3mhQ7Uth5LLDNlUbS94Vi60fXqGhJTpx1hWCCgAAxSU9Wfrth7yBJOnoldcJrJUrkDSRqjaS7AElV7eFEFQAALgWGWnS2cNKj4tWxqFYKfE3pezdL0lK+dv/SZXSJUmevpny8s36Y72AGs6Ha6o2yR4h8Ql0Ry8si6ACAMCfSUuWzhyUTh+UTh+49PpA9vvEI5LJuuz6I384sSPY8TqkVyNVvbffH4dtfIOFP0dQAQBAki6evSyAHJBOH/ojlOQ3d0SSvPwU3CFc/p2qSUE1lXLaUycWfKVqUybKp9UNki5df6QEr+haVhBUAADlgzHZ1x3JCSKXj4qcPnDla4/k8AnKvgZJzqNSvT9e+4fKy2Zzvv7Igq/k0+oGt11/pKwgqAAALOGqT+m9XFaWdO6YcwBxhJKDUtr5/Nf3D7ssgFz2XKme5Ff56mrCNSGoAAAs4U9P6c2RmS6dPZwdPHKPipw5JGWm5rMXmxRU648QUilXGLH757NuwVnh+iNlBUEFAGA96RezQ0eeyasHpLNHJJN55XUreErBdXKNilwKJZXqOC4VX5yscP2RsoKgAgAoeannpMSjSj+4RxlHfpXOxytlX5wkKWXOPZJPgiQXp/Tm8PT9YxSkcq5DNYG1JA++3soKfpMAgKKVmZ59lkzib1Li0ezTdxN/y77IWeJv2e8v3cXX5Sm9myUp+5BJyP/zU9XbW+SdvBpQTbLZSrhjcAeCCgCg4IzJvkFe4hHn4JGY8/o36fwJybgYBcnNJ0jBHWrKv0OI5B+qlNMeOvH+FlWbMFw+bTpKPkHyDOWU3vKOoAIApVyRnC2TIy35sgBy6ZF02evEo1LGxT/fjoe3FFgze+JqziOwphQUful9TckeIC/J+ZTe97fIp9NtnNILB4IKAJRyBT5bJitTOnfiUhA5ctmhmd/+GCFJ/r1gO/UPuyyIhGcHD0cgqSVVrCpVqFA0HUS5RlABgLIi9bx04mcXoyCXAsm5Y1JWxp9vx9s/10jIZa+DamYHlGI4c4ZTeuEKQQUArMwYKeWsdO5k9tyPS8/pv/1PGSd/ky6cVsrh7DNkUl7vd+Ub4OWo4Jl9M7zLg0fOqEjOCIlPkFsmqnJKL1whqACAO2RlZR9muSx86NwJ6fzJvM8ZKXlW/9Mb4HWtpqpdb3AeGQmqlX3IpoJHcfcOKDIEFQDlVpFOQs2RmS6dj88VQFw8X4gv2GGYHD5Bkn81KSBM8q+m4GaB8s/wl/yqKOXYeZ2Y84GqTXtOPi1bSeIGeCg7CCoAyq0CT0KVsq+UeqURj8ufk3+XZApeRMWqTgHE9XOY5OXrtFqes2XmfCCflq04WwZlDkEFQPmVkyfOHJYO/p7PIZiTUmpiwbdr88gOF/mGj2qSf6jk4fXn2wPKMYIKgLIl7YJ0IUG68Hv2c/KpS+9PSRdOKf3kcWUkJEgpiUo5ek6Sv1L+OezPJ6FKkqfPpQBSzcXzZQHEr0qJnprL2TIoy2zGmEKMUVpLUlKSgoKClJiYqMDAQHeXA5QbxTK340rSki8LG7nDx+95P/uTi5EluJiEermQ7rVUte8Nl41+VPsjkLjpbBigrCnM9zcjKgAKrVBzO3JLT8k/eOR+n36h8AV62LPnflSskv3sFyJVzH4Ed/GRf4qn5FtJKYdP6cSsOar24gvyadpUEpNQAashqAC4Nhmp2YdVXI5ynMr7Wdq5wu/Dw9spbOQOH3nee/tfceQjzyRUzZFP06ZMQgUsiqAC4A9pydLF09k3nXN6PqP0E8eVkXBSSklSyuFTkqSUV++QArKDR75zO3Kr4Jk3XOQXPOyBHHIByimCClCCSmxuR2ZG9tVMc4LGxTMuwkeu5RfPuLywWA6XFxjb5iPJR5IU0jpLVW+qUrBRD4vM9WASKmB9BBWgBBV6bocx2Wex/FnAyB1CUgpxKm1uFTwl38qSX+XLnispuLmv/FO9JXugUo6d04m3l6naxDHyadlGsgfIMzS01M3t4JLtgPURVICSkpGaHSQk6fhuyeNQwUY5MtOufp/2IMmvUnbg8K2UK3z8EUIc730rSfYAl6MdeeZ2vL1MPjd2Y24HgGJFUEGpUKKnw+YnM126eDY7QKSczX6d+znXZ+m/n1XGmXNSRopSznhJClbK4gkFu25HDg/vXAGjkuvAcfky30qSB/+JAyjd+FcMpcI1nQ6bW2Z69qGRQgYOXTx7VafK/jG344/5HU43j7u5tqp2b3MpaFxh1MPLzxJzOnIwtwNASSGooHTKzMgOG44gcSaf4JGYvTxnWdr5a9+/PUjyDZJ8giXf4OyAkfPa6bmSgpON/M9nSvYApew/rBNTp5X663YwtwNASSGolHGWOWSSW84k0ZSzlwJHrsfFs0o/eVIZp05JqeeUcuR3SVLKnHulgPNSenLhTod1xTvg0ihGUN6QkU/wkE+QVMGjwLtxmtthzx5V4bodAFAwBJUyrkgPmVzOmOy7yeYJGWdzPf8RPPK0NZn57sLl6bCbjaSKkioqpNk5VW1rcoWLINfhwjdY8qn0xzKfIOZvAEApwL/U5VlGqosgcfYKwcPF41rORslRwfOP4JDrEdzMW/6pXpLdXym/ndOJf36hao8Pk0/zFtmnw9aqJ1Wrce01lCDmdgBA4RBUSrPLg4YjVCQp/fhRZcSfkNLOK+XAMUlSynuPSZUzpNRz8vQ8L68Kifle3KvAbBUuCxfBLgJH8GWjHHnDSH6TRPOcDvvPL+TTuXepPmTC3A4AKByCyhUU+9wOY7KDgsvRirNSStKVRzJSL312haDh8pDJqmOO1yHNklW1Rc66Nskn0EXYCHYdLHKHjnzuqQIAwLUiqFzBn87tcEwGvSw4uDxkkk/gyEovgkovCxr2S4dMavjJv7td8vZXyslUnVjyvaqNuF0+ja+T7P7yrB4u1aybHTi8A6QKFYqgjuLFIRMAKJ8IKq6c3CPtXJz9etNs6ecs14HjTyaDFojToZNLD3tgPiMagc7vXQSNPIdMltwjn1sf4pAJAKDUIahcJj0+XhkJCdKvXytl7QeSgpWybV3+VxCt4HnlQyQFCRwcOgEA4IoIKpc5u/QTnXrrrUvvgiXluoLofbeq6rD7ck0G9bV00OCQCQCgNLMZY4y7dp6RkaHp06dryZIlOnHihKpXr66hQ4fqueeeU4UCzJtISkpSUFCQEhMTFRgYeM31OEZUJKXExOjElKl5riBqqYumAQBQChXm+9utIyqzZ8/WO++8o8WLF6tZs2b64Ycf9NBDDykoKEjjxo0r8Xq8QkPzBBGuIAoAgPu4Nahs27ZNffv21e233y5Jqlu3rv71r3/phx9+cGdZAADAItx6Xmrnzp21fv167du3T5L0448/6ttvv1Xv3r1dtk9NTVVSUpLTo7gwtwMAAPdz64jKxIkTlZiYqIiICHl4eCgzM1MzZszQwIEDXbafNWuWnn/++RKpjdNhAQBwP7eOqCxdulQffvihPvroI+3cuVOLFy/Wq6++qsWLF7tsP2nSJCUmJjoeR44cKeGKAQBASXLrWT/h4eF65plnNHr0aMeyl156SR9++KF++eWXP12/qM/6AQAAxa8w399uHVFJTk7Ocxqyh4eHsrKyrrAGAAAoT9w6R6VPnz6aMWOGateurWbNmmnXrl167bXXNGzYMHeWBQAALMKth37OnTunKVOm6PPPP1d8fLxq1KihgQMHaurUqfL29v7T9Tn0AwBA6VOY72+3BpVrRVABAKD0KTVzVAAAAPJDUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJZFUAEAAJbl9qBy9OhRPfDAA6pSpYr8/PzUqlUrRUVFubssAABgAZ7u3PmZM2fUqVMnde/eXV9++aVCQ0MVFxen4OBgd5YFAAAswq1BZfbs2QoPD9fChQsdy+rWreu+ggAAgKW49dDPihUr1K5dO917770KDQ1V69atNX/+fHeWBAAALMStQeXAgQOaO3euGjZsqK+++kqPPvqoHnvsMb3//vsu26empiopKcnpAQAAyi6bMca4a+fe3t5q166dtm7d6lj22GOPaceOHdq2bVue9tOnT9fzzz+fZ3liYqICAwOLtVYAAFA0kpKSFBQUVKDvb7eOqFSvXl1NmzZ1WtakSRMdPnzYZftJkyYpMTHR8Thy5EhJlAkAANzErZNpO3XqpL179zot27dvn+rUqeOyvd1ul91uL4nSAKBMyMzMVHp6urvLQDnj5eUlDw+PItmWW4PK448/ro4dO2rmzJnq37+/tm/frnnz5mnevHnuLAsASj1jjE6cOKGzZ8+6uxSUU8HBwapWrZpsNts1bcetc1QkaeXKlZo0aZJ+/fVX1atXTxMmTNCIESMKtG5hjnEBQHly/PhxnT17VqGhofLz87vmLwugoIwxSk5OVnx8vIKDg1W9evU8bQrz/e3WERVJuuOOO3THHXe4uwwAKDMyMzMdIaVKlSruLgflkK+vryQpPj5eoaGh13QYyO2X0AcAFK2cOSl+fn5urgTlWc7f37XOkSKoAEAZxeEeuFNR/f0RVAAAgGURVAAAgGURVAAAlmCz2fJ9DB061NE2MjJSHh4e+v777/NsZ+jQoY51PD09Vbt2bY0cOVJnzpxxale3bl1HO19fX9WtW1f9+/fXN99849Tu0KFDstlsio6OdixbtmyZ2rdvr6CgIAUEBKhZs2Z64oknivTngWwEFQCAJRw/ftzxeOONNxQYGOi0bM6cOZKkw4cPa9u2bRozZowWLFjgclu33nqrjh8/rkOHDundd9/Vf/7zH40aNSpPuxdeeEHHjx/X3r179f777ys4OFg9evTQjBkzrljn119/rfvuu0/33HOPtm/frqioKM2YMUNpaWlF84OAE4IKAMASqlWr5ngEBQXJZrPlWSZJCxcu1B133KGRI0dq6dKlunDhQp5t2e12VatWTbVq1VJkZKQGDBigtWvX5mkXEBCgatWqqXbt2urSpYvmzZunKVOmaOrUqXmunJ5j5cqV6ty5s5566ik1btxYjRo1Ur9+/fT3v/893/4dPXpUAwYMUKVKlVSlShX17dtXhw4dkiT98ssv8vPz00cffeRo/9lnn8nHx0c//fSTpOwb8z799NMKDw+X3W5Xw4YNrxjUyhKCCgCUA8YYJadluOVRlNcVNcZo4cKFeuCBBxQREaFGjRrpk08+yXedAwcOaM2aNfLy8irQPsaNGydjjL744guXn1erVk179uzRzz//XOC6k5OT1b17d/n7+2vz5s369ttv5e/vr1tvvVVpaWmKiIjQq6++qlGjRul///ufjh07phEjRuivf/2rWrRoIUkaMmSIPv74Y7355puKjY3VO++8I39//wLXUFq5/YJvAIDidzE9U02nfuWWfce80Et+3kXzdfP1118rOTlZvXr1kiQ98MADWrBggR566CGnditXrpS/v78yMzOVkpIiSXrttdcKtI/KlSsrNDTUMdqR29ixY7Vlyxa1aNFCderU0f/7f/9PkZGRGjRo0BXvR/fxxx+rQoUKevfddx2n7S5cuFDBwcHauHGjIiMjNWrUKK1evVqDBw+Wt7e32rZtq3HjxknKvg/eJ598onXr1qlHjx6SpPr16xeoP6UdIyoAgFJjwYIFGjBggDw9s4PPwIED9d///jfPYZru3bsrOjpa//3vfzV27Fj16tVLY8eOLfB+jDFXvA5IxYoVtWrVKu3fv1/PPfec/P399cQTT+jGG29UcnKyy3WioqK0f/9+BQQEyN/fX/7+/qpcubJSUlIUFxfnaPfee+9p9+7d2rlzpxYtWuSoITo6Wh4eHuratWuB+1BWMKICAOWAr5eHYl7o5bZ9F4XTp09r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xTqLksu/w0sK8/1d4EM/lStX1r59+xQSEqLu3bvL29u7OHITAKA4pCdLM2u4Z9/PHpO8K/55uwJYsGCBBgwYIE/P7K+vgQMH6qmnntLevXudDtN0795dc+fOVXJyst59913t27dPY8eOLfB+jDGy2WwuP6tYsaJWrVqluLg4bdiwQd9//72eeOIJzZkzR9u2bZOfn1+edWJjY3X99dc7fdahQwenNlFRUdqwYYP8/f3zrB8XF6fExESlpKSoZ8+eTp+lpaWpdevWjvf33nuvPv/8c82aNUtz585Vo0aNHJ9FR0drxIgRBfshWASTaQEApcLp06e1fPlyvf322/L09JSnp6dq1qypjIyMPHMjK1asqOuuu04tW7bUm2++qdTUVD3//PMF2s/vv/+uhIQE1atXL992DRo00MMPP6x3331XO3fuVExMjJYuXeqyrTHmT/eblZWlPn36KDo62unx66+/qkuXLsrKypKUffjm8s9jYmL073//27Gd5ORkRUVFycPDQ7/++qvTPq40t9TKmEwLAOWBl1/2yIa79l0ElixZolq1amn58uVOy9evX69Zs2ZpxowZjpGW3KZNm6bbbrtNI0eOVI0a+Y8szZkzRxUqVPjTybGXq1u3rvz8/HThwgWXnzdt2lQffPCBLl686PjuzH1qdZs2bbRs2TLVrVvXZT+aNm0qu92uw4cPq2vXrles5YknnlCFChX05Zdfqnfv3rr99tt18803S5Jatmyp9evX66GHHipw39ytwEHlww8/1Ouvv664uDjZbDbHEBQAoBSw2Yrs8Iu7LFiwQPfcc4+aN2/utLxOnTqaOHGiVq1apb59+7pct1u3bmrWrJlmzpypf/zjH47l586d04kTJ5Senq6DBw/qww8/1LvvvqtZs2bpuuuuc7mt6dOnKzk5Wb1791adOnV09uxZvfnmm0pPT89zWCbH/fffr8mTJ2v48OF67rnndOjQIb366qtObUaPHq358+c7DmeFhIRo//79+vjjjzV//nwFBAToySef1OOPP66srCx17txZSUlJ2rp1q/z9/fXggw9q1apVeu+997Rt2za1adNGzzzzjB588EHt3r1blSpV0rRp03TLLbeoQYMGuu+++5SRkaEvv/xSTz/9dGF+FSXraibIMJkWAKwrv0mMpUXuybQ//PCDkWS2b9/usn2fPn1Mnz59jDHZ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fKMxY8bo+++/V2BgoHr27On4ZSYmJqpZs2Z65513dNNNNxVLsQCAkvHpvk8198e5Tsumb5vueD3y+pEa1WpUsey7YsWKTu+zsrLUp08fzZ49O0/bnICQW858yVWrVqlmzZpOn9nt9ivurzDrXT5X02azOa3v6+vrsq6cNh4eHoqKipKHh4fTZ67CWM461atXdzmPJTg42PH6wIEDOnbsmLKysvS///3PEabyq8fqChVU3njjDY0YMUKBgYF5PgsKCtJf/vIXvfbaawQVACjl7m10r7qFd5OUPZIyfdt0Te8wXU2qZJ/tWdW3eEZTXGnTpo2WLVumunXrFviMnKZNm8put+vw4cPq2rVrgfd1tevl1rJlS61fv14PPfRQns9at26tzMxMxcfHF/j7sk2bNjpx4oQ8PT0dk4VzS0tL06BBgzRgwABFRERo+PDh+umnnxQWFqaGDRvK19dX69ev18MPP3zV/XKHQgWVH3/80WWizREZGalXX331mosCALhXVb+8h3aaVGmiplWalngto0eP1vz58zVw4EA99dRTCgkJ0f79+/Xxxx9r/vz5eUYlJCkgIEBPPvmkHn/8cWVlZalz585KSkrS1q1b5e/vrwcffNDlvq52vdymTZumW265RQ0aNNB9992njIwMffnll3r66afVqFEjDRo0SEOGDNHf/vY3tW7dWqdOndI333yjFi1aqHfv3nm216NHD3Xo0EH9+vXT7Nmz1bhxYx07dkyrV69Wv3791K5dO02ePFmJiYl688035e/vry+//FLDhw/XypUr5ePjo4kTJ+rpp5+Wt7e3OnXqpISEBO3Zs0fDhw8v3C+khBUqqJw8edLlacmOjXl6cmVaAECRqlGjhr777jtNnDhRvXr1UmpqqurUqaNbb71VFSpc+SobL774okJDQzVr1iwdOHBAwcHBatOmjZ599tl893e1612uW7du+vTTT/Xiiy/qr3/9qwIDA9WlSxfH5wsXLtRLL72kJ554QkePHlWVKlXUoUMHlyFFyj60tHr1ak2ePFnDhg1znI7cpUsXhYWFaePGjXrjjTe0YcMGx1GPDz74QC1bttTcuXM1cuRITZkyRZ6enpo6daqOHTum6tWr69FHHy1wn9zFZowxBW3coEEDvfrqq7rzzjtdfv7ZZ5/pySef1IEDB4qswPwkJSUpKChIiYmJLg9HAUB5lJKSooMHD6pevXqOyZTXIiE5QZ/u+1T3Nrq32CbQouzJ7++wMN/fhbrgW+/evTV16lSlpKTk+ezixYuaNm2a7rjjjsJsEgBgcVX9qmpUq1GEFLhFoQ79PPfcc/rss8/UqFEjjRkzRo0bN5bNZlNsbKzeeustZWZmavLkycVVKwAAKGcKFVTCwsK0detWjRw5UpMmTVLOUSObzaZevXrp7bffVlhYWLEUCgAAyp9CX/CtTp06Wr16tc6cOaP9+/fLGKOGDRuqUqVKxVEfAAAox676FpGVKlXSDTfcUJS1AAAAOLmquycXh1mzZslms2n8+PHuLgUAAFiEJYLKjh07NG/ePKf7JgAAALg9qJw/f16DBg3S/PnzmecCAACcuD2ojB49Wrfffjt3XgYAAHm4Nah8/PHH2rlzp2bNmlWg9qmpqUpKSnJ6AABgjNEjjzyiypUry2azKTo62t0llQibzably5e7u4xi5bagcuTIEY0bN04ffvhhgS/xPGvWLAUFBTke4eHhxVwlAKA0WLNmjRYtWqSVK1fq+PHjat68ubtLQhFxW1CJiopSfHy82rZtK09PT3l6emrTpk1688035enpqczMzDzrTJo0SYmJiY7HkSNH3FA5AJQv6fHxSvj7P5QeH1/i+05LSytQu7i4OFWvXl0dO3ZUtWrV5OlZ+KtvGGOUkZFR6PVQvNwWVG655Rb99NNPio6OdjzatWunQYMGKTo62uVtu+12uwIDA50eAIDilZGQoFNvvaWMhIRi31e3bt00ZswYTZgwQSEhIerZs6ckKSYmRr1795a/v7/CwsI0ePBgnTp1SpI0dOhQjR07VocPH5bNZlPdunUlZQePl19+WfXr15evr6+uv/56/fvf/3bsa+PGjbLZbPrqq6/Url072e12bdmypcDrrV+/Xu3atZOfn586duyovXv3OvVlxYoVateunXx8fBQSEqK77rrL8VlaWpqefvpp1axZUxUrVlT79u21cePGfH82v/76q7p06SIfHx81bdpU69aty9Pm6NGjGjBggCpVqqQqVaqob9++OnTokFObhQsXqkmTJvLx8VFERITefvttx2fDhg1Ty5YtlZqaKklKT09X27ZtNWjQIEeb7777Tl27dpWfn58qVaqkXr166cyZM/nWfk2MhXTt2tWMGzeuwO0TExONJJOYmFh8RQFAKXPx4kUT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sggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAsggqAADAstweVN5++23Vq1dPPj4+atu2rbZs2eLukgAAgEW4NagsXbpU48eP1+TJk7Vr1y7ddNNNuu2223T48GF3liVJSkhO0NvRbyshOcHdpVwT+mEt9MNa6Ie1lJV+SGWnL1boh1uDymuvvabhw4fr4YcfVpMmTfTGG28oPDxcc+fOdWdZkqSEiwma++NcJVws5X9k9MNS6Ie10A9rKSv9kMpOX6zQD0937TgtLU1RUVF65plnnJZHRkZq69atbqoqW3Jahk4mpkiSTiamKMCW7NZ6rkVOP+KTUhRYofT2Iz6JflgJ/bAW+mE9ZaUvOf1wJ7cFlVOnTikzM1NhYWFOy8PCwnTixAmX66Smpio1NdXxPikpqUhrSkhOUMLFBG3al6DXNn0jn+rSI598ocyUHyRJJiNAJiOwSPdZHGyeSbJ5npMkefgclU91acRS+uEu9MNa6Ie1lJV+SGWnL676Eft7rOPzqr5VVdWvaonV47agksNmszm9N8bkWZZj1qxZev7554utlk/3faq5P2YfdvKprkvPnzk+zzzdQ1mnI4tt/0WlQuXt8qj8tdMy+uE+f9qP33sosxT0w6PydnlUoR9WQT+sp6z0xVU/pm+b7ng98vqRGtVqVInVYzPGmBLb22XS0tLk5+enTz/9VHfeeadj+bhx4xQdHa1NmzblWcfViEp4eLgSExMVGHjtKTVnREXKTo/Tt03X9A7T1aRKE0klnyKvFv2wFvphLfTDWspKP6Sy05eS6EdSUpKCgoIK9P3tthEVb29vtW3bVuvWrXMKKuvWrVPfvn1drmO322W324utpqp+eX/4Tao0UdMqTYttn8WBflgL/bAW+mEt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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cmfgen_collisional_rates.loc[1,0,0,1].plot(logy=False,label=\"TARDIS exc\",legend=True)\n", + "cmfgen_collisional_rates.loc[1,0,1,0].plot(logy=False,label=\"TARDIS deexc\",legend=True)\n", + "#plasma.coll_exc_coeff.loc[1,0,1,2].plot(logy=True,label=\"TARDIS old exc\",legend=True)\n", + "#plasma.coll_deexc_coeff.loc[1,0,1,2].plot(logy=True,label=\"TARDIS old deexc\",legend=True)\n", + "reference_coeff[\"coll_exc_coeff\"].loc[1,0,0,1].plot(logy=False,label=\"reference exc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')\n", + "reference_coeff[\"coll_deexc_coeff\"].loc[1,0,0,1].plot(logy=False,label=\"reference deexc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cmfgen_collisional_rates.loc[1,0,1,29].plot(logy=False,label=\"TARDIS exc\",legend=True)\n", + "cmfgen_collisional_rates.loc[1,0,29,1].plot(logy=False,label=\"TARDIS deexc\",legend=True)\n", + "reference_coeff[\"coll_exc_coeff\"].loc[1,0,1,29].plot(logy=False,label=\"reference exc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')\n", + "reference_coeff[\"coll_deexc_coeff\"].loc[1,0,1,29].plot(logy=False,label=\"reference deexc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## New Chianti method compared to 2014 Chianti method" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "chianti_atom_data_old = AtomData.from_hdf('/home/afullard/tardis-refdata/atom_data/kurucz_atom_chianti_many.h5')\n", + "chianti_atom_data_old.prepare_atom_data([1],'macroatom',[(1, 0)],[])\n", + "coll_matrix = chianti_atom_data_old.nlte_data.get_collision_matrix((1,0), temperature.value)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ty5XX18/o/+ST5X9dGrsp1NjP50a+ym+9Qzoay5MACCNCAGQZtpFqFwux4MPPhjlcjl7lCnNfjo19tOpsZ9Ojf00flPuwgQAZo5pdyYEwJlDhABII0IApBEhANJMqwg9+uij0d7eHmeddVYsX7483njjjeyRppSenp4olUpjHs3Nzdljpdu+fXusXr06Wltbo1QqxUsvvTTm9aIooqenJ1pbW2P+/PmxatWq2LVrV86wib5tP91+++3HHV+XXnppzrCJent745JLLom6urpYuHBh3HDDDfHhhx+OWcYxdeqmTYSef/752LBhQzzwwAPxzjvvxBVXXBGdnZ2xZ8+e7NGmlAsvvDD27t07+nj//fezR0p38ODBWLZsWWzevPmErz/00EOxadOm2Lx5c+zcuTOam5vj2muvHb2P4UzxbfspIuK6664bc3y98srMu8djf39/rFu3Lt58883o6+uLw4cPR0dHRxw8eHB0GcfUOBTTxI9+9KPirrvuGvPc97///eIXv/hF0kRTz4MPPlgsW7Yse4wpLSKKF198cfTro0ePFs3NzcWvf/3r0ef+8Y9/FA0NDcXvfve7hAmnhm/up6Ioiq6uruL6669PmWcqGx4eLiKi6O/vL4rCMTVe0+JM6NChQ/H2229HR0fHmOc7Ojpix44dSVNNTbt3747W1tZob2+PW265JT7++OPskaa0gYGBGBoaGnNslcvluOqqqxxbJ7Bt27ZYuHBhXHDBBXHHHXfE8PBw9kjpRkZGIiKisbExIhxT4zUtIrRv3744cuRINDU1jXm+qakphoaGkqaaelasWBFPP/10vPrqq/HEE0/E0NBQrFy5Mvbv35892pT19fHj2Pp2nZ2d8cwzz8TWrVvj4Ycfjp07d8Y111wT1Wo1e7Q0RVFEd3d3XH755bF06dKIcEyN15S7i/bJfPOjHYqiOOHHPcxUnZ2do7++6KKL4rLLLovzzz8/nnrqqeju7k6cbOpzbH27m2++efTXS5cujYsvvjgWL14cf/zjH2PNmjWJk+VZv359vPfee/HnP//5uNccU6dmWpwJLViwIGbPnn3c/0UMDw8f938b/Ms555wTF110UezevTt7lCnr66sHHVvj19LSEosXL56xx9fdd98dL7/8crz++utjPn7GMTU+0yJC8+bNi+XLl0dfX9+Y5/v6+mLlypVJU0191Wo1Pvjgg2hpackeZcpqb2+P5ubmMcfWoUOHor+/37H1Lfbv3x+Dg4Mz7vgqiiLWr18fL7zwQmzdujXa29vHvO6YGp9p8+247u7uuO222+Liiy+Oyy67LB5//PHYs2dP3HXXXdmjTRn33HNPrF69OhYtWhTDw8Pxq1/9KiqVSnR1dWWPluqLL76Ijz76aPTrgYGBePfdd6OxsTEWLVoUGzZsiI0bN8aSJUtiyZIlsXHjxjj77LPj1ltvTZz6u3ey/dTY2Bg9PT1x0003RUtLS3zyySdx//33x4IFC+LGG29MnPq7t27dunj22Wdjy5YtUVdXN3rG09DQEPPnz49SqeSYGo/Ua/PG6be//W2xePHiYt68ecUPf/jD0Usi+aebb765aGlpKebOnVu0trYWa9asKXbt2pU9VrrXX3+9iIjjHl1dXUVR/POS2gcffLBobm4uyuVyceWVVxbvv/9+7tAJTraf/v73vxcdHR3FueeeW8ydO7dYtGhR0dXVVezZsyd77O/cifZRRBRPPvnk6DKOqVPnoxwASDMt3hMC4MwkQgCkESEA0ogQAGlECIA0IgRAGhECII0IAZBGhABII0IApBEhANKIEABp/h/qGbbnQFWWsQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(coll_matrix[:,:,0])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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hbe3N2XLlqVr165s2bKFggUL8vLLL6f5PVi6dCnvvPMObdq0oUSJEtSoUYNXX32VPn36pNln//79NGnSBFdXV9zc3KhRowa7d+9Ofn7Lli00atQIZ2dn8uXLR8uWLVMETbPZzFtvvUX+/Pnx9vZm5MiRKY4fERHBiy++iJeXF25ubjz++OPs378/+fl/zj5Nnz6d4sWL4+Liwssvv0xSUhLjx4/H29sbLy+vO1Z1v9txRST3iYhJoNfUHQSduY6bkx1z+tYm0DcfrHwLdk3FEmwmQtVu1i71gSjc3I1hQHy0dR73uWC7ra0tY8aM4euvv+b8+fOptjl48CAtW7bk6aef5sCBA8yfP5/NmzczcOBAwDI25NChQ4SHhwOwYcMGChQowIYNGwBITExk69atNGrU6IG/pX/++ScxMTE0a9aMXr168fPPPxMVFZVm+6SkJH7++WeuXbuGvb39XY+fJ08e+vfvz5YtWwgLC0u1jbe3NytWrEj3df+rR48eFC1alF27dhEUFMTbb7+dXM++ffto2rQpFSpUYNu2bWzevJn27duTlJSU3H/WrFnkzZuXHTt2MH78eD766CPWrFkDWKY4b9u2LaGhoaxYsYKgoCCqV69O06ZNuXbtWvIxTpw4wcqVK/n999+ZN28e06dPp23btpw/f54NGzYwbtw43nvvPbZv335fxxWR3ONadDzdpmxn//kI8jnbM7dfHaoWdYff34adkwETPPkNVO1u7VIfmO6WupuEGBhT2Dqv/c5FcMh7X12eeuopqlatyogRI1I9I/Lpp5/SvXv35MGtZcqU4auvvqJRo0ZMmjSJihUr4unpyYYNG+jYsSPr16/njTfe4MsvvwRg165dxMbG8thjjz3w25o2bRpdu3bF1taWChUqULp0aebPn0/fvn1TtOvWrRu2trbExsaSlJRE/vz572iTln/G8pw+fRovL687np88eTI9evTA09OTKlWq8Nhjj9GpUyfq16+f5jHPnj3Lm2++mXzsMmXKJD83fvx4AgMDmThxYvK+ChUqpOhfuXJlRowYkdz3m2++Yd26dTRv3pw///yTgwcPEhYWhqOjIwCfffYZixcv5pdffuHFF18ELGd/pk+fjqurKwEBATRp0oSjR4+yYsUKbGxsKFeuHOPGjWP9+vXUqVPnno8rIrnDlag4ekzdzrHLNyng4sCcvrUp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(coll_matrix[0,1,:],label=\"Old TARDIS scheme\")\n", + "plt.plot(chianti_collisional_rates.loc[1,0,1,0],label=\"New TARDIS scheme\")\n", + "plt.xlabel(\"Shell\")\n", + "plt.ylabel(\"Coeff\")\n", + "plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0.003541\n", + "1 0.004709\n", + "2 0.004400\n", + "3 0.002548\n", + "4 0.001518\n", + "5 0.005794\n", + "6 0.007756\n", + "7 0.007275\n", + "8 0.004203\n", + "9 0.002876\n", + "Name: (1, 0, 1, 0), dtype: float64" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(coll_matrix[0,1,:] - chianti_collisional_rates.loc[1,0,1,0]) / chianti_collisional_rates.loc[1,0,1,0]" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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f/yDsWPH5luuZs2awIXDYLNmzWLjxo20aNGCihUr0q1bN9avX8+6devo0aPHVWf77LPPyMzMpH379s55DocDu93O7t27CQ8Pd84PDg6mXr161KtXj4ULFxIREUGbNm3yjCnInj17gAuFoSDu7u507dqVrl278tRTT/Hqq6/y8ssvM3HiRDw8PPKNf/HFF7nrrrv45ptvWLFiBS+88AKff/45t956K97e3n+b6a+H7wzDwG63Axd+LyEhIc6r5P6sYsWKl13HtVjvtaYCVMr4dxgOX/1Ar5x1RB9IokuDqmZHEpHSzjCu6lCU2V5//XVatmxJgwYN8sxv1aoVu3btuuyelB49ejBu3Di++OILZ9np3r07a9asYcuWLYwbN+6qc82ePZvHHnssXzEbO3Ysc+bM4c0337zkcvXq1WPQoEFMmjSJpUsvf0uT8+fPM2vWLLp160bVqoX/73x4eDi5ublkZmZesgABNGjQgAYNGvDoo48ydOhQPv74Y2699VaaN2/O2rVreemllwr9eX/WqlUrEhIScHNzu2xpKy3r/Ts6BFbKuDe9hWzDk7qWeLZtWW12HBGRYtOsWTOGDRvG+++/n2f+xIkTiY6O5uGHHyY2Npb9+/ezbNkyHnnkEeeYi+cB/e9//3MWoB49erBkyRLOnz9/1ef/xMbG8vPPP3P//ffTtGnTPNPQoUP59NNPycnJKXD5xx57jK+++irPlVcAiYmJJCQksH//fj7//HM6d+5MUlISM2fOLHBdPXr04KOPPiImJoYjR46wfPlynn76aXr27Im/v3++8efPn2fMmDGsW7eO33//nc2bN7N161YaN24MwKRJk9i6dSv//Oc/+eWXX9i7dy8zZ850nkz+d3r16kXHjh0ZOHAgK1eu5MiRI2zZsoVnn3023/ZeieJa799RASptPP04G9YXgKqHl3AuO9fkQCIixeeVV15xngtzUfPmzVm/fj379++na9euRERE8NxzzxESEuIcYxiG8yqvrl27Ope7eKPBSxWEwpg9ezbh4eGXvPnhwIEDOXPmDF999VWByzdr1oxevXrx/PPP55nfsGFDQkNDad26Na+//jq9evXi119/veyhsj59+vDJJ58QGRlJ48aNeeSRR+jTpw8LFiy45Hir1crp06cZMWIEDRo0YPDgwfTr18+5x6dBgwasWrWKHTt20K5dOzp2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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(coll_matrix[1,0,:],label=\"Old TARDIS scheme\")\n", + "plt.plot(chianti_collisional_rates.loc[1,0,0,1],label=\"New TARDIS scheme\")\n", + "plt.xlabel(\"Shell\")\n", + "plt.ylabel(\"Coeff\")\n", + "plt.legend()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Chianti compared to CMFGEN, new method\n", + "\n", + "Differences seem likely to be related to splitting of levels in Chianti compared to CMFGEN. Need to get more detailed CMFGEN data to do a direct comparison." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "cmfgen_levels_h = cmfgen_atom_data.levels.loc[1, 0, :]\n", + "chianti_levels_h = chianti_atom_data.levels.loc[1, 0, :]" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_2973239/2570574510.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " chianti_levels_h[\"energy\"] = chianti_levels_h[\"energy\"].round(14)\n" + ] + } + ], + "source": [ + "chianti_levels_h[\"energy\"] = chianti_levels_h[\"energy\"].round(14)\n", + "grouped_chianti = chianti_levels_h.groupby(\"energy\")['g'].sum().reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjkAAAHACAYAAABAnnkhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABDs0lEQVR4nO3deXRU9d3H8c9NMjPZE8KSRQKGXVkEQSoIblQQFLdaqUUFt0pFeRS1FvUpQmuxVi21rq2C+mjVo6DVallEFisuoKGisiqLhURIIJmsk8zMff6YZCAkgSTMzJ3MvF/n3JO59/7une8M9zCf87vLzzBN0xQAAECEibG6AAAAgGAg5AAAgIhEyAEAABGJkAMAACISIQcAAEQkQg4AAIhIhBwAABCRCDkAACAiEXIAAEBEIuQAAICIFNUhZ82aNZo4caJycnJkGIbeeusty99v8eLFGjdunDp16iTDMLRhw4ag1gQAQKSK6pBTUVGhU045RY8//njYvF9FRYXOOOMMPfjggyGpCQCASBVndQFWGj9+vMaPH9/s+pqaGt133316+eWXVVJSogEDBugPf/iDzj777KC8nyRdffXVkqSdO3e26T0AAIBPVIecY7n22mu1c+dOvfrqq8rJydGbb76p888/Xxs3blTv3r2tLg8AABxFVJ+uOppvv/1Wr7zyil5//XWNHj1aPXv21J133qlRo0Zp4cKFVpcHAACOgZDTjC+++EKmaapPnz5KTk72T6tXr9a3334ryXdKyTCMo0633HKLxZ8EAIDoxOmqZni9XsXGxurzzz9XbGxsg3XJycmSpBNOOEGbNm066n46dOgQtBoBAEDzCDnNGDJkiDwej/bt26fRo0c32cZms6lfv34hrgwAALREVIec8vJybd++3T+/Y8cObdiwQRkZGerTp48mT56sa665Ro888oiGDBmioqIiffDBBxo4cKAmTJgQ0Pfr1q2bJOnAgQPavXu39u7dK0nasmWLJCkrK0tZWVnH83EBAIgqhmmaptVFWGXVqlU655xzGi2fMmWKnn/+edXW1up3v/udXnzxRe3Zs0cdO3bUiBEjNGfOHA0cODDg7ydJzz//vK699tpGbWbPnq3777+/1e8JAEC0iuqQAwAAIhd3VwEAgIhEyAEAABEp6i489nq92rt3r1JSUmQYhtXlAACAFjBNU2VlZcrJyVFMTMv6aKIu5Ozdu1e5ublWlwEAANrg+++/V9euXVvUNupCTkpKiiTfl5SammpxNQAAoCWcTqdyc3P9v+MtEXUhp/4UVWpqKiEHAIB2pjWXmnDhMQAAiEiEHAAAEJEIOQAAICIRcgAAQEQi5AAAgIhEyAEAABGJkAMAACISIQcAAEQkQg4AAIhIhBwAABCRCDkAACAiEXIAAEBEiroBOgEACCXTNOv+SuaRy/zzkqlD7RpuX/dXLdvP4QuO3OextjNlHrH90evwrztiv7ExhrLTEmQ1Qg6AdsU0TXm8pjymKa9X8pr1rxsub7zM99fjNWWaddt5TXnrXtevN03VLW/42jfJ/9esX1ZXg2nWvefh6w/bv3nYtt66H4KG630/HYe3Mf3v03jeVP37+JbV779+Hzps3mzwun4/DfchHar78G10+PZ12/h/ZI+YP1Sbb6P6/fjbHNZOR67ToffWke2a2I/UsFZfu8P3VbfkiEDQIFQc/kN/tHZ1+zm87eHvd6jGhttFsy4pDn1274+tLoOQA0Q6r9dUjccrl9urGrdXNZ66v26vaj31k9ny13Xbub2mb/KYcnvr5uuXe3wBotbj9f31mvJ4ffvw1G3n8Xrl9vhCgbs+jHgPrfd6m1rulTfKfzyAYDGMur/+eaPBfMM2RzRusJ3ksIXH1TCEHCDE3B6vKlweVdS4VVnjUXWtb6qq9ai61lv3t25ZTRPL/K+9crk9qnE3DDCu2kNBxuX2qNYTXanAMKRYw1BMjKFYw1BsjKEYw9d9HhtjyDAOLTfqlscYvjYxxqE29dv42quujaGYmEOvDf9y1c0bij3KejXR3tfm0DbSYW1ifD8lR7ZruMzXtn7eUP28GuzPMA79Neq+qJi69vX7NuRbaRy2jXFYG8P/3octU/0P32F11Lc5Yp/Nba9G+zty375GxhH70RH7OnxeR9Rw+A94fb2H2h99n4f2ZRyxj8b71pHv79++6W0Pbdh8ezWxzZG1NbXumPs6fCcRipADtJDHa8pZVauSqlqVVNaopLJWpVW1Kne5VVE3lbs8vr81jZf5Xrvlcnst/Rz2uBg5YmNki4uRPTZGcbGG7LExstW9tsUeWm6rW2474nX9urgYQ3H1f2N82zRYVj/vXxej2Bjfsti6dbF1YSQu1vcjX9/m8CnusNe+NnUhpm7bmBgdFlwi/z9uAC1DyEFUqvV4tb/MpR+c1TpYF1h8U01diPGFmdLKGh2sW+6sdge0BlusoUR7nOJtMUqwxSq+bvK9jlGCPVbxcbGKtx+27LB28bZYOeJiZK+bHHWTPTZWDpsvqNQvr29jj40hBACIGoQcRBTTNHWwslaFpdX6oaxaP5RW6wenS4XOau1zVqvQ6ZsvrnC1+cLAZEec0hJsSk+0KS3BpiRHnJIdcUpyxPpe2+MOW+ZbXv/68GWOuNjAfngAQAOEHLQ7ZdW1+nZ/hb7dV67t+8u1u7iyLrxUa5/TpRpPy04HxcUY6pLiUMdkhz+wpCfalJ5g9/1NtCu9flmiTWl1y22x4XFBHQDg6Ag5CEumaWp/uUvb95UfCjR1U6Gz+pjbd0yyq0tqvLJSHcpMjfdPWWkOdUnxve6YZFdMDKduACBSEXJgKdM0taekSlsKy+oCzaEwc7RrYDqnONSzc5J6dUlWXqdkZafFK7Mu0HROcXAqCABAyEHoFZW7tPbbYq3dXqR/by/Sfw9WNdnOMKRuGYnq2TlZvbokq1fnZPWs+5uWaAtx1QCA9oaQg6CrcLn12c4D+mibL9RsLixrsD4uxlCvLocCTK8uyXU9NEmKt9EjAwBoG0IOAq7W49V/vi/RR9uL9dH2In2x+6DcRzym9qTsVI3q1VEje3XS8BMzlOTgUAQABBa/LDhupmlq6w/l+vf2Iq3dXqRPvitWRY2nQZuuHRI0qlcnndGrk0b07KhOyQ6LqgUARAtCDtrM7fHqnS/36omV32r7vvIG6zok2jSypy/UjOrVSd06JlpUJQAgWhFy0Go1lU598/Z8PbSrl9YeTJMkxdtiNDyvo87o2VFn9Oqkk7NTuT0bAGApQg5arLrsoDa9/bDytr2gwSrTxe6ztTnpFl0/Kk/XjOiulHjueAIAhA9CDo6pqmS/Nv/jIfXa8ZKGqFKStFtZyhw0Rv++5Bwl2jmMAADhh18nNKvc5dbXr/6vBu5YoCHyPWX4OyNXewbcrNMuvF7dHFw8DAAIX4QcNFJaVavnP9qpBR/t0HW1hfpRXLW2Gnn6YfCt+tGEKeph47ABAIQ/fq3gV7J3u3b84/d6qvAkLXOdLEn6oNNlOu2kczV83M/Vh6ESAADtCCEHqigp0vaXbtPJ+9/TEMOjG80+2tXlYd0yprcmDMxWLHdJAQDaIUJOlKsuP6jCJ87XKbXbJEPKtw2Wecad+teZZ3ILOACgXSPkRLGaqnLt+stE9a3dpgNmir499xkNO3OCDINwAwBo/wg5UcrtqtL2v1ysk10bVWYmaO/Ev+u0YWdaXRYAAAETY+Wbz5s3T6eddppSUlLUpUsXXXLJJdqyZcsxt1u9erWGDh2q+Ph49ejRQ08//XQIqo0cXq+pWW99o61ldlWaDn079gUNIOAAACKMpSFn9erVmj59uj755BMtX75cbrdbY8eOVUVFRbPb7NixQxMmTNDo0aOVn5+ve+65RzNmzNCiRYtCWHn7ZZqmZr/9tV7PL9RdnunKH/eGBp8xzuqyAAAIOMM0TdPqIurt379fXbp00erVq3XmmU33LNx99916++23tWnTJv+yadOm6T//+Y8+/vjjY76H0+lUWlqaSktLlZqaGrDa2wPT69U7L/9Ft33dQ6YRo/mTBuviwSdYXRYAAMfUlt/vsLomp7S0VJKUkZHRbJuPP/5YY8eObbBs3Lhxeu6551RbWyubreH4SS6XSy6Xyz/vdDoDWHE7YprasOBWXfTfl1RrGyXXBU8ScAAAEc3S01WHM01TM2fO1KhRozRgwIBm2xUWFiozM7PBsszMTLndbhUVFTVqP2/ePKWlpfmn3NzcgNfeHnzxf7/WkP++JEnqPGCMfn56d4srAgAguMIm5Nxyyy368ssv9corrxyz7ZG3ONefcWvq1udZs2aptLTUP33//feBKbgdyX/1tzr1O9/F2at63KkzJ820uCIAAIIvLE5X3XrrrXr77be1Zs0ade3a9ahts7KyVFhY2GDZvn37FBcXp44dOzZq73A45IjigSQ3vPmohmx+WJK0uutNOuvq+yyuCACA0LC0J8c0Td1yyy1avHixPvjgA+Xl5R1zmxEjRmj58uUNli1btkzDhg1rdD1OtPvyvb9q0Ia5kqQ1XSbrzOse5EF/AICoYWnImT59ul566SX9/e9/V0pKigoLC1VYWKiqqip/m1mzZumaa67xz0+bNk27du3SzJkztWnTJi1YsEDPPfec7rzzTis+Qtj6cNt+Pbn2B9UqVv/ucKlG3fS4jJiwOTsJAEDQWXoLeXO9CgsXLtTUqVMlSVOnTtXOnTu1atUq//rVq1fr9ttv19dff62cnBzdfffdmjZtWoveMxpuIV+384Cuee4zVdV6dF2vSt0z9VLFxYXFmUkAANqkLb/fYfWcnFCI9JDz7ecrNP3tvdrsytBZfTrrb9cMkz2OHhwAQPvWlt9vfv0iyK4vP1TmO5P1vP5XE3NdevqqoQQcAEDU4hcwQvx3y+dKW/wzJatK++25mjflPCXYY60uCwAAyxByIoDHXau4V3+mdJVrU2xf5d78DyUnp1hdFgAAliLkRIAtn7ynLHOfDipFnae9o/QOzQ+LAQBAtCDkRICKfN8I7Fs6nK1OnTOP3hgAgChByGnnPO5a9SpeKUmKP+Uyi6sBACB88PCUdu7zbwv1Ye1YnWX7WoNGXmh1OQAAhA1CTjv3z82letFzmQoGz9Awu93qcgAACBucrmrHPF5T//rKN1jpBQOzLa4GAIDwQshpx7754iMNr1itzHi3zujVyepyAAAIK5yuaseqP/6rnrD/Qx93mCh73MVWlwMAQFihJ6ed8rhr1bPurqqEQZdaXA0AAOGHkNNObf10iTLkVImSdTJ3VQEA0Aghp50qz39DkrQl/SzZHQ6LqwEAIPwQctohj9utHkX1DwD8icXVAAAQngg57dDWz5aoo0pVomSdxKkqAACaRMhph/ZsXC2JU1UAABwNIaed8XpN3VM0TqNdf5L3jNutLgcAgLDFc3LamfW7DmpfmUsp8Sdo6JChVpcDAEDYoiennfnXf3ZLksaenCV7HP98AAA0h56cdsTrduvGDZdrpC1XCb0fs7ocAADCGiGnHdmybplO0n4lxVYq4eQ+VpcDAEBY43xHO1L2+euSpM3pZ3JXFQAAx0DIaSe8brd6Fn0gSXIMusziagAACH+EnHZiy7pl6qgSOZWkk8+4yOpyAAAIe4ScdqLsC99YVZvTRsvuiLe4GgAAwh8hpx3wut3quX+FJMnOqSoAAFqEu6vagS927te7tRM1xvalThvFqSoAAFqCkNMO/PObA3reM16lp9ygUY4Eq8sBAKBd4HRVmPN6Tf3rqwJJ0gUDsy2uBgCA9oOQE+a+2fCRzqpYoq6OKo3q3cnqcgAAaDc4XRXmKj5eqIdsb+iztO/liLvc6nIAAGg36MkJY16PRz38d1VdanE1AAC0L4ScMLZ1/XJ11kE5zUSdNOpiq8sBAKBdIeSEsdL1vrGqtqSPloO7qgAAaBVCTpjyejzK2+8bq8o2kAcAAgDQWoScMLV1/fvqogMqMxN0Eg8ABACg1Qg5YWrHVx/LYxranD5ajvhEq8sBAKDdIeSEIa/X1P0/jNKPXE/KNerXVpcDAEC7RMgJQ1/sPqgfnC65HB112pDBVpcDAEC7RMgJQ0v/s1OS9OOTM+WIi7W2GAAA2imeeBxmvB6Prsv/qcbYO6u2x5NWlwMAQLtFyAkzWz9foX4qUrJRIduAvlaXAwBAu8XpqjBTUv8AwLRRik9IsrgaAADaL0JOGPF6POqx731JUhwPAAQA4LgQcsLI1s8/UBcdULmZoH6MVQUAwHEh5ISR+lNVmzlVBQDAcSPkhAmvx6M8TlUBABAw3F0VJvJ3F+nV2p9oXNwGjeJUFQAAx42QEyZWbSvR656zVTPw5/oxp6oAADhunK4KE0XlLklSr87JFlcCAEBkIOSEidSDm3SqsVWdYyusLgUAgIjA6aowceG+pzXL8YXWlTokDba6HAAA2j16csKEw1MuSbIldbC4EgAAIgMhJ0wk1IUcezIhBwCAQCDkhIlE03ctTkIKIQcAgEAg5IQB0+tVij/kZFhcDQAAkYGQEwZc1ZWyG25JUlJaR4urAQAgMhBywkC584AkyWMaSkpOs7gaAAAiA7eQhwFnbZyeqr1KaTaPZsTGWl0OAAARgZATBkrMBD3nmaDctATNsLoYAAAiBKerwoCzqlaSlOKwWVwJAACRg5ATBmpK9upUY6t62oqsLgUAgIjB6aowkLb7fS12/FYbykdKutTqcgAAiAj05IQBb1WpJKnWnmpxJQAARA5CTjio9oUcDyEHAICAsTTkrFmzRhMnTlROTo4Mw9Bbb7111ParVq2SYRiNps2bN4em4CCJcflCjungGTkAAASKpdfkVFRU6JRTTtG1116rn/zkJy3ebsuWLUpNPdTr0blz52CUFzKxNWWSJCOenhwAAALF0pAzfvx4jR8/vtXbdenSRenp6YEvyCK2WqckKTYx3dpCAACIIO3ympwhQ4YoOztbY8aM0cqVK4/a1uVyyel0NpjCjcNdLkmKS2IEcgAAAqVdhZzs7Gz99a9/1aJFi7R48WL17dtXY8aM0Zo1a5rdZt68eUpLS/NPubm5Iay4Zf4RN05/dl8ms3M/q0sBACBiGKZpmlYXIUmGYejNN9/UJZdc0qrtJk6cKMMw9Pbbbze53uVyyeVy+eedTqdyc3NVWlra4LoeKw1/4H3tK3Ppn7eO0oATuPgYAIAjOZ1OpaWlter3u1315DTl9NNP17Zt25pd73A4lJqa2mAKN2XVbklSWgLDOgAAECjt/onH+fn5ys7OtrqMNqupqVU/92Y5jUSlOhiBHACAQLE05JSXl2v79u3++R07dmjDhg3KyMhQt27dNGvWLO3Zs0cvvviiJGn+/Pk68cQT1b9/f9XU1Oill17SokWLtGjRIqs+wnErL9mvNx2zJUkex7UWVwMAQOSwNOSsX79e55xzjn9+5syZkqQpU6bo+eefV0FBgXbv3u1fX1NTozvvvFN79uxRQkKC+vfvr3fffVcTJkwIee2BUuE8oAxJ5WaCkuM4XQUAQKCEzYXHodKWC5eCaVv+GvX+x0QVqpOy7v/W6nIAAAhLUXnhcXtXXXZQklQVk2RxJQAARBZCjsVqKw5Ikqpjky2uBACAyELIsZi7skSS5IpLsbYQAAAiDCHHYt6qEkmS20bIAQAgkNr9c3Laux3xA/Sp+zJlZZyqYVYXAwBABCHkWGyz7SS94E7UrTm9rC4FAICIwukqiznrhnRIiSdvAgAQSIQciyU4v1NPY486xNVaXQoAABGFkGOxq/Y9ohWOu9Sz9GOrSwEAIKIQciyW4CmXJNmSMiyuBACAyELIsViC1xdyHMnp1hYCAECEIeRYLNmskCQlpNKTAwBAIBFyLORxu5VsVEmSkgg5AAAEFCHHQuXOg/7XyWkdLawEAIDIQ8ixUEVpsSSpyrTL7oi3uBoAACILT6CzUKnHrtfdlynFbug6q4sBACDCEHIsdNBI1Z/cl6tXRjIhBwCAAON0lYXK6oZ0SGVIBwAAAo5fVwtVl/ygnsYeZdsdVpcCAEDEIeRYKHPX21rheFjrS8dI+rHV5QAAEFE4XWUhs6pUkuSxp1hcCQAAkYeQYyHD5ZQkeR2pFlcCAEDkIeRYKLbGF3IUn25pHQAARCJCjoXi6kJObAI9OQAABBohx0I2t28E8pjEdGsLAQAgAhFyLBTv8YUce2IHiysBACDycAu5hd6NOUuprl4a3qmH1aUAABBxCDkWWuAer1J3rd7P7GN1KQAARBxOV1nE6zVVVl0riWEdAAAIBn5dLVJRXa087ZFTSYQcAACCgF9Xi1QU79EKx12qMeNki7vS6nIAAIg4nK6ySJWzWJJUZiTJiOGfAQCAQOPX1SJVZQclSZVGksWVAAAQmQg5Fqkp94WcqthkiysBACAyEXIsUltRIklyEXIAAAiKNoWcioqKQNcRdbxVJZKkWluKtYUAABCh2hRyMjMzdd111+nf//53oOuJGvUhx21ncE4AAIKhTSHnlVdeUWlpqcaMGaM+ffrowQcf1N69ewNdW0Tb6eirhe5x2tthuNWlAAAQkdoUciZOnKhFixZp7969+uUvf6lXXnlF3bt314UXXqjFixfL7XYHus6Is8E+THPcU/TfE8ZbXQoAABHpuC487tixo26//Xb95z//0aOPPqr3339fl19+uXJycvSb3/xGlZWVgaoz4jjrh3RIsFlcCQAAkem4nnhcWFioF198UQsXLtTu3bt1+eWX6/rrr9fevXv14IMP6pNPPtGyZcsCVWtEsZXvVWc5lWa3uhIAACJTm0LO4sWLtXDhQi1dulQnn3yypk+frquuukrp6en+NoMHD9aQIUMCVWfEubVojh6L36YNJc9IOtHqcgAAiDhtCjnXXnutfvazn+mjjz7Saaed1mSbHj166N577z2u4iJZgqdckuRIzrC4EgAAIlObQk5BQYESExOP2iYhIUGzZ89uU1HRIMn0PWsoPqWDxZUAABCZ2hRy3G63nE5no+WGYcjhcMhu50KTozG9Xl/IMaTEVHpyAAAIhjaFnPT0dBmG0ez6rl27aurUqZo9e7ZiGGG7keqqCiUYHklSclpHi6sBACAytSnkPP/887r33ns1depUDR8+XKZpat26dXrhhRd03333af/+/Xr44YflcDh0zz33BLrmdq+8tFgJktxmjBKTeOIxAADB0KaQ88ILL+iRRx7RFVdc4V920UUXaeDAgXrmmWe0YsUKdevWTQ888AAhpwkVzgPqLKncSFQ6PV0AAARFm35hP/744yZvDx8yZIg+/vhjSdKoUaO0e/fu46suQjk9di10j9PSuHOtLgUAgIjVppDTtWtXPffcc42WP/fcc8rNzZUkFRcXq0MH7hxqSnFcF81xT9H/pf3C6lIAAIhYbTpd9fDDD+unP/2p/vWvf+m0006TYRhat26dNm/erDfeeEOStG7dOk2aNCmgxUYKZ5VvSIcUB0M6AAAQLG0KORdddJG2bt2qp59+Wlu2bJFpmho/frzeeustnXjiiZKkX/7yl4GsM6JUlR1QZ5UoI56eLgAAgqXVIae2tlZjx47VM888o3nz5gWjpojX/btXtC7+CX12YIKkkVaXAwBARGr1NTk2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ZBhGo2nz5s0hrLjlyksP+F8npXawsBIAAKKPpSHntdde02233aZ7771X+fn5Gj16tMaPH6/du3cfdbstW7aooKDAP/Xu3TtEFbdORWmx768Zrzib3eJqAACILpaGnEcffVTXX3+9brjhBp100kmaP3++cnNz9dRTTx11uy5duigrK8s/xcbGhqji1qkq8/XklBtJFlcCAED0sSzk1NTU6PPPP9fYsWMbLB87dqzWrl171G2HDBmi7OxsjRkzRitXrgxmmceluuygJKkyhhHIAQAINcvurioqKpLH41FmZmaD5ZmZmSosLGxym+zsbP31r3/V0KFD5XK59H//938aM2aMVq1apTPPPLPJbVwul1wul3/e6XQG7kMcQ7knTp95+6oyvqvyQvauAABACoNbyA3DaDBvmmajZfX69u2rvn37+udHjBih77//Xg8//HCzIWfevHmaM2dO4Apuhd3JA3V3zWyd26OLzrakAgAAopdlp6s6deqk2NjYRr02+/bta9S7czSnn366tm3b1uz6WbNmqbS01D99//33ba65tZxVPO0YAACrWBZy7Ha7hg4dquXLlzdYvnz5co0cObLF+8nPz1d2dnaz6x0Oh1JTUxtMoeKsrhu3KoFxqwAACDVLuxhmzpypq6++WsOGDdOIESP017/+Vbt379a0adMk+Xph9uzZoxdffFGSNH/+fJ144onq37+/ampq9NJLL2nRokVatGiRlR+jWadv/5OucvxLXx+8VtIAq8sBACCqWBpyJk2apOLiYs2dO1cFBQUaMGCA3nvvPXXv3l2SVFBQ0OCZOTU1Nbrzzju1Z88eJSQkqH///nr33Xc1YcIEqz7CUTmqi5RplGhHnGl1KQAARB3DNM2o+gV2Op1KS0tTaWlp0E9dbXjofA2u/FifDZit4ZfPDOp7AQAQydry+235sA6RzF5bJkmKTWRIBwAAQo2QE0QJnnJJkj053dpCAACIQoScIErw+kKOI5kRyAEACDVCThAlmRWSpPgUTlcBABBqPKUuSDwerzaZ3ZRmVqhTWierywEAIOoQcoKk3OXRFTWzJUlbMlr+BGcAABAYnK4KkvqnHcfbYuSIi7W4GgAAog8hJ0hKq3whJyWeIR0AALACp6uCZddafeq4WTu8vST92OpqAACIOoScIKktL1amUaISo9zqUgAAiEqcrgqS2oqDkiRXXIrFlQAAEJ0IOUHirSqRJNXaCDkAAFiBkBMkZrVTkuS2B3cQUAAA0DRCTpAY1aWSJC8hBwAASxBygiS2xteTo4Q0awsBACBKEXKCZL/StcXbVZ7kHKtLAQAgKhFyguTFxCkaV/OQintcbHUpAABEJUJOkJRVuyVJqQk88RgAACsQcoKkfuyqVIZ1AADAEjzxOEgWVs6Q1+6VvfYNSR2sLgcAgKhDyAkC0+tVnvlfxcaYKkpMsrocAACiEqergqCivFSxhilJSkrraHE1AABEJ0JOEJSXFkuSasw4xSckWlwNAADRiZATBFVOX8gpNxJlxPAVAwBgBX6Bg6CqzDcCeYWRbHElAABEL0JOENSUl0iSqmIJOQAAWIWQEwQVHmmzN1f7bSdYXQoAAFGLW8iDYHvK6Zpc8wdN6JulM6wuBgCAKEVPThA4q3jaMQAAViPkBIF/SAfGrQIAwDKEnCAYteMxLbPfpdNK/mV1KQAARC1CThCkVO9Rn5g9So1xWV0KAABRi5ATBLbaMklSbGK6tYUAABDFCDlB4PBUSJLikhh9HAAAq3ALeRAkeMolSfakdGsLAQBIkjwej2pra60uA8dgt9sVE8DhkAg5QZBk+kJOQgo9OQBgJdM0VVhYqJKSEqtLQQvExMQoLy9Pdrs9IPsj5ASY6fUq2ayQDCkhtaPV5QBAVKsPOF26dFFiYqIMw7C6JDTD6/Vq7969KigoULdu3QLyb0XICbDq6mrtNrOVqkqlpBFyAMAqHo/HH3A6duT/4/agc+fO2rt3r9xut2y243/WHCEnwJzuGI2reUgxhvRtSrrV5QBA1Kq/BicxMdHiStBS9aepPB5PQEIOd1cFWFnd045T4m10iwJAGOD/4vYj0P9WhJwAK61yS5JSE+gkAwDASoScAIvZ9W8tt9+l37ifsLoUAEA7VlhYqFtvvVU9evSQw+FQbm6uJk6cqBUrVkiSTjzxRBmGoVdffbXRtv3795dhGHr++ef9y+rbHz517dq1wXb5+fmaNGmSsrOz5XA41L17d1144YV65513ZJqmJGnnzp2N9lM/ffLJJ5Kk559/XoZh6Pzzz2+w/5KSEhmGoVWrVgXwm2oeISfAPM5C9Y7Zoxztt7oUAEA7tXPnTg0dOlQffPCBHnroIW3cuFFLlizROeeco+nTp/vb5ebmauHChQ22/eSTT1RYWKikpKRG+507d64KCgr8U35+vn/dP/7xD51++ukqLy/XCy+8oG+++Uavv/66LrnkEt13330qLS1tsK/333+/wb4KCgo0dOhQ//q4uDitWLFCK1euDNTX0mqcUwkwd2WJJMkVl2JtIQCAduvmm2+WYRj67LPPGoSV/v3767rrrvPPT548WX/605/0/fffKzc3V5K0YMECTZ48WS+++GKj/aakpCgrK6vR8oqKCl1//fW64IILtHjxYv/ynj17avjw4brhhhv8PTn1Onbs2OS+6iUlJemKK67Qr3/9a3366act//ABRE9OgJlVJZIkj52QAwDhxDRNVda4LZmODAhHc+DAAS1ZskTTp09vsjcmPT3d/zozM1Pjxo3TCy+8IEmqrKzUa6+91iAItcSyZctUXFysX/3qV822actFwffff782btyoN954o9XbBgI9OYFW7ZQkeeypFhcCADhcVa1HJ/9mqSXv/c3ccUq0t+wnd/v27TJNU/369WtR++uuu0533HGH7r33Xr3xxhvq2bOnBg8e3GTbu+++W/fdd59//ve//71mzJihrVu3SpL69u3rX7du3Tqdc845/vlXX31VF154oX9+5MiRjYZgKC0tVWxsrH8+JydH//M//6N7771Xl1xySYs+TyARcgIspsZ3ztKMT7O4EgBAe1Tf69PSnpMLLrhAN910k9asWaMFCxYctRfnrrvu0tSpU/3znTp1arbtoEGDtGHDBklS79695Xa7G6x/7bXXdNJJJzVYdnjAqXf33XfrmWee0YIFC3TFFVe04BMFDiEnwOJqfD05BiEHAMJKgi1W38wdZ9l7t1Tv3r1lGIY2bdrUot6PuLg4XX311Zo9e7Y+/fRTvfnmm8227dSpk3r16tXke0rSli1bdPrpp0uSHA5Hk23r5ebmHnV9vfT0dM2aNUtz5sxp0BMUClyTE2BOM1EFZoaU1Hw6BgCEnmEYSrTHWTK15nqWjIwMjRs3Tk888YQqKioarW9qsNHrrrtOq1ev1sUXX6wOHVo/OPTYsWOVkZGhP/zhD63etiVuvfVWxcTE6M9//nNQ9t8cenIC7LHE6covmqxneg09dmMAAJrw5JNPauTIkRo+fLjmzp2rQYMGye12a/ny5Xrqqae0adOmBu1POukkFRUVtXkIi+TkZD377LOaNGmSLrjgAs2YMUO9e/dWeXm5lixZIqnxqaji4mIVFhY2WJaenq74+PhG+4+Pj9ecOXMa3P4eCvTkBJizyjesQ2r88Y+5AQCITnl5efriiy90zjnn6I477tCAAQN03nnnacWKFXrqqaea3KZjx45KSEho83teeumlWrt2rRITE3XNNdeob9++Ovfcc/XBBx80uuhYkn784x8rOzu7wfTWW281u/8pU6aoR48eba6vLQyzNfe1RQCn06m0tDSVlpYqNTXwd0Cd9sD72l/m0rszRql/DtflAIBVqqurtWPHDuXl5TXZu4Dwc7R/s7b8fnO6KsAW1typartN6d43JBFyAACwCiEngFzVlRpg7JAMqTSx8QOcAABA6HBNTgCVlx7wv05OTbeuEAAAQMgJpEpnsSSpzExQbBydZAAAWImQE0BVZQclSRUGp6oAALAaISeAXOW+01WVMckWVwIAAAg5AVRT7hu3qjqWkAMAgNUIOQFUVetWgZmhCntHq0sBACDqcXVsAH2dfq6ucuXospNP0GlWFwMAQJSjJyeAnNW+IR1S4smOAIDgMgzjqMMorFq1SoZhNDmgZ6Ddf//9Gjx4cNDfp7UIOQFUVu2WJKUmMG4VAOD4FBYW6tZbb1WPHj3kcDiUm5uriRMnasWKFS3afuTIkSooKFBaWmCfvt9UuLrzzjtbXFco0eUQQGfuelwX2T/XQecvJPW1uhwAQDu1c+dOnXHGGUpPT9dDDz2kQYMGqba2VkuXLtX06dO1efPmY+7DbrcrKysrBNX6RjFPTg6/m27oyQmgzlXfaVjMVqUZFVaXAgBox26++WYZhqHPPvtMl19+ufr06aP+/ftr5syZ+uSTT/ztioqKdOmllyoxMVG9e/fW22+/7V935Omq4uJiXXnlleratasSExM1cOBAvfLKKw3e9+yzz9aMGTP0q1/9ShkZGcrKytL999/vX3/iiSdK8o1YbhiGf57TVVHA7i6XJMUlpVtbCACgeTUVzU+11a1oW9Wytq104MABLVmyRNOnT1dSUuOHy6anp/tfz5kzR1dccYW+/PJLTZgwQZMnT9aBAwcabSP5RvgeOnSo/vnPf+qrr77SL37xC1199dX69NNPG7R74YUXlJSUpE8//VQPPfSQ5s6dq+XLl0uS1q1bJ0lauHChCgoK/PPhyvLTVU8++aT++Mc/qqCgQP3799f8+fM1evToZtuvXr1aM2fO1Ndff62cnBz96le/0rRp00JYcfPiPb6QY0vqYHElAIBm/T6n+XW9x0qTXz80/8deUm1l0227j5KufffQ/PyBUmVx43b3l7aqvO3bt8s0TfXr1++YbadOnaorr7xSkvT73/9ef/nLX/TZZ5/p/PPPb9T2hBNO0J133umfv/XWW7VkyRK9/vrr+tGPfuRfPmjQIM2ePVuS1Lt3bz3++ONasWKFzjvvPHXu3FmSL2iF6lTY8bC0J+e1117TbbfdpnvvvVf5+fkaPXq0xo8fr927dzfZfseOHZowYYJGjx6t/Px83XPPPZoxY4YWLVoU4sqbluj1hZz4lAyLKwEAtFemaUryXeB7LIMGDfK/TkpKUkpKivbt29dkW4/HowceeECDBg1Sx44dlZycrGXLljX6zT18n5KUnZ3d7D7DnaU9OY8++qiuv/563XDDDZKk+fPna+nSpXrqqac0b968Ru2ffvppdevWTfPnz5cknXTSSVq/fr0efvhh/eQnPwll6U1KNiskQ0pIpicHAMLWPXubX2fENpy/a/tR2h7RT3DbxrbXdJjevXvLMAxt2rRJl1xyyVHb2mwN7+Y1DENer7fJto888oj+9Kc/af78+Ro4cKCSkpJ02223qaamps37DHeW9eTU1NTo888/19ixYxssHzt2rNauXdvkNh9//HGj9uPGjdP69etVW1sbtFpbwl1boyTDdy43KY0nHgNA2LInNT/Z4lvRNqFlbVspIyND48aN0xNPPKGKisbX9LT1uTcffvihLr74Yl111VU65ZRT1KNHD23btq3V+7HZbPJ4PG2qIdQsCzlFRUXyeDzKzMxssDwzM1OFhYVNblNYWNhke7fbraKioia3cblccjqdDaZgKCtzqtDsoArToeQ0TlcBANruySeflMfj0fDhw7Vo0SJt27ZNmzZt0mOPPaYRI0a0aZ+9evXS8uXLtXbtWm3atEk33XRTs7+3R3PiiSdqxYoVKiws1MGDB9tUS6hYfnfVkeccTdM86nnIpto3tbzevHnzlJaW5p9yc3OPs+KmVcYk6TzjGZ1mviib3RGU9wAARIe8vDx98cUXOuecc3THHXdowIABOu+887RixQo99dRTbdrn//7v/+rUU0/VuHHjdPbZZysrK+uYp8Oa8sgjj2j58uXKzc3VkCFD2lRLqBhmfUoIsZqaGiUmJur111/XpZde6l/+P//zP9qwYYNWr17daJszzzxTQ4YM0Z///Gf/sjfffFNXXHGFKisrG51HlHw9OS6Xyz/vdDqVm5ur0tJSpaamBvhTSV6vqZiYY18sBgAIrurqau3YsUN5eXmKj48/9gaw3NH+zZxOp9LS0lr1+21ZT47dbtfQoUP9997XW758uUaOHNnkNiNGjGjUftmyZRo2bFiTAUeSHA6HUlNTG0zBRMABACA8WHq6aubMmXr22We1YMECbdq0Sbfffrt2797tf+7NrFmzdM011/jbT5s2Tbt27dLMmTO1adMmLViwQM8991yD+/4BAAAki28hnzRpkoqLizV37lwVFBRowIABeu+999S9e3dJUkFBQYP79/Py8vTee+/p9ttv1xNPPKGcnBw99thjYXH7OAAACC+WXZNjlbac0wMAtD9ck9P+RMw1OQAAAMFEyAEARLQoO2HRrgX634qQAwCISPV33VZWNjPAJsJO/RATsbGxx2jZMpaPQg4AQDDExsYqPT3dP7hkYmJiiwa9hDW8Xq/279+vxMRExcUFJp4QcgAAESsrK0uS2u0o2tEmJiZG3bp1C1gYJeQAACKWYRjKzs5Wly5dLB/IGcdmt9sVExO4K2kIOQCAiBcbGxuw6zzQfnDhMQAAiEiEHAAAEJEIOQAAICJF3TU59Q8acjqdFlcCAABaqv53uzUPDIy6kFNWViZJys3NtbgSAADQWmVlZUpLS2tR26gboNPr9Wrv3r1KSUkJ+EOhnE6ncnNz9f333zP4ZyvwvbUe31nb8L21Dd9b2/C9td7RvjPTNFVWVqacnJwW32YedT05MTEx6tq1a1DfIzU1lQO6DfjeWo/vrG343tqG761t+N5ar7nvrKU9OPW48BgAAEQkQg4AAIhIhJwAcjgcmj17thwOh9WltCt8b63Hd9Y2fG9tw/fWNnxvrRfo7yzqLjwGAADRgZ4cAAAQkQg5AAAgIhFyAABARCLkBMiTTz6pvLw8xcfHa+jQofrwww+tLims3X///TIMo8GUlZVldVlhZ82aNZo4caJycnJkGIbeeuutButN09T999+vnJwcJSQk6Oyzz9bXX39tTbFh5Fjf29SpUxsdf6effro1xYaJefPm6bTTTlNKSoq6dOmiSy65RFu2bGnQhuOtsZZ8bxxvjT311FMaNGiQ/3k4I0aM0L/+9S//+kAda4ScAHjttdd022236d5771V+fr5Gjx6t8ePHa/fu3VaXFtb69++vgoIC/7Rx40arSwo7FRUVOuWUU/T44483uf6hhx7So48+qscff1zr1q1TVlaWzjvvPP/wJdHqWN+bJJ1//vkNjr/33nsvhBWGn9WrV2v69On65JNPtHz5crndbo0dO1YVFRX+NhxvjbXke5M43o7UtWtXPfjgg1q/fr3Wr1+vc889VxdffLE/yATsWDNx3IYPH25OmzatwbJ+/fqZv/71ry2qKPzNnj3bPOWUU6wuo12RZL755pv+ea/Xa2ZlZZkPPvigf1l1dbWZlpZmPv300xZUGJ6O/N5M0zSnTJliXnzxxZbU017s27fPlGSuXr3aNE2Ot5Y68nszTY63lurQoYP57LPPBvRYoyfnONXU1Ojzzz/X2LFjGywfO3as1q5da1FV7cO2bduUk5OjvLw8/exnP9N3331ndUntyo4dO1RYWNjg2HM4HDrrrLM49lpg1apV6tKli/r06aMbb7xR+/bts7qksFJaWipJysjIkMTx1lJHfm/1ON6a5/F49Oqrr6qiokIjRowI6LFGyDlORUVF8ng8yszMbLA8MzNThYWFFlUV/n70ox/pxRdf1NKlS/W3v/1NhYWFGjlypIqLi60urd2oP7449lpv/Pjxevnll/XBBx/okUce0bp163TuuefK5XJZXVpYME1TM2fO1KhRozRgwABJHG8t0dT3JnG8NWfjxo1KTk6Ww+HQtGnT9Oabb+rkk08O6LEWdQN0BsuRI5qbphnwUc4jyfjx4/2vBw4cqBEjRqhnz5564YUXNHPmTAsra3849lpv0qRJ/tcDBgzQsGHD1L17d7377ru67LLLLKwsPNxyyy368ssv9e9//7vROo635jX3vXG8Na1v377asGGDSkpKtGjRIk2ZMkWrV6/2rw/EsUZPznHq1KmTYmNjG6XLffv2NUqhaF5SUpIGDhyobdu2WV1Ku1F/NxrH3vHLzs5W9+7dOf4k3XrrrXr77be1cuVKde3a1b+c4+3omvvemsLx5mO329WrVy8NGzZM8+bN0ymnnKI///nPAT3WCDnHyW63a+jQoVq+fHmD5cuXL9fIkSMtqqr9cblc2rRpk7Kzs60upd3Iy8tTVlZWg2OvpqZGq1ev5thrpeLiYn3//fdRffyZpqlbbrlFixcv1gcffKC8vLwG6znemnas760pHG9NM01TLpcrsMdagC6KjmqvvvqqabPZzOeee8785ptvzNtuu81MSkoyd+7caXVpYeuOO+4wV61aZX733XfmJ598Yl544YVmSkoK39kRysrKzPz8fDM/P9+UZD766KNmfn6+uWvXLtM0TfPBBx8009LSzMWLF5sbN240r7zySjM7O9t0Op0WV26to31vZWVl5h133GGuXbvW3LFjh7ly5UpzxIgR5gknnBDV39svf/lLMy0tzVy1apVZUFDgnyorK/1tON4aO9b3xvHWtFmzZplr1qwxd+zYYX755ZfmPffcY8bExJjLli0zTTNwxxohJ0CeeOIJs3v37qbdbjdPPfXUBrcPorFJkyaZ2dnZps1mM3NycszLLrvM/Prrr60uK+ysXLnSlNRomjJlimmavtt6Z8+ebWZlZZkOh8M888wzzY0bN1pbdBg42vdWWVlpjh071uzcubNps9nMbt26mVOmTDF3795tddmWaur7kmQuXLjQ34bjrbFjfW8cb0277rrr/L+ZnTt3NseMGeMPOKYZuGONUcgBAEBE4pocAAAQkQg5AAAgIhFyAABARCLkAACAiETIAQAAEYmQAwAAIhIhBwAARCRCDgAAiEiEHACoYxiG3nrrLavLABAghBwAYWPq1Km65JJLrC4DQIQg5AAAgIhEyAHQLnzzzTeaMGGCkpOTlZmZqauvvlpFRUWSpGeeeUYnnHCCvF5vg20uuugiTZkyxT//zjvvaOjQoYqPj1ePHj00Z84cud3ukH4OAKFDyAEQ9goKCnTWWWdp8ODBWr9+vZYsWaIffvhBV1xxhSTppz/9qYqKirRy5Ur/NgcPHtTSpUs1efJkSdLSpUt11VVXacaMGfrmm2/0zDPP6Pnnn9cDDzxgyWcCEHyEHABh76mnntKpp56q3//+9+rXr5+GDBmiBQsWaOXKldq6dasyMjJ0/vnn6+9//7t/m9dff10ZGRkaM2aMJOmBBx7Qr3/9a02ZMkU9evTQeeedp9/+9rd65plnrPpYAIKMkAMg7H3++edauXKlkpOT/VO/fv0kSd9++60kafLkyVq0aJFcLpck6eWXX9bPfvYzxcbG+vcxd+7cBvu48cYbVVBQoMrKSms+GICgirO6AAA4Fq/Xq4kTJ+oPf/hDo3XZ2dmSpIkTJ8rr9erdd9/Vaaedpg8//FCPPvpog33MmTNHl112WaN9xMfHB694AJYh5AAIe6eeeqoWLVqkE088UXFxTf+3lZCQoMsuu0wvv/yytm/frj59+mjo0KEN9rFlyxb16tUrVGUDsBghB0BYKS0t1YYNGxosu+mmm/S3v/1NV155pe666y516tRJ27dv16uvvqq//e1v/lNSkydP1sSJE/X111/rqquuarCP3/zmN7rwwguVm5urn/70p4qJidGXX36pjRs36ne/+12oPh6AECLkAAgrq1at0pAhQxosmzJlij766CPdfffdGjdunFwul7p3767zzz9fMTGHLi0899xzlZGRoS1btujnP/95g32MGzdO//znPzV37lw99NBDstls6tevn2644YaQfC4AoWeYpmlaXQQAAECgcXcVAACISIQcAAAQkQg5AAAgIhFyAABARCLkAACAiETIAQAAEYmQAwAAIhIhBwAARCRCDgAAiEiEHAAAEJEIOQAAICIRcgAAQET6f9jJrBEJeu7UAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cmfgen_levels_h.energy.plot(label=\"CMFGEN\", legend=True)\n", + "grouped_chianti.energy.plot(label=\"Chianti\", ls=\"--\", legend=True,xlabel=\"Level\",ylabel=\"Energy\")" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "chianti_levels = grouped_chianti.set_index(chianti_atom_data.levels.loc[1, 0, :4].index)\n", + "chianti_levels_full = chianti_levels.reindex(chianti_atom_data.levels.index, fill_value=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "matched_chianti_atom_data = chianti_atom_data\n", + "matched_chianti_atom_data.levels = chianti_levels_full" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "cmfgen_lines_h = cmfgen_atom_data.lines.loc[1, 0, :]\n", + "chianti_lines_h = chianti_atom_data.lines.loc[1, 0, :]" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_2973239/2336803656.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " chianti_lines_h[\"wavelength\"] = chianti_lines_h[\"wavelength\"].round(2)\n" + ] + } + ], + "source": [ + "chianti_lines_h[\"wavelength\"] = chianti_lines_h[\"wavelength\"].round(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/afullard/tardis/tardis/plasma/detailed_balance/rates/collisional_rates.py:98: RuntimeWarning: divide by zero encountered in divide\n", + " (self.g_u / self.g_l)[np.newaxis].T\n", + "/home/afullard/tardis/tardis/plasma/detailed_balance/rates/collisional_rates.py:98: RuntimeWarning: invalid value encountered in divide\n", + " (self.g_u / self.g_l)[np.newaxis].T\n" + ] + } + ], + "source": [ + "chianti_collisional_rates = get_chianti_collisional_rates(matched_chianti_atom_data, temperature, chianti_radiative_transitions)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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7rvIycmBv78/Dh48CHd3955rNREREVE7gqhuRjstVF5eDnNzc5SVlcHMzEzTzSEiIqIu6M7xu0/e+4mIiIiouxhqiIiISCsw1BAREZFWYKghIiIircBQQ0RERFqBoYaIiIi0AkMNERERaQWGGiIiItIKDDVERESkFRhqiIiISCsw1BAREZFWYKghIiIircBQQ0RERFqBoYaIiIi0AkMNERERaQWGGiIiItIKDDVERESkFRhqiIiISCsw1BAREZFWYKghIiIircBQQ0RERFqBoYaIiIi0AkMNERERaQWGGiIiItIKDDVERESkFRhqiIiISCsw1BAREZFWYKghIiIircBQQ0RERFqBoYaIiIi0AkMNERERaQWGGiIiItIKDDVERESkFRhqiIiISCsw1BAREZFWYKghIiIircBQQ0RERFqBoYaIiIi0AkMNERERaQWGGiIiItIKDDVERESkFRhqiIiISCsw1BAREZFWYKghIiIircBQQ0RERFqBoYaIiIi0AkMNERERaQWGGiIiItIKDDVERESkFRhqiIiISCsw1BAREZFWYKghIiIircBQQ0RERFqBoYaIiIi0AkMNERERaQWGGiIiItIKDDVERESkFRhqiIiISCsw1BAREZFWYKghIiIircBQQ0RERFqBoYaIiIi0Qp8MNQsXLoSlpSUefPBBpeW3bt3ClClTMGzYMAQEBOCHH37QUAuJiIior+mToWbFihX48ssvVZbr6Ohg8+bNSExMxLFjx/Diiy+iqqpKAy0kIiKivqZPhpqwsDCYmpqqLHd0dERgYCAAwM7ODlZWViguLu7l1hEREVFf1O1Qc+rUKcybNw9OTk4QBAF79+5VKbN161Z4enrCwMAAISEhOH36dE+0VcmFCxcgl8vh6ura43UTERFR/9PtUFNVVYURI0bg448/Vrt+9+7dWLlyJdasWYPY2FhMnDgRs2fPRkZGhqJMSEgI/P39VR7Z2dldakNRUREef/xxfPrpp91tPhEREWkpne5uMHv2bMyePbvD9R9++CGefvppPPPMMwCAzZs34/Dhw9i2bRvWr18PAIiJibnD5gJ1dXVYuHAhXn/9dYwbN67TcnV1dYrn5eXld7xPIiIi6vt6dExNfX09YmJiMHPmTKXlM2fORGRk5F3XL4oinnzySUydOhVLlizptOz69ethbm6uePA0FRERkXbr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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "chianti_collisional_rates.loc[1,0,0,1].plot(logy=True,label=\"Chianti exc\",legend=True)\n", + "chianti_collisional_rates.loc[1,0,1,0].plot(logy=True,label=\"Chianti deexc\",legend=True)\n", + "cmfgen_collisional_rates.loc[1,0,0,1].plot(logy=True,label=\"CMFGEN exc\",legend=True)\n", + "cmfgen_collisional_rates.loc[1,0,1,0].plot(logy=True,label=\"CMFGEN deexc\",legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compare Plasma module-style solver to reference data" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "import copy\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "from tardis.plasma.assembly.base import (\n", + " PlasmaSolverFactory,\n", + " convert_species_to_multi_index,\n", + ")\n", + "from tardis.plasma.properties.atomic import YgData, YgInterpolator\n", + "from tardis.plasma.properties.continuum_processes import (\n", + " CollDeexcRateCoeff,\n", + " CollExcRateCoeff,\n", + ")\n", + "from tardis.plasma.properties.general import BetaElectron\n", + "from tardis.plasma.properties.partition_function import (\n", + " ThermalLevelBoltzmannFactorLTE,\n", + ")\n", + "from tardis.plasma.properties.plasma_input import ContinuumInteractionSpecies\n", + "\n", + "\n", + "def legacy_cmfgen_collision_rate_plasma_solver(nlte_atomic_dataset, rad_field):\n", + " atom_data = copy.deepcopy(nlte_atomic_dataset)\n", + " # almost all settings are irrelevant for collisional strength data\n", + " number_densities = pd.DataFrame({1: [1] * len(temperature)}).T\n", + " time_explosion = 5 * u.day\n", + "\n", + " plasma_solver_factory = PlasmaSolverFactory(atom_data)\n", + "\n", + " # plasma_solver_factory.continuum_interaction_species = [\"He I\"]\n", + " plasma_solver_factory.line_interaction_type = \"macroatom\"\n", + " plasma_solver_factory.prepare_factory([1])\n", + " plasma_solver_factory.plasma_modules += [\n", + " YgData,\n", + " ContinuumInteractionSpecies,\n", + " CollExcRateCoeff,\n", + " CollDeexcRateCoeff,\n", + " YgInterpolator,\n", + " ThermalLevelBoltzmannFactorLTE,\n", + " BetaElectron,\n", + " ]\n", + " species_mindex = convert_species_to_multi_index([\"H I\"])\n", + " return plasma_solver_factory.assemble(\n", + " number_densities,\n", + " rad_field,\n", + " time_explosion,\n", + " continuum_interaction_species=species_mindex,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "dilute_rad_field = dilute_planck_rad_field = DilutePlanckianRadiationField(\n", + " temperature, np.array([1] * len(temperature))\n", + " )\n", + "\n", + "legacy_solver = legacy_cmfgen_collision_rate_plasma_solver(cmfgen_atom_data, dilute_rad_field)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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qBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFk2TSoLF++HH/5y1+g1Wrh5eWFYcOGISUlxZYlERERkYTYNKjExsZi6tSp+PHHH7Fv3z6Ul5cjPDwcxcXFtiyLiIiIJEImhBC2LqJSTk4OvLy8EBsbiz59+vxpe71eD51Oh8LCQjg7O9+FComIiOh2NeT72+Eu1VQvhYWFAAA3N7ca15tMJphMJuvPer3+rtRFREREtiGZybRCCLzyyivo3bs3OnXqVGOb5cuXQ6fTWV9+fn53uUoiIiK6myRz6mfq1KnYtWsXjh49ihYtWtTYpqYRFT8/P576ISIiakKa3Kmf6dOnY8eOHTh8+HCtIQUAFAoFFArFXayMiIiIbMmmQUUIgenTp+Prr79GTEwMWrVqZctyiIiISGJsGlSmTp2Kzz77DN988w20Wi2ysrIAADqdDiqVypalERERkQTYdI6KTCarcfnGjRsxfvz4P92elycTERE1PU1mjopE5vESERGRREnm8mQiIiKimzGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFkMagQERGRZDGoEBERkWQxqBAREZFk2TyofPDBB2jVqhWUSiV69OiBI0eO2LokIiIikgibBpWt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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "legacy_solver.coll_exc_coeff.loc[1,0,0,1].plot(logy=False,label=\"TARDIS exc\",legend=True)\n", + "legacy_solver.coll_deexc_coeff.loc[1,0,0,1].plot(logy=False,label=\"TARDIS deexc\",legend=True)\n", + "reference_coeff[\"coll_exc_coeff\"].loc[1,0,0,1].plot(logy=False,label=\"reference exc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')\n", + "reference_coeff[\"coll_deexc_coeff\"].loc[1,0,0,1].plot(logy=False,label=\"reference deexc\",legend=True,ylabel=\"Coeff\",xlabel=\"Shell\",ls=\"\", marker = '+')\n", + "cmfgen_collisional_rates.loc[1,0,0,1].plot(logy=False,label=\"TARDIS new exc\",legend=True)\n", + "cmfgen_collisional_rates.loc[1,0,1,0].plot(logy=False,label=\"TARDIS new deexc\",legend=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 1.0\n", + "1 1.0\n", + "2 1.0\n", + "3 1.0\n", + "4 1.0\n", + "5 1.0\n", + "6 1.0\n", + "7 1.0\n", + "8 1.0\n", + "9 1.0\n", + "Name: (1, 0, 0, 1), dtype: float64" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "legacy_solver.coll_exc_coeff.loc[1,0,0,1] / cmfgen_collisional_rates.loc[1,0,0,1]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "tardis", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/physics/plasma/detailed_balance/rates.ipynb b/docs/physics/plasma/detailed_balance/rates.ipynb new file mode 100644 index 00000000000..af411014a63 --- /dev/null +++ b/docs/physics/plasma/detailed_balance/rates.ipynb @@ -0,0 +1,1419 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exploring rates" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/wkerzend/python/tardis/tardis/__init__.py:20: UserWarning: Astropy is already imported externally. Astropy should be imported after TARDIS.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "5852f5c0d8924d139d2fadeea2380ec8", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Iterations: 0/? [00:00\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
line_idwavelengthf_ulf_lunuB_luB_ulA_ulwavelength_cm
atomic_numberion_numberlevel_number_lowerlevel_number_upper
20135335841.083017e+040.1798000.539402.768123e+149.808029e+103.269343e+101.022495e+070.000108
045335615.843340e+020.0921000.276305.130498e+152.710676e+099.035585e+081.799200e+090.000006
245336042.058129e+040.1255000.376501.456626e+141.300987e+114.336624e+101.976246e+060.000206
495336646.678152e+030.4261200.710204.489153e+147.962922e+104.777753e+106.373259e+070.000067
0105335635.370300e+020.0244870.073465.582415e+156.623461e+082.207820e+085.663368e+080.000005
.................................
2052345373531.554000e+060.0122790.406331.929166e+121.060145e+133.203736e+113.391645e+010.015540
2062345373571.554000e+060.4479820.566201.929166e+121.477258e+131.168820e+131.237375e+030.015540
2192345373973.373000e+060.0488411.616208.888006e+119.152652e+132.765911e+122.863492e+010.033730
2202345373993.374000e+063.6931254.136308.885372e+112.343110e+142.092062e+142.163944e+030.033740
2332345374157.975000e+100.0000270.000883.759153e+071.178629e+153.561791e+132.789865e-11797.500000
\n", + "

3549 rows × 9 columns

\n", + "" + ], + "text/plain": [ + " line_id \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 533584 \n", + " 0 4 533561 \n", + " 2 4 533604 \n", + " 4 9 533664 \n", + " 0 10 533563 \n", + "... ... \n", + " 205 234 537353 \n", + " 206 234 537357 \n", + " 219 234 537397 \n", + " 220 234 537399 \n", + " 233 234 537415 \n", + "\n", + " wavelength \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 1.083017e+04 \n", + " 0 4 5.843340e+02 \n", + " 2 4 2.058129e+04 \n", + " 4 9 6.678152e+03 \n", + " 0 10 5.370300e+02 \n", + "... ... \n", + " 205 234 1.554000e+06 \n", + " 206 234 1.554000e+06 \n", + " 219 234 3.373000e+06 \n", + " 220 234 3.374000e+06 \n", + " 233 234 7.975000e+10 \n", + "\n", + " f_ul \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 0.179800 \n", + " 0 4 0.092100 \n", + " 2 4 0.125500 \n", + " 4 9 0.426120 \n", + " 0 10 0.024487 \n", + "... ... \n", + " 205 234 0.012279 \n", + " 206 234 0.447982 \n", + " 219 234 0.048841 \n", + " 220 234 3.693125 \n", + " 233 234 0.000027 \n", + "\n", + " f_lu \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 0.53940 \n", + " 0 4 0.27630 \n", + " 2 4 0.37650 \n", + " 4 9 0.71020 \n", + " 0 10 0.07346 \n", + "... ... \n", + " 205 234 0.40633 \n", + " 206 234 0.56620 \n", + " 219 234 1.61620 \n", + " 220 234 4.13630 \n", + " 233 234 0.00088 \n", + "\n", + " nu \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 2.768123e+14 \n", + " 0 4 5.130498e+15 \n", + " 2 4 1.456626e+14 \n", + " 4 9 4.489153e+14 \n", + " 0 10 5.582415e+15 \n", + "... ... \n", + " 205 234 1.929166e+12 \n", + " 206 234 1.929166e+12 \n", + " 219 234 8.888006e+11 \n", + " 220 234 8.885372e+11 \n", + " 233 234 3.759153e+07 \n", + "\n", + " B_lu \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 9.808029e+10 \n", + " 0 4 2.710676e+09 \n", + " 2 4 1.300987e+11 \n", + " 4 9 7.962922e+10 \n", + " 0 10 6.623461e+08 \n", + "... ... \n", + " 205 234 1.060145e+13 \n", + " 206 234 1.477258e+13 \n", + " 219 234 9.152652e+13 \n", + " 220 234 2.343110e+14 \n", + " 233 234 1.178629e+15 \n", + "\n", + " B_ul \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 3.269343e+10 \n", + " 0 4 9.035585e+08 \n", + " 2 4 4.336624e+10 \n", + " 4 9 4.777753e+10 \n", + " 0 10 2.207820e+08 \n", + "... ... \n", + " 205 234 3.203736e+11 \n", + " 206 234 1.168820e+13 \n", + " 219 234 2.765911e+12 \n", + " 220 234 2.092062e+14 \n", + " 233 234 3.561791e+13 \n", + "\n", + " A_ul \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 1.022495e+07 \n", + " 0 4 1.799200e+09 \n", + " 2 4 1.976246e+06 \n", + " 4 9 6.373259e+07 \n", + " 0 10 5.663368e+08 \n", + "... ... \n", + " 205 234 3.391645e+01 \n", + " 206 234 1.237375e+03 \n", + " 219 234 2.863492e+01 \n", + " 220 234 2.163944e+03 \n", + " 233 234 2.789865e-11 \n", + "\n", + " wavelength_cm \n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 0.000108 \n", + " 0 4 0.000006 \n", + " 2 4 0.000206 \n", + " 4 9 0.000067 \n", + " 0 10 0.000005 \n", + "... ... \n", + " 205 234 0.015540 \n", + " 206 234 0.015540 \n", + " 219 234 0.033730 \n", + " 220 234 0.033740 \n", + " 233 234 797.500000 \n", + "\n", + "[3549 rows x 9 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "radiative_transitions" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "temperature = [10000, 20000] * u.K\n", + "rad_field = PlanckianRadiationField(temperature=temperature)\n", + "\n", + "rad_rate_solver = RadiativeRatesSolver(radiative_transitions)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "rad_rates_df = rad_rate_solver.solve(rad_field)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
line_idwavelengthf_ulf_lunuB_luB_ulA_ulwavelength_cm
atomic_numberion_numberlevel_number_lowerlevel_number_upper
20135335841.083017e+040.1798000.539402.768123e+149.808029e+103.269343e+101.022495e+070.000108
045335615.843340e+020.0921000.276305.130498e+152.710676e+099.035585e+081.799200e+090.000006
245336042.058129e+040.1255000.376501.456626e+141.300987e+114.336624e+101.976246e+060.000206
495336646.678152e+030.4261200.710204.489153e+147.962922e+104.777753e+106.373259e+070.000067
0105335635.370300e+020.0244870.073465.582415e+156.623461e+082.207820e+085.663368e+080.000005
.................................
2052345373531.554000e+060.0122790.406331.929166e+121.060145e+133.203736e+113.391645e+010.015540
2062345373571.554000e+060.4479820.566201.929166e+121.477258e+131.168820e+131.237375e+030.015540
2192345373973.373000e+060.0488411.616208.888006e+119.152652e+132.765911e+122.863492e+010.033730
2202345373993.374000e+063.6931254.136308.885372e+112.343110e+142.092062e+142.163944e+030.033740
2332345374157.975000e+100.0000270.000883.759153e+071.178629e+153.561791e+132.789865e-11797.500000
\n", + "

3549 rows × 9 columns

\n", + "
" + ], + "text/plain": [ + " line_id \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 533584 \n", + " 0 4 533561 \n", + " 2 4 533604 \n", + " 4 9 533664 \n", + " 0 10 533563 \n", + "... ... \n", + " 205 234 537353 \n", + " 206 234 537357 \n", + " 219 234 537397 \n", + " 220 234 537399 \n", + " 233 234 537415 \n", + "\n", + " wavelength \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 1.083017e+04 \n", + " 0 4 5.843340e+02 \n", + " 2 4 2.058129e+04 \n", + " 4 9 6.678152e+03 \n", + " 0 10 5.370300e+02 \n", + "... ... \n", + " 205 234 1.554000e+06 \n", + " 206 234 1.554000e+06 \n", + " 219 234 3.373000e+06 \n", + " 220 234 3.374000e+06 \n", + " 233 234 7.975000e+10 \n", + "\n", + " f_ul \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 0.179800 \n", + " 0 4 0.092100 \n", + " 2 4 0.125500 \n", + " 4 9 0.426120 \n", + " 0 10 0.024487 \n", + "... ... \n", + " 205 234 0.012279 \n", + " 206 234 0.447982 \n", + " 219 234 0.048841 \n", + " 220 234 3.693125 \n", + " 233 234 0.000027 \n", + "\n", + " f_lu \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 0.53940 \n", + " 0 4 0.27630 \n", + " 2 4 0.37650 \n", + " 4 9 0.71020 \n", + " 0 10 0.07346 \n", + "... ... \n", + " 205 234 0.40633 \n", + " 206 234 0.56620 \n", + " 219 234 1.61620 \n", + " 220 234 4.13630 \n", + " 233 234 0.00088 \n", + "\n", + " nu \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 2.768123e+14 \n", + " 0 4 5.130498e+15 \n", + " 2 4 1.456626e+14 \n", + " 4 9 4.489153e+14 \n", + " 0 10 5.582415e+15 \n", + "... ... \n", + " 205 234 1.929166e+12 \n", + " 206 234 1.929166e+12 \n", + " 219 234 8.888006e+11 \n", + " 220 234 8.885372e+11 \n", + " 233 234 3.759153e+07 \n", + "\n", + " B_lu \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 9.808029e+10 \n", + " 0 4 2.710676e+09 \n", + " 2 4 1.300987e+11 \n", + " 4 9 7.962922e+10 \n", + " 0 10 6.623461e+08 \n", + "... ... \n", + " 205 234 1.060145e+13 \n", + " 206 234 1.477258e+13 \n", + " 219 234 9.152652e+13 \n", + " 220 234 2.343110e+14 \n", + " 233 234 1.178629e+15 \n", + "\n", + " B_ul \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 3.269343e+10 \n", + " 0 4 9.035585e+08 \n", + " 2 4 4.336624e+10 \n", + " 4 9 4.777753e+10 \n", + " 0 10 2.207820e+08 \n", + "... ... \n", + " 205 234 3.203736e+11 \n", + " 206 234 1.168820e+13 \n", + " 219 234 2.765911e+12 \n", + " 220 234 2.092062e+14 \n", + " 233 234 3.561791e+13 \n", + "\n", + " A_ul \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 1.022495e+07 \n", + " 0 4 1.799200e+09 \n", + " 2 4 1.976246e+06 \n", + " 4 9 6.373259e+07 \n", + " 0 10 5.663368e+08 \n", + "... ... \n", + " 205 234 3.391645e+01 \n", + " 206 234 1.237375e+03 \n", + " 219 234 2.863492e+01 \n", + " 220 234 2.163944e+03 \n", + " 233 234 2.789865e-11 \n", + "\n", + " wavelength_cm \n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 1 3 0.000108 \n", + " 0 4 0.000006 \n", + " 2 4 0.000206 \n", + " 4 9 0.000067 \n", + " 0 10 0.000005 \n", + "... ... \n", + " 205 234 0.015540 \n", + " 206 234 0.015540 \n", + " 219 234 0.033730 \n", + " 220 234 0.033740 \n", + " 233 234 797.500000 \n", + "\n", + "[3549 rows x 9 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "radiative_transitions" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
01
atomic_numberion_numberlevel_number_sourcelevel_number_destination
20040.10934024293.644329
100.0039342585.380931
180.000791760.480592
280.000287329.201923
400.000138173.998738
............
2312290.0254270.050853
2322300.0091310.018262
2332310.0090090.018018
2352320.0001670.000334
2342330.0001550.000309
\n", + "

7098 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " 0 \\\n", + "atomic_number ion_number level_number_source level_number_destination \n", + "2 0 0 4 0.109340 \n", + " 10 0.003934 \n", + " 18 0.000791 \n", + " 28 0.000287 \n", + " 40 0.000138 \n", + "... ... \n", + " 231 229 0.025427 \n", + " 232 230 0.009131 \n", + " 233 231 0.009009 \n", + " 235 232 0.000167 \n", + " 234 233 0.000155 \n", + "\n", + " 1 \n", + "atomic_number ion_number level_number_source level_number_destination \n", + "2 0 0 4 24293.644329 \n", + " 10 2585.380931 \n", + " 18 760.480592 \n", + " 28 329.201923 \n", + " 40 173.998738 \n", + "... ... \n", + " 231 229 0.050853 \n", + " 232 230 0.018262 \n", + " 233 231 0.018018 \n", + " 235 232 0.000334 \n", + " 234 233 0.000309 \n", + "\n", + "[7098 rows x 2 columns]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rad_rates_df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Collisional Rates" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "col_strength_solver = UpsilonRegemorterSolver(radiative_transitions)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "ups = col_strength_solver.solve(temperature)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "col_strength_temperatures = atom_data.collision_data_temperatures\n", + "col_strengths = atom_data.yg_data.loc[(2,0, slice(None), slice(None)), :]\n", + "collisional_rate_solver = ThermalCollisionalRateSolver(radiative_transitions, col_strength_temperatures, col_strengths, 'cmfgen')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
01
atomic_numberion_numberlevel_number_lowerlevel_number_upper
20017.270000e-027.220000e-02
23.830000e-024.320000e-02
32.420000e-023.400000e-02
41.630000e-022.630000e-02
51.830000e-022.000000e-02
............
2292315.706217e+056.009353e+05
2302323.624163e+063.797912e+06
2312333.626137e+063.799899e+06
2322354.592647e+064.806122e+06
2332344.604415e+064.817884e+06
\n", + "

3681 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " 0 \\\n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 0 1 7.270000e-02 \n", + " 2 3.830000e-02 \n", + " 3 2.420000e-02 \n", + " 4 1.630000e-02 \n", + " 5 1.830000e-02 \n", + "... ... \n", + " 229 231 5.706217e+05 \n", + " 230 232 3.624163e+06 \n", + " 231 233 3.626137e+06 \n", + " 232 235 4.592647e+06 \n", + " 233 234 4.604415e+06 \n", + "\n", + " 1 \n", + "atomic_number ion_number level_number_lower level_number_upper \n", + "2 0 0 1 7.220000e-02 \n", + " 2 4.320000e-02 \n", + " 3 3.400000e-02 \n", + " 4 2.630000e-02 \n", + " 5 2.000000e-02 \n", + "... ... \n", + " 229 231 6.009353e+05 \n", + " 230 232 3.797912e+06 \n", + " 231 233 3.799899e+06 \n", + " 232 235 4.806122e+06 \n", + " 233 234 4.817884e+06 \n", + "\n", + "[3681 rows x 2 columns]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "collisional_rate_solver.solve(temperature)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "atomic_number ion_number level_number_lower level_number_upper\n", + "1 0 0 2 1.634030e-18\n", + " 1 1.634029e-18\n", + " 3 1.634036e-18\n", + " 5 1.936630e-18\n", + " 4 1.936630e-18\n", + " ... \n", + "2 1 2 20 1.830975e-18\n", + " 21 1.830975e-18\n", + " 22 1.830976e-18\n", + " 23 1.830976e-18\n", + " 24 1.830977e-18\n", + "Name: delta_e, Length: 358, dtype: float64" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "atom_data.collision_data.delta_e * const.k_B" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/fg/nwmb1mss6kq3hwhj10dt0qh00000gn/T/ipykernel_571/2191378405.py:1: PerformanceWarning: indexing past lexsort depth may impact performance.\n", + " (atom_data.lines.loc[1,0, 0, 3].nu.values[0] * u.Hz * const.h).to(u.J)\n" + ] + }, + { + "data": { + "text/latex": [ + "$1.6340338 \\times 10^{-18} \\; \\mathrm{J}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(atom_data.lines.loc[1,0, 0, 3].nu.values[0] * u.Hz * const.h).to(u.J)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'atom_data' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[1], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43matom_data\u001b[49m\u001b[38;5;241m.\u001b[39mlines\n", + "\u001b[0;31mNameError\u001b[0m: name 'atom_data' is not defined" + ] + } + ], + "source": [ + "atom_data.lines" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "atomic_number ion_number level_number_lower level_number_upper\n", + "1 0 0 2 1.634030e-18\n", + " 1 1.634029e-18\n", + " 3 1.634036e-18\n", + " 5 1.936630e-18\n", + " 4 1.936630e-18\n", + " ... \n", + "2 1 2 20 1.830975e-18\n", + " 21 1.830975e-18\n", + " 22 1.830976e-18\n", + " 23 1.830976e-18\n", + " 24 1.830977e-18\n", + "Name: delta_e, Length: 358, dtype: float64" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "collisional_transitions = atom_data.collision_data.loc[(2,0, slice(None), slice(None)), :]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "MultiIndex([(2, 0, 0, 1),\n", + " (2, 0, 0, 2),\n", + " (2, 0, 0, 3),\n", + " (2, 0, 0, 4),\n", + " (2, 0, 0, 5),\n", + " (2, 0, 0, 7),\n", + " (2, 0, 0, 8),\n", + " (2, 0, 0, 9),\n", + " (2, 0, 0, 10),\n", + " (2, 0, 0, 11),\n", + " ...\n", + " (2, 0, 5, 39),\n", + " (2, 0, 5, 40),\n", + " (2, 0, 5, 41),\n", + " (2, 0, 5, 42),\n", + " (2, 0, 5, 43),\n", + " (2, 0, 5, 44),\n", + " (2, 0, 5, 45),\n", + " (2, 0, 5, 46),\n", + " (2, 0, 5, 47),\n", + " (2, 0, 5, 48)],\n", + " names=['atomic_number', 'ion_number', 'level_number_lower', 'level_number_upper'], length=221)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "collisional_transitions.index.difference(radiative_transitions.index)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "g_ratio 3.333333e-01\n", + "delta_e 2.299972e+05\n", + "t002000 1.596743e-09\n", + "t004000 1.129220e-09\n", + "t006000 9.221284e-10\n", + "t008000 7.986942e-10\n", + "t010000 7.144701e-10\n", + "t012000 6.523069e-10\n", + "t014000 6.040002e-10\n", + "t016000 5.650665e-10\n", + "t018000 5.328216e-10\n", + "t020000 5.055470e-10\n", + "t022000 4.820850e-10\n", + "t024000 4.616234e-10\n", + "t026000 4.435730e-10\n", + "t028000 4.274952e-10\n", + "t030000 4.130551e-10\n", + "t032000 3.999927e-10\n", + "t034000 3.881021e-10\n", + "t036000 3.772181e-10\n", + "t038000 3.672065e-10\n", + "t040000 3.579567e-10\n", + "t042000 3.493769e-10\n", + "t044000 3.413900e-10\n", + "t046000 3.339308e-10\n", + "t048000 3.269438e-10\n", + "Name: (2, 0, 0, 1), dtype: float64" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "collisional_transitions.loc[2,0, 0, 1]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "tardis", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/physics/plasma/detailed_balance/test_continuum_template_wkerzen_rate_coeffs.yml b/docs/physics/plasma/detailed_balance/test_continuum_template_wkerzen_rate_coeffs.yml new file mode 100644 index 00000000000..880468bc3d5 --- /dev/null +++ b/docs/physics/plasma/detailed_balance/test_continuum_template_wkerzen_rate_coeffs.yml @@ -0,0 +1,64 @@ +# Example YAML configuration for TARDIS +tardis_config_version: v1.0 + +supernova: + time_explosion: 16 day + +atom_data: TestNLTE_He_Ti.h5 + +model: + structure: + type: specific + velocity: + start: 5700 km/s + stop: 12500 km/s + num: 10 + density: + type : power_law + time_0: 16.0 day + rho_0: 1.3636e-14 g/cm^3 #1.948e-14 g/cm^3 + v_0: 8000 km/s + exponent: -10 + + abundances: + type: uniform + H: 1.0 + +plasma: + initial_t_inner: 9000 K + ionization: nebular + excitation: dilute-lte + radiative_rates_type: dilute-blackbody + line_interaction_type: macroatom + #nlte: + # species: + # - H I + continuum_interaction: + species: + - H I + nlte_ionization_species: + - H I + nlte_excitation_species: + - H I + +montecarlo: + seed: 23111963 + no_of_packets: 500000 + iterations: 1 + nthreads: 1 + + last_no_of_packets: 100000 + no_of_virtual_packets: 0 + + convergence_strategy: + type: damped + damping_constant: 0.5 + threshold: 0.05 + fraction: 0.8 + hold_iterations: 3 + + +spectrum: + start: 800 angstrom + stop: 10000 angstrom + num: 4000 diff --git a/tardis/plasma/assembly/base.py b/tardis/plasma/assembly/base.py index 60a4d4037e3..f661a394b68 100644 --- a/tardis/plasma/assembly/base.py +++ b/tardis/plasma/assembly/base.py @@ -55,81 +55,24 @@ def map_species_from_string(species): return [species_string_to_tuple(spec) for spec in species] -class PlasmaSolverFactory: - """Factory class for creating plasma solvers. - - atom_data : object - Object containing atomic data. - selected_atomic_numbers : list - List of selected atomic numbers. - - Attributes - ---------- - excitation_analytical_approximation : str - Analytical approximation for excitation (default: "lte"). - ionization_analytical_approximation : str - Analytical approximation for ionization (default: "lte"). - nebular_ionization_delta_treatment : tuple - Species to use for the delta_treatment in nebular ionization ML93 (default: ()). - link_t_rad_t_electron : float - Link between t_rad and t_electron (default: 1.0). - radiative_rates_type : str - Type of radiative rates (default: "dilute-blackbody"). - delta_treatment : float or None - Delta treatment (default: None). - legacy_nlte_species : list - List of legacy non-LTE species (default: []). - nlte_excitation_species : list - List of non-LTE excitation species (default: []). - nlte_ionization_species : list - List of non-LTE ionization species (default: []). - nlte_solver : str - Non-LTE solver (default: "lu"). - Helium treatment options (default: "none"). - heating_rate_data_file : str - Heating rate data file (default: "none"). - continuum_interaction_species : list - List of continuum interaction species (default: []). - enable_adiabatic_cooling : bool - Flag for enabling adiabatic cooling (default: False). - enable_two_photon_decay : bool - Flag for enabling two-photon decay (default: False). - line_interaction_type : str - Type of line interaction (default: "scatter"). - plasma_modules : list - List of plasma modules (default: []). - kwargs : dict - Additional keyword arguments (default: {}). - property_kwargs : dict - Additional keyword arguments for properties (default: {}). - - Methods - ------- - parse_plasma_config(plasma_config) - continuum_interaction_species_multi_index() - Get the continuum interaction species as a multi-index. - setup_factory(config) - setup_helium_treatment() - setup_legacy_nlte(nlte_config) - Set up the non-LTE properties for the legacy species. - setup_analytical_approximations() - Set up the analytical approximations for excitation and ionization. - initialize_j_blues(dilute_planckian_radiation_field, lines_df) - Initialize j_blues. - """ +def convert_species_to_multi_index(species_strs): + return pd.MultiIndex.from_tuples( + map_species_from_string(species_strs), + names=["atomic_number", "ion_number"], + ) + +class PlasmaSolverFactory: ## Analytical Approximations excitation_analytical_approximation: str = "lte" ionization_analytical_approximation: str = "lte" - nebular_ionization_delta_treatment: ( - tuple - ) = () # species to use for the delta_treatment in nebular ionization ML93 + nebular_ionization_delta_treatment: tuple # species to use for the delta_treatment in nebular ionization ML93 link_t_rad_t_electron: float = 1.0 radiative_rates_type: str = "dilute-blackbody" - delta_treatment: float | None = None + delta_treatment = None ## Statistical Balance Solver legacy_nlte_species: list = [] @@ -155,26 +98,19 @@ class PlasmaSolverFactory: kwargs: dict = {} property_kwargs: dict = {} - def __init__(self, atom_data, selected_atomic_numbers, config=None) -> None: - self.plasma_modules = [] - self.kwargs = {} - self.property_kwargs = {} - + def __init__( + self, + atom_data, + config=None, + ) -> None: if config is not None: self.parse_plasma_config(config.plasma) self.atom_data = atom_data - self.atom_data.prepare_atom_data( - selected_atomic_numbers, - line_interaction_type=self.line_interaction_type, - continuum_interaction_species=self.continuum_interaction_species_multi_index, - nlte_species=self.legacy_nlte_species, - ) @property def continuum_interaction_species_multi_index(self): - return pd.MultiIndex.from_tuples( - map_species_from_string(self.continuum_interaction_species), - names=["atomic_number", "ion_number"], + return convert_species_to_multi_index( + self.continuum_interaction_species ) def parse_plasma_config(self, plasma_config): @@ -218,7 +154,7 @@ def parse_plasma_config(self, plasma_config): plasma_config.continuum_interaction.enable_two_photon_decay ) - def setup_factory(self, config=None): + def prepare_factory(self, selected_atomic_numbers, config=None): """ Set up the plasma factory. @@ -227,6 +163,13 @@ def setup_factory(self, config=None): config : object, optional Configuration object containing plasma settings (default: None). """ + self.atom_data.prepare_atom_data( + selected_atomic_numbers, + line_interaction_type=self.line_interaction_type, + continuum_interaction_species=self.continuum_interaction_species_multi_index, + nlte_species=self.legacy_nlte_species, + ) + self.check_continuum_interaction_species() self.plasma_modules = basic_inputs + basic_properties @@ -590,6 +533,7 @@ def assemble( dilute_planckian_radiation_field, time_explosion, electron_densities=None, + **kwargs, ): """ Assemble the plasma based on the provided parameters and settings. @@ -622,7 +566,7 @@ def assemble( RADIATIVE_RATES_TYPE=self.radiative_rates_type ) - kwargs = dict( + plasma_assemble_kwargs = dict( time_explosion=time_explosion, dilute_planckian_radiation_field=dilute_planckian_radiation_field, number_density=number_densities, @@ -633,12 +577,11 @@ def assemble( nlte_ionization_species=self.nlte_ionization_species, nlte_excitation_species=self.nlte_excitation_species, ) - if len(self.continuum_interaction_species) > 0: initial_continuum_properties = self.initialize_continuum_properties( dilute_planckian_radiation_field ) - kwargs.update( + plasma_assemble_kwargs.update( gamma=initial_continuum_properties.photo_ionization_rate_coefficient, bf_heating_coeff_estimator=None, stim_recomb_cooling_coeff_estimator=None, @@ -647,11 +590,13 @@ def assemble( if electron_densities is not None: electron_densities = pd.Series(electron_densities.cgs.value) - self.setup_electron_densities(electron_densities) - kwargs["helium_treatment"] = self.helium_treatment + + self.setup_electron_densities(electron_densities) + plasma_assemble_kwargs["helium_treatment"] = self.helium_treatment + plasma_assemble_kwargs.update(kwargs) return BasePlasma( plasma_properties=self.plasma_modules, property_kwargs=self.property_kwargs, plasma_solver_settings=plasma_solver_settings, - **kwargs, + **plasma_assemble_kwargs, ) diff --git a/tardis/plasma/assembly/legacy_assembly.py b/tardis/plasma/assembly/legacy_assembly.py index 6f12fde618b..b250f1cbeda 100644 --- a/tardis/plasma/assembly/legacy_assembly.py +++ b/tardis/plasma/assembly/legacy_assembly.py @@ -23,10 +23,9 @@ def assemble_plasma(config, simulation_state, atom_data=None): atomic_numbers = simulation_state.abundance.index plasma_solver_factory = PlasmaSolverFactory( atom_data, - atomic_numbers, config, ) - plasma_solver_factory.setup_factory(config) + plasma_solver_factory.prepare_factory(atomic_numbers, config) dilute_planckian_radiation_field = DilutePlanckianRadiationField( simulation_state.t_radiative, simulation_state.dilution_factor ) diff --git a/tardis/plasma/detailed_balance/__init__.py b/tardis/plasma/detailed_balance/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tardis/plasma/detailed_balance/rates/__init__.py b/tardis/plasma/detailed_balance/rates/__init__.py new file mode 100644 index 00000000000..b4101b7d28c --- /dev/null +++ b/tardis/plasma/detailed_balance/rates/__init__.py @@ -0,0 +1,10 @@ +from tardis.plasma.detailed_balance.rates.collision_strengths import ( + UpsilonCMFGENSolver, + UpsilonRegemorterSolver, +) +from tardis.plasma.detailed_balance.rates.collisional_rates import ( + ThermalCollisionalRateSolver, +) +from tardis.plasma.detailed_balance.rates.radiative_rates import ( + RadiativeRatesSolver, +) diff --git a/tardis/plasma/detailed_balance/rates/collision_strengths.py b/tardis/plasma/detailed_balance/rates/collision_strengths.py new file mode 100644 index 00000000000..1d861343469 --- /dev/null +++ b/tardis/plasma/detailed_balance/rates/collision_strengths.py @@ -0,0 +1,352 @@ +import numpy as np +import pandas as pd +from astropy import units as u +from scipy.interpolate import PchipInterpolator, splev, splrep +from scipy.special import exp1 + +from tardis import constants as const + + +def exp1_times_exp(x): + """ + Product of the Exponential integral E1 and an exponential. + + This function calculates the product of the Exponential integral E1 + and an exponential in a way that also works for large values. + + Parameters + ---------- + x : array_like + Input values. + + Returns + ------- + array_like + Output array. + """ + f = exp1(x) * np.exp(x) + # Use Laurent series for large values to avoid infinite exponential + mask = x > 500 + f[mask] = (x**-1 - x**-2 + 2 * x**-3 - 6 * x**-4)[mask] + return f + + +REGEMORTER_CONSTANT = ( # Hubeny, I. and Mihalas, D., "Theory of Stellar Atmospheres". 2014. EQ 9.54 [below it] + const.a0.cgs**2 + * np.pi + * np.sqrt(8 * const.k_B.cgs / (np.pi * const.m_e.cgs)) +) + +HYDROGEN_IONIZATION_ENERGY = ( + 13.598434005136003 * u.eV +).cgs # taken from the classic TARDIS ionization data + + +class CollisionalCrossSections: + def __init__(self, collision_cross_sections): + self.collisional_cross_sections = collision_cross_sections + + def solve_collisional_cross_sections(self, temperature_electron): + pass + + +N_A = const.N_A.cgs.value +K_B = const.k_B.cgs.value +K_B_EV = const.k_B.cgs.to("eV / K").value +C = const.c.cgs.value +H = const.h.cgs.value +A0 = const.a0.cgs.value +M_E = const.m_e.cgs.value +E = const.e.esu.value +BETA_COLL = ( + (const.h**4 / (8 * const.k_B * const.m_e**3 * np.pi**3)) ** 0.5 +).cgs +F_K = ( + 16 + / (3.0 * np.sqrt(3)) + * np.sqrt((2 * np.pi) ** 3 * K_B / (H**2 * M_E**3)) + * (E**2 / C) ** 3 +) # See Eq. 19 in Sutherland, R. S. 1998, MNRAS, 300, 321 +FF_OPAC_CONST = ( + (2 * np.pi / (3 * M_E * K_B)) ** 0.5 * 4 * E**6 / (3 * M_E * H * C) +) # See Eq. 6.1.8 in http://personal.psu.edu/rbc3/A534/lec6.pdf + + +def calculate_upsilon_g_2_collisional_rates(yg, t_electrons, delta_energies): + boltzmann_factor = np.exp( + -delta_energies.values[np.newaxis].T / (t_electrons * const.k_B).value + ) + + q_lu = ( + BETA_COLL.value / np.sqrt(t_electrons) * yg * boltzmann_factor + ) # see formula A2 in Przybilla, Butler 2004 - Apj 609, 1181 + return pd.DataFrame(q_lu, index=delta_energies.index) + + +class UpsilonCMFGENSolver: + """ + Attributes + ---------- + yg_data : pandas.DataFrame + Table of thermally averaged effective collision strengths + (divided by the statistical weight of the lower level) Y_ij / g_i . + Columns are temperatures. + t_yg : numpy.ndarray + Temperatures at which collision strengths are tabulated. + yg_index : Pandas MultiIndex + delta_E_yg : pandas.DataFrame + Energy difference between upper and lower levels coupled by collisions. + yg_idx : pandas.DataFrame + Source_level_idx and destination_level_idx of collision transitions. + Indexed by atomic_number, ion_number, level_number_lower, + level_number_upper. + """ + + def __init__( + self, + upsilon_temperatures, + upsilon_g_data, + ): + self.upsilon_lu_data = upsilon_g_data + + # can produce upsilon/g or not, depending on how easy it is + self.upsilon_g_lu_interpolator = PchipInterpolator( + upsilon_temperatures, + self.upsilon_lu_data.values, + axis=1, + extrapolate=True, + ) + + def solve(self, t_electrons): + return pd.DataFrame( + self.upsilon_g_lu_interpolator(t_electrons), + index=self.upsilon_lu_data.index, + ) + + +class UpsilonChiantiSolver: + """Solver for Upsilon / g_i for Chianti data.""" + + def __init__( + self, + upsilon_data, + ): + self.upsilon_lu_data = upsilon_data + + def upsilon_scaling(self, row, t_electrons): + """Scales Upsilon from Chianti data using equations + 23-38 from Burgess & Tully 1992 - A&A 254, 436B. + + Parameters + ---------- + row : pd.Series + DataFrame row of Chianti collisional data + t_electrons : np.ndarray + 1D array of electron temperatures to interpolate over + + Returns + ------- + pd.Series + Scaled Upsilon / g_lower + + Raises + ------ + ValueError + Incorrect scaling type provided + """ + scaling_constant = row["cups"] + x_knots = np.linspace(0, 1, len(row["btemp"])) + y_knots = row["bscups"] + delta_energy = row["delta_e"] + g_lower = row["g_l"] + + scaling_type = row["ttype"] + if scaling_type > 5: + scaling_type -= 5 + + kt = K_B_EV * t_electrons + + spline_tck = splrep(x_knots, y_knots) + + if scaling_type == 1: + x = 1 - np.log(scaling_constant) / np.log( + kt / delta_energy + scaling_constant + ) + y_func = splev(x, spline_tck) + upsilon = y_func * np.log(kt / delta_energy + np.exp(1)) + + elif scaling_type == 2: + x = (kt / delta_energy) / (kt / delta_energy + scaling_constant) + y_func = splev(x, spline_tck) + upsilon = y_func + + elif scaling_type == 3: + x = (kt / delta_energy) / (kt / delta_energy + scaling_constant) + y_func = splev(x, spline_tck) + upsilon = y_func / (kt / delta_energy + 1) + + elif scaling_type == 4: + x = 1 - np.log(scaling_constant) / np.log( + kt / delta_energy + scaling_constant + ) + y_func = splev(x, spline_tck) + upsilon = y_func * np.log(kt / delta_energy + scaling_constant) + + elif scaling_type > 4: + raise ValueError( + "Not sure what to do with scaling type greater than 4" + ) + + upsilon_g_lu = upsilon / g_lower + return pd.Series(data=upsilon_g_lu, name="upsilon_g") + + def solve(self, t_electrons): + """Solve the Upsilon / g_lower collisional values for arbitrary temperatures. + + Parameters + ---------- + t_electrons : np.ndarray + 1D array of electron temperatures to interpolate over + + Returns + ------- + pd.DataFrame + DataFrame with columns of Upsilon / g_lower per transition and temperature. + """ + upsilon_g_lu = self.upsilon_lu_data.apply( + self.upsilon_scaling, + axis=1, + args=(t_electrons.value,), + ) + return pd.DataFrame( + upsilon_g_lu, + index=self.upsilon_lu_data.index, + ) + + +class UpsilonRegemorterSolver: + def __init__(self, transition_data, g_bar=0.2) -> None: + assert transition_data.index.names == [ + "atomic_number", + "ion_number", + "level_number_lower", + "level_number_upper", + ] + assert {"f_lu", "nu"} - set(transition_data.columns) == set() + + assert np.all( + transition_data.index.get_level_values("level_number_lower") + < transition_data.index.get_level_values("level_number_upper") + ) + self.transition_data = transition_data.sort_index() + self.g_bar = g_bar + + def solve(self, t_electrons): + """ + Calculate collision strengths in the van Regemorter approximation. + + This function calculates thermally averaged effective collision + strengths (divided by the statistical weight of the lower level) + Y_ij / g_i using the van Regemorter approximation. A very good description can be found in + Mihalas Chapter on collisional rates + + Parameters + ---------- + atomic_data : tardis.io.atom_data.AtomData + t_electrons : numpy.ndarray + continuum_interaction_species : pandas.MultiIndex + + Returns + ------- + pandas.DataFrame + Thermally averaged effective collision strengths + (divided by the statistical weight of the lower level) Y_ij / g_i + + Notes + ----- + See Eq. 9.58 in [2]. + + References + ---------- + .. [1] van Regemorter, H., “Rate of Collisional Excitation in Stellar + Atmospheres.”, The Astrophysical Journal, vol. 136, p. 906, 1962. + doi:10.1086/147445. + .. [2] Hubeny, I. and Mihalas, D., "Theory of Stellar Atmospheres". 2014. + """ + upsilon_g_lu = ( + self.transition_data.f_lu.values + * ( + HYDROGEN_IONIZATION_ENERGY + / (const.h * self.transition_data.nu.values * u.Hz) + ) + ** 2 + ) + + upsilon_g_lu = ( + 14.5 + * REGEMORTER_CONSTANT + * t_electrons.value + * upsilon_g_lu[:, np.newaxis] + ) + + u0 = ( + const.h.cgs.value * self.transition_data.nu.values[np.newaxis].T + ) / (t_electrons.value * const.k_B.cgs.value) + gamma_component = 0.276 * exp1_times_exp(u0) # Eq 9.59 in Mihalas + # choice of transitions between principal quantum numbers g_bar = 0.2, otherwise gbar = 0.7 + # NOTE currently we assume all transitions have changes in principal quantum numbers which is wrong + gamma = np.maximum(self.g_bar, gamma_component) + upsilon_g_lu *= u0 * gamma / BETA_COLL + upsilon_g_lu = pd.DataFrame( + upsilon_g_lu.cgs.value, + index=self.transition_data.index, + ) + return upsilon_g_lu + + +class CollExcRateCoeff: + """ + Attributes + ---------- + coll_exc_coeff : pandas.DataFrame, dtype float + Rate coefficient for collisional excitation. + """ + + outputs = ("coll_exc_coeff",) + latex_name = ("c_{lu}",) + + def calculate(self, yg_interp, yg_index, t_electrons, delta_E_yg): + yg = yg_interp(t_electrons) + boltzmann_factor = np.exp( + -delta_E_yg.values[np.newaxis].T / (t_electrons * K_B) + ) + q_ij = ( + BETA_COLL.value / np.sqrt(t_electrons) * yg * boltzmann_factor + ) # see formula A2 in Przybilla, Butler 2004 - Apj 609, 1181 + return pd.DataFrame(q_ij, index=yg_index) + + +class CollDeexcRateCoeff: + """ + Attributes + ---------- + coll_deexc_coeff : pandas.DataFrame, dtype float + Rate coefficient for collisional deexcitation. + """ + + outputs = ("coll_deexc_coeff",) + latex_name = ("c_{ul}",) + + def calculate(self, thermal_lte_level_boltzmann_factor, coll_exc_coeff): + level_lower_index = coll_exc_coeff.index.droplevel("level_number_upper") + level_upper_index = coll_exc_coeff.index.droplevel("level_number_lower") + + n_lower_prop = thermal_lte_level_boltzmann_factor.loc[ + level_lower_index + ].values + n_upper_prop = thermal_lte_level_boltzmann_factor.loc[ + level_upper_index + ].values + + coll_deexc_coeff = coll_exc_coeff * n_lower_prop / n_upper_prop + return coll_deexc_coeff diff --git a/tardis/plasma/detailed_balance/rates/collisional_rates.py b/tardis/plasma/detailed_balance/rates/collisional_rates.py new file mode 100644 index 00000000000..32ae38dbfae --- /dev/null +++ b/tardis/plasma/detailed_balance/rates/collisional_rates.py @@ -0,0 +1,149 @@ +import numpy as np +import pandas as pd +from astropy import units as u + +from tardis import constants as const +from tardis.plasma.detailed_balance.rates.collision_strengths import ( + UpsilonChiantiSolver, + UpsilonCMFGENSolver, + UpsilonRegemorterSolver, +) + +BETA_COLL = ( + (const.h**4 / (8 * const.k_B * const.m_e**3 * np.pi**3)) ** 0.5 +).cgs + + +class ThermalCollisionalRateSolver: + def __init__( + self, + levels, + radiative_transitions, + thermal_collisional_strengths_temperatures, + thermal_collisional_strengths, + collision_strengths_type, + collisional_strength_approximation="regemorter", + ): + self.levels = levels + self.collision_strengths_type = collision_strengths_type + if self.collision_strengths_type == "cmfgen": + self.thermal_collision_strength_solver = UpsilonCMFGENSolver( + thermal_collisional_strengths_temperatures, + thermal_collisional_strengths, + ) + elif self.collision_strengths_type == "chianti": + self.thermal_collision_strength_solver = UpsilonChiantiSolver( + thermal_collisional_strengths, + ) + else: + raise ValueError( + f"collision_strengths_type {collision_strengths_type} not supported" + ) + self.radiative_transitions = radiative_transitions + # find the transitions that have radiative rate data but no collisional data + missing_collision_strengths_index = ( + radiative_transitions.index.difference( + thermal_collisional_strengths.index + ) + ) + self.all_collisional_strengths_index = ( + missing_collision_strengths_index.append( + thermal_collisional_strengths.index + ).sort_values() + ) + self.delta_energies = ( + self.levels.loc[ + self.all_collisional_strengths_index.droplevel( + "level_number_upper" + ) + ].energy.values + - self.levels.loc[ + self.all_collisional_strengths_index.droplevel( + "level_number_lower" + ) + ].energy.values + ) * u.erg + + self.g_l = self.levels.loc[ + self.all_collisional_strengths_index.droplevel("level_number_lower") + ].g.values + + self.g_u = self.levels.loc[ + self.all_collisional_strengths_index.droplevel("level_number_upper") + ].g.values + + if collisional_strength_approximation == "regemorter": + self.thermal_collision_strength_approximator = ( + UpsilonRegemorterSolver( + radiative_transitions.loc[missing_collision_strengths_index] + ) + ) + + def solve(self, temperatures_electron): + thermal_all_collision_strengths = self.calculate_collision_strengths( + temperatures_electron + ) + + boltzmann_factor = np.exp( + self.delta_energies[np.newaxis].T + / (temperatures_electron * const.k_B), + ).value + collision_rates_coeff_lu = ( + (BETA_COLL / np.sqrt(temperatures_electron) * boltzmann_factor) + .to("cm3 / s") + .value + * thermal_all_collision_strengths + ) # see formula A2 in Przybilla, Butler 2004 - Apj 609, 1181 + + collision_rates_coeff_ul = ( + (self.g_u / self.g_l)[np.newaxis].T + / boltzmann_factor + * collision_rates_coeff_lu + ) + + collision_rates_coeff_ul.index = ( + collision_rates_coeff_lu.index.swaplevel( + "level_number_lower", "level_number_upper" + ) + ) + + collision_rates_coeff_df = pd.concat( + [collision_rates_coeff_lu, collision_rates_coeff_ul] + ) + collision_rates_coeff_df.index.names = [ + "atomic_number", + "ion_number", + "level_number_source", + "level_number_destination", + ] + return collision_rates_coeff_df + + def calculate_collision_strengths(self, temperatures_electron): + """ + Calculate collision strengths based on the provided electron temperatures. + + Parameters + ---------- + temperatures_electron : array-like + Array-like of electron temperatures. + + Returns + ------- + pandas.DataFrame + DataFrame containing the calculated collision strengths. + """ + thermal_collision_strengths = ( + self.thermal_collision_strength_solver.solve(temperatures_electron) + ) + thermal_collision_strength_approximated = ( + self.thermal_collision_strength_approximator.solve( + temperatures_electron + ) + ) + + return pd.concat( + [ + thermal_collision_strengths, + thermal_collision_strength_approximated, + ] + ).sort_index() diff --git a/tardis/plasma/detailed_balance/rates/radiative_rates.py b/tardis/plasma/detailed_balance/rates/radiative_rates.py new file mode 100644 index 00000000000..ab6fb22b444 --- /dev/null +++ b/tardis/plasma/detailed_balance/rates/radiative_rates.py @@ -0,0 +1,57 @@ +import numpy as np +import pandas as pd + + +class RadiativeRatesSolver: + einstein_coefficients: pd.DataFrame + + def __init__(self, einstein_coefficients): + # Ensuring the right columns are present + assert einstein_coefficients.index.names == [ + "atomic_number", + "ion_number", + "level_number_lower", + "level_number_upper", + ] + assert {"A_ul", "B_ul", "B_lu", "nu"} - set( + einstein_coefficients.columns + ) == set() + + assert np.all( + einstein_coefficients.index.get_level_values("level_number_lower") + < einstein_coefficients.index.get_level_values("level_number_upper") + ) + self.einstein_coefficients = einstein_coefficients.sort_index() + + def solve(self, radiation_field): + mean_intensity = radiation_field.calculate_mean_intensity( + self.einstein_coefficients.nu.values + ) + mean_intensity_df = pd.DataFrame( + data=mean_intensity, index=self.einstein_coefficients.index + ) + + # r_lu = B_lu * J_nu + r_lu = mean_intensity_df.multiply( + self.einstein_coefficients.B_lu, axis=0 + ) + + # r_ul = B_ul * J_nu + A_ul + r_ul = mean_intensity_df.multiply( + self.einstein_coefficients["B_ul"], axis=0 + ) + r_ul = r_ul.add(self.einstein_coefficients["A_ul"], axis=0) + + # swapping as source is upper and destination is lower + r_ul.index = r_ul.index.swaplevel( + "level_number_lower", "level_number_upper" + ) + + rates_df = pd.concat([r_lu, r_ul]) + rates_df.index.names = [ + "atomic_number", + "ion_number", + "level_number_source", + "level_number_destination", + ] + return rates_df diff --git a/tardis/plasma/detailed_balance/tests/__init__.py b/tardis/plasma/detailed_balance/tests/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tardis/plasma/detailed_balance/tests/test_collisional_transitions.py b/tardis/plasma/detailed_balance/tests/test_collisional_transitions.py new file mode 100644 index 00000000000..9b5d80ea574 --- /dev/null +++ b/tardis/plasma/detailed_balance/tests/test_collisional_transitions.py @@ -0,0 +1,190 @@ +import copy + +import numpy as np +import numpy.testing as npt +import pandas as pd +import pandas.testing as pdt +import pytest +from astropy import units as u + +from tardis.io.atom_data import AtomData +from tardis.plasma.assembly.base import ( + PlasmaSolverFactory, + convert_species_to_multi_index, +) +from tardis.plasma.detailed_balance.rates import ( + # UpsilonCMFGENSolver, + ThermalCollisionalRateSolver, + # RadiativeRatesSolver, + UpsilonRegemorterSolver, +) +from tardis.plasma.properties.atomic import YgData, YgInterpolator +from tardis.plasma.properties.continuum_processes import ( + CollDeexcRateCoeff, + CollExcRateCoeff, +) +from tardis.plasma.properties.general import BetaElectron +from tardis.plasma.properties.partition_function import ( + ThermalLevelBoltzmannFactorLTE, +) +from tardis.plasma.properties.plasma_input import ContinuumInteractionSpecies +from tardis.plasma.radiation_field import planck_rad_field + + +@pytest.fixture +def legacy_cmfgen_collision_rate_plasma_solver(nlte_atomic_dataset): + atom_data = copy.deepcopy(nlte_atomic_dataset) + # almost all settings are irrelevant for collisional strength data + number_densities = pd.DataFrame({1: [1, 1]}).T + temperatures = [10000, 20000] * u.K + dilution_factor = np.array([1, 1]) + time_explosion = 5 * u.day + dilute_planck_rad_field = planck_rad_field.DilutePlanckianRadiationField( + temperatures, dilution_factor + ) + plasma_solver_factory = PlasmaSolverFactory(atom_data) + + # plasma_solver_factory.continuum_interaction_species = ["He I"] + plasma_solver_factory.line_interaction_type = "macroatom" + plasma_solver_factory.prepare_factory([1]) + plasma_solver_factory.plasma_modules += [ + YgData, + ContinuumInteractionSpecies, + CollExcRateCoeff, + CollDeexcRateCoeff, + YgInterpolator, + ThermalLevelBoltzmannFactorLTE, + BetaElectron, + ] + species_mindex = convert_species_to_multi_index(["H I"]) + return plasma_solver_factory.assemble( + number_densities, + dilute_planck_rad_field, + time_explosion, + continuum_interaction_species=species_mindex, + ) + + +@pytest.fixture +def new_chianti_atomic_dataset(tardis_regression_path): + atomic_data_fname = ( + tardis_regression_path / "atom_data" / "new_kurucz_cd23_chianti_H_He.h5" + ) + return AtomData.from_hdf(atomic_data_fname) + + +@pytest.fixture +def legacy_chianti_collision_rate_plasma_solver(atomic_dataset): + atom_data = copy.deepcopy(atomic_dataset) + atom_data.prepare_atom_data([1], "macroatom", [(1, 0)], []) + return atom_data.nlte_data.get_collision_matrix( + (1, 0), np.array([10000, 20000]) + ) + + +def test_legacy_cmfgen_collisional_strengths( + legacy_cmfgen_collision_rate_plasma_solver, + nlte_atomic_dataset, + regression_data, +): + # using christian's old implementation + plasma_solver = legacy_cmfgen_collision_rate_plasma_solver + atom_data = copy.deepcopy(nlte_atomic_dataset) + legacy_cmfgen_yg_data = plasma_solver.yg_data.loc[ + atom_data.yg_data.loc[(1, 0, slice(None), slice(None)), :].index + ] + approximated_cmfgen_yg_data = plasma_solver.yg_data.loc[ + ~plasma_solver.yg_data.index.isin(atom_data.yg_data.index) + ] + + # This is testing againt the old setup + radiative_transitions = atom_data.lines.loc[ + (1, 0, slice(None), slice(None)), : + ] + + collision_strengths_regemorter_solver = UpsilonRegemorterSolver( + radiative_transitions.loc[approximated_cmfgen_yg_data.index] + ) + + new_regemorter_collision_strengths = ( + collision_strengths_regemorter_solver.solve( + t_electrons=legacy_cmfgen_yg_data.columns.values * u.K + ) + ) + npt.assert_allclose( + new_regemorter_collision_strengths.values, + approximated_cmfgen_yg_data, + ) # residuals are ~1e-8 not sure if that is good enough + # Not comparing to the yg_data as they are saved differently + + +def test_thermal_collision_rates( + legacy_cmfgen_collision_rate_plasma_solver, + nlte_atomic_dataset, + regression_data, +): + atom_data = copy.deepcopy(nlte_atomic_dataset) + radiative_transitions = atom_data.lines.loc[ + (1, 0, slice(None), slice(None)), : + ] + + collision_strengths = atom_data.yg_data.loc[ + (1, 0, slice(None), slice(None)), : + ] + collision_strengths_temperatures = atom_data.collision_data_temperatures + + therm_coll_rate_solver = ThermalCollisionalRateSolver( + atom_data.levels, + radiative_transitions, + collision_strengths_temperatures, + collision_strengths, + collision_strengths_type="cmfgen", + collisional_strength_approximation="regemorter", + ) + coll_rates_coeff = therm_coll_rate_solver.solve([10000, 20000] * u.K) + pdt.assert_frame_equal( + coll_rates_coeff.iloc[:435], + legacy_cmfgen_collision_rate_plasma_solver.coll_exc_coeff, + check_names=False, + ) + pdt.assert_frame_equal( + coll_rates_coeff.iloc[435:], + legacy_cmfgen_collision_rate_plasma_solver.coll_deexc_coeff.swaplevel( + "level_number_lower", "level_number_upper" + ), + check_names=False, + ) + + +# Add chianti tests +def test_legacy_chianti_collisional_strengths( + legacy_chianti_collision_rate_plasma_solver, + new_chianti_atomic_dataset, + regression_data, +): + collision_strengths = legacy_chianti_collision_rate_plasma_solver + atom_data = copy.deepcopy(new_chianti_atomic_dataset) + + temperature = np.array([10000, 20000]) * u.K + + col_strengths = atom_data.collision_data.loc[ + (1, 0, slice(None), slice(None)), : + ] + radiative_transitions = atom_data.lines.loc[ + (1, 0, slice(None), slice(None)), : + ] + collisional_rate_solver = ThermalCollisionalRateSolver( + atom_data.levels, + radiative_transitions, + temperature, + col_strengths, + "chianti", + ) + chianti_collisional_rates = collisional_rate_solver.solve(temperature) + + npt.assert_allclose( + collision_strengths[0, 1, :], + chianti_collisional_rates.loc[1, 0, 1, 0], + rtol=1e-4, + atol=1e-13, + ) diff --git a/tardis/plasma/properties/nlte_rate_equation_solver.py b/tardis/plasma/properties/nlte_rate_equation_solver.py index ab1f78d7b96..ebfcf7c0d5b 100644 --- a/tardis/plasma/properties/nlte_rate_equation_solver.py +++ b/tardis/plasma/properties/nlte_rate_equation_solver.py @@ -24,6 +24,14 @@ class NLTEPopulationSolverRoot(ProcessingPlasmaProperty): outputs = ("ion_number_density", "electron_densities") + def __init__( + self, + plasma_parent, + electron_densities=None, + ): + super().__init__(plasma_parent) + self._electron_densities = electron_densities + def calculate( self, gamma, @@ -138,9 +146,7 @@ def calculate( ), jac=True, ) - assert ( - solution.success - ), "No solution for NLTE population equation found or solver takes too long to converge" + assert solution.success, "No solution for NLTE population equation found or solver takes too long to converge" ( ion_number_density[shell], electron_densities[shell], @@ -169,6 +175,14 @@ def calculate( class NLTEPopulationSolverLU(ProcessingPlasmaProperty): outputs = ("ion_number_density", "electron_densities") + def __init__( + self, + plasma_parent, + electron_densities=None, + ): + super().__init__(plasma_parent) + self._electron_densities = electron_densities + def calculate( self, gamma, @@ -713,9 +727,9 @@ def calculate_rate_matrix( total_coll_ion_coefficients.loc[(atomic_number,)], total_coll_recomb_coefficients.loc[(atomic_number,)], ) - rate_matrix.loc[ - (atomic_number, slice(None)), (atomic_number) - ] = rate_matrix_block + rate_matrix.loc[(atomic_number, slice(None)), (atomic_number)] = ( + rate_matrix_block + ) charge_conservation_row = calculate_charge_conservation_row(atomic_numbers) if set_charge_conservation: diff --git a/tardis/plasma/radiation_field/__init__.py b/tardis/plasma/radiation_field/__init__.py index 307ea6046c5..9b5e11f4f47 100644 --- a/tardis/plasma/radiation_field/__init__.py +++ b/tardis/plasma/radiation_field/__init__.py @@ -1,3 +1,4 @@ from tardis.plasma.radiation_field.planck_rad_field import ( DilutePlanckianRadiationField, + PlanckianRadiationField, )