Internals
Listing all non-exported types and functions here for now, but split off categories onto separate pages in the future!
CRTBPNaturalMotion.ParameterizationType — Type
ParameterizationTypeA 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.
CRTBPNaturalMotion.AbstractIndependantVariable — Type
AbstractIndependantVariableAn abstract type to encompas all supported independant variables.
CRTBPNaturalMotion.AbstractInterpolationWrapper — Type
AbstractInterpolationWrapperAnd abstract type that is used to define the interface for interpolation objects.
CRTBPNaturalMotion.AbstractManifold — Type
AbstractManifoldAbstract type for manifolds.
CRTBPNaturalMotion.FastChebInterpolation — Type
FastChebInterpolation(it::IT) <: AbstractInterpolationWrapperA 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: TheFastChebInterp.ChebPolystruct.
CRTBPNaturalMotion.ParameterListType — Type
ParameterListTypeA Union type of the acceptable types for a list of parameter values.
CRTBPNaturalMotion.get_full_initial_state — Method
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.
CRTBPNaturalMotion.get_jacobi_integral — Method
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.
CRTBPNaturalMotion.get_orbit_length — Method
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.
CRTBPNaturalMotion.get_stable_manifold_initial_condition — Method
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τ1parameter.
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.
CRTBPNaturalMotion.get_state_and_monodromy_matrix — Method
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.
CRTBPNaturalMotion.get_state_and_stm — Method
get_state_and_stm(z::SMatrix{6,7,T,42}) where TGet 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.
CRTBPNaturalMotion.get_stm — Method
get_stm(z::SMatrix{6,7,T,42}) where TGet 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.
CRTBPNaturalMotion.get_unstable_manifold_initial_condition — Method
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τ1parameter.
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.
CRTBPNaturalMotion.initial_state_with_stm — Method
initial_state_with_stm(x0::SVector{6,T}) where TCreate 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]).
CRTBPNaturalMotion.jacobi_integral_gradient — Method
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.
CRTBPNaturalMotion.natural_crtbp_and_time_eom_with_independant_arclen — Method
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.
CRTBPNaturalMotion.natural_crtbp_eom — Method
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.
CRTBPNaturalMotion.natural_crtbp_eom_with_arclen — Method
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.
CRTBPNaturalMotion.natural_crtbp_eom_with_independant_arclen — Method
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.
CRTBPNaturalMotion.natural_crtbp_eom_with_stm — Method
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.
CRTBPNaturalMotion.propagate_from_initial_conditions — Method
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.
CRTBPNaturalMotion.propagate_return_final_state_and_stm — Method
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
CRTBPNaturalMotion.typeA_shooting_function — Method
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_coordinateor: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 functiontypeA_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.
CRTBPNaturalMotion.typeA_shooting_jacobian — Method
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_coordinateor: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.