#科学 #常数 #单位 #物理 #系统 #MKS #时间单位

rustamath_mks

物理常数和MKS单位制

2个版本

0.1.1 2023年4月10日
0.1.0 2023年4月5日

#655科学

每月 22次下载

MIT 许可证

60KB
797

Rustamath MKS

MIT licensed CI

Rustamath MKS 是一个Rust库,支持MKS单位制和MKS中的物理常数。

所有常数的列表

以下是一个演示基本使用的示例,可以在源目录中使用 cargo test simple_pendulum -- --nocapture 运行。

#[test]
fn simple_pendulum() {
    // simple pendulum period formula is `T = 2*Pi*sqrt(L/g)`
    let pendulum_len = MksVal::new(6.0, f64::FOOT, FOOT_UNIT);
    let g = MksVal::new(1.0, f64::GRAV_ACCEL, GRAV_ACCEL_UNIT);

    println!("Pendulum length is {:.2} {}", pendulum_len.val, pendulum_len.unit);
    println!("G on Earth is {:.2} {}", g.val, g.unit);

    assert_eq!(pendulum_len.unit.to_string(), "[m]");
    assert_eq!(g.unit.to_string(), "[m / s^2]");

    let pendulum_len_over_accel = pendulum_len / g;
    assert!(pendulum_len_over_accel.unit == TIME_UNIT * TIME_UNIT);

    let pi_x_2 = MksVal::new_scalar(2.0 * std::f64::consts::PI);

    let period = pi_x_2 * pendulum_len_over_accel.sqrt();
    assert!(period.unit == TIME_UNIT);

    println!("Pendulum period is {:.2} {}", period.val, period.unit);
    assert_eq!(period.unit.to_string(), "[s]");
}

输出是

Pendulum length is 1.83 [m]
G on Earth is 9.81 [m / s^2]
Pendulum period is 2.71 [s]

(使用任何在线计算器检查结果,例如 https://www.omnicalculator.com/physics/simple-pendulum)

此包提供

  • 物理常数,例如光速 c 和万有引力常数 G。这些值在标准MKS单位制(米、千克、秒、安培)中可用。例如: let half_speed_of_light = f64::SPEED_OF_LIGHT / 2.0;
  • MKS单位类型,例如: assert_eq!(SPEED_OF_LIGHT_UNIT * TIME_UNIT, LIGHT_YEAR_UNIT);
  • 将单位作为字符串打印,例如: assert_eq!(&SPEED_OF_LIGHT_UNIT.to_string(), "[m / s]");
  • 带有单位的值,例如: let pendulum_len = MksVal::new(6.0, f64::FOOT, FOOT_UNIT);
  • 值操作,例如: let pendulum_len_over_accel = pendulum_len / g;

依赖项

~27KB