DirectNBody#
- class gala.dynamics.nbody.DirectNBody(w0, particle_potentials, external_potential=None, frame=None, units=None, save_all=True)[source]#
Bases:
object
Perform orbit integration using direct N-body forces between particles, optionally in an external background potential.
TODO: could add another option, like in other contexts, for “extra_force” to support, e.g., dynamical friction
- Parameters:
- w0
PhaseSpacePosition
The particle initial conditions.
- partcle_potentials
list
List of potential objects to add mass or mass distributions to the particles. Use
None
to treat particles as test particles.- external_potential
PotentialBase
subclass instance (optional) The background or external potential to integrate the particle orbits in.
- frame
FrameBase
subclass (optional) The reference frame to perform integratiosn in.
- units
UnitSystem
(optional) Set of non-reducable units that specify (at minimum) the length, mass, time, and angle units.
- save_allbool (optional)
Save the full orbits of each particle. If
False
, only returns the final phase-space positions of each particle.
- w0
Attributes Summary
Methods Summary
acceleration
([t])Compute the acceleration at the location of each N body, including the external potential.
integrate_orbit
([Integrator, Integrator_kwargs])Integrate the initial conditions in the combined external potential plus N-body forces.
Attributes Documentation
- w0#
Methods Documentation
- acceleration(t=0.0)[source]#
Compute the acceleration at the location of each N body, including the external potential.
- integrate_orbit(Integrator=None, Integrator_kwargs={}, **time_spec)[source]#
Integrate the initial conditions in the combined external potential plus N-body forces.
This integration uses the
DOPRI853Integrator
.- Parameters:
- **time_spec
Specification of how long to integrate. See documentation for
parse_time_specification
.
- Returns:
- orbit
Orbit
The orbits of the particles.
- orbit