Internals

Listing all non-exported types and functions here for now, but split off categories onto separate pages in the future!

CRTBPNaturalMotion.ParameterizationTypeType
ParameterizationType

A Union type for the different types of parameterizations that can be used when parameterizing a periodic orbit or its associated invairiant stable or intable manifold.

source
CRTBPNaturalMotion.FastChebInterpolationType
FastChebInterpolation(it::IT) <: AbstractInterpolationWrapper

A wrapper for FastChebInterp.ChebPoly that's functional for both the FastChebInterp.jl implementations of interpolation and least-squares regression (see FastChebInterp.jl for details).

Fields

  • it::IT: The FastChebInterp.ChebPoly struct.
source
CRTBPNaturalMotion.get_full_initial_stateMethod
get_full_initial_state(orbit::AbstractPeriodicOrbit)

Get the full initial reference state of the periodic orbit.

Arguments

  • orbit::AbstractPeriodicOrbit: The periodic orbit.

Returns

  • x0::SVector{6,Float64}: The full initial state of the periodic orbit.
source
CRTBPNaturalMotion.get_jacobi_integralMethod
get_jacobi_integral(orbit::AbstractPeriodicOrbit)

Get the Jacobi integral of the periodic orbit.

Arguments

  • orbit::AbstractPeriodicOrbit: The periodic orbit.

Returns

  • C::Float64: The Jacobi integral of the periodic orbit.
source
CRTBPNaturalMotion.get_orbit_lengthMethod
get_orbit_length(orbit::TypeAPeriodicOrbit, type::Type{AbstractIndependantVariable})

Get the length of the periodic orbit in the desired variable.

Arguments

  • orbit::TypeAPeriodicOrbit: The periodic orbit.
  • type::Type{AbstractIndependantVariable}: The type of length to return.

Returns

  • length::Float64: The length of the periodic orbit in the desired variable.
source
CRTBPNaturalMotion.get_stable_manifold_initial_conditionMethod
get_stable_manifold_initial_condition(
    man::InvariantManifold, left_pert::Bool, τ1::AbstractFloat, PT::ParameterizationType;
    solver = Vern9(),
    reltol = 1e-14,
    abstol = 1e-14,
)

Returns the initial condition for a stable manifold trajectory as parameterized by τ1 ∈ [0,1].

Arguments

  • man::InvariantManifold: The invariant manifold.
  • left_pert::Bool: If true, the perturbation is to the left of the periodic orbit.
  • τ1::AbstractFloat: The parameter for the initial condition on the periodic orbit.
  • PT::ParameterizationType: The parameterization type for the τ1 parameter.

Keyword Arguments

  • solver = Vern9(): The DifferentialEquations.jl solver to use.
  • reltol = 1e-14: The relative tolerance for the solver.
  • abstol = 1e-14: The absolute tolerance for the solver.

Returns

  • x0m::SVector{6,Float64}: The initial condition for the stable manifold trajectory.
source
CRTBPNaturalMotion.get_state_and_monodromy_matrixMethod
get_state_and_monodromy_matrix(orbit::AbstractPeriodicOrbit, τ1::AbstractFloat, PT::ParameterizationType)

Get the state and monodromy matrix of the periodic orbit at a give state parameterized by τ1 ∈ [0, 1] in terms of PT.

Arguments

  • orbit::AbstractPeriodicOrbit: The periodic orbit.
  • τ1::AbstractFloat: The parameterization of the final state on the orbit.
  • PT::ParameterizationType: The type of parameterization to use.
source
CRTBPNaturalMotion.get_state_and_stmMethod
get_state_and_stm(z::SMatrix{6,7,T,42}) where T

Get the state and state transition matrix (STM) from the full integration matrix.

Arguments

  • z::SMatrix{6,7,T,42}: Matrix with first column as the state and the remaining 6 x 6 as the STM.

