mirror of
https://github.com/mpusz/mp-units.git
synced 2025-07-31 02:47:16 +02:00
refactor: quantity hiearchy kinds fixed for some quantity definitions
This commit is contained in:
@ -49,10 +49,10 @@ QUANTITY_SPEC(storage_capacity, dimensionless);
|
||||
inline constexpr auto storage_size = storage_capacity;
|
||||
QUANTITY_SPEC(equivalent_binary_storage_capacity, storage_capacity);
|
||||
QUANTITY_SPEC(transfer_rate, storage_capacity / isq::duration);
|
||||
QUANTITY_SPEC(period_of_data_elements, 1 / transfer_rate);
|
||||
QUANTITY_SPEC(period_of_data_elements, isq::period, 1 / transfer_rate);
|
||||
QUANTITY_SPEC(binary_digit_rate, transfer_rate);
|
||||
inline constexpr auto bit_rate = binary_digit_rate;
|
||||
QUANTITY_SPEC(period_of_binary_digits, 1 / binary_digit_rate);
|
||||
QUANTITY_SPEC(period_of_binary_digits, isq::period, 1 / binary_digit_rate);
|
||||
inline constexpr auto bit_period = period_of_binary_digits;
|
||||
QUANTITY_SPEC(equivalent_binary_digit_rate, binary_digit_rate);
|
||||
inline constexpr auto equivalent_bit_rate = bit_rate;
|
||||
|
@ -65,12 +65,12 @@ inline constexpr auto light_speed = speed_of_light;
|
||||
QUANTITY_SPEC(electric_constant, 1 / (magnetic_constant * pow<2>(speed_of_light)));
|
||||
inline constexpr auto permittivity_of_vacuum = electric_constant;
|
||||
QUANTITY_SPEC(permittivity, electric_flux_density / electric_field_strength, quantity_character::scalar);
|
||||
QUANTITY_SPEC(relative_permittivity, permittivity / electric_constant);
|
||||
QUANTITY_SPEC(electric_susceptibility, electric_polarization / electric_constant / electric_field_strength,
|
||||
quantity_character::scalar);
|
||||
QUANTITY_SPEC(relative_permittivity, dimensionless, permittivity / electric_constant);
|
||||
QUANTITY_SPEC(electric_susceptibility, dimensionless,
|
||||
electric_polarization / electric_constant / electric_field_strength, quantity_character::scalar);
|
||||
QUANTITY_SPEC(electric_flux, electric_flux_density* area, quantity_character::scalar);
|
||||
QUANTITY_SPEC(displacement_current_density, electric_flux_density / time); // vector
|
||||
QUANTITY_SPEC(displacement_current, displacement_current_density* area, quantity_character::scalar);
|
||||
QUANTITY_SPEC(displacement_current, electric_current, displacement_current_density* area, quantity_character::scalar);
|
||||
QUANTITY_SPEC(total_current, electric_current);
|
||||
QUANTITY_SPEC(total_current_density, electric_current_density); // vector
|
||||
QUANTITY_SPEC(magnetic_flux, magnetic_flux_density* area, quantity_character::scalar);
|
||||
@ -80,8 +80,9 @@ QUANTITY_SPEC(magnetization, magnetic_moment / volume); // vector
|
||||
QUANTITY_SPEC(magnetic_field_strength, magnetization); // vector
|
||||
inline constexpr auto magnetizing_field = magnetic_field_strength;
|
||||
QUANTITY_SPEC(permeability, magnetic_flux_density / magnetic_field_strength, quantity_character::scalar);
|
||||
QUANTITY_SPEC(relative_permeability, permeability / magnetic_constant);
|
||||
QUANTITY_SPEC(magnetic_susceptibility, magnetization / magnetic_field_strength, quantity_character::scalar);
|
||||
QUANTITY_SPEC(relative_permeability, dimensionless, permeability / magnetic_constant);
|
||||
QUANTITY_SPEC(magnetic_susceptibility, dimensionless, magnetization / magnetic_field_strength,
|
||||
quantity_character::scalar);
|
||||
QUANTITY_SPEC(magnetic_polarization, magnetic_constant* magnetization); // vector
|
||||
QUANTITY_SPEC(magnetic_dipole_moment, magnetic_constant* magnetic_moment); // vector
|
||||
QUANTITY_SPEC(coercivity, magnetic_field_strength, quantity_character::scalar);
|
||||
@ -102,8 +103,8 @@ QUANTITY_SPEC(permeance, 1 / reluctance);
|
||||
QUANTITY_SPEC(inductance, linked_flux / electric_current);
|
||||
inline constexpr auto self_inductance = inductance;
|
||||
QUANTITY_SPEC(mutual_inductance, linked_flux / electric_current);
|
||||
QUANTITY_SPEC(coupling_factor, mutual_inductance / pow<1, 2>(pow<2>(self_inductance)));
|
||||
QUANTITY_SPEC(leakage_factor, pow<2>(coupling_factor));
|
||||
QUANTITY_SPEC(coupling_factor, dimensionless, mutual_inductance / pow<1, 2>(pow<2>(self_inductance)));
|
||||
QUANTITY_SPEC(leakage_factor, dimensionless, pow<2>(coupling_factor));
|
||||
QUANTITY_SPEC(conductivity, electric_current_density / electric_field_strength, quantity_character::scalar);
|
||||
QUANTITY_SPEC(resistivity, 1 / conductivity);
|
||||
// QUANTITY_SPEC(power, voltage* electric_current); // TODO conflicts with mechanical power
|
||||
@ -124,12 +125,12 @@ inline constexpr auto complex_admittance = admittance;
|
||||
QUANTITY_SPEC(conductance_for_alternating_current, admittance);
|
||||
QUANTITY_SPEC(susceptance, admittance);
|
||||
QUANTITY_SPEC(modulus_of_admittance, admittance);
|
||||
QUANTITY_SPEC(quality_factor, reactance / resistance);
|
||||
QUANTITY_SPEC(loss_factor, 1 / quality_factor);
|
||||
QUANTITY_SPEC(quality_factor, dimensionless, reactance / resistance);
|
||||
QUANTITY_SPEC(loss_factor, dimensionless, 1 / quality_factor);
|
||||
QUANTITY_SPEC(loss_angle, angular_measure);
|
||||
QUANTITY_SPEC(active_power, 1 / period * (instantaneous_power * time));
|
||||
QUANTITY_SPEC(apparent_power, voltage* electric_current);
|
||||
QUANTITY_SPEC(power_factor, active_power / apparent_power);
|
||||
QUANTITY_SPEC(power_factor, dimensionless, active_power / apparent_power);
|
||||
QUANTITY_SPEC(complex_power, voltage_phasor* electric_current_phasor);
|
||||
QUANTITY_SPEC(reactive_power, complex_power);
|
||||
QUANTITY_SPEC(non_active_power, pow<1, 2>(pow<2>(apparent_power)));
|
||||
|
@ -61,9 +61,9 @@ QUANTITY_SPEC(normal_stress, pressure, quantity_character::scalar);
|
||||
QUANTITY_SPEC(shear_stress, pressure, quantity_character::scalar);
|
||||
QUANTITY_SPEC(strain, dimensionless, quantity_character::tensor);
|
||||
QUANTITY_SPEC(relative_linear_strain, length / length);
|
||||
QUANTITY_SPEC(shear_strain, displacement / thickness, quantity_character::scalar);
|
||||
QUANTITY_SPEC(shear_strain, dimensionless, displacement / thickness, quantity_character::scalar);
|
||||
QUANTITY_SPEC(relative_volume_strain, volume / volume);
|
||||
QUANTITY_SPEC(Poisson_number, width / length);
|
||||
QUANTITY_SPEC(Poisson_number, dimensionless, width / length);
|
||||
QUANTITY_SPEC(modulus_of_elasticity, normal_stress / relative_linear_strain);
|
||||
inline constexpr auto Young_modulus = modulus_of_elasticity;
|
||||
QUANTITY_SPEC(modulus_of_rigidity, shear_stress / shear_strain);
|
||||
@ -74,13 +74,14 @@ QUANTITY_SPEC(compressibility, 1 / volume * (volume / pressure));
|
||||
QUANTITY_SPEC(second_axial_moment_of_area, pow<2>(radial_distance) * area);
|
||||
QUANTITY_SPEC(second_polar_moment_of_area, pow<2>(radial_distance) * area);
|
||||
QUANTITY_SPEC(section_modulus, second_axial_moment_of_area / radial_distance);
|
||||
QUANTITY_SPEC(static_friction_coefficient, static_friction_force / force, quantity_character::scalar);
|
||||
QUANTITY_SPEC(static_friction_coefficient, dimensionless, static_friction_force / force, quantity_character::scalar);
|
||||
inline constexpr auto static_friction_factor = static_friction_coefficient;
|
||||
inline constexpr auto coefficient_of_static_friction = static_friction_coefficient;
|
||||
QUANTITY_SPEC(kinetic_friction_factor, kinetic_friction_force / force, quantity_character::scalar);
|
||||
QUANTITY_SPEC(kinetic_friction_factor, dimensionless, kinetic_friction_force / force, quantity_character::scalar);
|
||||
inline constexpr auto dynamic_friction_factor = kinetic_friction_factor;
|
||||
QUANTITY_SPEC(rolling_resistance_factor, force / force, quantity_character::scalar);
|
||||
QUANTITY_SPEC(drag_coefficient, drag_force / (mass_density * pow<2>(speed) * area), quantity_character::scalar);
|
||||
QUANTITY_SPEC(drag_coefficient, dimensionless, drag_force / (mass_density * pow<2>(speed) * area),
|
||||
quantity_character::scalar);
|
||||
inline constexpr auto drag_factor = drag_coefficient;
|
||||
QUANTITY_SPEC(dynamic_viscosity, shear_stress* length / velocity);
|
||||
QUANTITY_SPEC(kinematic_viscosity, dynamic_viscosity / mass_density);
|
||||
|
@ -46,7 +46,7 @@ QUANTITY_SPEC(curvature, 1 / radius_of_curvature);
|
||||
QUANTITY_SPEC(area, pow<2>(length));
|
||||
QUANTITY_SPEC(volume, pow<3>(length));
|
||||
QUANTITY_SPEC(angular_measure, arc_length / radius);
|
||||
QUANTITY_SPEC(rotational_displacement, path_length / radius);
|
||||
QUANTITY_SPEC(rotational_displacement, angular_measure, path_length / radius);
|
||||
inline constexpr auto angular_displacement = rotational_displacement;
|
||||
QUANTITY_SPEC(phase_angle, angular_measure);
|
||||
QUANTITY_SPEC(solid_angular_measure, area / pow<2>(radius));
|
||||
@ -60,7 +60,7 @@ QUANTITY_SPEC(angular_acceleration, angular_velocity / duration);
|
||||
QUANTITY_SPEC(period_duration, duration);
|
||||
inline constexpr auto period = period_duration;
|
||||
QUANTITY_SPEC(time_constant, duration);
|
||||
QUANTITY_SPEC(rotation, rotational_displacement);
|
||||
QUANTITY_SPEC(rotation, dimensionless);
|
||||
QUANTITY_SPEC(frequency, 1 / period_duration);
|
||||
QUANTITY_SPEC(rotational_frequency, rotation / duration);
|
||||
QUANTITY_SPEC(angular_frequency, phase_angle / duration);
|
||||
@ -75,7 +75,7 @@ inline constexpr auto phase_speed = phase_velocity;
|
||||
QUANTITY_SPEC(group_velocity, angular_frequency / angular_repetency);
|
||||
inline constexpr auto group_speed = group_velocity;
|
||||
QUANTITY_SPEC(damping_coefficient, 1 / time_constant);
|
||||
QUANTITY_SPEC(logarithmic_decrement, damping_coefficient* period_duration);
|
||||
QUANTITY_SPEC(logarithmic_decrement, dimensionless, damping_coefficient* period_duration);
|
||||
QUANTITY_SPEC(attenuation, 1 / distance);
|
||||
inline constexpr auto extinction = attenuation;
|
||||
QUANTITY_SPEC(phase_coefficient, phase_angle / path_length);
|
||||
|
@ -55,9 +55,10 @@ QUANTITY_SPEC(specific_heat_capacity_at_constant_pressure, specific_heat_capacit
|
||||
QUANTITY_SPEC(specific_heat_capacity_at_constant_volume, specific_heat_capacity);
|
||||
QUANTITY_SPEC(specific_heat_capacity_at_saturated_vapour_pressure, specific_heat_capacity);
|
||||
QUANTITY_SPEC(thermal_diffusivity, thermal_conductivity / (mass_density * specific_heat_capacity_at_constant_pressure));
|
||||
QUANTITY_SPEC(ratio_of_specific_heat_capacities,
|
||||
QUANTITY_SPEC(ratio_of_specific_heat_capacities, dimensionless,
|
||||
specific_heat_capacity_at_constant_pressure / specific_heat_capacity_at_constant_volume);
|
||||
QUANTITY_SPEC(isentropic_exponent, volume / pressure * (pressure / volume)); // TODO how to handle "negative" part
|
||||
QUANTITY_SPEC(isentropic_exponent,
|
||||
volume / pressure * (pressure / volume)); // TODO how to handle "negative" part
|
||||
inline constexpr auto isentropic_expansion_factor = isentropic_exponent;
|
||||
QUANTITY_SPEC(entropy, kinetic_energy / thermodynamic_temperature);
|
||||
QUANTITY_SPEC(specific_entropy, entropy / mass);
|
||||
@ -79,7 +80,7 @@ inline constexpr auto specific_Gibbs_function = specific_Gibbs_energy;
|
||||
QUANTITY_SPEC(Massieu_function, Helmholtz_energy / thermodynamic_temperature); // TODO how to handle "negative" part
|
||||
QUANTITY_SPEC(Planck_function, Gibbs_energy / thermodynamic_temperature); // TODO how to handle "negative" part
|
||||
QUANTITY_SPEC(Joule_Thomson_coefficient, thermodynamic_temperature / pressure);
|
||||
QUANTITY_SPEC(efficiency_thermodynamics, work / heat);
|
||||
QUANTITY_SPEC(efficiency_thermodynamics, dimensionless, work / heat);
|
||||
QUANTITY_SPEC(maximum_efficiency, thermodynamic_temperature / thermodynamic_temperature);
|
||||
QUANTITY_SPEC(specific_gas_constant, entropy / mass);
|
||||
QUANTITY_SPEC(mass_concentration_of_water, mass / volume);
|
||||
|
Reference in New Issue
Block a user