From a9db8a1538415b5890195d66513b04d93d6b0dd3 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Mon, 19 Dec 2022 12:02:54 +0100 Subject: [PATCH] fix: mechanics quantity specifications fixed --- src/systems/isq/include/units/isq/mechanics.h | 12 ++++++------ test/unit_test/static/isq_test.cpp | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/systems/isq/include/units/isq/mechanics.h b/src/systems/isq/include/units/isq/mechanics.h index 508a4b74..dad811d0 100644 --- a/src/systems/isq/include/units/isq/mechanics.h +++ b/src/systems/isq/include/units/isq/mechanics.h @@ -37,7 +37,7 @@ QUANTITY_SPEC(surface_mass_density, mass / area); inline constexpr auto surface_density = surface_mass_density; QUANTITY_SPEC(linear_mass_density, mass / length); inline constexpr auto linear_density = linear_mass_density; -QUANTITY_SPEC(momentum, mass* velocity); // TODO vector? +QUANTITY_SPEC(momentum, mass* velocity); // vector QUANTITY_SPEC(force, mass* acceleration); // vector // TODO what is a correct equation here? QUANTITY_SPEC(weight, force); // vector // TODO g? QUANTITY_SPEC(static_friction_force, force); // vector @@ -61,7 +61,7 @@ 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); // TODO scalar or vector? +QUANTITY_SPEC(shear_strain, displacement / thickness, quantity_character::scalar); QUANTITY_SPEC(relative_volume_strain, volume / volume); QUANTITY_SPEC(Poisson_number, width / length); QUANTITY_SPEC(modulus_of_elasticity, normal_stress / relative_linear_strain); @@ -82,9 +82,9 @@ inline constexpr auto coefficient_of_static_friction = static_friction_coefficie QUANTITY_SPEC(kinetic_friction_factor, 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)); // TODO scalar or vector? -// QUANTITY_SPEC(drag_coefficient, mag<2>* drag_force / (mass_density * pow<2>(speed) * area)); // TODO should we -// support that? +QUANTITY_SPEC(drag_coefficient, drag_force / (mass_density * pow<2>(speed) * area), quantity_character::scalar); +// QUANTITY_SPEC(drag_coefficient, mag<2>* drag_force / (mass_density * pow<2>(speed) * area), +// quantity_character::scalar); // TODO should we support that? inline constexpr auto drag_factor = drag_coefficient; QUANTITY_SPEC(dynamic_viscosity, shear_stress* length / velocity); QUANTITY_SPEC(kinematic_viscosity, dynamic_viscosity / mass_density); @@ -99,7 +99,7 @@ QUANTITY_SPEC(kinetic_energy, mass* pow<2>(speed)); QUANTITY_SPEC(mechanical_energy, potential_energy); QUANTITY_SPEC(mechanical_work, force* displacement, quantity_character::scalar); inline constexpr auto work = mechanical_work; -QUANTITY_SPEC(efficiency, power / power); +QUANTITY_SPEC(efficiency_mechanics, power / power); QUANTITY_SPEC(mass_flow, mass_density* velocity); // vector QUANTITY_SPEC(mass_flow_rate, mass_flow* area, quantity_character::scalar); QUANTITY_SPEC(mass_change_rate, mass / time); diff --git a/test/unit_test/static/isq_test.cpp b/test/unit_test/static/isq_test.cpp index ea71d6c8..0f46d792 100644 --- a/test/unit_test/static/isq_test.cpp +++ b/test/unit_test/static/isq_test.cpp @@ -101,7 +101,7 @@ static_assert(verify(isq::surface_density, scalar, kg / m2)); static_assert(verify(isq::linear_mass_density, scalar, kg / m)); static_assert(verify(isq::linear_density, scalar, kg / m)); static_assert(verify(isq::moment_of_inertia, tensor, kg* m2)); -static_assert(verify(isq::momentum, vector, kg* m / s)); // TODO vector? +static_assert(verify(isq::momentum, vector, kg* m / s)); static_assert(verify(isq::force, vector, N, kg* m / s2)); static_assert(verify(isq::weight, vector, N, kg* m / s2)); static_assert(verify(isq::static_friction_force, vector, N, kg* m / s2)); @@ -124,7 +124,7 @@ static_assert(verify(isq::normal_stress, scalar, Pa, N / m2, kg / m / s2)); static_assert(verify(isq::shear_stress, scalar, Pa, N / m2, kg / m / s2)); static_assert(verify(isq::strain, tensor, one)); static_assert(verify(isq::relative_linear_strain, scalar, one)); -static_assert(verify(isq::shear_strain, vector, one)); // TODO scalar or vector? +static_assert(verify(isq::shear_strain, scalar, one)); static_assert(verify(isq::relative_volume_strain, scalar, one)); static_assert(verify(isq::Poisson_number, scalar, one)); static_assert(verify(isq::modulus_of_elasticity, scalar, Pa, N / m2, kg / m / s2)); @@ -143,8 +143,8 @@ static_assert(verify(isq::coefficient_of_static_friction, scalar, one)); static_assert(verify(isq::kinetic_friction_factor, scalar, one)); static_assert(verify(isq::dynamic_friction_factor, scalar, one)); static_assert(verify(isq::rolling_resistance_factor, scalar, one)); -static_assert(verify(isq::drag_coefficient, vector, one)); -static_assert(verify(isq::drag_factor, vector, one)); +static_assert(verify(isq::drag_coefficient, scalar, one)); +static_assert(verify(isq::drag_factor, scalar, one)); static_assert(verify(isq::dynamic_viscosity, scalar, Pa* s, kg / m / s)); static_assert(verify(isq::kinematic_viscosity, scalar, m2 / s)); static_assert(verify(isq::surface_tension, scalar, N / m, kg / s2)); @@ -154,7 +154,7 @@ static_assert(verify(isq::kinetic_energy, scalar, J, kg* m2 / s2)); static_assert(verify(isq::mechanical_energy, scalar, J, kg* m2 / s2)); static_assert(verify(isq::mechanical_work, scalar, J, kg* m2 / s2)); static_assert(verify(isq::work, scalar, J, kg* m2 / s2)); -static_assert(verify(isq::efficiency, scalar, one)); +static_assert(verify(isq::efficiency_mechanics, scalar, one)); static_assert(verify(isq::mass_flow, vector, kg / m2 / s)); static_assert(verify(isq::mass_flow_rate, scalar, kg / s)); static_assert(verify(isq::mass_change_rate, scalar, kg / s));