Some notes about the Jeans mass scale using astropy's units.
Simple approaches to determining mass scales:
\begin{equation*}
v_{esc} = \sqrt{\frac{G M}{R}}
\end{equation*}
Isothermal equation of state:
\begin{equation*}
P = \rho k T
\end{equation*}
\begin{equation*}
c_s = \sqrt{2 k T / m}
\end{equation*}
Setting \(v_{esc} = c_s\) yields the mass scale:
\begin{equation*}
M = \frac{R}{G} \frac{2 k T}{m} = \frac{R c_s^2}{G}
\end{equation*}
Using \(\rho = \frac{M}{ 4/3 \pi R^{3} }\),
\begin{equation*}
R = \left(\frac{M}{4/3 \pi \rho}\right)^{1/3}
\end{equation*}
so
\begin{equation*}
M = M^{1/3} \frac{c_s^2}{G \rho^{1/3}}
\end{equation*}
which rearranges to
\begin{equation*}
M = \frac{c_s^{3}}{G^{3/2} \rho^{1/2}}
\end{equation*}
where \(M\) is now \(M_J\), the Jeans mass. In terms of temperature, this is:
\begin{equation*}
M_J = \frac{(2 k T)^{3/2}}{(m G)^{3/2} \rho^{1/2}}
\end{equation*}
where \(m\) is the particle mass, usually assumed to be 2.8 amu. (actually, 2.8 is for mass per H$_2$ particle, it should really be 2.3 amu)
In[1]:
# astropy imports
import astropy.units as u
import astropy.constants as c
# turn off verbose but unnecessary information
import warnings
warnings.filterwarnings('ignore')
warnings.filterwarnings('ignore', category=u.UnitsWarning, append=True)
WARNING: ConfigurationDefaultMissingWarning: Requested default configuration file /Users/adam/repos/astropy/astropy/astropy.cfg is not a file. Cannot install default profile. If you are importing from source, this is expected. [astropy]
In[7]:
amu = c.m_p
temperature = 10 * u.K
m = (((2 * c.k_B * temperature)**1.5 / ((2.8*c.m_p*c.G)**1.5 * (2.8*1e4*amu / u.cm**3)**(1/2.)))).cgs
In[5]:
m.to(u.solMass)
Out[5]:
\begin{equation*}
1.92903 \mathrm{M_{\odot}}
\end{equation*}
<Quantity 1.92902547696 solMass>