Skip to main content

use_physics/
prelude.rs

1#[cfg(feature = "density")]
2pub use crate::{DensityError, density_of, mass_from_density, volume};
3
4#[cfg(feature = "elasticity")]
5pub use crate::{
6    ElasticBar, ElasticMaterial, axial_deformation, axial_stiffness, bulk_modulus,
7    bulk_modulus_from_youngs_and_poisson, change_in_length, change_in_volume,
8    elastic_energy_density, elastic_energy_from_force_deformation,
9    elastic_energy_from_spring_constant, final_length, force_from_axial_deformation,
10    force_from_stress, is_common_poisson_ratio, normal_strain, normal_stress, poisson_ratio,
11    pressure_change_from_bulk_modulus, shear_modulus, shear_modulus_from_youngs_and_poisson,
12    shear_strain, shear_strain_from_modulus, shear_stress, shear_stress_from_modulus,
13    strain_from_youngs_modulus, stress_from_youngs_modulus, transverse_strain_from_poisson_ratio,
14    volume_strain, youngs_modulus, youngs_modulus_from_shear_and_poisson,
15};
16
17#[cfg(feature = "energy")]
18pub use crate::{kinetic_energy, potential_energy, work};
19
20#[cfg(all(feature = "collision", not(feature = "energy")))]
21pub use crate::{
22    Collision1D, CollisionBody1D, coefficient_of_restitution, collision_energy_loss_1d,
23    collision_energy_loss_fraction_1d, collision_final_velocities_1d, collision_impulse_on_a,
24    collision_impulse_on_b, collision_impulses_1d, elastic_collision_final_velocities_1d,
25    is_perfectly_elastic, is_perfectly_inelastic, is_valid_restitution, kinetic_energy,
26    kinetic_energy_loss, kinetic_energy_loss_fraction,
27    perfectly_inelastic_collision_final_velocities_1d, perfectly_inelastic_collision_velocity_1d,
28    relative_speed, relative_velocity, separation_speed_from_restitution, total_kinetic_energy_1d,
29};
30
31#[cfg(all(feature = "collision", feature = "energy"))]
32pub use crate::{
33    Collision1D, CollisionBody1D, coefficient_of_restitution, collision_energy_loss_1d,
34    collision_energy_loss_fraction_1d, collision_final_velocities_1d, collision_impulse_on_a,
35    collision_impulse_on_b, collision_impulses_1d, collision_kinetic_energy,
36    elastic_collision_final_velocities_1d, is_perfectly_elastic, is_perfectly_inelastic,
37    is_valid_restitution, kinetic_energy_loss, kinetic_energy_loss_fraction,
38    perfectly_inelastic_collision_final_velocities_1d, perfectly_inelastic_collision_velocity_1d,
39    relative_speed, relative_velocity, separation_speed_from_restitution, total_kinetic_energy_1d,
40};
41
42#[cfg(all(feature = "fluid", not(feature = "pressure")))]
43pub use crate::{
44    Fluid, PipeFlow, absolute_pressure, bernoulli_pressure, buoyant_force, continuity_area,
45    continuity_velocity, displaced_volume_from_buoyant_force, drag_force, dynamic_pressure,
46    dynamic_viscosity, hydrostatic_pressure, kinematic_viscosity, mass_flow_rate, reynolds_number,
47    velocity_from_flow_rate, volumetric_flow_rate,
48};
49
50#[cfg(all(feature = "fluid", feature = "pressure"))]
51pub use crate::{
52    Fluid, PipeFlow, absolute_pressure, bernoulli_pressure, buoyant_force, continuity_area,
53    continuity_velocity, displaced_volume_from_buoyant_force, drag_force, dynamic_pressure,
54    dynamic_viscosity, fluid_hydrostatic_pressure, kinematic_viscosity, mass_flow_rate,
55    reynolds_number, velocity_from_flow_rate, volumetric_flow_rate,
56};
57
58#[cfg(feature = "work")]
59pub use crate::{
60    ConstantForceWork, displacement_from_work, final_kinetic_energy_from_work, force_from_work,
61    initial_kinetic_energy_from_work, net_work, spring_potential_energy, spring_work,
62    work_against_gravity, work_at_angle, work_at_angle_degrees, work_by_friction, work_by_gravity,
63    work_from_force_samples, work_from_kinetic_energy_change,
64};
65
66#[cfg(feature = "electricity")]
67pub use crate::{
68    COULOMB_CONSTANT, ElectricalLoad, charge_from_current_time, conductance, coulomb_force,
69    current, current_from_charge_time, energy_from_power_time, energy_from_voltage_charge,
70    parallel_resistance, power_from_current_resistance, power_from_voltage_current,
71    power_from_voltage_resistance, resistance, resistance_from_conductance, series_resistance,
72    voltage,
73};
74
75#[cfg(feature = "magnetism")]
76pub use crate::{
77    MagneticField, VACUUM_PERMEABILITY, magnetic_energy_density,
78    magnetic_field_around_long_straight_wire, magnetic_field_at_center_of_loop,
79    magnetic_field_inside_solenoid, magnetic_flux, magnetic_flux_degrees,
80    magnetic_flux_density_from_flux, magnetic_force_magnitude_on_charge, magnetic_force_on_charge,
81    magnetic_force_on_charge_degrees, magnetic_force_on_wire, magnetic_force_on_wire_degrees,
82    magnetic_pressure,
83};
84
85#[cfg(feature = "electromagnetism")]
86pub use crate::{
87    ElectromagneticField, VACUUM_PERMITTIVITY, cyclotron_angular_frequency, cyclotron_frequency,
88    cyclotron_radius, electric_field_energy_density, electric_field_for_velocity_selector,
89    electric_field_from_magnetic_flux_density_in_vacuum, electric_force_on_charge,
90    electromagnetic_energy_density, lorentz_force_magnitude_perpendicular, lorentz_force_scalar,
91    lorentz_force_scalar_degrees, magnetic_field_energy_density,
92    magnetic_flux_density_for_velocity_selector,
93    magnetic_flux_density_from_electric_field_in_vacuum, magnetic_force_on_moving_charge,
94    magnetic_force_on_moving_charge_degrees, poynting_magnitude,
95    speed_from_permittivity_permeability, velocity_selector_speed,
96};
97
98#[cfg(all(feature = "electromagnetism", not(feature = "magnetism")))]
99pub use crate::VACUUM_PERMEABILITY;
100
101#[cfg(all(feature = "electromagnetism", feature = "magnetism"))]
102pub use crate::ELECTROMAGNETISM_VACUUM_PERMEABILITY;
103
104#[cfg(all(feature = "electromagnetism", not(feature = "nuclear")))]
105pub use crate::SPEED_OF_LIGHT;
106
107#[cfg(all(feature = "electromagnetism", feature = "nuclear"))]
108pub use crate::ELECTROMAGNETISM_SPEED_OF_LIGHT;
109
110#[cfg(all(
111    feature = "relativity",
112    not(feature = "electromagnetism"),
113    not(feature = "nuclear")
114))]
115pub use crate::SPEED_OF_LIGHT;
116
117#[cfg(all(
118    feature = "relativity",
119    any(feature = "electromagnetism", feature = "nuclear")
120))]
121pub use crate::RELATIVITY_SPEED_OF_LIGHT;
122
123#[cfg(feature = "quantum")]
124pub use crate::{
125    BOHR_RADIUS, ELECTRON_MASS, ELEMENTARY_CHARGE, MatterWave, PLANCK_CONSTANT, Photon,
126    QuantumNumbers, REDUCED_PLANCK_CONSTANT, RYDBERG_ENERGY_EV, angular_frequency_from_energy,
127    bohr_orbit_radius, de_broglie_wavelength, de_broglie_wavelength_from_mass_velocity,
128    electron_volts_to_joules, energy_from_angular_frequency, frequency_from_photon_energy,
129    hydrogen_energy_level_ev, hydrogen_transition_energy_ev, hydrogen_transition_wavelength,
130    is_valid_azimuthal_quantum_number, is_valid_magnetic_quantum_number,
131    is_valid_principal_quantum_number, is_valid_quantum_numbers, is_valid_spin_twice,
132    joules_to_electron_volts, minimum_energy_uncertainty, minimum_momentum_uncertainty,
133    minimum_position_uncertainty, minimum_time_uncertainty, momentum_from_de_broglie_wavelength,
134    photon_energy_from_frequency, photon_energy_from_wavelength, photon_momentum_from_energy,
135    photon_momentum_from_wavelength, wavelength_from_photon_energy,
136};
137
138#[cfg(all(
139    feature = "quantum",
140    not(feature = "electromagnetism"),
141    not(feature = "nuclear"),
142    not(feature = "relativity")
143))]
144pub use crate::SPEED_OF_LIGHT;
145
146#[cfg(all(
147    feature = "quantum",
148    any(
149        feature = "electromagnetism",
150        feature = "nuclear",
151        feature = "relativity"
152    )
153))]
154pub use crate::QUANTUM_SPEED_OF_LIGHT;
155
156#[cfg(feature = "plasma")]
157pub use crate::{
158    BOLTZMANN_CONSTANT, ElectronPlasma, PROTON_MASS, PlasmaSpecies, alfven_speed, charge_density,
159    debye_length, debye_number, debye_sphere_volume, electron_gyrofrequency, electron_gyroradius,
160    electron_plasma_angular_frequency, electron_plasma_frequency, electron_thermal_speed,
161    gyro_angular_frequency, gyrofrequency, gyroradius, ion_plasma_angular_frequency,
162    is_quasi_neutral, is_valid_coulomb_logarithm, particle_thermal_speed, plasma_beta,
163    plasma_pressure, total_plasma_pressure,
164};
165
166#[cfg(all(feature = "plasma", not(feature = "quantum")))]
167pub use crate::{ELECTRON_MASS, ELEMENTARY_CHARGE};
168
169#[cfg(all(feature = "plasma", feature = "quantum"))]
170pub use crate::{PLASMA_ELECTRON_MASS, PLASMA_ELEMENTARY_CHARGE};
171
172#[cfg(all(feature = "plasma", not(feature = "electromagnetism")))]
173pub use crate::VACUUM_PERMITTIVITY;
174
175#[cfg(all(feature = "plasma", feature = "electromagnetism"))]
176pub use crate::PLASMA_VACUUM_PERMITTIVITY;
177
178#[cfg(all(
179    feature = "plasma",
180    not(feature = "magnetism"),
181    not(feature = "electromagnetism")
182))]
183pub use crate::VACUUM_PERMEABILITY;
184
185#[cfg(all(
186    feature = "plasma",
187    any(feature = "magnetism", feature = "electromagnetism")
188))]
189pub use crate::PLASMA_VACUUM_PERMEABILITY;
190
191#[cfg(all(feature = "plasma", not(feature = "magnetism")))]
192pub use crate::magnetic_pressure;
193
194#[cfg(all(feature = "plasma", feature = "magnetism"))]
195pub use crate::plasma_magnetic_pressure;
196
197#[cfg(feature = "force")]
198pub use crate::{STANDARD_GRAVITY, earth_weight, force, impulse, weight};
199
200#[cfg(feature = "torque")]
201pub use crate::{
202    LeverForce, TorqueSystem, angular_acceleration_from_torque, balancing_force,
203    balancing_lever_arm, force_from_torque, is_rotational_equilibrium, lever_arm_from_torque,
204    moment_arm, moment_arm_degrees, net_torque, net_torque_from_force_lever_pairs,
205    perpendicular_force_component, perpendicular_force_component_degrees,
206    point_mass_moment_of_inertia, rod_moment_of_inertia_about_center,
207    rod_moment_of_inertia_about_end, torque, torque_at_angle, torque_at_angle_degrees,
208    torques_from_force_lever_pairs,
209};
210
211#[cfg(all(feature = "statics", not(feature = "torque")))]
212pub use crate::{
213    CantileverReaction, Force2D, PointForce2D, StaticSystem2D, can_static_friction_hold,
214    cantilever_end_point_load_reaction, downslope_force_incline, force_angle_radians,
215    force_magnitude, is_rotational_equilibrium, is_static_equilibrium_2d,
216    is_translational_equilibrium_1d, is_translational_equilibrium_2d, maximum_static_friction,
217    minimum_static_friction_coefficient_for_incline, moment_2d, moment_from_force_and_arm,
218    net_force_1d, net_force_2d, net_moment, net_moment_2d, normal_force_horizontal_surface,
219    normal_force_incline, required_static_friction, simply_supported_point_load_reactions,
220    simply_supported_uniform_load_reactions,
221};
222
223#[cfg(all(feature = "statics", feature = "torque"))]
224pub use crate::{
225    CantileverReaction, Force2D, PointForce2D, StaticSystem2D, can_static_friction_hold,
226    cantilever_end_point_load_reaction, downslope_force_incline, force_angle_radians,
227    force_magnitude, is_static_equilibrium_2d, is_translational_equilibrium_1d,
228    is_translational_equilibrium_2d, maximum_static_friction,
229    minimum_static_friction_coefficient_for_incline, moment_2d, moment_from_force_and_arm,
230    net_force_1d, net_force_2d, net_moment, net_moment_2d, normal_force_horizontal_surface,
231    normal_force_incline, required_static_friction, simply_supported_point_load_reactions,
232    simply_supported_uniform_load_reactions, statics_is_rotational_equilibrium,
233};
234
235#[cfg(feature = "gravity")]
236pub use crate::{
237    GRAVITATIONAL_CONSTANT, GravityBody, circular_orbital_period, circular_orbital_velocity,
238    escape_velocity, gravitational_acceleration, gravitational_force,
239    gravitational_potential_energy, near_surface_potential_energy, standard_weight,
240};
241
242#[cfg(all(feature = "gravity", not(feature = "force")))]
243pub use crate::{STANDARD_GRAVITY, weight};
244
245#[cfg(all(feature = "gravity", feature = "force"))]
246pub use crate::gravity_weight;
247
248#[cfg(feature = "orbit")]
249pub use crate::{
250    CentralBody, EllipticalOrbit, altitude_from_orbital_radius,
251    apoapsis_from_semi_major_axis_eccentricity, apoapsis_speed, circular_orbital_speed,
252    eccentricity_from_apsides, elliptical_orbital_period, escape_speed, gravitational_parameter,
253    hohmann_delta_v_1, hohmann_delta_v_2, hohmann_total_delta_v, hohmann_transfer_semi_major_axis,
254    hohmann_transfer_time, orbital_radius_from_altitude, orbital_radius_from_circular_speed,
255    orbital_radius_from_period, periapsis_from_semi_major_axis_eccentricity, periapsis_speed,
256    semi_major_axis_from_apsides, semi_major_axis_from_specific_energy,
257    source_mass_from_gravitational_parameter, specific_orbital_energy, vis_viva_speed,
258};
259
260#[cfg(all(feature = "momentum", not(feature = "force")))]
261pub use crate::{
262    MovingMass, average_force_from_impulse, impulse, impulse_from_momentum_change,
263    mass_from_momentum, momentum, recoil_velocity, total_momentum, two_body_total_momentum,
264    velocity_from_momentum,
265};
266
267#[cfg(all(feature = "momentum", feature = "force"))]
268pub use crate::{
269    MovingMass, average_force_from_impulse, impulse_from_momentum_change, mass_from_momentum,
270    momentum, momentum_impulse, recoil_velocity, total_momentum, two_body_total_momentum,
271    velocity_from_momentum,
272};
273
274#[cfg(feature = "relativity")]
275pub use crate::{
276    RelativisticBody, beta, beta_from_rapidity, contracted_length, dilated_time,
277    doppler_factor_longitudinal_from_beta, energy_momentum_relation, is_subluminal_speed,
278    lorentz_factor, lorentz_factor_from_beta, mass_from_rest_energy,
279    observed_frequency_longitudinal, proper_length, proper_time, rapidity_from_beta,
280    relativistic_kinetic_energy, relativistic_momentum, rest_energy, rest_mass_from_momentum_speed,
281    speed_from_beta, speed_from_rapidity, total_energy, velocity_addition,
282};
283
284#[cfg(feature = "motion")]
285pub use crate::{MotionError, average_speed, displacement, distance, final_velocity};
286
287#[cfg(feature = "oscillation")]
288pub use crate::{
289    SimpleHarmonicOscillator, SpringOscillator, acceleration, acceleration_from_displacement,
290    angular_frequency_from_frequency, angular_frequency_from_period, critical_damping_coefficient,
291    damped_angular_frequency, damping_ratio, damping_ratio_from_quality_factor,
292    frequency_from_angular_frequency, frequency_from_period, is_critically_damped, is_overdamped,
293    is_underdamped, kinetic_energy_from_total_and_potential, mass_from_spring_period,
294    max_acceleration, max_speed, oscillation_displacement, oscillation_spring_potential_energy,
295    oscillator_total_energy, pendulum_length_from_period, period_from_angular_frequency,
296    period_from_frequency, quality_factor_from_damping_ratio, resonance_angular_frequency_natural,
297    simple_pendulum_angular_frequency, simple_pendulum_frequency, simple_pendulum_period,
298    spring_angular_frequency, spring_constant_from_period, spring_frequency, spring_period,
299    velocity,
300};
301
302#[cfg(all(feature = "rotation", not(feature = "torque")))]
303pub use crate::{
304    AngularState, RotatingBody, angular_acceleration, angular_acceleration_from_torque,
305    angular_displacement, angular_momentum, angular_velocity,
306    angular_velocity_from_angular_momentum, angular_velocity_from_rotational_kinetic_energy,
307    angular_velocity_from_tangential_speed, centripetal_acceleration_from_angular_velocity,
308    centripetal_acceleration_from_tangential_speed, degrees_from_radians, final_angular_velocity,
309    final_angular_velocity_from_displacement, final_angular_velocity_squared,
310    hollow_sphere_moment_of_inertia, point_mass_moment_of_inertia, radians_from_degrees,
311    radians_from_revolutions, revolutions_from_radians, rod_moment_of_inertia_about_center,
312    rod_moment_of_inertia_about_end, rotational_kinetic_energy, solid_disk_moment_of_inertia,
313    solid_sphere_moment_of_inertia, tangential_acceleration, tangential_speed,
314    thin_ring_moment_of_inertia,
315};
316
317#[cfg(all(feature = "rotation", feature = "torque"))]
318pub use crate::{
319    AngularState, RotatingBody, angular_acceleration, angular_displacement, angular_momentum,
320    angular_velocity, angular_velocity_from_angular_momentum,
321    angular_velocity_from_rotational_kinetic_energy, angular_velocity_from_tangential_speed,
322    centripetal_acceleration_from_angular_velocity, centripetal_acceleration_from_tangential_speed,
323    degrees_from_radians, final_angular_velocity, final_angular_velocity_from_displacement,
324    final_angular_velocity_squared, hollow_sphere_moment_of_inertia, radians_from_degrees,
325    radians_from_revolutions, revolutions_from_radians, rotation_angular_acceleration_from_torque,
326    rotation_point_mass_moment_of_inertia, rotation_rod_moment_of_inertia_about_center,
327    rotation_rod_moment_of_inertia_about_end, rotational_kinetic_energy,
328    solid_disk_moment_of_inertia, solid_sphere_moment_of_inertia, tangential_acceleration,
329    tangential_speed, thin_ring_moment_of_inertia,
330};
331
332#[cfg(feature = "rigidbody")]
333pub use crate::{
334    MassProperties, RigidBody1D, angular_impulse_from_angular_velocity_change,
335    angular_velocity_after_angular_impulse, center_moment_from_parallel_axis, center_of_mass_1d,
336    combined_mass, impulse_from_velocity_change, linear_kinetic_energy, linear_momentum,
337    parallel_axis_moment_of_inertia, reduced_mass, total_kinetic_energy, velocity_after_impulse,
338};
339
340#[cfg(all(
341    feature = "rigidbody",
342    not(feature = "rotation"),
343    not(feature = "torque")
344))]
345pub use crate::{
346    angular_momentum, hollow_sphere_moment_of_inertia, point_mass_moment_of_inertia,
347    rod_moment_of_inertia_about_center, rod_moment_of_inertia_about_end, rotational_kinetic_energy,
348    solid_disk_moment_of_inertia, solid_sphere_moment_of_inertia, thin_ring_moment_of_inertia,
349};
350
351#[cfg(all(feature = "rigidbody", not(feature = "rotation"), feature = "torque"))]
352pub use crate::{
353    angular_momentum, hollow_sphere_moment_of_inertia, rigidbody_point_mass_moment_of_inertia,
354    rigidbody_rod_moment_of_inertia_about_center, rigidbody_rod_moment_of_inertia_about_end,
355    rotational_kinetic_energy, solid_disk_moment_of_inertia, solid_sphere_moment_of_inertia,
356    thin_ring_moment_of_inertia,
357};
358
359#[cfg(all(feature = "rigidbody", feature = "rotation"))]
360pub use crate::{
361    rigidbody_angular_momentum, rigidbody_hollow_sphere_moment_of_inertia,
362    rigidbody_point_mass_moment_of_inertia, rigidbody_rod_moment_of_inertia_about_center,
363    rigidbody_rod_moment_of_inertia_about_end, rigidbody_rotational_kinetic_energy,
364    rigidbody_solid_disk_moment_of_inertia, rigidbody_solid_sphere_moment_of_inertia,
365    rigidbody_thin_ring_moment_of_inertia,
366};
367
368#[cfg(feature = "particle")]
369pub use crate::{
370    ElementaryCharge, Particle, ParticleFamily, ParticleKind, ParticleStatistics, Spin,
371    antiparticle, charge, charge_in_elementary_units, charge_thirds, family, has_rest_mass,
372    is_antiparticle, is_baryon, is_boson, is_fermion, is_lepton, is_meson, is_quark,
373    is_self_antiparticle, rest_mass_mev_c2, spin, statistics,
374};
375
376#[cfg(feature = "nuclear")]
377pub use crate::{
378    ATOMIC_MASS_UNIT_MEV_C2, DecayLaw, JOULES_PER_MEV, LN_2, NuclideNumbers, SPEED_OF_LIGHT,
379    activity, binding_energy_mev_from_mass_defect_u, binding_energy_per_nucleon,
380    decay_constant_from_half_life, decayed_fraction_from_decay_constant,
381    decayed_quantity_from_decay_constant, elapsed_time_from_remaining_fraction,
382    energy_from_mass_defect_kg, half_life_from_decay_constant, is_valid_nuclide_numbers,
383    joules_to_mev, mass_defect_kg_from_energy, mean_lifetime, mev_to_joules, neutron_count,
384    nuclei_from_activity, nucleon_count, remaining_fraction_from_decay_constant,
385    remaining_fraction_from_half_life, remaining_quantity_from_decay_constant,
386    remaining_quantity_from_half_life, specific_activity,
387};
388
389#[cfg(feature = "radiation")]
390pub use crate::{
391    Dose, RADIATION_JOULES_PER_MEV, RADIATION_SPEED_OF_LIGHT, RadiationBeam, RadiationKind, Shield,
392    absorbed_dose, absorbed_energy_from_dose, accumulated_dose, attenuated_intensity,
393    default_radiation_weighting_factor, dose_rate, effective_dose, energy_fluence, equivalent_dose,
394    fluence, fluence_rate, half_value_layer, intensity, inverse_square_intensity, is_ionizing,
395    is_particle_radiation, is_photon_radiation, isotropic_intensity,
396    linear_attenuation_from_mass_attenuation, mass_attenuation_from_linear_attenuation,
397    photon_flux_density, photon_flux_from_power, required_shield_thickness, tenth_value_layer,
398    total_effective_dose, transmitted_fraction,
399};
400
401#[cfg(feature = "power")]
402pub use crate::{PowerError, average_power, electrical_power, mechanical_power};
403
404#[cfg(feature = "pressure")]
405pub use crate::{PressureError, gauge_pressure, hydrostatic_pressure, pressure};
406
407#[cfg(feature = "thermodynamics")]
408pub use crate::{
409    IDEAL_GAS_CONSTANT, ThermodynamicsError, celsius_to_kelvin, heat_energy, ideal_gas_pressure,
410};