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};