Invariant Manifold Computation
CRTBPNaturalMotion.InvariantManifold — Type
InvariantManifold{PO <: AbstractPeriodicOrbit}A struct for invariant manifolds of periodic orbits.
Fields
orbit::PO: The periodic orbit.Δr::Float64: The manifold perturbation size (change in position) along stable/unstable eigenvector direction.
CRTBPNaturalMotion.generate_stable_manifold_cheb_approximation — Method
generate_stable_manifold_cheb_approximation(
man::InvariantManifold, left_pert::Bool,
τ1_npoints::Int, τ1_order::Int, PT1::ParameterizationType,
τ2_npoints::Int, τ2_order::Int, PT2::ParameterizationType;
start_cond::Union{Nothing,Function,AbstractFloat} = nothing,
manifold_length::AbstractFloat = 1.0,
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
) -> FastChebInterpolation{FastChebInterp.ChebPoly{2, SVector{6, Float64}, Int64}}Generate a Chebyshev approximation for the stable InvariantManifold in terms of PT1 and PT2 for the parameters τ1 and τ2 employing τ1_npoints and τ2_npoints to a Chebyshev polynomial of order τ1_order and τ2_order, respectively.
Arguments
man::InvariantManifold: The invariant manifold.left_pert::Bool: If true, the perturbation is to the left of the periodic orbit.τ1_npoints::Int: The number of points to use in theτ1direction.τ1_order::Int: The order of the Chebyshev interpolation in theτ1direction.PT1::ParameterizationType: The parameterization type for theτ1parameter.τ2_npoints::Int: The number of points to use in theτ2direction.τ2_order::Int: The order of the Chebyshev interpolation in theτ2direction.PT2::ParameterizationType: The parameterization type for theτ2parameter.
Keyword Arguments
start_cond::Union{Nothing,Function,AbstractFloat} = nothing: The starting condition for the manifold trajectory. If a scalar, this specifies the distance from the initial condition on the periodic orbit in terms ofPT2. If a function, this specifies a termination condition callback function for the solver that will be used to propagate to the initial state of the returned trajectory from the initial condition on the periodic orbit.manifold_length::AbstractFloat = 1.0: The length of the manifold, in CRTBP units. Sets the max length of the manifold, whereτ2 = 1.0corresponds to the fullmanifold_length.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
FastChebInterpolation{FastChebInterp.ChebPoly{2, SVector{6, Float64}, Int64}}: The Chebyshev interpolant for the stable manifold.
CRTBPNaturalMotion.generate_stable_manifold_cheb_interpolant — Method
generate_stable_manifold_cheb_interpolant(
man::InvariantManifold, left_pert::Bool,
τ1_order::Int, PT1::ParameterizationType,
τ2_order::Int, PT2::ParameterizationType;
start_cond::Union{Nothing,Function,AbstractFloat} = nothing,
manifold_length::AbstractFloat = 1.0,
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
) -> FastChebInterpolation{FastChebInterp.ChebPoly{2, SVector{6, Float64}, Int64}}Generate a Chebyshev interpolant for the stable InvariantManifold.
Arguments
man::InvariantManifold: The invariant manifold.left_pert::Bool: If true, the perturbation is to the left of the periodic orbit.τ1_order::Int: The order of the Chebyshev interpolation in theτ1direction.PT1::ParameterizationType: The parameterization type for theτ1parameter.τ2_order::Int: The order of the Chebyshev interpolation in theτ2direction.PT2::ParameterizationType: The parameterization type for theτ2parameter.
Keyword Arguments
start_cond::Union{Nothing,Function,AbstractFloat} = nothing: The starting condition for the manifold trajectory. If a scalar, this specifies the distance from the initial condition on the periodic orbit in terms ofPT2. If a function, this specifies a termination condition callback function for the solver that will be used to propagate to the initial state of the returned trajectory from the initial condition on the periodic orbit.manifold_length::AbstractFloat = 1.0: The length of the manifold, in CRTBP units. Sets the max length of the manifold, whereτ2 = 1.0corresponds to the fullmanifold_length.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
FastChebInterpolation{FastChebInterp.ChebPoly{2, SVector{6, Float64}, Int64}}: The Chebyshev interpolant for the stable manifold.
CRTBPNaturalMotion.generate_stable_manifold_cross_section_cheb_approximation — Method
generate_stable_manifold_cross_section_cheb_approximation(
man::InvariantManifold, left_pert::Bool,
τ1_order::Int, PT1::ParameterizationType,
τ2::AbstractFloat, PT2::ParameterizationType;
start_cond::Union{Nothing,Function,AbstractFloat} = nothing,
manifold_length::AbstractFloat = 1.0,
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
) -> FastChebInterpolation{FastChebInterp.ChebPoly{1, SVector{6, Float64}, Int64}}Generate a Chebyshev interpolant for a cross-section of the stable InvariantManifold through a least-squares fit to
Arguments
man::InvariantManifold: The invariant manifold.left_pert::Bool: If true, the perturbation is to the left of the periodic orbit.τ1_npoints::Int: The number of points to use in theτ1direction.τ1_order::Int: The order of the Chebyshev interpolation in theτ1direction.PT1::ParameterizationType: The parameterization type for theτ1parameter.τ2::AbstractFloat: The fixed choice for theτ2parameter, which specified the location of the fixed manifold cross-section.PT2::ParameterizationType: The parameterization type for theτ2parameter.
Keyword Arguments
start_cond::Union{Nothing,Function,AbstractFloat} = nothing: The starting condition for the manifold trajectory. If a scalar, this specifies the distance from the initial condition on the periodic orbit in terms ofPT2. If a function, this specifies a termination condition callback function for the solver that will be used to propagate to the initial state of the returned trajectory from the initial condition on the periodic orbit.manifold_length::AbstractFloat = 1.0: The length of the manifold, in CRTBP units. Sets the max length of the manifold, whereτ2 = 1.0corresponds to the fullmanifold_length.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
FastChebInterpolation{FastChebInterp.ChebPoly{2, SVector{6, Float64}, Int64}}: The Chebyshev interpolant for the stable manifold.
CRTBPNaturalMotion.generate_stable_manifold_cross_section_cheb_interpolant — Method
generate_stable_manifold_cross_section_cheb_interpolant(
man::InvariantManifold, left_pert::Bool,
τ1_order::Int, PT1::ParameterizationType,
τ2::AbstractFloat, PT2::ParameterizationType;
start_cond::Union{Nothing,Function,AbstractFloat} = nothing,
manifold_length::AbstractFloat = 1.0,
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
) -> FastChebInterpolation{FastChebInterp.ChebPoly{1, SVector{6, Float64}, Int64}}Generate a Chebyshev interpolant for a cross-section of the stable InvariantManifold.
Arguments
man::InvariantManifold: The invariant manifold.left_pert::Bool: If true, the perturbation is to the left of the periodic orbit.τ1_order::Int: The order of the Chebyshev interpolation in theτ1direction.PT1::ParameterizationType: The parameterization type for theτ1parameter.τ2::AbstractFloat: The fixed choice for theτ2parameter, which specified the location of the fixed manifold cross-section.PT2::ParameterizationType: The parameterization type for theτ2parameter.
Keyword Arguments
start_cond::Union{Nothing,Function,AbstractFloat} = nothing: The starting condition for the manifold trajectory. If a scalar, this specifies the distance from the initial condition on the periodic orbit in terms ofPT2. If a function, this specifies a termination condition callback function for the solver that will be used to propagate to the initial state of the returned trajectory from the initial condition on the periodic orbit.manifold_length::AbstractFloat = 1.0: The length of the manifold, in CRTBP units. Sets the max length of the manifold, whereτ2 = 1.0corresponds to the fullmanifold_length.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
FastChebInterpolation{FastChebInterp.ChebPoly{2, SVector{6, Float64}, Int64}}: The Chebyshev interpolant for the stable manifold.
CRTBPNaturalMotion.get_stable_manifold_trajectory — Method
get_stable_manifold_trajectory(
man::InvariantManifold, left_pert::Bool,
τ1::AbstractFloat, PT1::ParameterizationType,
start_cond::Union{AbstractFloat,Function},
τ2::Union{AbstractFloat,ParameterListType}, PT2::ParameterizationType;
manifold_length::AbstractFloat = 1.0,
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
)Returns a single stable manifold trajectory corresponding to the parameters τ1 and τ2. Here, the starting point of the returned trajectory is determined by the argument start_cond. If start_cond is a scalar, this specifies the distance from the initial condition on the periodic orbit in terms of PT2. If start_cond is a function, this specifies a termination condition callback function for the solver that will be used to propagate to the initial state of the returned trajectory from the initial condition on the periodic orbit.
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.PT1::ParameterizationType: The parameterization type for theτ1parameter.start_cond::Union{AbstractFloat,Function}: The starting condition for the manifold trajectory. If a scalar, this specifies the distance from the initial condition on the periodic orbit in terms ofPT2. If a function, this specifies a termination condition callback function for the solver that will be used to propagate to the initial state of the returned trajectory from the initial condition on the periodic orbit.τ2::Union{AbstractFloat,ParameterListType}: The parameter for the final condition on the manifold. If a single scalar is provided, the returned trajectory is a DifferentialEquations.jl solution struct. If a list is provided, the returned trajectory is an array of states corresponding to each element in the list.PT2::ParameterizationType: The parameterization type for theτ2parameter.
Keyword Arguments
manifold_length::AbstractFloat = 1.0: The length of the manifold, in CRTBP units. Sets the max length of the manifold, whereτ2 = 1.0corresponds to the fullmanifold_length, starting from the state parameterized bystart_cond.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.
CRTBPNaturalMotion.get_stable_manifold_trajectory — Method
get_stable_manifold_trajectory(
man::InvariantManifold, left_pert::Bool,
τ1::AbstractFloat, PT1::ParameterizationType,
τ2::Union{AbstractFloat,ParameterListType}, PT2::ParameterizationType;
manifold_length::AbstractFloat = 1.0,
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
)Returns a single stable manifold trajectory corresponding to the parameters τ1 and τ2.
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.PT1::ParameterizationType: The parameterization type for theτ1parameter.τ2::Union{AbstractFloat,ParameterListType}: The parameter for the final condition on the manifold. If a single scalar is provided, the returned trajectory is a DifferentialEquations.jl solution struct. If a list is provided, the returned trajectory is an array of states corresponding to each element in the list.PT2::ParameterizationType: The parameterization type for theτ2parameter.
Keyword Arguments
manifold_length::AbstractFloat = 1.0: The length of the manifold, in CRTBP units. Sets the max length of the manifold, whereτ2 = 1.0corresponds to the fullmanifold_length.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.
CRTBPNaturalMotion.get_stable_manifold_trajectory — Method
get_stable_manifold_trajectory(
man::InvariantManifold, left_pert::Bool,
τ1::AbstractFloat, PT1::ParameterizationType,
start_cond::Function, term_cond::Function, PT2::ParameterizationType;
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
)Returns a single stable manifold trajectory given scalar parameter τ1, where the starting state of the returned trajectory is determined through the satisfaction of start_cond and the final state is determined through the satisfaction of term_cond, where start_cond and term_cond are termination condition callback functions.
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.PT1::ParameterizationType: The parameterization type for theτ1parameter.start_cond::Function: The starting condition callback function for the solver.term_cond::Function: The termination condition callback function for the solver.PT2::ParameterizationType: The parameterization type for the final condition on the manifold.
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.
CRTBPNaturalMotion.get_stable_manifold_trajectory — Method
get_stable_manifold_trajectory(
man::InvariantManifold, left_pert::Bool,
τ1::AbstractFloat, PT1::ParameterizationType,
term_cond::Function, PT2::ParameterizationType;
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
)Returns a single stable manifold trajectory given scalar parameter τ1, where the final state of the returned trajectory is determined through the satisfaction of term_cond, a termination condition callback function.
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.PT1::ParameterizationType: The parameterization type for theτ1parameter.term_cond::Function: The termination condition callback function for the solver.PT2::ParameterizationType: The parameterization type for the final condition on the manifold.
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.
CRTBPNaturalMotion.get_unstable_manifold_trajectory — Method
get_unstable_manifold_trajectory(
man::InvariantManifold, left_pert::Bool,
τ1::AbstractFloat, PT1::ParameterizationType,
start_cond::Union{AbstractFloat,Function},
τ2::Union{AbstractFloat,ParameterListType}, PT2::ParameterizationType;
manifold_length::AbstractFloat = 1.0,
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
)Returns a single unstable manifold trajectory corresponding to the parameters τ1 and τ2. Here, the starting point of the returned trajectory is determined by the argument start_cond. If start_cond is a scalar, this specifies the distance from the initial condition on the periodic orbit in terms of PT2. If start_cond is a function, this specifies a termination condition callback function for the solver that will be used to propagate to the initial state of the returned trajectory from the initial condition on the periodic orbit.
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.PT1::ParameterizationType: The parameterization type for theτ1parameter.start_cond::Union{AbstractFloat,Function}: The starting condition for the manifold trajectory. If a scalar, this specifies the distance from the initial condition on the periodic orbit in terms ofPT2. If a function, this specifies a termination condition callback function for the solver that will be used to propagate to the initial state of the returned trajectory from the initial condition on the periodic orbit.τ2::Union{AbstractFloat,ParameterListType}: The parameter for the final condition on the manifold. If a single scalar is provided, the returned trajectory is a DifferentialEquations.jl solution struct. If a list is provided, the returned trajectory is an array of states corresponding to each element in the list.PT2::ParameterizationType: The parameterization type for theτ2parameter.
Keyword Arguments
manifold_length::AbstractFloat = 1.0: The length of the manifold, in CRTBP units. Sets the max length of the manifold, whereτ2 = 1.0corresponds to the fullmanifold_length, starting from the state parameterized bystart_cond.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.
CRTBPNaturalMotion.get_unstable_manifold_trajectory — Method
get_unstable_manifold_trajectory(
man::InvariantManifold, left_pert::Bool,
τ1::AbstractFloat, PT1::ParameterizationType,
τ2::Union{AbstractFloat,ParameterListType}, PT2::ParameterizationType;
manifold_length::AbstractFloat = 1.0,
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
)Returns a single unstable manifold trajectory corresponding to the parameters τ1 and τ2.
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.PT1::ParameterizationType: The parameterization type for theτ1parameter.τ2::Union{AbstractFloat,ParameterListType}: The parameter for the final condition on the manifold. If a single scalar is provided, the returned trajectory is a DifferentialEquations.jl solution struct. If a list is provided, the returned trajectory is an array of states corresponding to each element in the list.PT2::ParameterizationType: The parameterization type for theτ2parameter.
Keyword Arguments
manifold_length::AbstractFloat = 1.0: The length of the manifold, in CRTBP units. Sets the max length of the manifold, whereτ2 = 1.0corresponds to the fullmanifold_length.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.
CRTBPNaturalMotion.get_unstable_manifold_trajectory — Method
get_unstable_manifold_trajectory(
man::InvariantManifold, left_pert::Bool,
τ1::AbstractFloat, PT1::ParameterizationType,
start_cond::Function, term_cond::Function, PT2::ParameterizationType;
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
)Returns a single unstable manifold trajectory given scalar parameter τ1, where the starting state of the returned trajectory is determined through the satisfaction of start_cond and the final state is determined through the satisfaction of term_cond, where start_cond and term_cond are termination condition callback functions.
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.PT1::ParameterizationType: The parameterization type for theτ1parameter.start_cond::Function: The starting condition callback function for the solver.term_cond::Function: The termination condition callback function for the solver.PT2::ParameterizationType: The parameterization type for the final condition on the manifold.
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.
CRTBPNaturalMotion.get_unstable_manifold_trajectory — Method
get_unstable_manifold_trajectory(
man::InvariantManifold, left_pert::Bool,
τ1::AbstractFloat, PT1::ParameterizationType,
term_cond::Function, PT2::ParameterizationType;
solver = Vern9(),
reltol = 1e-14,
abstol = 1e-14,
)Returns a single unstable manifold trajectory given scalar parameter τ1, where the final state of the returned trajectory is determined through the satisfaction of term_cond, a termination condition callback function.
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.PT1::ParameterizationType: The parameterization type for theτ1parameter.term_cond::Function: The termination condition callback function for the solver.PT2::ParameterizationType: The parameterization type for the final condition on the manifold.
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.