From 86330e067bbb6b580db0796324a2cf42401e2c73 Mon Sep 17 00:00:00 2001 From: David Hendriks <davidhendriks93@gmail.com> Date: Fri, 13 Sep 2019 10:57:18 +0100 Subject: [PATCH] removed stuff that didnt really belong here --- ...inary_full_evolution_plot-checkpoint.ipynb | 162 --------------- .../single_star_full-checkpoint.ipynb | 141 -------------- .../binary_full_evolution_plot.ipynb | 184 ------------------ david_calculations/single_star_full.ipynb | 143 -------------- david_results/s.png | Bin 12833 -> 0 bytes 5 files changed, 630 deletions(-) delete mode 100644 david_calculations/.ipynb_checkpoints/binary_full_evolution_plot-checkpoint.ipynb delete mode 100644 david_calculations/.ipynb_checkpoints/single_star_full-checkpoint.ipynb delete mode 100644 david_calculations/binary_full_evolution_plot.ipynb delete mode 100644 david_calculations/single_star_full.ipynb delete mode 100644 david_results/s.png diff --git a/david_calculations/.ipynb_checkpoints/binary_full_evolution_plot-checkpoint.ipynb b/david_calculations/.ipynb_checkpoints/binary_full_evolution_plot-checkpoint.ipynb deleted file mode 100644 index 541ad219b..000000000 --- a/david_calculations/.ipynb_checkpoints/binary_full_evolution_plot-checkpoint.ipynb +++ /dev/null @@ -1,162 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os, sys, time\n", - "\n", - "import matplotlib.pyplot as plt\n", - "from collections import defaultdict\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "# sys.path.append('../')\n", - "import binary_c\n", - "\n", - "\n", - "from binaryc_python_utils.functions import create_arg_string, parse_output, run_system\n", - "\n", - "result_dir = '../david_results/'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Run binaryc command" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Took 1.60s to run single system\n", - "The following keys are present in the results:\n", - "dict_keys(['t', 'mass_1', 'zams_mass_1', 'mass_2', 'zams_mass_2', 'stellar_type_1', 'prev_stellar_type_1', 'stellar_type_2', 'prev_stellar_type_2', 'radius_1', 'radius_2', 'roche_radius_1', 'roche_radius_2', 'core_mass_1', 'core_mass_2', 'luminosity_1', 'luminosity_2', 'omega_1', 'omega_2', 'metallicity', 'probability', 'separation', 'eccentricity', 'period', 'dtm', 'core_radius_1', 'core_radius_2', 'teff_1', 'teff_2', 'drdt_1', 'drdt_2', 'vwind_1', 'vwind_2', 'tm_1', 'tm_2', 'tn_1', 'tn_2', 'tkh_1', 'tk_2', 'angular_momentum_1', 'angular_momentum_2', 'he_core_mass_1', 'he_core_mass_2', 'CO_core_mass_1', 'CO_core_mass_2', 'GB_core_mass_1', 'GB_core_mass_2', 'v_eq_1', 'v_eq_2', 'v_eq_ratio_1', 'v_eq_ratio_2'])\n" - ] - } - ], - "source": [ - "start = time.time()\n", - "output = run_system(M_1=10, M_2=20, separation=0, orbital_period=100, max_evolution_time=15000)\n", - "result = parse_output(output, 'DAVID_BINARY_ANALYSIS')\n", - "stop = time.time()\n", - "print(\"Took {:.2f}s to run single system\".format(stop-start))\n", - "print(\"The following keys are present in the results:\\n{}\".format(result.keys()))" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "18351949\n" - ] - } - ], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "# Cast the data into a dataframe. \n", - "df = pd.DataFrame.from_dict(result, dtype=np.float64)\n", - "#### Now do whatever you want with it: \n", - "\n", - "# Get last change moment\n", - "last_st_1 = df['stellar_type_1'].unique()[-1]\n", - "last_stellar_type_change_time_1 = df[df.stellar_type_1==last_st_1]['t'].iloc[0]\n", - "last_st_2 = df['stellar_type_2'].unique()[-1]\n", - "last_stellar_type_change_time_2 = df[df.stellar_type_2==last_st_2]['t'].iloc[0]\n", - "last_change_time = last_stellar_type_change_time_1 if last_stellar_type_change_time_1>last_stellar_type_change_time_2 else last_stellar_type_change_time_2\n", - "\n", - "\n", - "# slice to get that last time\n", - "sliced_df = df[df.t < last_change_time] # Cut off late parts of evolution" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(sliced_df['t'], sliced_df['mass_1'], label='mass_1')\n", - "plt.plot(sliced_df['t'], sliced_df['mass_2'], label='mass_2')\n", - "plt.xlabel('Time (Myr)')\n", - "plt.ylabel('Radius (Rsol)')\n", - "# plt.yscale('log')\n", - "plt.legend()\n", - "plt.savefig(os.path.join(result_dir, 's'))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "plt.plot(sliced_df['t'], sliced_df['period'], label='period')\n", - "plt.plot(sliced_df['t'], sliced_df['mass_2'], label='mass_2')\n", - "plt.xlabel('Time (Myr)')\n", - "plt.ylabel('Radius (Rsol)')\n", - "# plt.yscale('log')\n", - "plt.legend()\n", - "plt.savefig(os.path.join(result_dir, 's'))\n", - "plt.show()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.4" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/david_calculations/.ipynb_checkpoints/single_star_full-checkpoint.ipynb b/david_calculations/.ipynb_checkpoints/single_star_full-checkpoint.ipynb deleted file mode 100644 index 080265bf5..000000000 --- a/david_calculations/.ipynb_checkpoints/single_star_full-checkpoint.ipynb +++ /dev/null @@ -1,141 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os, sys, time\n", - "\n", - "import matplotlib.pyplot as plt\n", - "from collections import defaultdict\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "# sys.path.append('../')\n", - "import binary_c\n", - "\n", - "\n", - "from binaryc_python_utils.functions import create_arg_string, parse_output, run_system\n", - "\n", - "result_dir = '../david_results/'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Execute command and parse args" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Took 0.20s to run single system\n", - "The following keys are present in the results:\n", - "dict_keys(['t', 'mass', 'zams_mass', 'stellar_type', 'prev_stellar_type', 'metallicity', 'probability', 'dM_in_timestep', 'mdot', 'core_mass', 'core_radius', 'luminosity', 'radius', 'dt', 'dtm', 'Teff', 'omega', 'vwind', 'drdt', 'tm', 'tn', 'tkh', 'angular_momentum', 'he_core_mass', 'CO_core_mass', 'GB_core_mass', 'v_eq', 'v_eq_ratio'])\n" - ] - } - ], - "source": [ - "start = time.time()\n", - "output = run_system(M_1=10, M_2=20, separation=0, orbital_period=100000000000)\n", - "result = parse_output(output, 'DAVID_SINGLE_ANALYSIS')\n", - "stop = time.time()\n", - "print(\"Took {:.2f}s to run single system\".format(stop-start))\n", - "print(\"The following keys are present in the results:\\n{}\".format(result.keys()))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Cast data into pandas framework and do analysis" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "#### Now do whatever you want with it: \n", - "\n", - "# Cast the data into a dataframe. \n", - "df = pd.DataFrame.from_dict(result, dtype=np.float64)\n", - "\n", - "# Get last change moment\n", - "last_st = df['stellar_type'].unique()[-1]\n", - "last_stellar_type_change_time_1 = df[df.stellar_type==last_st]['t'].iloc[0]\n", - "\n", - "# slice to get that last time\n", - "sliced_df = df[df.t < last_stellar_type_change_time_1] # Cut off late parts of evolution" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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e+6JPbD4wAMPsGPHjn6XxaSBL895eVEmss5IrsYMYvn5+UlNwZGK2267jZtuuinh41UVVWX58uUZLFV6XHvttbHtBx54gKOPPppx48ZlsUQGcAJFhpqeLFCYrPn3t/6dD2s/TGueM8tm8i/z/iWlc5977jluuOEGCgoKOOWUU9i0aRPPPPMMP/rRjygqKopN8nf00UfzzDPPUFVVxfnnn8+2bdtoaWnh+uuvZ/Hixdx44400Nzdz7LHHctRRR7F06VJ+/vOfx56r+MY3vsENN9zA5s2bOfPMM5k/fz6rVq1i+fLlnHrqqaxcuZKKiopu8+7JPffcw8aNG/npT38KODfwlStXctddd/G73/2OO++8k7a2NubPn8+vfvUrvF5vp/O7Kx/AQw89xB133IGIMHv2bB5++OHYv0dVVRUrV67kiiuuID8/n1tvvZXf/OY3sYkR/+d//odf/epXPP744yn9HiZJXqtRGJM27Tfxdt///vdZtGgR11xzDS+99BLTpk3j0ksvTSiv+++/n7KyMpqbmznhhBO46KKLuP3227nrrrtitZZVq1bx29/+ljfffBNVZf78+Zx66qmMHDmSDRs28OCDD3LiiScmlHd5eXm35bjooos46aSTYoHiD3/4AzfffDMffPABf/jDH/jHP/6B3+/nm9/8JkuXLuWrX/1q7NyeyhcIBLjlllt47bXXqKiooLa2ttM1L774Yu666y7uuOMO5s6di6ry3e9+l71791JZWclvf/tbvv71ryf072jSwBcYvjUKETkfOAcoAe5T1ReyXCSTJqn+5d9f3TU9rVmzhilTpjB9+nQAvvzlL7NkyZI+87rzzjtjfzFv27aNDRs2HHIz//vf/84FF1xAYWEhABdeeCF/+9vfOO+885g8eXK3QSLRvNtVVlYydepU3njjDaZPn86HH37Ipz71Ke6++25WrVrFCSecADhBctSoUQmVT0S45JJLqKioAKCsrKzXfwsR4Stf+Qq/+93vuOqqq3j99ddjfRlmAHjzIDIEA4WI3A+cC+xR1aPj0s8C/gvwAveqao+9iar6BPCEiIwE7gAsUJgB5fP5iEajsc/tU4S/8sorvPjii7z++usUFBRw2mmnJT19ePvNuatU8r7ssst49NFHmTlzJhdccAEigqryta99jZ/85CdJlStVV111FQsXLiQYDHLJJZfg8w36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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(sliced_df['t'], sliced_df['radius'], label='radius')\n", - "plt.plot(sliced_df['t'], sliced_df['omega'], label='Omega')\n", - "plt.plot(sliced_df['t'], sliced_df['v_eq'], label='Equatorial velocity')\n", - "plt.xlabel('Time (Myr)')\n", - "plt.ylabel('Radius (Rsol)')\n", - "plt.yscale('log')\n", - "plt.legend()\n", - "plt.savefig(os.path.join(result_dir, 's'))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.4" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/david_calculations/binary_full_evolution_plot.ipynb b/david_calculations/binary_full_evolution_plot.ipynb deleted file mode 100644 index 6d90484f4..000000000 --- a/david_calculations/binary_full_evolution_plot.ipynb +++ /dev/null @@ -1,184 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os, sys, time\n", - "\n", - "import matplotlib.pyplot as plt\n", - "from collections import defaultdict\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "# sys.path.append('../')\n", - "import binary_c\n", - "\n", - "\n", - "from binaryc_python_utils.functions import create_arg_string, parse_output, run_system\n", - "\n", - "result_dir = '../david_results/'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Run binaryc command" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Took 1.60s to run single system\n", - "The following keys are present in the results:\n", - "dict_keys(['t', 'mass_1', 'zams_mass_1', 'mass_2', 'zams_mass_2', 'stellar_type_1', 'prev_stellar_type_1', 'stellar_type_2', 'prev_stellar_type_2', 'radius_1', 'radius_2', 'roche_radius_1', 'roche_radius_2', 'core_mass_1', 'core_mass_2', 'luminosity_1', 'luminosity_2', 'omega_1', 'omega_2', 'metallicity', 'probability', 'separation', 'eccentricity', 'period', 'dtm', 'core_radius_1', 'core_radius_2', 'teff_1', 'teff_2', 'drdt_1', 'drdt_2', 'vwind_1', 'vwind_2', 'tm_1', 'tm_2', 'tn_1', 'tn_2', 'tkh_1', 'tk_2', 'angular_momentum_1', 'angular_momentum_2', 'he_core_mass_1', 'he_core_mass_2', 'CO_core_mass_1', 'CO_core_mass_2', 'GB_core_mass_1', 'GB_core_mass_2', 'v_eq_1', 'v_eq_2', 'v_eq_ratio_1', 'v_eq_ratio_2'])\n" - ] - } - ], - "source": [ - "start = time.time()\n", - "output = run_system(M_1=10, M_2=20, separation=0, orbital_period=100, max_evolution_time=15000)\n", - "result = parse_output(output, 'DAVID_BINARY_ANALYSIS')\n", - "stop = time.time()\n", - "print(\"Took {:.2f}s to run single system\".format(stop-start))\n", - "print(\"The following keys are present in the results:\\n{}\".format(result.keys()))" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "18351949\n" - ] - } - ], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": { - "scrolled": false - }, - "outputs": [], - "source": [ - "# Cast the data into a dataframe. \n", - "df = pd.DataFrame.from_dict(result, dtype=np.float64)\n", - "#### Now do whatever you want with it: \n", - "\n", - "# Get last change moment\n", - "last_st_1 = df['stellar_type_1'].unique()[-1]\n", - "last_stellar_type_change_time_1 = df[df.stellar_type_1==last_st_1]['t'].iloc[0]\n", - "last_st_2 = df['stellar_type_2'].unique()[-1]\n", - "last_stellar_type_change_time_2 = df[df.stellar_type_2==last_st_2]['t'].iloc[0]\n", - "last_change_time = last_stellar_type_change_time_1 if last_stellar_type_change_time_1>last_stellar_type_change_time_2 else last_stellar_type_change_time_2\n", - "\n", - "\n", - "# slice to get that last time\n", - "sliced_df = df[df.t < last_change_time] # Cut off late parts of evolution" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(sliced_df['t'], sliced_df['mass_1'], label='mass_1')\n", - "plt.plot(sliced_df['t'], sliced_df['mass_2'], label='mass_2')\n", - "plt.xlabel('Time (Myr)')\n", - "plt.ylabel('Radius (Rsol)')\n", - "# plt.yscale('log')\n", - "plt.legend()\n", - "plt.savefig(os.path.join(result_dir, 's'))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(sliced_df['t'], sliced_df['period'], label='period')\n", - "plt.plot(sliced_df['t'], sliced_df['omega_1'], label='omega_1')\n", - "plt.plot(sliced_df['t'], sliced_df['omega_2'], label='omega_2')\n", - "\n", - "plt.xlabel('Time (Myr)')\n", - "plt.ylabel('Radius (Rsol)')\n", - "plt.yscale('log')\n", - "plt.legend()\n", - "plt.savefig(os.path.join(result_dir, 's'))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.4" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/david_calculations/single_star_full.ipynb b/david_calculations/single_star_full.ipynb deleted file mode 100644 index 33e45e38d..000000000 --- a/david_calculations/single_star_full.ipynb +++ /dev/null @@ -1,143 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os, sys, time\n", - "\n", - "import matplotlib.pyplot as plt\n", - "from collections import defaultdict\n", - "import numpy as np\n", - "import pandas as pd\n", - "\n", - "# sys.path.append('../')\n", - "import binary_c\n", - "\n", - "\n", - "from binaryc_python_utils.functions import create_arg_string, parse_output, run_system\n", - "\n", - "result_dir = '../david_results/'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Execute command and parse args" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Took 0.21s to run single system\n", - "The following keys are present in the results:\n", - "dict_keys(['t', 'mass', 'zams_mass', 'stellar_type', 'prev_stellar_type', 'metallicity', 'probability', 'dM_in_timestep', 'mdot', 'core_mass', 'core_radius', 'luminosity', 'radius', 'dt', 'dtm', 'Teff', 'omega', 'vwind', 'drdt', 'tm', 'tn', 'tkh', 'angular_momentum', 'he_core_mass', 'CO_core_mass', 'GB_core_mass', 'v_eq', 'v_eq_ratio'])\n", - "28\n" - ] - } - ], - "source": [ - "start = time.time()\n", - "output = run_system(M_1=10, M_2=20, separation=0, orbital_period=100000000000)\n", - "result = parse_output(output, 'DAVID_SINGLE_ANALYSIS')\n", - "stop = time.time()\n", - "print(\"Took {:.2f}s to run single system\".format(stop-start))\n", - "print(\"The following keys are present in the results:\\n{}\".format(result.keys()))\n", - "print(len(result))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Cast data into pandas framework and do analysis" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "#### Now do whatever you want with it: \n", - "\n", - "# Cast the data into a dataframe. \n", - "df = pd.DataFrame.from_dict(result, dtype=np.float64)\n", - "\n", - "# Get last change moment\n", - "last_st = df['stellar_type'].unique()[-1]\n", - "last_stellar_type_change_time_1 = df[df.stellar_type==last_st]['t'].iloc[0]\n", - "\n", - "# slice to get that last time\n", - "sliced_df = df[df.t < last_stellar_type_change_time_1] # Cut off late parts of evolution" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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e+6JPbD4wAMPsGPHjn6XxaSBL895eVEmss5IrsYMYvn5+UlNwZGK2267jZtuuinh41UVVWX58uUZLFV6XHvttbHtBx54gKOPPppx48ZlsUQGcAJFhpqeLFCYrPn3t/6dD2s/TGueM8tm8i/z/iWlc5977jluuOEGCgoKOOWUU9i0aRPPPPMMP/rRjygqKopN8nf00UfzzDPPUFVVxfnnn8+2bdtoaWnh+uuvZ/Hixdx44400Nzdz7LHHctRRR7F06VJ+/vOfx56r+MY3vsENN9zA5s2bOfPMM5k/fz6rVq1i+fLlnHrqqaxcuZKKiopu8+7JPffcw8aNG/npT38KODfwlStXctddd/G73/2OO++8k7a2NubPn8+vfvUrvF5vp/O7Kx/AQw89xB133IGIMHv2bB5++OHYv0dVVRUrV67kiiuuID8/n1tvvZXf/OY3sYkR/+d//odf/epXPP744yn9HiZJXqtRGJM27Tfxdt///vdZtGgR11xzDS+99BLTpk3j0ksvTSiv+++/n7KyMpqbmznhhBO46KKLuP3227nrrrtitZZVq1bx29/+ljfffBNVZf78+Zx66qmMHDmSDRs28OCDD3LiiScmlHd5eXm35bjooos46aSTYoHiD3/4AzfffDMffPABf/jDH/jHP/6B3+/nm9/8JkuXLuWrX/1q7NyeyhcIBLjlllt47bXXqKiooLa2ttM1L774Yu666y7uuOMO5s6di6ry3e9+l71791JZWclvf/tbvv71ryf072jSwBcYvjUKETkfOAcoAe5T1ReyXCSTJqn+5d9f3TU9rVmzhilTpjB9+nQAvvzlL7NkyZI+87rzzjtjfzFv27aNDRs2HHIz//vf/84FF1xAYWEhABdeeCF/+9vfOO+885g8eXK3QSLRvNtVVlYydepU3njjDaZPn86HH37Ipz71Ke6++25WrVrFCSecADhBctSoUQmVT0S45JJLqKioAKCsrKzXfwsR4Stf+Qq/+93vuOqqq3j99ddjfRlmAHjzIDIEA4WI3A+cC+xR1aPj0s8C/gvwAveqao+9iar6BPCEiIwE7gAsUJgB5fP5iEajsc/tU4S/8sorvPjii7z++usUFBRw2mmnJT19ePvNuatU8r7ssst49NFHmTlzJhdccAEigqryta99jZ/85CdJlStVV111FQsXLiQYDHLJJZfg8w36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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(sliced_df['t'], sliced_df['radius'], label='radius')\n", - "plt.plot(sliced_df['t'], sliced_df['omega'], label='Omega')\n", - "plt.plot(sliced_df['t'], sliced_df['v_eq'], label='Equatorial velocity')\n", - "plt.xlabel('Time (Myr)')\n", - "plt.ylabel('Radius (Rsol)')\n", - "plt.yscale('log')\n", - "plt.legend()\n", - "plt.savefig(os.path.join(result_dir, 's'))\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.4" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/david_results/s.png b/david_results/s.png deleted file mode 100644 index 0ed72310412285a77be27903bfb4300362b3ecf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12833 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 T$9{pYb3hvRv{lNKEJFVeXnr(~ -- GitLab