module Physics.Orbit.Sol
where
import Data.Constants.Mechanics
import Data.Metrology
import Data.Units.Astronomical
import Data.Units.SI.Parser
import Physics.Orbit
solMass :: Fractional a => Mass a
solMass :: forall a. Fractional a => Mass a
solMass = a
1988500e24 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|kg|]
solGraviationalParameter :: Fractional a => Quantity [si| m^3 s^-2 |] a
solGraviationalParameter :: forall a.
Fractional a =>
Quantity
((Meter :^ Succ (Succ (Succ 'Zero)))
:* (Second :^ Pred (Pred 'Zero)))
a
solGraviationalParameter = forall a. Fractional a => Mass a
solMass forall n (a :: [Factor (*)]) (l :: LCSU (*)) (b :: [Factor (*)]).
Num n =>
Qu a l n -> Qu b l n -> Qu (Normalize (a @+ b)) l n
|*| forall (lcsu :: LCSU (*)) n.
(Fractional n,
CompatibleUnit
lcsu
(((Meter :^ Three) :* ((Kilo :@ Gram) :^ MOne))
:* (Second :^ MTwo))) =>
MkQu_ULN
(((Meter :^ Three) :* ((Kilo :@ Gram) :^ MOne))
:* (Second :^ MTwo))
lcsu
n
gravity_G
venusOrbit :: Fractional a => Orbit a
venusOrbit :: forall a. Fractional a => Orbit a
venusOrbit = Orbit
{ eccentricity :: Unitless a
eccentricity = Qu '[] 'DefaultLCSU a
0.006772
, periapsis :: Distance a
periapsis = a
0.718440 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% AstronomicalUnit
AstronomicalUnit
, inclinationSpecifier :: InclinationSpecifier a
inclinationSpecifier = Inclined
{ longitudeOfAscendingNode :: Angle a
longitudeOfAscendingNode = a
76.680 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
, inclination :: Angle a
inclination = a
2.19 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
}
, periapsisSpecifier :: PeriapsisSpecifier a
periapsisSpecifier = Eccentric { argumentOfPeriapsis :: Angle a
argumentOfPeriapsis = a
54.884 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|] }
, primaryGravitationalParameter :: Quantity
((Meter :^ Succ (Succ (Succ 'Zero)))
:* (Second :^ Pred (Pred 'Zero)))
a
primaryGravitationalParameter = forall a.
Fractional a =>
Quantity
((Meter :^ Succ (Succ (Succ 'Zero)))
:* (Second :^ Pred (Pred 'Zero)))
a
solGraviationalParameter
}
earthOrbit :: Fractional a => Orbit a
earthOrbit :: forall a. Fractional a => Orbit a
earthOrbit = Orbit
{ eccentricity :: Unitless a
eccentricity = Qu '[] 'DefaultLCSU a
0.01671123
, periapsis :: Distance a
periapsis = a
0.9832899 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% AstronomicalUnit
AstronomicalUnit
, inclinationSpecifier :: InclinationSpecifier a
inclinationSpecifier = Inclined
{ longitudeOfAscendingNode :: Angle a
longitudeOfAscendingNode = a
348.73936 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
, inclination :: Angle a
inclination = a
1.578690 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
}
, periapsisSpecifier :: PeriapsisSpecifier a
periapsisSpecifier = Eccentric { argumentOfPeriapsis :: Angle a
argumentOfPeriapsis = a
114.20783 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
}
, primaryGravitationalParameter :: Quantity
((Meter :^ Succ (Succ (Succ 'Zero)))
:* (Second :^ Pred (Pred 'Zero)))
a
primaryGravitationalParameter = forall a.
Fractional a =>
Quantity
((Meter :^ Succ (Succ (Succ 'Zero)))
:* (Second :^ Pred (Pred 'Zero)))
a
solGraviationalParameter
}
marsOrbit :: Fractional a => Orbit a
marsOrbit :: forall a. Fractional a => Orbit a
marsOrbit = Orbit
{ eccentricity :: Unitless a
eccentricity = Qu '[] 'DefaultLCSU a
0.0934
, periapsis :: Distance a
periapsis = a
1.382 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% AstronomicalUnit
AstronomicalUnit
, inclinationSpecifier :: InclinationSpecifier a
inclinationSpecifier = Inclined
{ longitudeOfAscendingNode :: Angle a
longitudeOfAscendingNode = a
49.558 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
, inclination :: Angle a
inclination = a
1.67 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
}
, periapsisSpecifier :: PeriapsisSpecifier a
periapsisSpecifier = Eccentric { argumentOfPeriapsis :: Angle a
argumentOfPeriapsis = a
286.502 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|] }
, primaryGravitationalParameter :: Quantity
((Meter :^ Succ (Succ (Succ 'Zero)))
:* (Second :^ Pred (Pred 'Zero)))
a
primaryGravitationalParameter = forall a.
Fractional a =>
Quantity
((Meter :^ Succ (Succ (Succ 'Zero)))
:* (Second :^ Pred (Pred 'Zero)))
a
solGraviationalParameter
}
halleyOrbit :: Fractional a => Orbit a
halleyOrbit :: forall a. Fractional a => Orbit a
halleyOrbit = Orbit
{ eccentricity :: Unitless a
eccentricity = Qu '[] 'DefaultLCSU a
0.96714
, periapsis :: Distance a
periapsis = a
0.586 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% AstronomicalUnit
AstronomicalUnit
, inclinationSpecifier :: InclinationSpecifier a
inclinationSpecifier = Inclined
{ longitudeOfAscendingNode :: Angle a
longitudeOfAscendingNode = a
58.42 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
, inclination :: Angle a
inclination = a
162.26 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
}
, periapsisSpecifier :: PeriapsisSpecifier a
periapsisSpecifier = Eccentric { argumentOfPeriapsis :: Angle a
argumentOfPeriapsis = a
111.33 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|] }
, primaryGravitationalParameter :: Quantity
((Meter :^ Succ (Succ (Succ 'Zero)))
:* (Second :^ Pred (Pred 'Zero)))
a
primaryGravitationalParameter = forall a.
Fractional a =>
Quantity
((Meter :^ Succ (Succ (Succ 'Zero)))
:* (Second :^ Pred (Pred 'Zero)))
a
solGraviationalParameter
}
c1980E1Orbit :: Fractional a => Orbit a
c1980E1Orbit :: forall a. Fractional a => Orbit a
c1980E1Orbit = Orbit
{ eccentricity :: Unitless a
eccentricity = Qu '[] 'DefaultLCSU a
1.057731876173255
, periapsis :: Distance a
periapsis = a
3.363937831611605 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% AstronomicalUnit
AstronomicalUnit
, inclinationSpecifier :: InclinationSpecifier a
inclinationSpecifier = Inclined
{ longitudeOfAscendingNode :: Angle a
longitudeOfAscendingNode = a
114.5581951921299 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
, inclination :: Angle a
inclination = a
1.661712630614323 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
}
, periapsisSpecifier :: PeriapsisSpecifier a
periapsisSpecifier = Eccentric
{ argumentOfPeriapsis :: Angle a
argumentOfPeriapsis = a
135.0826233919265 forall (dim :: [Factor (*)]) unit n.
(ValidDLU dim 'DefaultLCSU unit, Fractional n) =>
n -> unit -> Qu dim 'DefaultLCSU n
% [si|deg|]
}
, primaryGravitationalParameter :: Quantity
((Meter :^ Succ (Succ (Succ 'Zero)))
:* (Second :^ Pred (Pred 'Zero)))
a
primaryGravitationalParameter = forall a.
Fractional a =>
Quantity
((Meter :^ Succ (Succ (Succ 'Zero)))
:* (Second :^ Pred (Pred 'Zero)))
a
solGraviationalParameter
}