DirectNBody#
- class gala.dynamics.nbody.DirectNBody(w0, particle_potentials, external_potential=None, frame=None, units=None, save_all=True)[source]#
Bases:
objectPerform 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
Noneto treat particles as test particles.- external_potential
PotentialBasesubclass instance (optional) The background or external potential to integrate the particle orbits in.
- frame
FrameBasesubclass (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=None, **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