Two-body Keplerian orbit propagation
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

monopam quality: use ocaml-git for subtree tree hash

+2 -4
+2 -4
lib/analytic.ml
··· 56 56 if rdotv < 0. then (2. *. Float.pi) -. nu else nu 57 57 58 58 let degenerate_elements (pos : Vec3.t) (vel : Vec3.t) r_mag = 59 - { a = r_mag; e = 2.; i = 0.; raan = 0.; argp = 0.; nu = 0.; n = 0.; 60 - pos; vel } 59 + { a = r_mag; e = 2.; i = 0.; raan = 0.; argp = 0.; nu = 0.; n = 0.; pos; vel } 61 60 62 61 (** Convert state vector to classical orbital elements. Vallado Algorithm 9. *) 63 62 let elements_of_state (pos : Vec3.t) (vel : Vec3.t) = 64 63 let open Vec3 in 65 64 let r_mag = length pos in 66 65 let v_mag = length vel in 67 - if r_mag < 1e-10 || v_mag < 1e-10 then 68 - degenerate_elements pos vel r_mag 66 + if r_mag < 1e-10 || v_mag < 1e-10 then degenerate_elements pos vel r_mag 69 67 else 70 68 (* Angular momentum vector h = r × v *) 71 69 let h = cross pos vel in