pisces.extensions.simulation.core.initial_conditions.InitialConditions.integrate_point_mass_orbits#

InitialConditions.integrate_point_mass_orbits(models: str | list[str] = 'all', masses: dict[str, unyt_quantity] | None = None, t_end: unyt_quantity = None, dt: unyt_quantity | None = None, integrator: str = 'whfast')[source]#

Integrate the point-mass equivalent orbits for selected models.

This method treats each selected model as a single massive particle with its center-of-mass position, velocity, and total mass. The integration is done in a self-consistent gravitational N-body simulation without hydrodynamics.

Parameters:
  • models (str or list of str, default "all") – Models to include as point masses. If "all", uses all models. If a single string is given, it is treated as a list of one.

  • masses (dict of str, unyt_quantity, optional) – Mapping from model name to its total mass. If provided for a given model, overrides the total_mass value from that model’s metadata. All masses must be scalar unyt_quantity with units convertible to Msun.

  • t_end (unyt_quantity) – Total integration time from the current epoch. Must have time units.

  • dt (unyt_quantity, optional) – Time step for the integrator. If not provided, defaults to t_end / 1000. Must have time units.

  • integrator (str, default "whfast") –

    The REBOUND integrator to use. Options include:
    • "whfast": fast symplectic integrator (default)

    • "ias15": high-accuracy adaptive integrator

    • Other integrators supported by rebound

Returns:

The rebound simulation object after integration to t_end. Particle indices correspond to the order of models in the models parameter.

Return type:

rebound.Simulation

Raises:
  • ImportError – If the rebound package is not installed.

  • KeyError – If any requested model is not found in the configuration.

  • ValueError – If t_end is not provided, is non-positive, or if mass data is missing.