Solar Convection Zone#
We can get a feel for the extent of the Sun’s convection zone by looking at the MESA model for a \(1~M_\odot\) star on the main sequence.
import numpy as np
import matplotlib.pyplot as plt
import mesa_reader as mr
profile = mr.MesaData("M1_default_profile8.data")
We can look at where the models are convective by comparing \(\nabla\) and \(\nabla_\mathrm{ad}\).
First the H burning profiles
fig, ax = plt.subplots()
ax.plot(profile.mass, profile.gradT - profile.grada)
ax.set_xlabel(r"enclosed mass ($M_\odot$)")
ax.set_ylabel(r"$\nabla - \nabla_\mathrm{ad}$")
ax.set_xscale("log")
ax.legend()
ax.grid(linestyle=":")
/tmp/ipykernel_3148/2752224171.py:8: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
ax.legend()
When we look at it this way, we see that essentially the entire mass of the Sun is radiative ($\nabla < \nabla_\mathrm{ad}).
Let’s visualize in terms of radius instead.
fig, ax = plt.subplots()
ax.plot(profile.radius, profile.gradT - profile.grada)
ax.set_xlabel(r"radius ($R_\odot$)")
ax.set_ylabel(r"$\nabla - \nabla_\mathrm{ad}$")
#ax.set_xscale("log")
ax.legend()
ax.grid(linestyle=":")
/tmp/ipykernel_3148/3846964538.py:8: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
ax.legend()
On this scale, we see that the Sun’s outer convective zone is ~ 1/3rd of its radius