{ "cells": [ { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "# Rheological Parameter Exploration\n", "Using TidalPy's high-level functional programming, we will see how different rheological parameters affect tidal dissipation" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "# plt.style.use('dark_background')\n", "from matplotlib.gridspec import GridSpec\n", "from cmcrameri import cm as cmc\n", "from ipywidgets import interact, IntSlider, FloatSlider\n", "from matplotlib_inline.backend_inline import set_matplotlib_formats\n", "set_matplotlib_formats('pdf')\n", "\n", "from TidalPy.constants import mass_solar, radius_solar, luminosity_solar, mass_earth, radius_earth, au, G\n", "from TidalPy.toolbox import quick_tidal_dissipation\n", "from TidalPy.utilities.conversions import days2rads\n", "from TidalPy.utilities.numpy_helper.array_other import neg_array_for_log_plot\n", "from TidalPy.stellar import equilibrium_insolation_williams\n", "\n", "plt.rcParams['figure.figsize'] = [9.5 * .75, 6 * .75]\n", "plt.rcParams.update({'font.size': 14})\n", "%matplotlib widget" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "### Planetary Properties\n", "We will use planetary properties approximately based on the exoplanet: TRAPPIST 1e" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# TRAPPIST-1 (the star) Parameters [Stassun+2019, Gillon+2017]\n", "star_lumonsity = 10**(-3.28) * luminosity_solar\n", "star_radius = 0.1148270 * radius_solar\n", "star_mass = 0.09077820 * mass_solar\n", "\n", "# TRAPPIST-1e Parameters [Agol+2021, Grimm+2018]\n", "planet_radius = 0.920 * radius_earth\n", "planet_mass = 0.692 * mass_earth\n", "planet_semi_major_axis = 0.02925 * au\n", "planet_orbital_period = 6.101013\n", "planet_orbital_frequency = days2rads(planet_orbital_period)\n", "planet_eccentricity = 0.00510\n", "planet_obliquity = np.radians(90. - 89.793)\n", "\n", "# # Sun\n", "# star_lumonsity = luminosity_solar\n", "# star_radius = radius_solar\n", "# star_mass = mass_solar\n", "\n", "# # Mercury Parameters\n", "# planet_radius = 0.3829 * radius_earth\n", "# planet_mass = 0.0553 * mass_earth\n", "# planet_semi_major_axis = 0.38709893 * au\n", "# planet_orbital_period = 87.96926\n", "# planet_orbital_frequency = days2rads(planet_orbital_period)\n", "# planet_eccentricity = 0.20563069\n", "# planet_obliquity = np.radians(0.0329) # [Genova+2019]\n", "\n", "\n", "planet_moi = (2. / 5.) * planet_mass * planet_radius**2\n", "# We will assume that only 50% of the world's volume is participating in tidal dissipation\n", "tidal_scale = 0.5\n", "# Calculate other properties\n", "planet_density = planet_mass / ((4. / 3.) * np.pi * planet_radius**3)\n", "planet_gravity = G * planet_mass / (planet_radius**2)\n", "\n", "# Conversions\n", "sec2_2_yr2 = (3.154e7)**2" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Viscosity Domain\n", "Here we calculate tidal heating versus insolation temperature in over a domain of mantle viscosity" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c92948d562164356a53bb36cdaf2e8ec", "version_major": 2, "version_minor": 0 }, "image/png": "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", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", " \n", "
\n", " " ], "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3963ac6fed2c443b87b05a44a9bbddd3", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(FloatSlider(value=0.2, description='$\\\\delta{}J$', max=1.0, min=0.01, step=0.05), FloatS…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Setup domain\n", "viscosity_domain = np.logspace(14., 24., 100)\n", "shear_domain = 50.e9 * np.ones_like(viscosity_domain)\n", "\n", "# Setup figure\n", "fig_sync, axes_sync = plt.subplots(ncols=2, nrows=1, figsize=(9, 5))\n", "fig_sync.tight_layout(pad=4.0)\n", "ax_sync_heating = axes_sync[0]\n", "ax_sync_torque = axes_sync[1]\n", "ax_sync_heating.set(xlabel='Mantle Viscosity [Pa s]', ylabel='Tidal Heating / Insolation', yscale='log',\n", " xscale='log', ylim=(1e-3, 1e3))\n", "ax_sync_torque.set(xlabel='Mantle Viscosity [Pa s]', ylabel='Spin Rate Derivative [rad yr$^{-2}$]\\nDashed = Negative',\n", " yscale='log', xscale='log')\n", "\n", "# Plot lines\n", "ax_sync_heating.axhline(y=1e0, color='k', ls=':')\n", "rheo_lines_heating = [ax_sync_heating.plot(viscosity_domain, viscosity_domain, 'k', label='Maxwell')[0],\n", " ax_sync_heating.plot(viscosity_domain, viscosity_domain, 'b', label='Andrade')[0],\n", " ax_sync_heating.plot(viscosity_domain, viscosity_domain, 'm', label='Sundberg')[0]]\n", "rheo_lines_torque = [ax_sync_torque.plot(viscosity_domain, viscosity_domain, 'k', label='Maxwell')[0],\n", " ax_sync_torque.plot(viscosity_domain, viscosity_domain, 'b', label='Andrade')[0],\n", " ax_sync_torque.plot(viscosity_domain, viscosity_domain, 'm', label='Sundberg-Cooper')[0]]\n", "rheo_lines_torque_neg = [ax_sync_torque.plot(viscosity_domain, viscosity_domain, '--k', label='Maxwell')[0],\n", " ax_sync_torque.plot(viscosity_domain, viscosity_domain, '--b', label='Andrade')[0],\n", " ax_sync_torque.plot(viscosity_domain, viscosity_domain, '--m', label='Sundberg')[0]]\n", "plt.show()\n", "\n", "def sync_rotation(voigt_compliance_offset=.2,\n", " voigt_viscosity_offset=.02,\n", " alpha=.333,\n", " zeta_power=0.,\n", " critical_period=100.,\n", " albedo=0.3,\n", " eccentricity_pow=np.log10(planet_eccentricity),\n", " obliquity_deg=0.,\n", " force_spin_sync=True,\n", " spin_orbit_ratio=1.,\n", " eccentricity_truncation_lvl=2,\n", " max_tidal_order_l=2):\n", " \n", " eccentricity = 10.**eccentricity_pow\n", " zeta = 10.**(zeta_power)\n", " obliquity = np.radians(obliquity_deg)\n", " critical_freq = 2. * np.pi / (86400. * critical_period)\n", " dissipation_data = dict()\n", " rheology_data = {\n", " 'maxwell': (rheo_lines_heating[0], rheo_lines_torque[0], rheo_lines_torque_neg[0],\n", " tuple()),\n", " 'andrade': (rheo_lines_heating[1], rheo_lines_torque[1], rheo_lines_torque_neg[1],\n", " (alpha, zeta)),\n", " 'sundberg': (rheo_lines_heating[2], rheo_lines_torque[2], rheo_lines_torque_neg[2],\n", " (voigt_compliance_offset, voigt_viscosity_offset, alpha, zeta)),\n", " }\n", " \n", " if force_spin_sync:\n", " spin_period = None\n", " else:\n", " # The ratio is in the denominator since it is a frequency ratio.\n", " spin_period = planet_orbital_period / spin_orbit_ratio\n", " \n", " # Calculate insolation based on distance and eccentricity\n", " insolation = \\\n", " equilibrium_insolation_williams(star_lumonsity, planet_semi_major_axis, albedo, planet_radius, eccentricity)\n", " \n", " for rheo_name, (heating_line, torque_line, torque_neg_line, rheo_input) in rheology_data.items():\n", " # Perform main tidal calculation\n", " dissipation_data[rheo_name] = \\\n", " quick_tidal_dissipation(star_mass, planet_radius, planet_mass, planet_gravity, planet_density, planet_moi,\n", " viscosity=viscosity_domain, shear_modulus=shear_domain, rheology=rheo_name,\n", " complex_compliance_inputs=rheo_input, eccentricity=eccentricity, obliquity=obliquity,\n", " orbital_period=planet_orbital_period, spin_period=spin_period,\n", " max_tidal_order_l=max_tidal_order_l,\n", " eccentricity_truncation_lvl=eccentricity_truncation_lvl)\n", " \n", " spin_derivative = dissipation_data[rheo_name]['dUdO'] * (star_mass / planet_moi)\n", " heating_line.set_ydata(dissipation_data[rheo_name]['tidal_heating'] / insolation)\n", " # Convert spin_derivative from rad s-2 to hour per year\n", " spin_derivative = sec2_2_yr2 * spin_derivative\n", " spin_derivative_pos = np.copy(spin_derivative)\n", " spin_derivative_pos[spin_derivative_pos<=0.] = np.nan\n", " spin_derivative_neg = np.copy(spin_derivative)\n", " spin_derivative_neg[spin_derivative_neg>0.] = np.nan\n", " \n", " torque_line.set_ydata(np.abs(spin_derivative_pos))\n", " torque_neg_line.set_ydata(np.abs(spin_derivative_neg))\n", " \n", " \n", " ax_sync_heating.legend(loc='upper right', fontsize=12)\n", " ax_sync_heating.relim()\n", " ax_sync_heating.autoscale_view()\n", " ax_sync_heating.set_title('$e = ' + f'{eccentricity:0.3f}' +'$')\n", " ax_sync_torque.relim()\n", " ax_sync_torque.autoscale_view()\n", " ax_sync_torque.set_title('Spin / n = ' + f'${spin_orbit_ratio:0.1f}$')\n", " fig_sync.canvas.draw_idle()\n", "\n", "run_interactive_sync = interact(\n", " sync_rotation,\n", " voigt_compliance_offset=FloatSlider(value=0.2, min=0.01, max=1., step=0.05, description='$\\\\delta{}J$'),\n", " voigt_viscosity_offset=FloatSlider(value=0.02, min=0.01, max=0.1, step=0.01, description='$\\\\delta{}\\\\eta$'),\n", " alpha=FloatSlider(value=0.33, min=0.05, max=0.8, step=0.02, description='$\\\\alpha_{\\\\text{And}}$'),\n", " zeta_power=FloatSlider(value=0., min=-5., max=5., step=0.5, description='$\\\\zeta_{\\\\text{And}}^{X}$'),\n", " critical_period=FloatSlider(value=100., min=30., max=150., step=10, description='$P_{crit}$'),\n", " albedo=FloatSlider(value=0.3, min=0.1, max=0.9, step=0.1, description='Albedo'),\n", " eccentricity_pow=FloatSlider(value=-0.522879, min=-4, max=-0.09, step=0.05, description='$e^{X}$'),\n", " obliquity_deg=FloatSlider(value=0, min=0., max=90., step=1., description='Obliquity'),\n", " force_spin_sync=False,\n", " spin_orbit_ratio=FloatSlider(value=1., min=0.5, max=9., step=.1, description='$\\\\dot{\\\\theta} / n$'),\n", " eccentricity_truncation_lvl=IntSlider(value=8, min=2, max=20, step=2, description='$e$ Truncation'),\n", " max_tidal_order_l=IntSlider(value=2, min=2, max=3, step=1, description='Max Order $l$')\n", ")" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Frequency Domain" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\joepr\\AppData\\Local\\Temp\\ipykernel_57900\\795272967.py:15: UserWarning: Attempt to set non-positive ylim on a log-scaled axis will be ignored.\n", " ax_freq_love_imag.set(xlabel='Orbital Period [days]', ylabel='-Im[$k_{2}$] (dotted)', yscale='log',\n", "C:\\Users\\joepr\\AppData\\Local\\Temp\\ipykernel_57900\\795272967.py:28: UserWarning: linestyle is redundantly defined by the 'linestyle' keyword argument and the fmt string \"--b\" (-> linestyle='--'). The keyword argument will take precedence.\n", " ax_freq_love_imag.plot(period_domain, freqeuncy_domain, '--b', label='Andrade ($\\\\omega$)', ls=':')[0]]\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "23702860f9f74a979b4cb555f7573639", "version_major": 2, "version_minor": 0 }, "image/png": "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oxYhABgCQgBAQLAALS0scBszZkyKnx83udeSJUvcltRxSQ4TeJZkC9NUFVbMxnMirzcAEBACQEAKxbITH3zwQZKBWWL50bz7UxsQWgbXjHbppZeqV69euv3225N8jmVGtXqLNn010FmQbVNx47J6josXL870tuw8XUALVU9VPIcz/b0BICtihBAAAlAolp3YtGlTvPu2vu7BBx90ZXzstnXr1m5q5549ezRnzhxXwN7qFL766qupep+2bdsqo1kNW5uWmpytW7dq9uzZChZWO3Lq1Kmx9+2Chj+ULndKTTYeVHmbN6qCfmkDAGQlBIQAgICQMEOolYWw4vOWEbRUqVKx+2vUqKE2bdqod+/eatSokT7//HP1799fgebEiRN+C5oyQkREhEqWLOnvZujGewuo5KMr3Ncr5uVU/VbF/d0kAPArsowCAAKSTQPt1q1bvGAwrjJlyrjHbdplcm699VZNnjw5ze1I6ettxM+7mcOHD8fb591sJHTu3LmaNGmSKlZMe1mE8ePHu3qKjRs3VmRkpJs6m9S0W69FixbpiiuucLUY8+TJ4xLqTJgwQb7wxx9/uJ9V1apV3XrQ3bt3yx+u61dNx///489HQ//0SxsAICthhBAAEJCsyHzOnDmTfY49bs9LzqeffqqaNWvq+uuvT1M7Uvp6C+68mUrt9vXXX3dbUmz940svvaS0evrpp7VlyxYVLVrUBWL29YWmsXbu3Fk5cuRQ9+7dXUFoC3R79OjhsqI++eSTaW5Ls2bNXDBq/WQ/j8GDB7t1lEuXLnXBamaKjIzQTmVTNcVo++JTmfreAJAVERACAAKSraH88ssvNWzYsEQDw5MnT7rHU7LWctmyZfrwww+VkSyBjDfRjb2Xralr2LDhec8LDw9X4cKFXcDUpUuXNL/f6NGjVa1aNTfV1qbXDhgwIMnnRkVF6Y477nDts/WXNtXWWOBm6zDt9qabbnLH8wabzz33XLLvHzfRz+WXXx77db169dSkSRPXru+++0433HCDMts4VdASlVa9w+sz/b0BIKshIAQABCQLYCzIadmypQYNGqRWrVqpSJEiOnDggJtyOXToUDeyNWLEiAse66uvvtLXX3+d6jYklt00KXGna1qyGFvj+MADDyijdOzYMcXPtUymGzdujF136ZUvXz5XWsNGDMeOHavhw4e7/Y899pjr/7SyUcvKlSuflygos5xWlE4rXGc9ef3y/gCQlRAQAgAC0uOPP65169a5QMU7XTNbtmwu+6g3WLMAx56XHHt9eiU20pccfwVCyU0XNZ06dTrvMe++uBlPCxYs6La0OnLkiAvW07NGMj2qlNyiGru3qbDO2lizX9oAAFkFASEAICBZ8GeJZWwq5rhx47RixQoXaNjaN5uOaftTUkKiZ8+eCnXr1/89ddI7JTQuSzBjI3re56SFBeXXXHONypUr59YQ2qijlQixBDaJOXPmjNu8jh49Kl/qdGNeVX3zuHYo+TWoABAKCAgBAAHNgr7MqB3oa8eOHdObb76p6dOna+fOnfECIC9b02dTOTOaBdLGgunE5M+f/4LJeZKzbds23Xzzzdq/f78LBO3nZVNoc+fOnejzbZpvwkL2vlSvc3GdevO4Sihap46fU668wVPeAwBSi4AQAAJQ+/btXY26fv36uQ2BZd++fWrRooUL9izYshEwC8bOnj2rU6f+znxZunTpoKlDaJlYU8PWhj7yyCOx961/bHTRVy7qVEaddEjHlV9X379Gg8Y28NmxASDQUIcQAALQzJkztWbNmpAPBi075quvvurq5VlgZcXP42YOvffee906w6xmyJAhLhi0bKOHDh1y+x5++GFXjP7XX39134+tr1u9enWmtMc7MugdKUzIG7BmFitFYT/PuJsvZc8RrnWqqsWqpDnfRPn02AAQaAgIAQAByUbSbKTUMl5ajT0LGuJm/axUqZJLGJPR5STSYsqUKerQoYP+9a9/xdYm9LKSDD/88INLumKBY2bwrh1MbJ2gBaw21TOx9YWBrLr26xrtUO7Dp/3dFADwKwJCAEBAshII8+fPd+vNdu/efV4ZBBvRsrVqP/74o7KaXbt2xSvvYLUHvVNFvYlcrHbfpEmTMqU93jWY06ZNO+8x775AXKeZnFpar4e1XjVjLNMoAIQuAkIAQED67LPP1K5dO/Xv39+NsiUcaTNW627r1q3KaixYPXfuXLwAMGHSFhvx3LNnT6a0x0Yrra8mTJjgptrGTXwzbNgwNxW3V69eCiZH8vw9VbS8gmOdJgCkFUllAAAByQK96667LtnnWFCV1Lo4f7Lgy6aEetlo4U8//aSDBw+qcOHCbrTw22+/Vfny5dP8HqNHj9a8efPc1ytXrozd56052LVrV7cZC/jssc6dO6t169a65ZZbXN9NnjzZ1Ux89tlnVb16dQWT4o1zyTPbo3zKrtOno5QzJx+JAIQmRggBAAEpX758LltncixxS7FixbJcshor9v7zzz/r5MmT7n7fvn21d+9eVz/xpptuUt26dV3b0zMqZ8Gg1We0bcmSJW6fTbH17os7EmhsPaa9plWrVpo4caJGjRqlIkWKaPz48XrqqacUbO58uZ6uVwv1UjO9+MAf/m4OAPgNl8MAAAGpefPmbhTNW4w+IZuCaclbvKNgKWWjcxawLViwwBVkt4DQsn8mTFZjI3k2cpYWd999t2rXru0CQqvFd/311+ull15yx/viiy+UK1cuV3bBCrqnldX5sy01LAC2hDZZxciRI90WHR3t82PXblxYuXRSR5Vd8744Jb3r87cAgIDACCEAICBZsGRTLDt27OiCNxvVMxZk2eibBXW2Ti9uPbuskqymVKlSrlC7BZxejz76qMvmaQlnjh8/7gJESzYTyqzGppVXWbRoUYYcv1nYrxqin9S82D8BPwCEGkYIAQABqU2bNm706IEHHnDr3uJOJTUWTNm0x4svvjjNyWpMUslqli5dKl+zNpcoUcLnx0XiGpQPU+stOTRv1/k/YwAIFQSEAICAZVMvbbTu7bffdgXdbcTQpng2a9bMrfOrU6dOSCWrQerkqRshbYlSseOhPRILILQREAIAApIFbgULFlStWrX0+uuvJ/ocK5tghdVTk60zI5PVeGXLli3Rkce47HELPGvUqOEC1Pvvv9+tLYTv5KqZT49/n0+nY/KoJ5lGAYQo1hACQACyjJCWlMSmTIYqS+6SVCDoZVNG7XlpTVaTGG+yGpuymlb22vr168vj8bjgsGLFim5U025t2qjtr1evnsqWLasVK1ZowIABrl1Hjx5N83vifFfeUUnLVFGrVEJDe6+miwCEJAJCAAhAM2fOdMk2LOlGqLKgybYLPSerJKuJy0o52MillZWweoQ24mjvZbdW969nz546fPiwy/hpxenvvPNOV0vQEt7AdyrVzK8u2q57tEHrftpP1wIISQSEAICgZaN53iQzqU1Ws3z5cpesxhuE2XEsGNywYUOaktXE9dhjj6lMmTJ6//333W1cdt/KWpQuXdo9L2/evO79bET4yy+/TPN7InEXaZO6absKHPJ9aQsACASsIQQABIyhQ4fGuz9r1qxEn2d16ywY/PTTT91UzKyQ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fa44/W+//aZPPvnEL20EAKSfJVmJ6/nnn9evv/6q5cuXq1SpUvGSi1lAZ+cFyzb6+eefp7l0g40sWl1Du7CYmPLly6f4WA888IDeffddnTt3ztVMfOGFF3y2BhG+V/bavJr15nHNPFlQD5+OUs6cAf+RCQASFfD/u9WtW9clibntttvUuHFjPf7447GPrVmzxl093rp1q1555RW/thMA4Fu2LtDqD8YNBuMqU6aMe9xKD6U2IPz9999d4fk5c+bo7NnEM03aVFTLDJpSb775pntNlSpV3BpEK0NxoVIU9nzLsonM1/bOaqr3Zl6dUbj6tl2scb825scAICgFfEBoevTooQULFrisbBYU2tqPn376yX0QsKu7X3/9ta688kp/NxMA4OP1lDlz5kz2Ofa4PS81rJ6h1S+MiIhQp06dXPKyBg0auCmdS5YscTNP2rVrd96IZUrYmsYNGza4LSUICP2nWv0CqqQD8ii79i7O3LIXAJCZAi4gtBqD9erVi1d83rz22mvusZtvvlkPPvigW5xvV4ftRG7PBwAEF0uqY6UfbP1gYoGhrS23x1ObfMdb+8+mo9aqVcsls7G1foMGDdKpU6f06KOPummo77//fqqOO3PmzFQ9H/7XPOx39fTk0C8xAZ9yAQCCJyBs2rSpu2prJ2lbG3LRRRe5rWHDhm49oe2zk7aty7CRwRIlSvi7yQCADHDHHXdowIABatmypft/34rTWyKZAwcOuHq0llhm8+bNrj5tasybN8+tPbfzjJc3i6mVhrCpnzYrxaaUTpgwIcXHtXWDCCx5L8khLZAa2DKURftVu0lRfzcJAHwu4C552RpBmxK6e/duffjhh65mk51kCxYsqA4dOrgyFN6ivpbK21fGjx+vvn37uimpNjpp03g++OCDVB8nJibGfZioX7+++2BRrFgxN7U1tVnwACBQTZ48WZdddpn7v9r+L7WgLa3nA0scYyUcrr/+epd1Onv27O72hhtucFM/rZ5g3LXlKWGlDSpXrhx73455/Pjx2Ps2YmhTRq1kBILbyzNaaZ8iFKkYPXPVUn83BwAyRMCNEFpWNq8dO3a4DwJxty1btrjHunbt6m4t2YCt/bCRw2effTbN7/v000+7YxctWtQd0/s+qXX33Xe7BAe1a9fW/fffrz179rjsqNOmTXNXnG0/AASzEydOuDV6FsTde++9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zQw7fnrccccdat68eez9Z599Vo0aNdK3336r2bNnq23btj5/z1KlSrkNAJB+nO9ShvMdENiYMopUWb9+vV555RU3PdQCm4QjUeHh4W7U5NZbb9WGDRv08ssvJzqV8/Dhw3rggQfcdNOIiAh98MEH8Z5nU0779+/vHs+ZM6fq1aun999//4Lr+7xrz7Zs2eK2uNM2vc85e/as/ve//6lz586x012LFy+u66+/XkuXLs2w34jSpUu79zCLFi2K3b937149/PDDbjTV2mKjnTfccINWrVp13jEu1H/JrakYN26cC1Dz5s3rNvva9iXGAvsXXnjBtcn6325t9NFGO30pte9jo6t9+vRRjRo1Yr+Pxo0buwsUcR07dkz58uVTnTp1knxf+3kUK1bM/T54f+f++9//qkGDBm7ajx27SpUquuWWW7Ry5Uqfft8Asj7Od2nH+e58nO+QlTFCiFSxwMM+rN91110qUaJEks8bOHCgJkyY4II4Gy2M68yZM7r00kvdh/arr75aOXLkOO9YN910k1asWOFubc3dxIkT3ZSUPXv2uCu2yU3XsLVdr732mrv/0EMPxT7mTf5x8OBBt79169a64oorVKhQIf31119uGucPP/ygOXPmuNHPzLBx40bXrh07dqhTp07q2rWrCxC/+OIL/fjjj/r555/VrFmzVPdfQhZwWp9YAG/9aEGjvYcFkMuXL3dBflz287WfXaVKldz0YAuW7DkLFizw6fef2vex4NEuNFgwe91117nAeOrUqerbt6/Wrl3rAjpjwaAFcu+99547VosWLeIdx6Yz79q1S48++qjrP9OzZ0/3e1a/fn317t3bBedbt251QahdPLCLEgBCB+c73+J8x/kOWZgHSIV27dp57Nfmp59+uuBzS5cu7Z67devW2H0VKlRw+zp16uQ5efLkea9p27ate7x27dqeo0ePxu7ftWuXp1SpUp6IiAjPxo0bY/fPnDnTPX/w4MHxjmPvY1tiTp8+7dm+fft5+1etWuXJmzevp2PHjvH2J/UeSenZs6d7/sKFC+Pt37Fjh6d48eLusVmzZrl9LVq0cN/TtGnT4j137dq1nnz58nnq1at33veVXP9533vTpk2x++bMmeP21apVy3P48OHY/fZ1zZo13WNz58497/tt0KCB5/jx47H7rc+KFi3qHrP3SYnkfg5peZ+//vrrvOOcO3fOc9lll3nCw8M9W7Zsid2/aNEid4zevXuf95prrrnGPfbHH3/E9kVYWJincePGnqioqHjPtfuHDh1K9HuwY9jvLIDgw/nuwjjf/YPzHQIZU0aRKrt373a3NlXxQrzPsZGYhF566SXlypUrydc+9dRTbpTHq2TJki4hiy3wt5HH9LCRn8SSrtj0wvbt27sRQl9kAh09erSbpmojljbNsXbt2m7075prrnHrB216qo1e2cjUZZddFu+11atX15133ummKiY2dfRC/ReXdzqptcWmQibMhhb3OebDDz90t4MGDXJJg7yszx588EH5Slrex0YSE7Ips3fffbebjmOjeV42lfSiiy5yo342mhr3d3jKlCkuI653/amNmFp8Z78bNu05LrtvI88AQgvnu5TjfJc8znfI6pgyigzz9wDK3x+24/KuCUyOTedMat+yZcvS3TY7xosvvqh58+a5k37CAHD//v3pTs4yZsyY2K8tuLXgw9ZW3nfffW7fL7/84m7t/RPLwumt2We3devWTVX/xeVdF5lYvTzvvrh9alNIL/Qz8IW0vI8FdrYu9auvvnLTj06cOBHv8Z07d8a7b1NJbfvkk0/c9FRv8GsXFiwJgpclPurSpYubfmpB5I033ujaYNN1vVNKASApnO8433G+QyAjIESq2EidBSjbtm1ziT2SY6UWvK+JyxK4XKj4vD0nIe86OStvkR42Kmdr8Iyt26tWrZpLIGJtskDDAhVbp5deCxcujJdlNCFby+hdz2ZbUhIGPSnpv7iOHj2qbNmyuQQqifWpPRa3T+1r25dYKY8LrVVMjdS+jyV/sQB2yZIlLlvrbbfdpiJFirgRQkuiYwlyEv7cLAC3dYJ29dobENqaRRsdtfWpcX3++ecaPny4Cx5thNobyNvoru23jLYAQgfnu5TjfJc8znfI6ggIkSqWnMMye1qyk44dOyb5PAsabbTGpv8lnF6akmDGplYmfJ0llDFxpz2mxXPPPecCBxsdbNmyZbzHbNTOO3KV0bzlOCzjqXfUMCVSEwx638cSAe3bt++8QNv62R6LWxrE+tf22ShpwiDS+zPwhdS+z9dff+2CQRvZs2QxcX366aeJZky1QN+CQstCakmKLAi3zIH33nvveQGeTVu13w3bNm3a5KafWj3N119/XadOndI777zjs+8dQNbH+c53ON9xvkPWxhpCpIqtd7NRHftAbgFGUuxDtbHRlbSYO3dukvsaNmx4wdfbui9bU5YYm2poZTMSBoMnT550AUdm8WYPtSurGclG04wF8glZPcSEfWplFy70M/CF1L6P/dyMrcFMTbtsyqixUULvNN6400WTWqtov7vWPxZUWgZaAKGF853vcL7jfIesjYAQqWLJTizhx4EDB1zJg4QJY2zEZ9iwYRo/fryr4fbYY4+lqYctoIybCMRGjKwcgU0PtBGfC7GAz0aerIxBQhUqVNChQ4e0evXq2H0WPFpbkwtyfa1p06buJGlTFD/77LPzHre+9AZs6f1QY6w+pE0f9bKvbV/c55jbb7/d3Vq5kLjTVa00ho2W+Upq38d+bsZGduOyPko4YhiXrQm8+OKL3e+kldqwr71Bspf93H/77bfzXmu/JzaanNIEPgCCB+c73+F8x/kOWRtTRpFqlozF5sPbWixbf3fllVe64M8CjGnTprkpebbfMjnGnYqYGpUrV3aJVKxAu7cOoU1vtEDRHrsQWyO4ePFiF7RachBLDGJZJW27//77XTvt627durkkLTZ6ZoGIrVFLbCQto1gwaJlNu3fv7uoEWrBi7bH6dzZyaIFKYkFtarRp08Z9zzY11dunlgBh8uTJbi2oFbi353hZH1gdvrFjx7rkNVbvz4IiC1ptTeR3333ng+889e9jP8uKFSu63z/LvGrfi9UetOdZ/UYL9pIbJfSuIUxsdNB+9hacW6ZZCyBtqrNd9LBpqvb7179/f598zwACC+c73+F8x/kOWZi/614gcFktwptuusnVG8yePbunYMGCnksuucTz3//+N9EaeReq0xO3DqG9/rHHHvOUKVPGkyNHDk+dOnU8o0ePPu/5SdUIPHbsmOfOO+90tQuzZct23nM+//xzz0UXXeTJnTu3q3nXrVs3V98wsTp+vqpDmJSDBw96nn76aU/dunU9uXLlcrUQq1Wr5rn11ls9kydPTlX/JdZ+r/fff9/TpEkT9z3bZl/bvsRY7b0RI0Z4Kleu7PrfbocPH+7ZsGGDz+oQpuV9rA7hDTfc4ClWrFjs9/Dpp59e8Gdkvw/2O2qvOXLkyHmPW53BIUOGeNq0aeN+Z6wt9nvdpUsXz48//phk+6lDCIQGzneJ43z3D853CGRh9o+/g1IAwclG9IxlAfUnmw5qI4A2Imkj275iCX6spmRmjioDALIezncIZKwhBJChtmzZ4gIn27y1FTOb1S40VsA+vaZPnx77/QAA4MX5DoGKNYQAMsxDDz2kw4cPx95PrOZgRrF1mBMmTHDJgyZNmuQKz1tig/SyNayDBw8+76owACB0cb5DIGPKKICgZNM4LWGPlY2wJENWR9AKTQMAEEw43yG9CAgBAAAAIESxhhAAAAAAFJr+D4aj2fqZs0e4AAAAAElFTkSuQmCC", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", " \n", "
\n", " " ], "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "1f081959c057494280a6a1328238c18a", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(FloatSlider(value=0.2, description='$\\\\delta{}J$', max=1.0, min=0.01, step=0.05), FloatS…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Setup domain\n", "period_domain = np.linspace(0., 150., 100)\n", "freqeuncy_domain = days2rads(period_domain)\n", "\n", "# Setup figure\n", "fig_freq, axes_freq = plt.subplots(ncols=2, nrows=1, figsize=(9, 5))\n", "# fig_freq.tight_layout()\n", "plt.subplots_adjust(wspace=0.75)\n", "\n", "ax_freq_love_real = axes_freq[0]\n", "ax_freq_love_imag = ax_freq_love_real.twinx()\n", "ax_freq_torque = axes_freq[1]\n", "ax_freq_love_real.set(xlabel='Orbital Period [days]', ylabel='Re[$k_{2}$]', yscale='linear',\n", " xscale='linear', ylim=(0.5, 1.5))\n", "ax_freq_love_imag.set(xlabel='Orbital Period [days]', ylabel='-Im[$k_{2}$] (dotted)', yscale='log',\n", " xscale='linear', ylim=(1e-3, 0))\n", "ax_freq_torque.set(xlabel='Orbital Period [days]', ylabel='Spin Rate Derivative [rad yr$^{-2}$]\\nDashed = Negative',\n", " yscale='log', xscale='linear')\n", "\n", "# Plot lines\n", "rheo_lines_love_real = [ax_freq_love_real.plot(period_domain, freqeuncy_domain, 'k', label='Maxwell')[0],\n", " ax_freq_love_real.plot(period_domain, freqeuncy_domain, 'b', label='Andrade')[0],\n", " ax_freq_love_real.plot(period_domain, freqeuncy_domain, 'm', label='Sundberg')[0],\n", " ax_freq_love_real.plot(period_domain, freqeuncy_domain, '--b', label='Andrade ($\\\\omega$)')[0]]\n", "rheo_lines_love_imag = [ax_freq_love_imag.plot(period_domain, freqeuncy_domain, 'k', label='Maxwell', ls=':')[0],\n", " ax_freq_love_imag.plot(period_domain, freqeuncy_domain, 'b', label='Andrade', ls=':')[0],\n", " ax_freq_love_imag.plot(period_domain, freqeuncy_domain, 'm', label='Sundberg', ls=':')[0],\n", " ax_freq_love_imag.plot(period_domain, freqeuncy_domain, '--b', label='Andrade ($\\\\omega$)', ls=':')[0]]\n", "rheo_lines_torque = [ax_freq_torque.plot(period_domain, freqeuncy_domain, 'k', label='Maxwell')[0],\n", " ax_freq_torque.plot(period_domain, freqeuncy_domain, 'b', label='Andrade')[0],\n", " ax_freq_torque.plot(period_domain, freqeuncy_domain, 'm', label='Sundberg-Cooper')[0],\n", " ax_freq_torque.plot(period_domain, freqeuncy_domain, '--b', label='Andrade ($\\\\omega$)')[0]]\n", "rheo_lines_torque_neg = [ax_freq_torque.plot(period_domain, freqeuncy_domain, '--k', label='Maxwell')[0],\n", " ax_freq_torque.plot(period_domain, freqeuncy_domain, '--b', label='Andrade')[0],\n", " ax_freq_torque.plot(period_domain, freqeuncy_domain, '--m', label='Sundberg')[0],\n", " ax_freq_torque.plot(period_domain, freqeuncy_domain, ':b', label='Andrade ($\\\\omega$)')[0]]\n", "plt.show()\n", "\n", "def love_number_calc(voigt_compliance_offset=.2,\n", " voigt_viscosity_offset=.02,\n", " alpha=.333,\n", " zeta_power=0.,\n", " critical_period=100.,\n", " viscosity_power=18.,\n", " shear_power=10.,\n", " eccentricity_pow=np.log10(planet_eccentricity),\n", " obliquity_deg=0.,\n", " force_spin_sync=True,\n", " spin_period=20.,\n", " eccentricity_truncation_lvl=2,\n", " max_tidal_order_l=2):\n", " \n", " eccentricity = 10.**eccentricity_pow\n", " zeta = 10.**(zeta_power)\n", " obliquity = np.radians(obliquity_deg)\n", " dissipation_data = dict()\n", " critical_freq = 2. * np.pi / (86400. * critical_period)\n", " rheology_data = {\n", " 'maxwell': (rheo_lines_love_real[0], rheo_lines_love_imag[0], rheo_lines_torque[0], rheo_lines_torque_neg[0],\n", " tuple()),\n", " 'andrade': (rheo_lines_love_real[1], rheo_lines_love_imag[1], rheo_lines_torque[1], rheo_lines_torque_neg[1],\n", " (alpha, zeta)),\n", " 'sundberg': (rheo_lines_love_real[2], rheo_lines_love_imag[2], rheo_lines_torque[2], rheo_lines_torque_neg[2],\n", " (voigt_compliance_offset, voigt_viscosity_offset, alpha, zeta)),\n", " 'andrade_freq': (rheo_lines_love_real[3], rheo_lines_love_imag[3], rheo_lines_torque[3], rheo_lines_torque_neg[3],\n", " (alpha, zeta, critical_freq))\n", " }\n", " \n", " if force_spin_sync:\n", " spin_period = None\n", " else:\n", " # The ratio is in the denominator since it is a frequency ratio.\n", " spin_period = spin_period\n", " \n", " for rheo_name, (love_real_line, love_imag_line, torque_line, torque_neg_line, rheo_input) in rheology_data.items():\n", " # Perform main tidal calculation\n", " dissipation_data[rheo_name] = \\\n", " quick_tidal_dissipation(star_mass, planet_radius, planet_mass, planet_gravity, planet_density, planet_moi,\n", " viscosity=10**viscosity_power, shear_modulus=10**shear_power, rheology=rheo_name,\n", " complex_compliance_inputs=rheo_input, eccentricity=eccentricity, obliquity=obliquity,\n", " orbital_period=period_domain, spin_period=spin_period,\n", " max_tidal_order_l=max_tidal_order_l,\n", " eccentricity_truncation_lvl=eccentricity_truncation_lvl)\n", " \n", " love_real_line.set_ydata(np.real(dissipation_data[rheo_name]['love_number_by_orderl'][2]))\n", " love_imag_line.set_ydata(-np.imag(dissipation_data[rheo_name]['love_number_by_orderl'][2]))\n", " \n", " spin_derivative = dissipation_data[rheo_name]['dUdO'] * (star_mass / planet_moi)\n", " # Convert spin_derivative from rad s-2 to hour per year\n", " spin_derivative = sec2_2_yr2 * spin_derivative\n", " spin_derivative_pos = np.copy(spin_derivative)\n", " spin_derivative_pos[spin_derivative_pos<=0.] = np.nan\n", " spin_derivative_neg = np.copy(spin_derivative)\n", " spin_derivative_neg[spin_derivative_neg>0.] = np.nan\n", " \n", " torque_line.set_ydata(np.abs(spin_derivative_pos))\n", " torque_neg_line.set_ydata(np.abs(spin_derivative_neg))\n", " \n", " if spin_period is not None:\n", " ax_freq_love_real.axvline(x=spin_period, ls=':', c='green')\n", " ax_freq_love_real.axvline(x=89., ls=':', c='k')\n", " ax_freq_love_real.legend(loc='lower right', fontsize=12)\n", " ax_freq_love_real.relim()\n", " ax_freq_love_real.autoscale_view()\n", " ax_freq_love_real.set_title('$e = ' + f'{eccentricity:0.3f}' +'$')\n", " ax_freq_love_imag.relim()\n", " ax_freq_love_imag.autoscale_view()\n", " ax_freq_love_imag.set_title('$e = ' + f'{eccentricity:0.3f}' +'$')\n", " ax_freq_torque.relim()\n", " ax_freq_torque.autoscale_view()\n", " fig_freq.canvas.draw_idle()\n", "\n", "run_interactive_love = interact(\n", " love_number_calc,\n", " voigt_compliance_offset=FloatSlider(value=0.2, min=0.01, max=1., step=0.05, description='$\\\\delta{}J$'),\n", " voigt_viscosity_offset=FloatSlider(value=0.02, min=0.01, max=0.1, step=0.01, description='$\\\\delta{}\\\\eta$'),\n", " alpha=FloatSlider(value=0.33, min=0.05, max=0.8, step=0.02, description='$\\\\alpha_{\\\\text{And}}$'),\n", " zeta_power=FloatSlider(value=0., min=-5., max=5., step=0.5, description='$\\\\zeta_{\\\\text{And}}^{X}$'),\n", " critical_period=FloatSlider(value=100., min=30., max=150., step=10, description='$P_{crit}$'),\n", " viscosity_power=FloatSlider(value=17., min=14, max=28, step=1.0, description='$\\\\eta^{X}$'),\n", " shear_power=FloatSlider(value=10., min=7., max=11., step=0.5, description='$\\\\mu^{X}$'),\n", " eccentricity_pow=FloatSlider(value=-0.522879, min=-4, max=-0.09, step=0.05, description='$e^{X}$'),\n", " obliquity_deg=FloatSlider(value=0, min=0., max=90., step=1., description='Obliquity'),\n", " force_spin_sync=True,\n", " spin_period=FloatSlider(value=59., min=1.0, max=200., step=2., description='$P_{s}$'),\n", " eccentricity_truncation_lvl=IntSlider(value=8, min=2, max=20, step=2, description='$e$ Truncation'),\n", " max_tidal_order_l=IntSlider(value=2, min=2, max=3, step=1, description='Max Order $l$')\n", ")" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Resonance Trapping\n", "Here we look at how material properties change how a planet can become trapped at a higher-order spin-orbit resonance" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "602578b72ca74f51bf5ce4c13d74ad2d", "version_major": 2, "version_minor": 0 }, "image/png": "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fPmIQ0iJZwQAAMiztm/frqeEA+wYpAcAAIzhWBHX4aOPPpKYmJg0e45PnTql1zjo2bOnG1sIX0BABgAAxrCHYbUAiArA6nYrVVaheo579Oghb775pptbCW9HQAYAAMZITk5OEYLVarkvvfRSpj/HNG+wIyADAAAj/fjjj1KxYkVPNwM+iIAMAACM5MpCIYAdARkAABhNDcZTvclnzpyRxMTEVPtVrfKzzz7rkbbBOxGQAQCAsUaNGiVvvfWWnrXCwbIsHYrtXxOQYcc8yAAAwEizZs2S119/XVq2bCmLFi3SYfiRRx6RL774Qp544gkJCAiQ7t27y5o1azzdVHgZepABAICRZs6cqQfpLV++3Llanvr+H//4h76p+Y/btGnDPMhIhR5kAABgpH379kn79u1TLCV98+bNFIP4OnbsKK+99pqHWghvRUAGAADGKlq0qPProKAguXDhQor91atXlz179nigZfBmBGQAAGCku+66S89g4VClShXZvHlzimN2796tgzNgR0AGAABGatasmWzatMn5fdeuXWX79u16gN6yZctk9OjRuj45KirKo+2E92GQHgAAMNI///lPPffx8ePHpUKFCnrKt2+//VYP3lMzXKhZLdSgvWnTpnm6qfAyBGQAAGCk+++/X98cihQponuUly5dKocPH9ahuXPnzrrEIiEhwaNthXchIAMAgDwjf/78eu5jICPUIAMAACMNHDhQ1q9f7+lmwAcRkAEAgJE+/PBDXWKh6ozHjBmj50UGsoKADAAAjLRhwwYZNGiQXLlyRSZPniy1atWSiIgIefvtt+X8+fOebh68GAEZAAAYqWnTpvLee+/J2bNnZcmSJdKtWzc97/Gzzz6r50ju1KmTzJ8/X65du+bppsLL+FlqjhPkGjUqNjQ0VOLj4yUkJITfNAAAHn5dXrBggcydO9dZnxwcHCwnTpww4vU6q7mDfJIxepABAECeoULjgAED5LvvvpOJEydKQECAXLp0ydPNgpdhmjcAAJAnqA/Nf/jhB917/NVXX+naZKVly5aebhq8DAEZAAAYbevWrToUz5s3T86dO6eDcs2aNfVKe3379pWyZcuyUAhSICADAAAjTZo0ST777DPZv3+/DsV33HGHDBs2TAfjunXrerp58GIEZAAAYKSxY8dK4cKFpU+fPtKvXz9p06aN5MvH8CtkjoAMAACM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", "text/html": [ "\n", "
\n", "
\n", " Figure\n", "
\n", " \n", "
\n", " " ], "text/plain": [ "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ffdf3a870c674c9d951f536d0c62bc96", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(IntSlider(value=3, description='Cbar Scale', max=6), FloatSlider(value=0.2, description=…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Setup scales\n", "scale_info_list = [\n", "((86400.)**2 * (360. / (2. * np.pi)), '[deg day$^{-2}$]'),\n", "((2.628e+6)**2 * (360. / (2. * np.pi)), '[deg month$^{-2}$]'),\n", "((3.154e7/2)**2 * (360. / (2. * np.pi)), '[deg semi-yr$^{-2}$]'),\n", "((3.154e7)**2 * (360. / (2. * np.pi)), '[deg yr$^{-2}$]'),\n", "((3.154e7 * 10)**2 * (360. / (2. * np.pi)),'[deg dayr$^{-2}$]'),\n", "((3.154e7 * 100)**2 * (360. / (2. * np.pi)), '[deg hyr$^{-2}$]'),\n", "((3.154e7 * 1000)**2 * (360. / (2. * np.pi)), '[deg kyr$^{-2}$]')\n", "]\n", "\n", "cpoints = np.linspace(-3, 3, 45)\n", "zticks = [-3, -2, -1, 0, 1, 2, 3]\n", "zlabels = ['$-10^{3}$', '$-10^{2}$', '$-10^{1}$',\n", " '$\\\\;\\\\;\\\\;10^{0}$', '$\\\\;\\\\;\\\\;10^{1}$', '$\\\\;\\\\;\\\\;10^{2}$', '$\\\\;\\\\;\\\\;10^{3}$']\n", "\n", "# Setup domain\n", "x = eccentricity_domain = np.logspace(-2., 0., 80)\n", "y = spin_ratio_domain = np.linspace(0.5, 6., 70)\n", "eccen_mtx, spin_ratio_mtx = np.meshgrid(eccentricity_domain, spin_ratio_domain)\n", "shape = eccen_mtx.shape\n", "eccen_mtx = eccen_mtx.flatten()\n", "spin_ratio_mtx = spin_ratio_mtx.flatten()\n", "spin_frequency = spin_ratio_mtx * planet_orbital_frequency\n", "\n", "# Setup figure\n", "fig_trap = plt.figure()\n", "gs = GridSpec(1, 2, figure=fig_trap, wspace=None, hspace=None, width_ratios=[.98, .02])\n", "ax_trap = fig_trap.add_subplot(gs[0, 0])\n", "ax_cb = fig_trap.add_subplot(gs[0, 1])\n", "ax_cb.set(ylabel='Spin Rate Derivative [rad s-2]')\n", "\n", "plt.show()\n", "\n", "def sync_rotation(cbar_scale_set=2,\n", " voigt_compliance_offset=.2,\n", " voigt_viscosity_offset=.02,\n", " alpha=.333,\n", " zeta_power=0.,\n", " viscosity_power=22.,\n", " shear_power=10.69897,\n", " obliquity_deg=0.,\n", " eccentricity_truncation_lvl=2,\n", " max_tidal_order_l=2):\n", " \n", " viscosity = 10.**viscosity_power\n", " shear = 10.**shear_power\n", " zeta = 10.**zeta_power\n", " obliquity = np.radians(obliquity_deg)\n", " rheo_input = (voigt_compliance_offset, voigt_viscosity_offset, alpha, zeta)\n", " \n", " if max_tidal_order_l > 2 and eccentricity_truncation_lvl == 22:\n", " raise NotImplementedError\n", " \n", " dissipation_data = \\\n", " quick_tidal_dissipation(star_mass, planet_radius, planet_mass, planet_gravity, planet_density, planet_moi,\n", " viscosity=viscosity, shear_modulus=shear, rheology='sundberg',\n", " complex_compliance_inputs=rheo_input, eccentricity=eccen_mtx, obliquity=obliquity,\n", " orbital_frequency=planet_orbital_frequency, spin_frequency=spin_frequency,\n", " max_tidal_order_l=max_tidal_order_l,\n", " eccentricity_truncation_lvl=eccentricity_truncation_lvl)\n", " \n", " spin_derivative = dissipation_data['dUdO'] * (star_mass / planet_moi)\n", " \n", " scale, unit_label = scale_info_list[cbar_scale_set]\n", " \n", " spin_derivative *= scale\n", " dspin_dt_targ_pos, dspin_dt_targ_neg = neg_array_for_log_plot(spin_derivative)\n", " \n", " # Make data Symmetric Log (for negative logscale plotting)\n", " logpos = np.log10(dspin_dt_targ_pos)\n", " logpos[logpos < 0.] = 0.\n", " negative_index = ~np.isnan(dspin_dt_targ_neg)\n", " logneg = np.log10(dspin_dt_targ_neg[negative_index])\n", " logneg[logneg < 0.] = 0.\n", " dspin_dt_targ_combo = logpos\n", " dspin_dt_targ_combo[negative_index] = -logneg\n", " dspin_dt_targ_combo = dspin_dt_targ_combo.reshape(shape)\n", "\n", " ax_trap.clear()\n", " cb_data = ax_trap.contourf(x, y, dspin_dt_targ_combo, cpoints, cmap=cmc.vik)\n", " \n", " ax_cb.clear()\n", " cb = plt.colorbar(cb_data, cax=ax_cb, ticks=zticks)\n", " \n", " ax_trap.set(xlabel='Eccentricity', ylabel='Spin Rate / Orbital Motion', yscale='linear',\n", " xscale='log')\n", " cb.set_label('Spin Rate Derivative ' + unit_label)\n", " cb.ax.set_yticklabels(zlabels)\n", " fig_trap.canvas.draw_idle()\n", " fig_trap.set_constrained_layout(True)\n", "\n", "run_interactive_sync = interact(\n", " sync_rotation,\n", " cbar_scale_set = IntSlider(value=3, min=0, max=6, step=1, description='Cbar Scale'),\n", " voigt_compliance_offset=FloatSlider(value=0.2, min=0.01, max=1., step=0.05, description='$\\\\delta{}J$'),\n", " voigt_viscosity_offset=FloatSlider(value=0.02, min=0.01, max=0.1, step=0.01, description='$\\\\delta{}\\\\eta$'),\n", " alpha=FloatSlider(value=0.333, min=0.05, max=0.8, step=0.02, description='$\\\\alpha_{\\\\text{And}}$'),\n", " zeta_power=FloatSlider(value=0., min=-5., max=5., step=0.5, description='$\\\\zeta_{\\\\text{And}}^{X}$'),\n", " viscosity_power=FloatSlider(value=20., min=14, max=28, step=1.0, description='$\\\\eta^{X}$'),\n", " shear_power=FloatSlider(value=10.69897, min=7., max=11., step=0.5, description='$\\\\mu^{X}$'),\n", " obliquity_deg=FloatSlider(value=0, min=0., max=90., step=1., description='Obliquity'),\n", " eccentricity_truncation_lvl=IntSlider(value=10, min=2, max=20, step=2, description='$e$ Truncation'),\n", " max_tidal_order_l=IntSlider(value=2, min=2, max=3, step=1, description='Max $l$')\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12" } }, "nbformat": 4, "nbformat_minor": 4 }