Skip to main content

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}