#pragma once #include #include "serif/dimensions/quantities.hpp" namespace serif::dimensions { struct Dimensionless final : PhysicalQuantity { static constexpr std::string_view identifier = "dimensionless"; }; struct Mass final : PhysicalQuantity { static constexpr std::string_view identifier = "mass"; }; struct Length final : PhysicalQuantity { static constexpr std::string_view identifier = "length"; }; struct Time final : PhysicalQuantity { static constexpr std::string_view identifier = "time"; }; struct Area final : PhysicalQuantity { static constexpr std::string_view identifier = "area"; }; struct Volume final : PhysicalQuantity { static constexpr std::string_view identifier = "volume"; }; struct Density final : ThermodynamicQuantity { static constexpr std::string_view identifier = "density"; }; struct SurfaceDensity final : PhysicalQuantity { static constexpr std::string_view identifier = "surface_density"; }; struct NumberDensity final : ThermodynamicQuantity { static constexpr std::string_view identifier = "number_density"; }; struct Pressure final : ThermodynamicQuantity { static constexpr std::string_view identifier = "pressure"; }; struct Temperature final : ThermodynamicQuantity { static constexpr std::string_view identifier = "temperature"; }; struct Entropy final : ThermodynamicQuantity { static constexpr std::string_view identifier = "entropy"; }; struct SpecificEntropy final : ThermodynamicQuantity { static constexpr std::string_view identifier = "specific_entropy"; }; struct ChemicalPotential final : ThermodynamicQuantity { static constexpr std::string_view identifier = "chemical_potential"; }; struct Energy final : PhysicalQuantity { static constexpr std::string_view identifier = "energy"; }; struct InternalEnergy final : ThermodynamicQuantity { static constexpr std::string_view identifier = "internal_energy"; }; struct SpecificEnergy final : PhysicalQuantity { static constexpr std::string_view identifier = "specific_energy"; }; struct SpecificInternalEnergy final : ThermodynamicQuantity { static constexpr std::string_view identifier = "specific_internal_energy"; }; struct SpecificEnthalpy final : ThermodynamicQuantity { static constexpr std::string_view identifier = "specific_enthalpy"; }; struct EnergyDensity final : ThermodynamicQuantity { static constexpr std::string_view identifier = "energy_density"; }; struct GravitationalPotential final : PhysicalQuantity { static constexpr std::string_view identifier = "gravitational_potential"; }; struct Velocity final : PhysicalQuantity { static constexpr std::string_view identifier = "velocity"; }; struct Acceleration final : PhysicalQuantity { static constexpr std::string_view identifier = "acceleration"; }; struct Frequency final : PhysicalQuantity { static constexpr std::string_view identifier = "frequency"; }; struct AngularVelocity final : PhysicalQuantity { static constexpr std::string_view identifier = "angular_velocity"; }; struct Momentum final : PhysicalQuantity { static constexpr std::string_view identifier = "momentum"; }; struct AngularMomentum final : PhysicalQuantity { static constexpr std::string_view identifier = "angular_momentum"; }; struct MomentOfInertia final : PhysicalQuantity { static constexpr std::string_view identifier = "moment_of_inertia"; }; struct Force final : PhysicalQuantity { static constexpr std::string_view identifier = "force"; }; struct Torque final : PhysicalQuantity { static constexpr std::string_view identifier = "torque"; }; struct Power final : PhysicalQuantity { static constexpr std::string_view identifier = "power"; }; struct Luminosity final : PhysicalQuantity { static constexpr std::string_view identifier = "luminosity"; }; struct MassFlowRate final : PhysicalQuantity { static constexpr std::string_view identifier = "mass_flow_rate"; }; struct Opacity final : PhysicalQuantity { static constexpr std::string_view identifier = "opacity"; }; struct DynamicViscosity final : PhysicalQuantity { static constexpr std::string_view identifier = "dynamic_viscosity"; }; struct KinematicViscosity final : PhysicalQuantity { static constexpr std::string_view identifier = "kinematic_viscosity"; }; struct MagneticFluxDensity final : PhysicalQuantity { static constexpr std::string_view identifier = "magnetic_flux_density"; }; }