pyCE.bosonstars module

Generation and configurational-entropy analysis of boson stars.

Solves for spherically symmetric, ground-state solutions of the Einstein-Klein-Gordon system for a complex scalar field with the harmonic ansatz phi(r, t) = phi(r) e^(-i omega t) and the potential:

V(|phi|) = |phi|**2 + (lamb/2)|phi|**4

In the standard 3+1 metric ansatz, ds^2 = -alpha(r)^2 dt^2 + a(r)^2 dr^2 + r^2 dOmega^2, the field and metric functions obey a coupled ODE system in r with a frequency eigenvalue omega: only a discrete set of central lapse values yields a profile that decays into flat space, and the nodeless member of that set is the ground state. The solver finds it by bisection shooting on the central lapse, integrating outward with RK4.

For reviews see Schunck & Mielke (gr-qc/0410040) and Liebling & Palenzuela (arXiv:1202.5809). From the solution, the class computes the ADM mass, the effective radius, and the configurational entropy of the energy density.

class pyCE.bosonstars.BosonStar(phi0, lamb=0, alpha_range=None, dr=0.01, r_max=50, phi_tol=1e-06, plot_progress=False)[source]

Bases: object

Ground-state boson star and its configurational entropy.

Instantiation does all the work: it shoots for the central lapse, integrates the Einstein-Klein-Gordon system outward, and extracts the physical features and the configurational entropy.

Parameters:
  • phi0 (float) – Core value of the scalar field.

  • lamb (float, optional) – Quartic self-interaction strength (default 0, the mini boson star).

  • alpha_range ([float, float], optional) – Initial bracket for the central lapse used by the shooting method (default [0, 1]). The supplied list is copied, never modified.

  • dr (float, optional) – Radial step size (default .01). For small phi0 the gradients are gentle but the star is large; for large phi0 the reverse — lower dr if the shooting method stalls.

  • r_max (float, optional) – Maximum integration radius (default 50). Too small and the shot converges to a profile that is not yet the ground state; too large and the integration stops at phi_tol before reaching the tail.

  • phi_tol (float, optional) – Field amplitude at which the tail is declared converged (default 1e-6).

  • plot_progress (bool, optional) – Plot each shooting iterate live (default False).

Variables:
  • r (ndarray) – Radial grid.

  • Phi (phi,) – Scalar field profile and its radial derivative.

  • alpha (a,) – Radial metric function and lapse, with the lapse rescaled so alpha -> 1 at the outer edge (asymptotic flatness).

  • omega (float) – Frequency eigenvalue of the harmonic ansatz; omega < 1 signals a gravitationally bound configuration.

  • rho (ndarray) – Energy density.

  • mass (ndarray) – Misner-Sharp mass within radius r, m(r) = (r/2)(1 - 1/a**2).

  • M (float) – Total (ADM) mass, mass[-1].

  • R (float) – Effective radius: the first moment of r over the proper energy distribution.

  • k (denFT,) – Radial Fourier transform of rho and its k-grid.

  • mf (ndarray) – Modal fraction |denFT|**2 / max|denFT|**2.

  • Sc (float) – Configurational entropy, -Integral[ mf * ln(mf) ] over k-space with the d = 3 radial measure.

Examples

>>> from pyCE.bosonstars import BosonStar
>>> star = BosonStar(0.1)
>>> star.M, star.R, star.omega
(0.5326, 6.004, 0.9367)
extract_physical_features()[source]

Energy density, mass function, ADM mass, and effective radius.

generate_profile(phi0, alpha_range, r_max, phi_tol, plot_progress=False)[source]

Bisection shooting on the central lapse.

Each iterate integrates outward from the midpoint of the current bracket. A shot whose field diverges upward without crossing zero sat too high in the bracket; anything else (a crossing, or downward divergence) sat too low. The bracket halves each pass, and the loop ends when the tail amplitude drops below phi_tol or the bracket is exhausted at machine precision.