Returns

  • Tuple{SVector{6,T},SMatrix{6,6,T,36}: The state vector and the state transition matrix in a return tuple.
source
CRTBPNaturalMotion.get_stmMethod
get_stm(z::SMatrix{6,7,T,42}) where T

Get the state transition matrix (STM) from the full integration matrix.

Arguments

  • z::SMatrix{6,7,T,42}: Matrix with first column as the state and the remaining 6 x 6 as the STM.

Returns

  • SMatrix{6,6,T,36}: The state transition matrix.
source
CRTBPNaturalMotion.get_unstable_manifold_initial_conditionMethod
get_unstable_manifold_initial_condition(
    man::InvariantManifold, left_pert::Bool, τ1::AbstractFloat, PT::ParameterizationType;
    solver = Vern9(),
    reltol = 1e-14,
    abstol = 1e-14,
)

Returns the initial condition for a unstable manifold trajectory as parameterized by τ1 ∈ [0,1].

Arguments

  • man::InvariantManifold: The invariant manifold.
  • left_pert::Bool: If true, the perturbation is to the left of the periodic orbit.
  • τ1::AbstractFloat: The parameter for the initial condition on the periodic orbit.
  • PT::ParameterizationType: The parameterization type for the τ1 parameter.

Keyword Arguments

  • solver = Vern9(): The DifferentialEquations.jl solver to use.
  • reltol = 1e-14: The relative tolerance for the solver.
  • abstol = 1e-14: The absolute tolerance for the solver.

Returns

  • x0m::SVector{6,Float64}: The initial condition for the stable manifold trajectory.
source
CRTBPNaturalMotion.initial_state_with_stmMethod
initial_state_with_stm(x0::SVector{6,T}) where T

Create the initial state with the state transition matrix (STM).

Arguments

  • x0::SVector{6,T}: Initial state vector.

Returns

  • SMatrix{6,7,T,42}: Matrix with first column as the state and the remaining 6 x 6 as the STM initial condition (i.e., [x0, I]).
source
CRTBPNaturalMotion.jacobi_integral_gradientMethod
jacobi_integral_gradient(x, μ)

Computes the gradient of the Jacobi integral for the CRTBP given the state x and mass parameter μ.

Arguments

  • x::AbstractVector: State vector.
  • μ::Real: Mass parameter.
source
CRTBPNaturalMotion.natural_crtbp_and_time_eom_with_independant_arclenMethod
natural_crtbp_and_time_eom_with_independant_arclen(x, p, t)

Compute the equations of motion for the CRTBP model with an extra state for the time with only natural motion. Here the independant variable has been transformed from time to arc-length.

Arguments

  • x::SVector{7}: State vector, i.e., [position^T; velocity^T].
  • p::Tuple{Float64,}: Tuple of parameters, (mu,)
  • t::Float64: Time.
source
CRTBPNaturalMotion.natural_crtbp_eomMethod
natural_crtbp_eom(x, p, t)

Compute the equations of motion for the CRTBP model with only natural motion.

Arguments

  • x::SVector{6}: State vector, i.e., [position^T; velocity^T].
  • p::Tuple{Float64,Float64,Float64}: Tuple of parameters, (mu,)
  • t::Float64: Time.
source
CRTBPNaturalMotion.natural_crtbp_eom_with_arclenMethod
natural_crtbp_eom_with_arclen(x, p, t)

Compute the equations of motion for the CRTBP model with only natural motion, employing the arclength along the trajectory as an additional state.

Arguments

  • x::SVector{7}: State vector, i.e., [position^T; velocity^T; arc-len].
  • p::Tuple{Float64,}: Tuple of parameters, (mu,)
  • t::Float64: Time.
source
CRTBPNaturalMotion.natural_crtbp_eom_with_independant_arclenMethod
natural_crtbp_eom_with_independant_arclen(x, p, t)

Compute the equations of motion for the CRTBP model with only natural motion where the independant variable has been transformed from time to arc-length.

Arguments

  • x::SVector{7}: State vector, i.e., [position^T; velocity^T].
  • p::Tuple{Float64,}: Tuple of parameters, (mu,)
  • t::Float64: Time.
source
CRTBPNaturalMotion.natural_crtbp_eom_with_stmMethod
natural_crtbp_eom_with_stm(x, p, t)

Compute the equations of motion for the CRTBP model with the state transition matrix.

Arguments

  • x::SMatrix{6,7,Float64}: Matrix with first column ast the state and the remaining 6 x 6 as the STM.
  • p::Tuple{Float64,}: Tuple of parameters, (mu,)
  • t::Float64: Time.
source
CRTBPNaturalMotion.propagate_from_initial_conditionsMethod
propagate_from_initial_conditions(
    orbit::AbstractPeriodicOrbit, τ1::AbstractFloat, PT::ParameterizationType,
    solver = Vern9(),
    reltol = 1e-14,
    abstol = 1e-14,
)

Propagate the periodic orbit from the initial conditions to another state on the orbit, as parameterized by τ1 ∈ [0, 1] in terms of PT::ParameterizationType.

Arguments

  • orbit::AbstractPeriodicOrbit: The periodic orbit.
  • τ1::AbstractFloat: The parameterization of the final state on the orbit.
  • PT::ParameterizationType: The type of parameterization to use.

Keyword Arguments

  • solver::OrdinaryDiffEq.AbstractODESolver: The ODE solver to use for the integration.
  • reltol::Real: The relative tolerance for the ODE solver.
  • abstol::Real: The absolute tolerance for the ODE solver.

Returns

  • x1::SVector{6,Float64}: The final state on the periodic orbit.
source
CRTBPNaturalMotion.propagate_return_final_state_and_stmMethod
propagate_return_final_state_and_stm(
    x0::SVector{6,TX}, tspan::Tuple{TT,TT}, mu;
    solver = Vern9(),
    reltol = 1e-14,
    abstol = 1e-14,
) where {TX,TT}

Propagate the state x0 over the time span tspan and return the final state and the state transition matrix (STM).

arguments

  • x0::SVector{6,TX}: The initial state with x0 = [r0; v0].
  • tspan::Tuple{TT,TT}: The span of the independant variable forwhich to solve the ode.
  • mu::Real: The mass parameter of the three-body system (mu = m2 / (m1 + m2)).

keywords

  • solver::OrdinaryDiffEq.AbstractODESolver: The solver to use for the integration.
  • reltol: The relative tolerance for the solver.
  • abstol: The absolute tolerance for the solver.

returns

  • SMatrix{6,6,TX,36}: The stm for the full trajectory
source
CRTBPNaturalMotion.typeA_shooting_functionMethod
typeA_shooting_function(u, p; constraint = (:x_start_coordinate, 0.0))

Shooting function for computing Type A periodic orbits in the CRTBP using the methodology described by Restrepo and Russell in A database of planar axisymmetric periodic orbits for the solar system doi: 10.1007/s10569-018-9844-6.

Arguments

  • u::SVector{4,T}: Vector of decision variables, [rx, rz, vy, P / 2], where P is half of the orbital period.
  • p::Tuple{Float64,}: Tuple of parameters, (mu,), where mu is the mass parameter.

Keyword Arguments

  • constraint::Tuple{Symbol,Real}: Tuple of the constraint type and value corresponding to the final constraint considered to provide a fully defined system of nonlinear eqautions. The constraint type can be either :x_start_coordinate or :jacobi_integral. The constraint value is the value that the constraint should be equal to for the desired periodic orbit. Note that new constraints can be added with relative ease through modification of this function and its corresponding jacobian function typeA_shooting_jacobian.
  • solver::OrdinaryDiffEq.AbstractODESolver: The solver to use for the integration.
  • reltol: The relative tolerance for the solver.
  • abstol: The absolute tolerance for the solver.

Returns

  • SVector{4,T}: Vector of residuals for the nonlinear system of equations.
source
CRTBPNaturalMotion.typeA_shooting_jacobianMethod
typeA_shooting_jacobian(u, p; constraint = (:x_start_coordinate, 0.0))

The Jacobian of the shooting function for computing Type A periodic orbits in the CRTBP using the methodology described by Restrepo and Russell in A database of planar axisymmetric periodic orbits for the solar system doi: 10.1007/s10569-018-9844-6.

Arguments

  • u::SVector{4,T}: Vector of decision variables, [rx, rz, vy, P / 2], where P is half of the orbital period.
  • p::Tuple{Float64,}: Tuple of parameters, (mu,), where mu is the mass parameter.

Keyword Arguments

  • constraint::Tuple{Symbol,Real}: Tuple of the constraint type and value corresponding to the final constraint considered to provide a fully defined system of nonlinear eqautions. The constraint type can be either :x_start_coordinate or :jacobi_integral.
  • solver::OrdinaryDiffEq.AbstractODESolver: The solver to use for the integration.
  • reltol: The relative tolerance for the solver.
  • abstol: The absolute tolerance for the solver.

Returns

  • SMatrix{4,4,T,16}: Jacobian of the nonlinear system of equations.
source