celeries.mmr.MMR#

class celeries.mmr.MMR(m0, m, k, degree, G=39.47692640889763)#

Model of mean-motion resonances and resonant chains in the planar case.

The Hamiltonian is computed following Delisle (2017). The Hamiltonian variables are v = (y, phi, x, dL), with \(y_i = \sqrt{2 D_i} \sin(\sigma_i)\), \(x_i = \sqrt{2 D_i} \cos(\sigma_i)\), where \(D_i\) is the angular momentum deficit (AMD) of planet i. phi and dL are the three planet angles and associated actions (\(\Delta L\)), as defined in Delisle (2017). The two first integrals are delta and Gamma. We consider the renormalized (by Gamma) problem, so Gamma = 1 by definition, and delta as well as all other actions are normalized by Gamma.

Parameters:
m0float

Mass of the star.

m(npla,) ndarray

Masses of the planets (from the inner to the outer).

k(npla-1, 2) ndarray

Coefficients of the resonances between consecutive planets. A chain of 3 planets with a 3/2 resonance between the two inner planet, and 4/3 resonance between the two outer ones would have: k = np.array([[2,3], [3,4]]).

degreeint

Degree of the development in eccentricity.

Gfloat

Gravitational constant.

Attributes:
HSeries

Hamiltonian.

grad_H(4*npla-4,) ndarray

Array of Series giving the gradient of the Hamiltonian with respect to the variables v (y, phi, x, dL).

JSeries

Symplectic matrix.

dv(4*npla-4,) ndarray

Array of Series giving the temporal derivatives of the variables v.

grad_dv(4*npla-4, 4*npla-4) ndarray

Matrix of series giving the gradient of dv (aka Jacobian matrix).

Methods

couple_latex_labels(i, j)

Latex string of the definition of the two resonance angles sigi, sigj, for the couple of planets i, j (as computed by v2couple()).

ell2v(ell[, km_max])

Convert elliptical coordinates to the coordinates of the average problem v = (y, phi, x, dL).

eval_array(a, v, delta)

Evaluate an array (of arbitrary dimension) with the provided values of the Hamiltonian variables v (y, phi, x, dL) and delta.

eval_dv(v, delta)

Evaluate the temporal derivatives dv/dt of the Hamiltonian variables v (y, phi, x, dL).

eval_grad_dv(v, delta)

Evaluate the Jacobian matrix (matrix of the gradients of the derivatives dv/dt).

fp_modes(v_fp, delta)

Compute the eigenvalues and eigenmodes around a fixed point.

fp_normalform(v_fp, delta, order[, ...])

Compute the Birkhoff normal form (birkhoff.NormalForm) around a fixed point.

grad(f)

Compute the gradient of f with respect to the Hamiltonian variables: y, phi, x, dL.

laplace_latex_label(i)

Latex string of the definition of the i-th Laplace angle (phi_i).

merge_fp(sols_fp[, min_rep_merge, ...])

Merge and link the fixed points found by solve_fp() after several tries for a grid of values of delta.

random_v0(delta[, nsample, factor])

Generate random coordinates v0 to use as initial values for solve_fp().

solve_fp(v0, delta, **kwargs)

Local root-finding of the derivatives (dv/dt) to find a fixed point of the averaged problem.

v2couple(v, i, j)

Compute the two resonance angles of a couple of planet from the coordinates v = (y, phi, x, dL).

v2ell(v, delta[, Gamma, phiG, phiGamma, km_max])

Convert the coordinates of the average problem v = (y, phi, x, dL) to elliptical coordinates.