pint.derived_quantities.pulsar_mass

pint.derived_quantities.pulsar_mass(pb: Unit('d'), x: Unit('cm'), mc: Unit('solMass'), i: Unit('deg'))[source]

Compute pulsar mass from orbital parameters

Return the pulsar mass (in solar mass units) for a binary. Can handle scalar or array inputs.

pbastropy.units.Quantity

Binary orbital period

xastropy.units.Quantity

Projected pulsar semi-major axis (aka ASINI) in pint.ls

mc : astropy.units.Quantit[mypy-pint.templates.*]

; ignore_errors = True y

Companion mass in u.solMass

iastropy.coordinates.Angle or astropy.units.Quantity

Inclination angle, in u.deg or u.rad

massastropy.units.Quantity

In u.solMass

astropy.units.UnitsError

If the input data are not appropriate quantities

TypeError

If the input data are not quantities

>>> import pint
>>> import pint.derived_quantities
>>> from astropy import units as u
>>> print(pint.derived_quantities.pulsar_mass(2*u.hr, .2*pint.ls, 0.5*u.Msun, 60*u.deg))
7.6018341985817885 solMass

This forms a quadratic equation of the form: \(a M_p^2 + b M_p + c = 0`\)

with:

  • \(a = f(P_b,x)\) (the mass function)

  • \(b = 2 f(P_b,x) M_c\)

  • \(c = f(P_b,x) M_c^2 - M_c\sin^3 i\)

except the discriminant simplifies to: \(4f(P_b,x) M_c^3 \sin^3 i\)

solve it directly this has to be the positive branch of the quadratic because the vertex is at \(-M_c\), so the negative branch will always be < 0