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
orlist
ofstr
, 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
ofstr
,unyt_quantity
, optional) – Mapping from model name to its total mass. If provided for a given model, overrides thetotal_mass
value from that model’s metadata. All masses must be scalar unyt_quantity with units convertible toMsun
.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 tot_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 integratorOther integrators supported by rebound
- Returns:
The rebound simulation object after integration to
t_end
. Particle indices correspond to the order of models in themodels
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.