DryChem 1.0.0
A generic, compile-time C++ toolbox with no dependencies for the modern computational chemistry project.
Loading...
Searching...
No Matches
physicalQuantities.hpp
Go to the documentation of this file.
1// Copyright (c) 2020-2025 Cody R. Drisko. All rights reserved.
2// Licensed under the MIT License. See the LICENSE file in the project root for more information.
3//
4// Name: physicalQuantities.hpp
5// Author: crdrisko
6// Date: 03/04/2020-08:13:47
7// Description: The public API for the PhysicalQuantities section of the C++ Units project.
8// This header file should be included in all user programs using these utilities.
9//
10// Note: The internal implementation details associated with this API should not be used in any
11// user program as they are subject to change at any time without warning.
12
13#ifndef DRYCHEM_CPP_UNITS_INCLUDE_CPP_UNITS_PHYSICALQUANTITIES_HPP
14#define DRYCHEM_CPP_UNITS_INCLUDE_CPP_UNITS_PHYSICALQUANTITIES_HPP
15
16#include "math/basicMath.hpp"
19
20namespace CppUnits
21{
23
49
69
74 using Entropy = PhysicalQuantity<Dimensionality< 2, 1, -2, 0, -1>>;
75
78 using Concentration = PhysicalQuantity<Dimensionality<-3, 0, 0, 0, 0, 1>>;
80 using Faradays = PhysicalQuantity<Dimensionality< 0, 0, 1, 1, 0, -1>>;
81 using MolarConductivity = PhysicalQuantity<Dimensionality< 0, -1, 3, 2, 0, -1>>;
82 using MolarEnergy = PhysicalQuantity<Dimensionality< 2, 1, -2, 0, 0, -1>>;
83 using MolarEnergyFlux = PhysicalQuantity<Dimensionality< 0, 1, -3, 0, 0, -1>>;
84 using MolarEntropy = PhysicalQuantity<Dimensionality< 2, 1, -2, 0, -1, -1>>;
85 using MolarMass = PhysicalQuantity<Dimensionality< 0, 1, 0, 0, 0, -1>>;
86
88 using Illuminance = PhysicalQuantity<Dimensionality<-2, 0, 0, 0, 0, 0, 1>>;
91
92
93 namespace Literals
94 {
96 constexpr auto operator"" _(long double magnitude) { return DimensionlessQuantity(magnitude); }
97
99 constexpr auto operator"" _m_s2(long double magnitude) { return Acceleration(magnitude); }
100 constexpr auto operator"" _Js(long double magnitude) { return Action(magnitude); }
101 constexpr auto operator"" _rad(long double magnitude) { return Angle(magnitude); }
102 constexpr auto operator"" _deg(long double magnitude) { return Angle(magnitude); }
103 constexpr auto operator"" _m2_s(long double magnitude) { return AngularVelocity(magnitude); }
104 constexpr auto operator"" _m2(long double magnitude) { return Area(magnitude); }
105 constexpr auto operator"" _Ang2(long double magnitude) { return Area(magnitude); }
106 constexpr auto operator"" _J(long double magnitude) { return Energy(magnitude); }
107 constexpr auto operator"" _eV(long double magnitude) { return Energy(magnitude); }
108 constexpr auto operator"" _Ha(long double magnitude) { return Energy(magnitude); }
109 constexpr auto operator"" _cal(long double magnitude) { return Energy(magnitude); }
110 constexpr auto operator"" _Cal(long double magnitude) { return Energy(magnitude); }
111 constexpr auto operator"" _N(long double magnitude) { return Force(magnitude); }
112 constexpr auto operator"" _Hz(long double magnitude) { return Frequency(magnitude); }
113 constexpr auto operator"" _W_m2(long double magnitude) { return Irradiance(magnitude); }
114 constexpr auto operator"" _m(long double magnitude) { return Length(magnitude); }
115 constexpr auto operator"" _Ang(long double magnitude) { return Length(magnitude); }
116 constexpr auto operator"" _in(long double magnitude) { return Length(magnitude); }
117 constexpr auto operator"" _ft(long double magnitude) { return Length(magnitude); }
118 constexpr auto operator"" _yd(long double magnitude) { return Length(magnitude); }
119 constexpr auto operator"" _mil(long double magnitude) { return Length(magnitude); }
120 constexpr auto operator"" _kg(long double magnitude) { return Mass(magnitude); }
121 constexpr auto operator"" _lbs(long double magnitude) { return Mass(magnitude); }
122 constexpr auto operator"" _kg_m3(long double magnitude) { return MassDensity(magnitude); }
123 constexpr auto operator"" _kgm_s(long double magnitude) { return Momentum(magnitude); }
124 constexpr auto operator"" _kg_ms2(long double magnitude) { return MomentumFlux(magnitude); }
125 constexpr auto operator"" _W(long double magnitude) { return Power(magnitude); }
126 constexpr auto operator"" _bar(long double magnitude) { return Pressure(magnitude); }
127 constexpr auto operator"" _Pa(long double magnitude) { return Pressure(magnitude); }
128 constexpr auto operator"" _atm(long double magnitude) { return Pressure(magnitude); }
129 constexpr auto operator"" _torr(long double magnitude) { return Pressure(magnitude); }
130 constexpr auto operator"" _psi(long double magnitude) { return Pressure(magnitude); }
131 constexpr auto operator"" _J_kg(long double magnitude) { return SpecificEnergy(magnitude); }
132 constexpr auto operator"" _m3_kg(long double magnitude) { return SpecificVolume(magnitude); }
133 constexpr auto operator"" _s(long double magnitude) { return Time(magnitude); }
134 constexpr auto operator"" _min(long double magnitude) { return Time(magnitude); }
135 constexpr auto operator"" _hr(long double magnitude) { return Time(magnitude); }
136 constexpr auto operator"" _days(long double magnitude) { return Time(magnitude); }
137 constexpr auto operator"" _weeks(long double magnitude) { return Time(magnitude); }
138 constexpr auto operator"" _months(long double magnitude) { return Time(magnitude); }
139 constexpr auto operator"" _years(long double magnitude) { return Time(magnitude); }
140 constexpr auto operator"" _m_s(long double magnitude) { return Velocity(magnitude); }
141 constexpr auto operator"" _m3(long double magnitude) { return Volume(magnitude); }
142 constexpr auto operator"" _Ang3(long double magnitude) { return Volume(magnitude); }
143 constexpr auto operator"" _L(long double magnitude) { return Volume(magnitude); }
144 constexpr auto operator"" _1_m(long double magnitude) { return WaveNumber(magnitude); }
145
147 constexpr auto operator"" _F(long double magnitude) { return Capacitance(magnitude); }
148 constexpr auto operator"" _A_m2(long double magnitude) { return CurrentDensity(magnitude); }
149 constexpr auto operator"" _e(long double magnitude) { return ElectricCharge(magnitude); }
150 constexpr auto operator"" _C(long double magnitude) { return ElectricCharge(magnitude); }
151 constexpr auto operator"" _C_m3(long double magnitude) { return ElectricChargeDensity(magnitude); }
152 constexpr auto operator"" _S(long double magnitude) { return ElectricConductance(magnitude); }
153 constexpr auto operator"" _S_m(long double magnitude) { return ElectricConductivity(magnitude); }
154 constexpr auto operator"" _A(long double magnitude) { return ElectricCurrent(magnitude); }
155 constexpr auto operator"" _V_m(long double magnitude) { return ElectricField(magnitude); }
156 constexpr auto operator"" _C_m2(long double magnitude) { return ElectricFluxDensity(magnitude); }
157 constexpr auto operator"" _V(long double magnitude) { return ElectricPotential(magnitude); }
158 constexpr auto operator"" _Ohm(long double magnitude) { return ElectricResistance(magnitude); }
159 constexpr auto operator"" _H(long double magnitude) { return Inductance(magnitude); }
160 constexpr auto operator"" _A_m(long double magnitude) { return MagneticFieldStrength(magnitude); }
161 constexpr auto operator"" _Wb(long double magnitude) { return MagneticFlux(magnitude); }
162 constexpr auto operator"" _T(long double magnitude) { return MagneticFluxDensity(magnitude); }
163 constexpr auto operator"" _G(long double magnitude) { return MagneticFluxDensity(magnitude); }
164 constexpr auto operator"" _gamma(long double magnitude) { return MagneticFluxDensity(magnitude); }
165 constexpr auto operator"" _Wb_m2(long double magnitude) { return MagneticFluxDensity(magnitude); }
166 constexpr auto operator"" _kg_As2(long double magnitude) { return MagneticFluxDensity(magnitude); }
167 constexpr auto operator"" _m2_Vs(long double magnitude) { return Mobility(magnitude); }
168 constexpr auto operator"" _H_m(long double magnitude) { return Permeability(magnitude); }
169 constexpr auto operator"" _F_m(long double magnitude) { return Permittivity(magnitude); }
170
172 constexpr auto operator"" _mol(long double magnitude) { return AmountOfSubstance(magnitude); }
173 constexpr auto operator"" _part(long double magnitude) { return AmountOfSubstance(magnitude); }
174 constexpr auto operator"" _M(long double magnitude) { return Concentration(magnitude); }
175 constexpr auto operator"" _M_m(long double magnitude) { return ConcentrationGradient(magnitude); }
176 constexpr auto operator"" _C_mol(long double magnitude) { return Faradays(magnitude); }
177 constexpr auto operator"" _Sm2_mol(long double magnitude) { return MolarConductivity(magnitude); }
178 constexpr auto operator"" _J_mol(long double magnitude) { return MolarEnergy(magnitude); }
179 constexpr auto operator"" _eV_mol(long double magnitude) { return MolarEnergy(magnitude); }
180 constexpr auto operator"" _kcal_mol(long double magnitude) { return MolarEnergy(magnitude); }
181 constexpr auto operator"" _kg_mols3(long double magnitude) { return MolarEnergyFlux(magnitude); }
182 constexpr auto operator"" _J_molK(long double magnitude) { return MolarEntropy(magnitude); }
183 constexpr auto operator"" _g_mol(long double magnitude) { return MolarMass(magnitude); }
184 constexpr auto operator"" _amu(long double magnitude) { return MolarMass(magnitude); }
185
187 constexpr auto operator"" _J_K(long double magnitude) { return Entropy(magnitude); }
188 constexpr auto operator"" _eV_K(long double magnitude) { return Entropy(magnitude); }
189 constexpr auto operator"" _J_kgK(long double magnitude) { return SpecificEntropy(magnitude); }
190 constexpr auto operator"" _K(long double magnitude) { return Temperature(magnitude); }
191 constexpr auto operator"" _degC(long double magnitude) { return Temperature(magnitude); }
192 constexpr auto operator"" _degF(long double magnitude) { return Temperature(magnitude); }
193 constexpr auto operator"" _W_mK(long double magnitude) { return ThermalConductivity(magnitude); }
194
196 constexpr auto operator"" _cd_m2(long double magnitude) { return Luminance(magnitude); }
197 constexpr auto operator"" _lx(long double magnitude) { return Illuminance(magnitude); }
198 constexpr auto operator"" _cd(long double magnitude) { return LuminousIntensity(magnitude); }
199 } // namespace Literals
200
201
202 namespace Constants
203 {
204 using namespace Literals;
205
207 constexpr DimensionlessQuantity avogadrosNumber = 6.02214076e23_;
208 constexpr Length bohrRadius = 5.29177210903e-11_m;
209 constexpr Entropy boltzmannConstant = 1.380649e-23_J_K;
210 constexpr ElectricCharge elementaryCharge = 1.602176634e-19_C;
212 constexpr Permittivity permittivityFreeSpace = 8.8541878128e-12_F_m;
213 constexpr DimensionlessQuantity pi = 3.14159265_;
214 constexpr Action plancksConstant = 6.62607015e-34_Js;
215 constexpr Velocity speedOfLight = 299'792'458.0_m_s;
216 } // namespace Constants
217} // namespace CppUnits
218
219#endif
Definition physicalQuantity.hpp:33
Definition physicalQuantities.hpp:203
constexpr ElectricCharge elementaryCharge
Definition physicalQuantities.hpp:210
constexpr DimensionlessQuantity pi
Definition physicalQuantities.hpp:213
constexpr Permittivity permittivityFreeSpace
Definition physicalQuantities.hpp:212
constexpr Faradays faradaysConstant
Definition physicalQuantities.hpp:211
constexpr Velocity speedOfLight
Definition physicalQuantities.hpp:215
constexpr DimensionlessQuantity avogadrosNumber
Useful physical constants in their SI units.
Definition physicalQuantities.hpp:207
constexpr Length bohrRadius
Definition physicalQuantities.hpp:208
constexpr Action plancksConstant
Definition physicalQuantities.hpp:214
constexpr Entropy boltzmannConstant
Definition physicalQuantities.hpp:209
Definition physicalQuantities.hpp:94
Definition basicMath.hpp:17
PhysicalQuantity< Dimensionality< 2, 0, 0 > > Area
Definition physicalQuantities.hpp:42
PhysicalQuantity< Dimensionality< 0, 0, 0 > > Angle
Definition physicalQuantities.hpp:31
PhysicalQuantity< Dimensionality<-3, -1, 4, 2 > > Permittivity
Definition physicalQuantities.hpp:52
PhysicalQuantity< Dimensionality< 2, 0, -2, 0, -1 > > SpecificEntropy
Definition physicalQuantities.hpp:73
PhysicalQuantity< Dimensionality<-4, 0, 0, 0, 0, 1 > > ConcentrationGradient
Definition physicalQuantities.hpp:79
PhysicalQuantity< Dimensionality< 0, 0, 0, 0, 0, 0, 1 > > LuminousIntensity
Definition physicalQuantities.hpp:89
PhysicalQuantity< Dimensionality< 1, 1, -3, 0, -1 > > ThermalConductivity
Definition physicalQuantities.hpp:72
PhysicalQuantity< Dimensionality< 2, 0, -2 > > SpecificEnergy
Definition physicalQuantities.hpp:40
PhysicalQuantity< Dimensionality< 1, 1, -1 > > Momentum
Definition physicalQuantities.hpp:39
PhysicalQuantity< Dimensionality<-2, -1, 4, 2 > > Capacitance
Definition physicalQuantities.hpp:55
PhysicalQuantity< Dimensionality<-2, 0, 1, 1 > > ElectricFluxDensity
Definition physicalQuantities.hpp:57
PhysicalQuantity< Dimensionality< 2, 1, -2, 0, 0, -1 > > MolarEnergy
Definition physicalQuantities.hpp:82
PhysicalQuantity< Dimensionality< 2, 0, 0, 0, 0, 0, 1 > > Luminance
Definition physicalQuantities.hpp:90
PhysicalQuantity< Dimensionality< 1, 0, -1 > > Velocity
Definition physicalQuantities.hpp:36
PhysicalQuantity< Dimensionality< 0, 1, -2, -1 > > MagneticFluxDensity
Definition physicalQuantities.hpp:62
PhysicalQuantity< Dimensionality<-3, 0, 1, 1 > > ElectricChargeDensity
Definition physicalQuantities.hpp:53
PhysicalQuantity< Dimensionality<-3, -1, 3, 2 > > ElectricConductivity
Electromagnetic Quantities.
Definition physicalQuantities.hpp:51
PhysicalQuantity< Dimensionality<-1, 0, 0, 1 > > MagneticFieldStrength
Definition physicalQuantities.hpp:58
PhysicalQuantity< Dimensionality< 0, 1, -3 > > Irradiance
Definition physicalQuantities.hpp:33
PhysicalQuantity< Dimensionality< 0, 0, -1 > > Frequency
Definition physicalQuantities.hpp:30
PhysicalQuantity< Dimensionality<-1, 1, -2 > > Pressure
Definition physicalQuantities.hpp:29
PhysicalQuantity< Dimensionality< 0, 0, 1, 1 > > ElectricCharge
Definition physicalQuantities.hpp:61
PhysicalQuantity< Dimensionality<-2, 0, 0, 0, 0, 0, 1 > > Illuminance
Luminous Quantities.
Definition physicalQuantities.hpp:88
PhysicalQuantity< Dimensionality< 1, 1, -2 > > Force
Definition physicalQuantities.hpp:38
PhysicalQuantity< Dimensionality< 0, 1, 0, 0, 0, -1 > > MolarMass
Definition physicalQuantities.hpp:85
PhysicalQuantity< Dimensionality<-2, 0, 0, 1 > > CurrentDensity
Definition physicalQuantities.hpp:56
PhysicalQuantity< Dimensionality< 0, 1, -3, 0, 0, -1 > > MolarEnergyFlux
Definition physicalQuantities.hpp:83
PhysicalQuantity< Dimensionality< 2, 1, -2 > > Energy
Definition physicalQuantities.hpp:45
PhysicalQuantity< Dimensionality< 0, 0, 0, 1 > > ElectricCurrent
Definition physicalQuantities.hpp:60
PhysicalQuantity< Dimensionality< 2, 2, -2 > > Action
Definition physicalQuantities.hpp:46
PhysicalQuantity< Dimensionality< 0, 0, 1, 1, 0, -1 > > Faradays
Definition physicalQuantities.hpp:80
PhysicalQuantity< Dimensionality<> > DimensionlessQuantity
Definition physicalQuantities.hpp:22
PhysicalQuantity< Dimensionality< 1, 1, -3, -1 > > ElectricField
Definition physicalQuantities.hpp:63
PhysicalQuantity< Dimensionality< 3, -1, 0 > > SpecificVolume
Definition physicalQuantities.hpp:47
PhysicalQuantity< Dimensionality<-2, -1, 3, 2 > > ElectricConductance
Definition physicalQuantities.hpp:54
PhysicalQuantity< Dimensionality<-3, 1, 0 > > MassDensity
MKS Quantities.
Definition physicalQuantities.hpp:25
PhysicalQuantity< Dimensionality<-1, 0, 0 > > WaveNumber
Definition physicalQuantities.hpp:27
PhysicalQuantity< Dimensionality< 0, -1, 2, 1 > > Mobility
Definition physicalQuantities.hpp:59
PhysicalQuantity< Dimensionality< 0, 0, 0, 0, 0, 1 > > AmountOfSubstance
Molar Quantities.
Definition physicalQuantities.hpp:77
PhysicalQuantity< Dimensionality< 1, 1, -2, -2 > > Permeability
Definition physicalQuantities.hpp:64
PhysicalQuantity< Dimensionality< 2, 1, -3, -2 > > ElectricResistance
Definition physicalQuantities.hpp:65
PhysicalQuantity< Dimensionality< 0, 0, 0, 0, 1 > > Temperature
Thermal Quantities.
Definition physicalQuantities.hpp:71
PhysicalQuantity< Dimensionality<-2, 1, -2 > > AngularMomentumFlux
Definition physicalQuantities.hpp:26
PhysicalQuantity< Dimensionality< 2, 1, -1 > > AngularMomentum
Definition physicalQuantities.hpp:44
PhysicalQuantity< Dimensionality< 3, 0, 0 > > Volume
Definition physicalQuantities.hpp:48
PhysicalQuantity< Dimensionality< 1, 0, -2 > > Acceleration
Definition physicalQuantities.hpp:35
PhysicalQuantity< Dimensionality<-1, 1, -2 > > MomentumFlux
Definition physicalQuantities.hpp:28
PhysicalQuantity< Dimensionality< 2, 1, -2, -2 > > Inductance
Definition physicalQuantities.hpp:67
PhysicalQuantity< Dimensionality< 2, 0, -1 > > AngularVelocity
Definition physicalQuantities.hpp:41
PhysicalQuantity< Dimensionality< 0, 1, 0 > > Mass
Definition physicalQuantities.hpp:34
PhysicalQuantity< Dimensionality< 2, 1, -3 > > Power
Definition physicalQuantities.hpp:43
PhysicalQuantity< Dimensionality< 0, -1, 3, 2, 0, -1 > > MolarConductivity
Definition physicalQuantities.hpp:81
PhysicalQuantity< Dimensionality< 2, 1, -2, 0, -1, -1 > > MolarEntropy
Definition physicalQuantities.hpp:84
PhysicalQuantity< Dimensionality< 0, 0, 1 > > Time
Definition physicalQuantities.hpp:32
PhysicalQuantity< Dimensionality< 2, 1, -2, -1 > > MagneticFlux
Definition physicalQuantities.hpp:68
PhysicalQuantity< Dimensionality< 1, 0, 0 > > Length
Definition physicalQuantities.hpp:37
PhysicalQuantity< Dimensionality<-3, 0, 0, 0, 0, 1 > > Concentration
Definition physicalQuantities.hpp:78
PhysicalQuantity< Dimensionality< 2, 1, -3, -1 > > ElectricPotential
Definition physicalQuantities.hpp:66
PhysicalQuantity< Dimensionality< 2, 1, -2, 0, -1 > > Entropy
Definition physicalQuantities.hpp:74
Definition dimensionality.hpp:27