estimate_dt_n_steps

gala.dynamics.estimate_dt_n_steps(w0, hamiltonian, n_periods, n_steps_per_period, dE_threshold=1e-09, func=<function nanmax>, **integrate_kwargs)[source]

Estimate the timestep and number of steps to integrate an orbit for given its initial conditions and a potential object.

Parameters:

w0 : PhaseSpacePosition, array_like

Initial conditions.

potential : PotentialBase

The potential to integrate the orbit in.

n_periods : int

Number of (max) orbital periods to integrate for.

n_steps_per_period : int

Number of steps to take per (max) orbital period.

dE_threshold : numeric (optional)

Maximum fractional energy difference – used to determine initial timestep. Set to None to ignore this.

func : callable (optional)

Determines which period to use. By default, this takes the maximum period using nanmax(). Other options could be nanmin(), nanmean(), nanmedian().

Returns:

dt : float

The timestep.

n_steps : int

The number of timesteps to integrate for.