rust_roche/vel_transform.rs
1
2
3pub fn vel_transform(q: f64, transform_type: i32, x: f64, y: f64, vx: f64, vy: f64) -> (f64, f64) {
4
5 let mu: f64 = q/(1.0+q);
6 let rad: f64 = (x*x + y*y).sqrt();
7 let vkep: f64 = 1.0/((1.0 + q)*rad).sqrt();
8
9 match transform_type {
10 1 => (vx - y, vy + x - mu),
11 2 => (-vkep*y/rad, vkep*x/(rad-mu)),
12 3 => (vx, vy),
13 _ => panic!("{} is not a valid transform_type.", transform_type),
14 }
15}