implementations.problem_classes.OuterSolarSystem module

class outer_solar_system(sun_only=False)[source]

Bases: ptype

The \(N\)-body problem describes the mutual influence of the motion of \(N\) bodies. Formulation of the problem is based on Newton’s second law. Therefore, the \(N\)-body problem is formulated as

\[m_i \frac{d^2 {\bf r}_i}{d t^2} = \sum_{j=1, i\neq j}^N G \frac{m_i m_j}{|{\bf r}_i - {\bf r}_j|^3}({\bf r}_i - {\bf r}_j),\]

where \(m_i\) is the \(i\)-th mass point with position described by the vector \({\bf r}_i\), and \(G\) is the gravitational constant. If only the sun influences the motion of the bodies gravitationally, the equations become

\[m_i \frac{d^2 {\bf r}_i}{d t^2} = G \frac{m_1}{|{\bf r}_i - {\bf r}_1|^3}({\bf r}_i - {\bf r}_1).\]

This class implements the outer solar system consisting of the six outer planets: the sun, Jupiter, Saturn, Uranus, Neptune, and Pluto, i.e., \(N=6\).

Parameters:

sun_only (bool, optional) – If False, only the sun is taken into account for the influence of the motion.

G

Gravitational constant.

Type:

float

G = 0.000295912208286
dtype_f

alias of acceleration

dtype_u

alias of particles

eval_f(u, t)[source]

Routine to compute the right-hand side of the problem.

Parameters:
  • u (dtype_u) – The particles.

  • (float) (t)

Returns:

me – The right-hand side of the problem.

Return type:

dtype_f

eval_hamiltonian(u)[source]

Routine to compute the Hamiltonian.

Parameters:

u (dtype_u) – The particles.

Returns:

ham – The Hamiltonian.

Return type:

float

u_exact(t)[source]

Routine to compute the exact/initial trajectory at time \(t\).

Parameters:

t (float) – Time of the exact/initial trajectory.

Returns:

me – The exact/initial position and velocity.

Return type:

dtype_u