From 55ac1c5bc596e5afe980cacaff0e2257cf27e91a Mon Sep 17 00:00:00 2001 From: Vlad Voronenkov Date: Sun, 7 Aug 2022 14:09:48 +0200 Subject: [PATCH] Add MagneticPermeability quantity with related units. --- src/si/magnetic_permeability.rs | 50 +++++++++++++++++++++++++++++++++ src/si/mod.rs | 1 + 2 files changed, 51 insertions(+) create mode 100644 src/si/magnetic_permeability.rs diff --git a/src/si/magnetic_permeability.rs b/src/si/magnetic_permeability.rs new file mode 100644 index 00000000..042743ee --- /dev/null +++ b/src/si/magnetic_permeability.rs @@ -0,0 +1,50 @@ +//! Magnetic permeability (base unit henry per meter, m · kg · s⁻² · A⁻²). + +quantity! { + /// Magnetic permeability (base unit henry per meter, m · kg · s⁻² · A⁻²). + quantity: MagneticPermeability; "magnetic permeability"; + /// Dimension of magnetic permeability, LMT⁻²I⁻² (base unit henry per meter, + /// m · kg · s⁻² · A⁻²). + dimension: ISQ< + P1, // length + P1, // mass + N2, // time + N2, // electric current + Z0, // thermodynamic temperature + Z0, // amount of substance + Z0>; // luminous intensity + units { + @henry_per_meter: prefix!(none); "H/m", "henry per meter", "henrys per meter"; + @vacuum_magnetic_permeability: 1.256_637_062_12_E-6; "µ₀", "vacuum magnetic permeability", + "vacuum magnetic permeability"; + } +} + +#[cfg(test)] +mod test { + storage_types! { + use crate::num::One; + use crate::si::inductance as ind; + use crate::si::magnetic_permeability as mp; + use crate::si::length as l; + use crate::si::quantities::*; + use crate::tests::Test; + + #[test] + fn check_dimension() { + let _: MagneticPermeability = Inductance::new::(V::one()) + / Length::new::(V::one()); + } + + #[test] + fn check_units() { + test::(); + + fn test, IND: ind::Conversion, L: l::Conversion>() { + Test::assert_approx_eq(&MagneticPermeability::new::(V::one()), + &(Inductance::new::(V::one()) + / Length::new::(V::one()))); + } + } + } +} diff --git a/src/si/mod.rs b/src/si/mod.rs index dfba2968..b968a085 100644 --- a/src/si/mod.rs +++ b/src/si/mod.rs @@ -81,6 +81,7 @@ system! { luminous_intensity::LuminousIntensity, magnetic_flux::MagneticFlux, magnetic_flux_density::MagneticFluxDensity, + magnetic_permeability::MagneticPermeability, mass::Mass, mass_concentration::MassConcentration, mass_density::MassDensity,