cold_nstar Class Reference

Naive static cold neutron star. More...

#include <cold_nstar.h>


Detailed Description

Naive static cold neutron star.

This uses hadronic_eos::calc_e() to compute the equation of state of zero-temperature beta-equilibrated neutron star matter and tov_solve::mvsr() to compute the mass versus radius curve.

The electron and muon are given masses o2scl_fm_const::mass_electron and o2scl_fm_const::mass_muon, respectively.

The energy density and pressure are both calculated in units $ \mathrm{fm}^{-4} $ and the baryon density in $ \mathrm{fm}^{-3} $

The condition for Urca is the area of the triangle formed by the neutron, proton, and electron Fermi momenta.

Using the definition of the semi-perimeter,

\[ s \equiv \left( k_{F,n}+k_{F,p}+k_{F,e} \right)/2 \]

Heron's formula gives the triangle area as

\[ a=\sqrt{s(s-k_{F,n})(s-k_{F,p})(s-k_{F,e})} \]

The column in the eos table labeled urca is $ a^2 $ . If this quantity is positive, then direct Urca is allowed.

The squared speed of sound (in units of $ c $ ) is calculated by

\[ c_s^2 = \frac{ d P }{d \varepsilon} \]

and this is placed in the column labeled cs2.

The adabatic index is calculated by

\[ \Gamma = \frac{ d \ln P} { d \ln \varepsilon} \]

Note that $ \Gamma $ must be greater than $ 4/3 $ at the center of the neutron star for stability. (This is a necessary, but not sufficient condition.)

Note that if the speed of sound is non-monotonic, then calc_eos() will only record the lowest density for which the EOS becomes acausal.

There is an example for the usage of this class given in examples/ex_cold_nstar.cpp.

Idea for future:
Ensure that the adiabatic index of the central density is greater than 4/3
Idea for future:
Warn if the EOS becomes pure neutron matter.

Definition at line 99 of file cold_nstar.h.


Output

double min_bad
 The smallest baryon density where the pressure decreases.
double allow_urca
 The smallest density where Urca becomes allowed.
double deny_urca
 The smallest density where Urca becomes disallowed.
double acausal
 The density at which the EOS becomes acausal.
double acausal_pr
 The pressure at which the EOS becomes acausal.
double acausal_ed
 The energy density at which the EOS becomes acausal.
double solver_tol
 Solver tolerance (default $ 10^{-4} $).
tableget_eos_results ()
 Get the eos table (after having called calc_eos()).
tableget_tov_results ()
 Get the results from the TOV (after having called calc_nstar()).

The thermodynamic information

thermo hb
thermo h
thermo l

Basic operation

int set_eos (hadronic_eos &he)
 Set the equation of state.
int calc_eos (double np_0=0.0)
 Calculate the given equation of state.
double calc_urca (double np_0=0.0)
 Compute the density at which the direct Urca process is allowed.
int calc_nstar ()
 Calculate the M vs. R curve.

Public Member Functions

int set_n_and_p (fermion &n, fermion &p)
 Set the neutron and proton.
int set_tov (tov_solve &ts)
 Specify the object for solving the TOV equations.
int set_root (root< int, funct< int > > &rf)
 Set the equation solver for the EOS.

Data Fields

double nb_start
 The starting baryon density (default 0.05).
double nb_end
 The final baryon density (default 2.0).
double dnb
 The baryon density stepsize (default 0.01).
bool include_muons
 If true, include muons (default false).
eff_fermion def_n
 The default neutron.
eff_fermion def_p
 The default proton.
tov_solve def_tov
 The default TOV equation solver.
cern_mroot_root< int, funct
< int > > 
def_root
 The default equation solver for the EOS.
tov_interp_eos def_tov_eos
 Default EOS object for the TOV solver.

Protected Member Functions

int solve_fun (double x, double &y, int &vp)
 Solve to ensure zero charge in $ \beta $-equilibrium.

Protected Attributes

bool eos_set
 True if equation of state has been set.
fermion e
 The electron.
fermion mu
 The muon.
hadronic_eoshep
 A pointer to the equation of state.
fermionnp
 A pointer to the neutron.
fermionpp
 A pointer to the proton.
tov_solvetp
 A pointer to the TOV object.
root< int, funct< int > > * rp
 A pointer to the solver.
table eost
 Storage for the EOS table.
double barn
 The baryon density.

Member Function Documentation

double calc_urca ( double  np_0 = 0.0  ) 

Compute the density at which the direct Urca process is allowed.

This is faster than using calc_eos() since it does nothing other than computes the critical density. It does not store the equation of state.

int set_eos ( hadronic_eos he  )  [inline]

Set the equation of state.

This should be set before calling calc_eos().

Definition at line 111 of file cold_nstar.h.

int set_n_and_p ( fermion n,
fermion p 
) [inline]

Set the neutron and proton.

The default objects are of type fermion, with mass o2scl_fm_const::mass_neutron and o2scl_fm_const::mass_proton. These defaults will give incorrect results for non-relativistic equations of state.

Definition at line 233 of file cold_nstar.h.

int set_tov ( tov_solve ts  )  [inline]

Specify the object for solving the TOV equations.

The default uses the low-density equation of state with tov::verbose=0. In calc_nstar(), the units are set by calling tov_solve::set_units().

Definition at line 252 of file cold_nstar.h.


Field Documentation

double acausal

The density at which the EOS becomes acausal.

If this is zero, then the EOS is causal at all baryon densities in the specified range

Definition at line 186 of file cold_nstar.h.

double acausal_ed

The energy density at which the EOS becomes acausal.

If this is zero, then the EOS is causal at all baryon densities in the specified range

Definition at line 202 of file cold_nstar.h.

double acausal_pr

The pressure at which the EOS becomes acausal.

If this is zero, then the EOS is causal at all baryon densities in the specified range

Definition at line 194 of file cold_nstar.h.

double allow_urca

The smallest density where Urca becomes allowed.

If this is zero after calling calc_eos(), then direct Urca is never allowed.

Definition at line 169 of file cold_nstar.h.

double deny_urca

The smallest density where Urca becomes disallowed.

If this is zero after calling calc_eos(), then direct Urca is not disallowed at a higher density than it becomes allowed.

Definition at line 178 of file cold_nstar.h.

double min_bad

The smallest baryon density where the pressure decreases.

If this is zero after calling calc_eos(), then the pressure does not decrease in the specified range of baryon density

Definition at line 161 of file cold_nstar.h.


The documentation for this class was generated from the following file:

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page