starfall/astronomy/close_binary_star/math/barycenter/
mod.rs1#[named]
2pub fn get_average_distances_from_barycenter(
3 average_separation: f64,
4 primary_mass: f64,
5 secondary_mass: f64,
6) -> (f64, f64) {
7 trace_enter!();
8 trace_var!(average_separation);
9 trace_var!(primary_mass);
10 trace_var!(secondary_mass);
11 let combined_mass = primary_mass + secondary_mass;
12 trace_var!(combined_mass);
13 let d1 = average_separation * (secondary_mass / combined_mass);
14 let d2 = average_separation * (primary_mass / combined_mass);
15 let result = (d1, d2);
16 trace_var!(result);
17 trace_exit!();
18 result
19}
20
21#[named]
22pub fn get_minimum_distances_from_barycenter(
23 average_separation: f64,
24 primary_mass: f64,
25 secondary_mass: f64,
26 orbital_eccentricity: f64,
27) -> (f64, f64) {
28 trace_enter!();
29 trace_var!(average_separation);
30 trace_var!(primary_mass);
31 trace_var!(secondary_mass);
32 trace_var!(orbital_eccentricity);
33 let combined_mass = primary_mass + secondary_mass;
34 trace_var!(combined_mass);
35 let average_distances = get_average_distances_from_barycenter(average_separation, primary_mass, secondary_mass);
36 let d1 = average_distances.0 * (1.0 - orbital_eccentricity);
37 let d2 = average_distances.1 * (1.0 - orbital_eccentricity);
38 let result = (d1, d2);
39 trace_var!(result);
40 trace_exit!();
41 result
42}
43
44#[named]
45pub fn get_maximum_distances_from_barycenter(
46 average_separation: f64,
47 primary_mass: f64,
48 secondary_mass: f64,
49 orbital_eccentricity: f64,
50) -> (f64, f64) {
51 trace_enter!();
52 trace_var!(average_separation);
53 trace_var!(primary_mass);
54 trace_var!(secondary_mass);
55 trace_var!(orbital_eccentricity);
56 let combined_mass = primary_mass + secondary_mass;
57 trace_var!(combined_mass);
58 let average_distances = get_average_distances_from_barycenter(average_separation, primary_mass, secondary_mass);
59 let d1 = average_distances.0 * (1.0 + orbital_eccentricity);
60 let d2 = average_distances.1 * (1.0 + orbital_eccentricity);
61 let result = (d1, d2);
62 trace_var!(result);
63 trace_exit!();
64 result
65}