diff --git a/src/systems/isq/include/mp-units/systems/isq/atomic_and_nuclear_physics.h b/src/systems/isq/include/mp-units/systems/isq/atomic_and_nuclear_physics.h index 5753c325..7493e0f3 100644 --- a/src/systems/isq/include/mp-units/systems/isq/atomic_and_nuclear_physics.h +++ b/src/systems/isq/include/mp-units/systems/isq/atomic_and_nuclear_physics.h @@ -24,11 +24,15 @@ #include #include +#include #include namespace mp_units::isq { // TODO Add all the remaining ISQ definitions QUANTITY_SPEC(activity, 1 / duration); +QUANTITY_SPEC(absorbed_dose, energy / mass); +QUANTITY_SPEC(ionizing_radiation_quality_factor, dimensionless); +QUANTITY_SPEC(dose_equivalent, absorbed_dose* ionizing_radiation_quality_factor); } // namespace mp_units::isq diff --git a/src/systems/si/include/mp-units/systems/si/units.h b/src/systems/si/include/mp-units/systems/si/units.h index 7299e89a..b127018f 100644 --- a/src/systems/si/include/mp-units/systems/si/units.h +++ b/src/systems/si/include/mp-units/systems/si/units.h @@ -73,8 +73,8 @@ inline constexpr struct degree_Celsius : named_unit {} lumen; inline constexpr struct lux : named_unit<"lx", lumen / square(metre)> {} lux; inline constexpr struct becquerel : named_unit<"Bq", 1 / second, kind_of> {} becquerel; -inline constexpr struct gray : named_unit<"Gy", joule / kilogram> {} gray; -inline constexpr struct sievert : named_unit<"Sv", joule / kilogram> {} sievert; +inline constexpr struct gray : named_unit<"Gy", joule / kilogram, kind_of> {} gray; +inline constexpr struct sievert : named_unit<"Sv", joule / kilogram, kind_of> {} sievert; inline constexpr struct katal : named_unit<"kat", mole / second> {} katal; // clang-format on diff --git a/test/unit_test/static/isq_test.cpp b/test/unit_test/static/isq_test.cpp index f61878de..3eafc09d 100644 --- a/test/unit_test/static/isq_test.cpp +++ b/test/unit_test/static/isq_test.cpp @@ -326,4 +326,10 @@ static_assert(verify(isq::reactive_power, scalar, V* A)); static_assert(verify(isq::non_active_power, scalar, V* A)); static_assert(verify(isq::active_energy, scalar, J, W* h)); +// atomic and nuclear physics +static_assert(verify(isq::activity, scalar, Bq, 1 / s)); +static_assert(verify(isq::absorbed_dose, scalar, Gy, J / kg, m2 / s2)); +static_assert(verify(isq::quality_factor, scalar, one)); +static_assert(verify(isq::dose_equivalent, scalar, Sv, J / kg, m2 / s2)); + } // namespace