# Solution of the Tolman-Oppenheimer-Volkov Equations¶

The class tov_solve provides a solution to the Tolman-Oppenheimer-Volkov (TOV) equations given an equation of state (EOS), provided as an object of type eos_tov. These classes are particularly useful for static neutron star structure: given any equation of state one can calculate the mass vs. radius curve and the properties of any star of a given mass.

The EOS can be specified as an object of type eos_tov. The documentation of this parent class contains more information. The class eos_tov_interp is used most frequently. It uses linear interpolation to interpolate a user-specified table object. A faster lower-level EOS interpolation is performed by eos_tov_vectors. The Buchdahl EOS is given in eos_tov_buchdahl, a single polytrope EOS is given in eos_tov_polytrope, a linear EOS is given in eos_tov_linear, and an EOS with a polynomial form for the speed of sound is given in eos_cs2_poly

In units where \(c=1\), the most general static and spherically symmetric metric is of the form

where \(\theta\) is the polar angle and \(\phi\) is the azimuthal angle. Often we will not write explicitly the radial dependence for many of the quantities defined below, i.e. \(\Phi \equiv \Phi(r)\).

This leads to the TOV equation (i.e. Einstein’s equations for a static and spherically symmetric star)

where \(r\) is the radial coordinate, \(m(r)\) is the gravitational mass enclosed within a radius \(r\), and \(\varepsilon(r)\) and \(P(r)\) are the energy density and pressure at \(r\), and \(G\) is the gravitational constant. The mass enclosed, \(m(r)\), is related to the energy density through

and these two differential equations can be solved simultaneously given an equation of state, \(P(\varepsilon)\). The total gravitational mass is given by

The boundary conditions are \(m(r=0)=0\) and the condition \(P(r=R)=0\) for some fixed radius \(R\). These boundary conditions give a one-dimensional family solutions to the TOV equations as a function of the central pressure. Each central pressure implies a gravitational mass, \(M\), and radius, \(R\), and thus defines a mass-radius curve.

The metric function \(\Lambda\) is

The other metric function, \(\Phi(r)\) is sometimes referred to as the gravitational potential. In vacuum above the star, it is

and inside the star it is determined by

Alternatively, that this can be rewritten as

In this form, \(\Phi\) has no explicit dependence on \(r\) so it can be computed (up to a constant) directly from the EOS.

If the neutron star is at zero temperature and there is only one conserved charge, (i.e. baryon number), then

and this implies that \(\mu e^{\Phi}\) is everywhere constant in the star. If one defines the “enthalpy” by

then

and thus \(\mu \propto e^{h}\) or \(h = \ln \mu + C\). This is the enthalpy used by the nstar_rot class.

Keep in mind that this enthalpy is determined by integrating the quantities in the stellar profile (which may be, for example, in beta-equilibrium). Thus, this is not equal the usual thermodynamic enthalpy which is

or in differential form

The proper boundary condition for the gravitational potential is

which ensures that \(\Phi(r)\) matches the metric above in vacuum. Since the expression for \(d\Phi/dr\) is independent of \(\Phi\), the differential equation can be solved for an arbitrary value of \(\Phi(r=0)\) and then shifted afterwards to obtain the correct boundary condition at \(r=R\) .

The surface gravity is defined to be

which is computed in units of inverse kilometers, and the redshift is defined to be

which is unitless.

The baryonic mass is typically defined by

where \(n_B(r)\) is the baryon number density at radius \(r\)
and \(m_B\) is the mass one baryon (taken to be the mass of the
proton by default and stored in
`o2scl::tov_solve::baryon_mass`

). If the EOS specifies the
baryon density (i.e. if `o2scl::eos_tov::baryon_column`

is
true), then tov_solve will compute the associated
baryonic mass for you.