diff --git a/src/si/magnetic_field_strength.rs b/src/si/magnetic_field_strength.rs new file mode 100644 index 00000000..9025b3ae --- /dev/null +++ b/src/si/magnetic_field_strength.rs @@ -0,0 +1,56 @@ + +//! Magnetic field strength (H field) (base unit ampere per meter, A · m⁻¹). + +quantity! { + /// Magnetic field strength (H field) (base unit ampere per meter, A · m⁻¹). + quantity: MagneticFieldStrength; "magnetic field strength (H field)"; + /// Dimension of magnetic field strength (H field), IL⁻¹ (base unit ampere per meter, A · m⁻¹). + dimension: ISQ< + N1, // length + Z0, // mass + Z0, // time + P1, // electric current + Z0, // thermodynamic temperature + Z0, // amount of substance + Z0>; // luminous intensity + units { + @ampere_per_meter: prefix!(none); "A·m⁻¹", "ampere per meter", "amperes per meter"; + @ampere_per_centimeter: prefix!(none) / prefix!(centi); "A·cm⁻¹", "ampere per centimeter", "amperes per centimeter"; + @ampere_per_millimeter: prefix!(none) / prefix!(milli); "A·mm⁻¹", "ampere per millimeter", "amperes per millimeter"; + @ampere_per_micrometer: prefix!(none) / prefix!(micro); "A·μm⁻¹", "ampere per micrometer", "amperes per micrometer"; + + @oersted: 79.577_471_545_947_67; "Oe", "oersted", "oersteds"; // 1 oersted = 1000/(4π) A/m + } +} + + +#[cfg(test)] +mod tests { + storage_types! { + use crate::num::One; + use crate::si::length as l; + use crate::si::electric_current as i; + use crate::si::magnetic_field_strength as h; + use crate::si::quantities::*; + use crate::tests::Test; + + #[test] + fn check_dimension() { + let _: MagneticFieldStrength = ElectricCurrent::new::(V::one()) + / Length::new::(V::one()); + } + + #[test] + fn check_units() { + test::(); + test::(); + test::(); + test::(); + + fn test, L: l::Conversion, H: h::Conversion>() { + Test::assert_approx_eq(&MagneticFieldStrength::new::(V::one()), + &(ElectricCurrent::new::(V::one()) / Length::new::(V::one()))); + } + } + } +} \ No newline at end of file diff --git a/src/si/mod.rs b/src/si/mod.rs index 175cddf6..7b54dff8 100644 --- a/src/si/mod.rs +++ b/src/si/mod.rs @@ -77,6 +77,7 @@ system! { length::Length, luminance::Luminance, luminous_intensity::LuminousIntensity, + magnetic_field_strength::MagneticFieldStrength, magnetic_flux::MagneticFlux, magnetic_flux_density::MagneticFluxDensity, mass::Mass,