Class eos_tov_buchdahl (o2scl)¶
-
class
o2scl
::
eos_tov_buchdahl
: public o2scl::eos_tov¶ The Buchdahl EOS for the TOV solver.
The Buchdahl EOS is
\[ \varepsilon = 12 \sqrt{P_{*} P}- 5 P \]which can be inverted to give\[ P = - \frac{\varepsilon}{5} + \frac{72 P^{*}}{25} \left[1+\sqrt{1-\frac{5 \varepsilon}{36 P^{*}}} \right] \]Physical solutions are obtained only for \( P< 25 P_{*}/144 \) (ensuring that the argument to the square root is positive) and \( \beta=G M/R<1/6 \) (ensuring that the EOS is not acausal).
The baryon chemical potential is
\[ \mu = \mu_1 \left(\sqrt{P_1}-3\sqrt{P^{*}}\right)^{1/2} \left(\sqrt{P}-3\sqrt{P^{*}}\right)^{-1/2} \]The baryon density is\[ n_B = n_{B,1} + 12 \frac{\sqrt{P^{*} P}}{\mu_1} \left(1 - \frac{\sqrt{P}}{3 \sqrt{P^{*}}} \right)^{3/2} \left(1 - \frac{\sqrt{P_1}}{3 \sqrt{P^{*}}}\right)^{-1/2} \]In the case that one assumes \( \mu_1 = m_n \) and \( P_1 = 0 \), the baryon density can be simplified to
\[ n m_n = 12 \sqrt{P p_{*}} \left( 1-\frac{1}{3} \sqrt{P/p_{*}} \right)^{3/2} \]c.f. Eq. 10 in Lattimer01.The mass-radius curve is the solution of the equation
\[ R=\pi (1-\beta)(1-2 \beta)^{-1} A^{-1} \]where \( \beta = GM/R \) and \( A \) (which has units of inverse km) is defined by\[ A^2 = \frac{288 \pi G P^{*}}{1-2 \beta} \]The central pressure and energy density are
\[ P_c = 36 p_{*} \beta^2 \]\[ {\varepsilon}_c = 72 p_{*} \beta (1-5 \beta/2) \]To obtain energy density and pressure profiles can be obtained by solving
\[ r=r^{\prime} \left(\frac{1-\beta+u}{1-2 \beta}\right) \]for the new coordinate \( r^{\prime} \) where \( u \) is defined by\[ u = \beta \frac{\sin(A r^{\prime})}{A r^{\prime}} \]Using these, the profiles are\[ P(r) = A^2 (1- 2 \beta) u^2 \left[ 8 \pi \left(1 - \beta+u\right)^2\right]^{-1} \]and\[ \varepsilon(r) = 2 A^2 (1- 2 \beta) u \left( 1 - \beta + 3 u/2\right) \left[ 8 \pi \left(1 - \beta+u\right)^2\right]^{-1} \]Based on Lattimer01 .
Public Functions
-
eos_tov_buchdahl
()¶
-
~eos_tov_buchdahl
()¶
-
void
set_baryon_density
(double nb, double ed)¶ Set the baryon density.
-
double
ed_from_pr
(double pr)¶ From the pressure, return the energy density.
-
double
pr_from_ed
(double ed)¶ From the energy density, return the pressure.
-
double
nb_from_ed
(double ed)¶ From the energy density, return the baryon density.
-
double
nb_from_pr
(double pr)¶ From the pressure, return the baryon density.
-
double
ed_from_nb
(double nb)¶ From the baryon density, return the energy density.
-
double
pr_from_nb
(double nb)¶ From the baryon density, return the pressure.
-
void
ed_nb_from_pr
(double pr, double &ed, double &nb)¶ Given the pressure, produce the energy and number densities.
If the baryon density is not specified, it should be set to zero or baryon_column should be set to false
-
double
rad_from_gm
(double gm)¶ Given the gravitational mass, compute the radius.
-
double
ed_from_r_gm
(double r, double gm)¶ Compute the energy density at radius
r
for a fixed gravitational mass.- Idea for Future:
This function is inefficient because it solves for the radius each time. Improve this.
-
double
pr_from_r_gm
(double r, double gm)¶ Compute the pressure at radius
r
for a fixed gravitational mass.- Idea for Future:
This function is inefficient because it solves for the radius each time. Improve this.
Public Members
-
double
Pstar
¶ The parameter with units of pressure in units of solar masses per km cubed (default value \( 3.2 \times 10^{-5} \) )
-