Skip to main content

Crate use_electromagnetism

Crate use_electromagnetism 

Source
Expand description

§use-electromagnetism

Small scalar helpers for combined electric and magnetic field relations in RustUse.

§Install

[dependencies]
use-electromagnetism = "0.0.1"

§Foundation

use-electromagnetism provides small scalar helpers for combined electric and magnetic field relations, Lorentz-force convenience calculations, velocity selectors, cyclotron motion, field energy density, Poynting magnitude, and simple electromagnetic constant relationships.

Inputs are expected to be SI-style numeric values:

  • coulombs for charge
  • volts per meter for electric field
  • meters per second for velocity and speed
  • teslas for magnetic flux density
  • newtons for force
  • kilograms for mass
  • joules per cubic meter for energy density
  • watts per square meter for Poynting magnitude

The crate keeps only a few local convenience constants. Broader physical constants belong in the top-level use-constants set.

§Example

use use_electromagnetism::{
    ElectromagneticField, lorentz_force_scalar, velocity_selector_speed,
};

let field = ElectromagneticField::new(10.0, 2.0).unwrap();

assert_eq!(velocity_selector_speed(20.0, 4.0), Some(5.0));
assert_eq!(
    lorentz_force_scalar(1.0, 10.0, 2.0, 3.0, core::f64::consts::FRAC_PI_2),
    Some(16.0)
);
assert!(field.energy_density().unwrap() > 0.0);

§When to use directly

Choose use-electromagnetism when you need small reusable scalar helpers that combine electric and magnetic field relations in one place.

Use use-electricity for electricity-specific scalar helpers. Use use-magnetism for magnetism-specific scalar helpers.

§Scope

  • APIs stay f64-first and do not define a full unit system.
  • This crate is not a full vector calculus, field theory, Maxwell-equation solver, vector-field engine, optics system, wave system, or signal-processing crate.
  • General constants belong in use-constants.
  • Unit abstractions belong in use-units.
  • Wave, signal, and optics abstractions belong in the top-level use-wave, use-signal, and use-optics sets.

§Status

use-electromagnetism is a pre-1.0 crate with a deliberately small scalar API. Small scalar helpers for combined electric and magnetic field relations.

Modules§

prelude

Structs§

ElectromagneticField
A scalar electric and magnetic field pair.

Constants§

SPEED_OF_LIGHT
Speed of light in vacuum, in meters per second.
VACUUM_PERMEABILITY
Vacuum permeability in henries per meter.
VACUUM_PERMITTIVITY
Vacuum permittivity in farads per meter.

Functions§

cyclotron_angular_frequency
Computes cyclotron angular frequency using ω = |q|B / m.
cyclotron_frequency
Computes cyclotron frequency in cycles per second using f = |q|B / (2πm).
cyclotron_radius
Computes cyclotron radius using r = mv / (|q|B).
electric_field_energy_density
Computes electric field energy density using u_E = 0.5 * ε0 * E².
electric_field_for_velocity_selector
Computes electric field magnitude for a selector using E = vB.
electric_field_from_magnetic_flux_density_in_vacuum
Computes electric field magnitude in vacuum using E = cB.
electric_force_on_charge
Computes electric force using F = qE.
electromagnetic_energy_density
Computes combined electromagnetic energy density.
lorentz_force_magnitude_perpendicular
Computes |F| = |q| * |E + vB| for perpendicular fields along the same scalar direction.
lorentz_force_scalar
Computes the scalar Lorentz-force convenience relation F = q(E + vB sin(theta)).
lorentz_force_scalar_degrees
Computes the scalar Lorentz-force convenience relation with the angle in degrees.
magnetic_field_energy_density
Computes magnetic field energy density using u_B = B² / (2μ0).
magnetic_flux_density_for_velocity_selector
Computes magnetic flux density magnitude for a selector using B = E / v.
magnetic_flux_density_from_electric_field_in_vacuum
Computes magnetic flux density magnitude in vacuum using B = E / c.
magnetic_force_on_moving_charge
Computes magnetic force using F = qvB sin(theta).
magnetic_force_on_moving_charge_degrees
Computes magnetic force using F = qvB sin(theta) with the angle in degrees.
poynting_magnitude
Computes Poynting magnitude in vacuum using S = EB / μ0.
speed_from_permittivity_permeability
Computes propagation speed from permittivity and permeability using v = 1 / sqrt(εμ).
velocity_selector_speed
Computes selector speed using v = E / B.