Internals
Modules
HillRegions — ModuleA complementary package to add the recipe to Plots.jl for plotting Hill regions.
Links:
HillRegions.Internal — ModuleThis module contains all inner parts of this package.
Types
HillRegions.Internal.M_TYPE — TypeM_TYPE = Union{Rational{Int}, Float64}A default type for the μ arguments.
HillRegions.Internal.C_TYPE — TypeC_TYPE = Float64A default type for the C arguments.
HillRegions.Internal.HillRegion — TypeHillRegionHill region, described by the lesser of the two masses of the resting bodies ($μ$) and the Jacobi constant ($C$).
Fields
Constructors
HillRegion(; μ::M_TYPE, C::C_TYPE)HillRegion(C::C_TYPE; μ::M_TYPE)HillRegion(μ::M_TYPE; C::C_TYPE)HillRegion(μ::M_TYPE, C::C_TYPE)
HillRegions.Internal.MR_TYPE — TypeMR_TYPE = Float64A default Real type for the μ arguments.
Functions
HillRegions.Internal._V — Method_V(x::OInterval, y::OInterval, μ::M_TYPE) -> OIntervalReturn the value on the zero-velocity surface given by the Jacobi constant:
$V(x, y, μ) = 2 μ / ρ_2(x, y) + 2 (1 - μ) / ρ_1(x, y) + μ ρ_2^2(x, y) + (1 - μ) ρ_1^2(x, y).$
Arguments
x::OInterval: the interval of coordinates of the third body on the abscissay::OInterval: the interval of coordinates of the third body on the ordinateμ::M_TYPE: the mass (dimensionless) of the smaller of the two resting bodies
Returns
OInterval: the interval of values of the $V$ function
Example
using HillRegions
using ImplicitEquations
using IntervalArithmetic
OInterval = HillRegions.Internal.OInterval
TRUE = ImplicitEquations.BInterval(true, true)
x = OInterval(Interval(-1., 1.), TRUE, TRUE)
y = OInterval(Interval(1., 1.), TRUE, TRUE)
μ = 1//11
ρ₁ = HillRegions.Internal._ρ₁
ρ₂ = HillRegions.Internal._ρ₂
(HillRegions.Internal._V(x, y, μ) == 2 * μ / ρ₂(x, y, μ) + 2 * (1 - μ) / ρ₁(x, y, μ) +
μ * ρ₂(x, y, μ)^2 + (1 - μ) * ρ₁(x, y, μ)^2) == TRUEHillRegions.Internal._predicate — Method_predicate(HR::HillRegion) -> ImplicitEquations.PredReturn a predicate in the form of $V = C$ where $μ$ and $C$ are from a HillRegion object.
Arguments
HR::HillRegion: a Hill region
Returns
ImplicitEquations.Pred: a predicate
Example
using HillRegions
using ImplicitEquations
using IntervalArithmetic
OInterval = HillRegions.Internal.OInterval
TRUE = ImplicitEquations.BInterval(true, true)
x = OInterval(Interval(-1., 1.), TRUE, TRUE)
y = OInterval(Interval(1., 1.), TRUE, TRUE)
μ = 1//11
C = 3.0
pred = HillRegions.Internal._predicate(HillRegion(μ, C))
(pred.f(x, y) == HillRegions.Internal._V(x, y, μ)) == TRUEHillRegions.Internal._ρ₁ — Method_ρ₁(x::OInterval, y::OInterval, μ::M_TYPE) -> OIntervalReturn the distance between the first and the third bodies:
$ρ_1^2(x, y, μ) = (x + μ)^2 + y^2.$
Arguments
x::OInterval: the interval of coordinates of the third body on the abscissay::OInterval: the interval of coordinates of the third body on the ordinateμ::M_TYPE: the mass (dimensionless) of the smaller of the two resting bodies
Returns
OInterval: the interval of distances
Example
using HillRegions
using ImplicitEquations
using IntervalArithmetic
OInterval = HillRegions.Internal.OInterval
TRUE = ImplicitEquations.BInterval(true, true)
x = OInterval(Interval(-1., 1.), TRUE, TRUE)
y = OInterval(Interval(1., 1.), TRUE, TRUE)
μ = 1//11
(HillRegions.Internal._ρ₁(x, y, μ) == √((x + μ)^2 + y^2)) == TRUEHillRegions.Internal._ρ₂ — Method_ρ₂(x::OInterval, y::OInterval, μ::M_TYPE) -> OIntervalReturn the distance between the second and the third bodies:
$ρ_2^2(x, y, μ) = (x - 1 + μ)^2 + y^2.$
Arguments
x::OInterval: the interval of coordinates of the third body on the abscissay::OInterval: the interval of coordinates of the third body on the ordinateμ::M_TYPE: the mass (dimensionless) of the smaller of the two resting bodies
Returns
OInterval: the interval of distances
Example
using HillRegions
using ImplicitEquations
using IntervalArithmetic
OInterval = HillRegions.Internal.OInterval
TRUE = ImplicitEquations.BInterval(true, true)
x = OInterval(Interval(-1., 1.), TRUE, TRUE)
y = OInterval(Interval(1., 1.), TRUE, TRUE)
μ = 1//11
(HillRegions.Internal._ρ₂(x, y, μ) == √((x - 1 + μ)^2 + y^2)) == TRUE