Currently working on refactor, much work to do

This commit is contained in:
Connor
2021-09-25 16:10:02 -06:00
parent 7d0037f38d
commit af545ba1a7
23 changed files with 286 additions and 353 deletions

View File

@@ -2,113 +2,36 @@
# DEFINING CONSTANTS
# -----------------------------------------------------------------------------
export μs, G, GMs, μ, rs, as, es, AU, ids
export Body, Sun, Mercury, Venus, Earth, Moon, Mars
export Jupiter, Saturn, Uranus, Neptune, Pluto
export G, AU, init_STM, hour, day, year, second
export Pathlist
# Gravitational Constants
μs = Dict(
"Sun" => 1.32712440018e11,
"Mercury" => 2.2032e4,
"Venus" => 3.257e5,
"Earth" => 3.986004415e5,
"Moon" => 4.902799e3,
"Mars" => 4.305e4,
"Jupiter" => 1.266865361e8,
"Saturn" => 3.794e7,
"Uranus" => 5.794e6,
"Neptune" => 6.809e6,
"Pluto" => 9e2)
struct Body
μ::Float64
r::Float64 # radius
color::String
id::Int # SPICE id
end
G = 6.67430e-20
const Sun = Body(1.32712440018e11, 696000., "Electric", 10)
const Mercury = Body(2.2032e4, 2439., "heat", 1)
const Venus = Body(3.257e5, 6052., "turbid", 2)
const Earth = Body(3.986004415e5, 6378.1363, "Blues", 399)
const Moon = Body(4.902799e3, 1738., "Greys", 301)
const Mars = Body(4.305e4, 3397.2, "Reds", 4)
const Jupiter = Body(1.266865361e8, 71492., "solar", 5)
const Saturn = Body(3.794e7, 60268., "turbid", 6)
const Uranus = Body(5.794e6, 25559., "haline", 7)
const Neptune = Body(6.809e6, 24764., "ice", 8)
const Pluto = Body(9e2, 1151., "matter", 9)
function μ(m1::Float64, m2::Float64)
return m2/(m1+m2)
end
const G = 6.67430e-20 #universal gravity parameter
const AU = 149597870.691 #km
const init_STM = vec(Matrix{Float64}(I,6,6))
const second = 1.
const hour = 3600.
const day = 86400.
const year = 365 * day
function μ(GM1::Float64, GM2::Float64, Grav::Float64)
return μ(GM1/Grav, GM2/Grav)
end
function μ(primary::String, secondary::String)
return μ(GMs[primary]/G, GMs[secondary]/G)
end
const GMs = Dict(
"Sun" => 132712440041.93938,
"Earth" => 398600.435436,
"Moon" => 4902.800066)
# Radii
const rs = Dict(
"Sun" => 696000.,
"Mercury" => 2439.,
"Venus" => 6052.,
"Earth" => 6378.1363,
"Moon" => 1738.,
"Mars" => 3397.2,
"Jupiter" => 71492.,
"Saturn" => 60268.,
"Uranus" => 25559.,
"Neptune" => 24764.,
"Pluto" => 1151.)
# Semi Major Axes
const as = Dict(
"Mercury" => 57909083.,
"Venus" => 108208601.,
"Earth" => 149598023.,
"Moon" => 384400.,
"Mars" => 227939186.,
"Jupiter" => 778298361.,
"Saturn" => 1429394133.,
"Uranus" => 2875038615.,
"Neptune" => 4504449769.,
"Pluto" => 5915799000.)
# Eccentricities
const es = Dict(
"Earth" => 0.016708617,
"Moon" => 0.0549)
# J2 for basic oblateness
const j2s = Dict(
"Mercury" => 0.00006,
"Venus" => 0.000027,
"Earth" => 0.0010826269,
"Moon" => 0.0002027,
"Mars" => 0.001964,
"Jupiter" => 0.01475,
"Saturn" => 0.01645,
"Uranus" => 0.012,
"Neptune" => 0.004,
"Pluto" => 0.)
# These are just the colors for plots
const p_colors = Dict(
"Sun" => "Electric",
"Mercury" => "heat",
"Venus" => "turbid",
"Earth" => "Blues",
"Moon" => "Greys",
"Mars" => "Reds",
"Jupiter" => "solar",
"Saturn" => "turbid",
"Uranus" => "haline",
"Neptune" => "ice",
"Pluto" => "matter")
const ids = Dict(
"Sun" => 10,
"Mercury" => 1,
"Venus" => 2,
"Earth" => 399,
"Moon" => 301,
"Mars" => 4,
"Jupiter" => 5,
"Saturn" => 6,
"Uranus" => 7,
"Neptune" => 8,
"Pluto" => 9,
)
const AU = 149597870.691 #km
const init_STM = vec(Matrix{Float64}(I,6,6))
Pathlist = Vector{Vector{Vector{Float64}}}