Elements 6.3.3
A C++ base framework for the Euclid Software.
Loading...
Searching...
No Matches
SystemOfUnits.h
Go to the documentation of this file.
1
20
25
26#ifndef ELEMENTSKERNEL_ELEMENTSKERNEL_SYSTEMOFUNITS_H_
27#define ELEMENTSKERNEL_ELEMENTSKERNEL_SYSTEMOFUNITS_H_
28
30
31namespace Elements {
32inline namespace Kernel {
33namespace Units {
34
35//
36// Length [L]
37//
38constexpr double meter = 1.0;
39constexpr double meter2 = meter * meter;
40constexpr double meter3 = meter * meter * meter;
41
42constexpr double millimeter = 1.e-3 * meter;
43constexpr double millimeter2 = millimeter * millimeter;
45
46constexpr double centimeter = 1.e-2 * meter;
47constexpr double centimeter2 = centimeter * centimeter;
49
50constexpr double kilometer = 1000. * meter;
51constexpr double kilometer2 = kilometer * kilometer;
52constexpr double kilometer3 = kilometer * kilometer * kilometer;
53
54constexpr double parsec = 3.0856775807e+16 * meter;
55
56constexpr double micrometer = 1.e-6 * meter;
57constexpr double nanometer = 1.e-9 * meter;
58constexpr double angstrom = 1.e-10 * meter;
59constexpr double fermi = 1.e-15 * meter;
60
61constexpr double barn = 1.e-28 * meter2;
62constexpr double millibarn = 1.e-3 * barn;
63constexpr double microbarn = 1.e-6 * barn;
64constexpr double nanobarn = 1.e-9 * barn;
65constexpr double picobarn = 1.e-12 * barn;
66
67// symbols
68constexpr double nm = nanometer;
69constexpr double um = micrometer;
70
71constexpr double mm = millimeter;
72constexpr double mm2 = millimeter2;
73constexpr double mm3 = millimeter3;
74
75constexpr double cm = centimeter;
76constexpr double cm2 = centimeter2;
77constexpr double cm3 = centimeter3;
78
79constexpr double m = meter;
80constexpr double m2 = meter2;
81constexpr double m3 = meter3;
82
83constexpr double km = kilometer;
84constexpr double km2 = kilometer2;
85constexpr double km3 = kilometer3;
86
87constexpr double pc = parsec;
88
89//
90// Angle
91//
92constexpr double radian = 1.;
93constexpr double milliradian = 1.e-3 * radian;
94constexpr double degree = (pi / 180.0) * radian;
95
96constexpr double steradian = 1.;
97
98// symbols
99constexpr double rad = radian;
100constexpr double mrad = milliradian;
101constexpr double sr = steradian;
102constexpr double deg = degree;
103
104//
105// Time [T]
106//
107constexpr double second = 1.;
108
109constexpr double nanosecond = 1.e-9 * second;
110constexpr double millisecond = 1.e-3 * second;
111constexpr double microsecond = 1.e-6 * second;
112constexpr double picosecond = 1.e-12 * second;
113constexpr double femtosecond = 1.e-15 * second;
114
115constexpr double hertz = 1. / second;
116constexpr double kilohertz = 1.e+3 * hertz;
117constexpr double megahertz = 1.e+6 * hertz;
118
119// symbols
120constexpr double ns = nanosecond;
121constexpr double s = second;
122constexpr double ms = millisecond;
123
124//
125// Electric current [I]
126//
127constexpr double ampere = 1.0;
128constexpr double milliampere = 1.e-3 * ampere;
129constexpr double microampere = 1.e-6 * ampere;
130constexpr double nanoampere = 1.e-9 * ampere;
131
132//
133// Electric charge [I][T]
134//
135constexpr double coulomb = ampere * second;
136constexpr double eplus = 1.; // positron charge
137constexpr double e_SI = 1.602176565e-19 * coulomb; // positron charge in coulomb
138
139//
140// Mass [M]
141//
142constexpr double kilogram = 1.0;
143constexpr double gram = 1.e-3 * kilogram;
144constexpr double milligram = 1.e-3 * gram;
145
146// symbols
147constexpr double kg = kilogram;
148constexpr double g = gram;
149constexpr double mg = milligram;
150
151//
152// Energy [M][L^2][T^-2]
153//
154constexpr double joule = kilogram * (meter * meter) / (second * second);
155constexpr double electronvolt = joule * e_SI;
156constexpr double megaelectronvolt = 1.e+6 * electronvolt;
157constexpr double kiloelectronvolt = 1.e+3 * electronvolt;
158constexpr double gigaelectronvolt = 1.e+9 * electronvolt;
159constexpr double teraelectronvolt = 1.e+12 * electronvolt;
160constexpr double petaelectronvolt = 1.e+15 * electronvolt;
161constexpr double erg = 1.e-7 * joule;
162
163// symbols
164constexpr double MeV = megaelectronvolt;
165constexpr double eV = electronvolt;
166constexpr double keV = kiloelectronvolt;
167constexpr double GeV = gigaelectronvolt;
168constexpr double TeV = teraelectronvolt;
169constexpr double PeV = petaelectronvolt;
170
171//
172// Power [E][T^-1]
173//
174constexpr double watt = joule / second;
175
176//
177// Force [E][L^-1]
178//
179constexpr double newton = joule / meter;
180
181//
182// Pressure [E][L^-3]
183//
184constexpr double Pa = newton / m2;
185constexpr double bar = 100000 * Pa;
186constexpr double atmosphere = 101325 * Pa;
187
188//
189// Electric potential [E][Q^-1]
190//
191constexpr double volt = electronvolt / eplus;
192constexpr double megavolt = 1.e+6 * volt;
193constexpr double kilovolt = 1.e+3 * volt;
194
195//
196// Electric resistance [E][T][Q^-2]
197//
198constexpr double ohm = volt / ampere;
199
200//
201// Electric capacitance [Q^2][E^-1]
202//
203constexpr double farad = coulomb / volt;
204constexpr double millifarad = 1.e-3 * farad;
205constexpr double microfarad = 1.e-6 * farad;
206constexpr double nanofarad = 1.e-9 * farad;
207constexpr double picofarad = 1.e-12 * farad;
208
209//
210// Magnetic Flux [T][E][Q^-1]
211//
212constexpr double weber = volt * second;
213//
214// Magnetic Field [T][E][Q^-1][L^-2]
215//
216constexpr double tesla = volt * second / meter2;
217
218constexpr double gauss = 1.e-4 * tesla;
219constexpr double kilogauss = 1.e-1 * tesla;
220
221//
222// Inductance [T^2][E][Q^-2]
223//
224constexpr double henry = weber / ampere;
225
226//
227// Temperature
228//
229constexpr double kelvin = 1.;
230
231//
232// Amount of substance
233//
234constexpr double mole = 1.;
235
236//
237// Activity [T^-1]
238//
239constexpr double becquerel = 1. / second;
240constexpr double curie = 3.7e+10 * becquerel;
241
242//
243// Absorbed dose [L^2][T^-2]
244//
245constexpr double gray = joule / kilogram;
246
247//
248// Luminous intensity [I]
249//
250constexpr double candela = 1.;
251
252//
253// Luminous flux [I]
254//
255constexpr double lumen = candela * steradian;
256constexpr double jansky = 1.e-26 * watt / (m2 * hertz);
257constexpr double microjansky = 1.e-6 * jansky;
258
259//
260// Illuminance [I][L^-2]
261//
262constexpr double lux = lumen / meter2;
263
264//
265// Miscellaneous
266//
267constexpr double perCent = 0.01;
268constexpr double perThousand = 0.001;
269constexpr double perMillion = 0.000001;
270
271} // namespace Units
272} // namespace Kernel
273} // namespace Elements
274
275#endif // ELEMENTSKERNEL_ELEMENTSKERNEL_SYSTEMOFUNITS_H_
276
A few math constants.
constexpr double kilometer3
constexpr double millimeter
constexpr double megavolt
constexpr double mm
constexpr double watt
constexpr double coulomb
constexpr double millifarad
constexpr double nanofarad
constexpr double electronvolt
constexpr double mm3
constexpr double millibarn
constexpr double meter
constexpr double atmosphere
constexpr double curie
constexpr double mm2
constexpr double mrad
constexpr double femtosecond
constexpr double gigaelectronvolt
constexpr double teraelectronvolt
constexpr double millimeter3
constexpr double jansky
constexpr double cm3
constexpr double picobarn
constexpr double milligram
constexpr double kiloelectronvolt
constexpr double nm
constexpr double pc
constexpr double km3
constexpr double kilogauss
constexpr double kilometer
constexpr double gray
constexpr double cm2
constexpr double m2
constexpr double weber
constexpr double millimeter2
constexpr double centimeter3
constexpr double milliampere
constexpr double milliradian
constexpr double candela
constexpr double parsec
constexpr double megahertz
constexpr double picofarad
constexpr double nanobarn
constexpr double microsecond
constexpr double perThousand
constexpr double m3
constexpr double megaelectronvolt
constexpr double eplus
constexpr double barn
constexpr double steradian
constexpr double newton
constexpr double perMillion
constexpr double second
constexpr double radian
constexpr double microampere
constexpr double gauss
constexpr double angstrom
constexpr double nanoampere
constexpr double joule
constexpr double um
constexpr double micrometer
constexpr double gram
constexpr double centimeter2
constexpr double nanosecond
constexpr double nanometer
constexpr double cm
constexpr double lumen
constexpr double km
constexpr double kelvin
constexpr double mole
constexpr double hertz
constexpr double picosecond
constexpr double kilohertz
constexpr double fermi
constexpr double pi
constexpr double perCent
constexpr double rad
constexpr double km2
constexpr double microjansky
constexpr double kilovolt
constexpr double millisecond
constexpr double degree
constexpr double meter2
constexpr double e_SI
constexpr double microbarn
constexpr double kilometer2
constexpr double becquerel
constexpr double ampere
constexpr double tesla
constexpr double kilogram
constexpr double henry
constexpr double centimeter
constexpr double farad
constexpr double volt
constexpr double meter3
constexpr double microfarad
constexpr double petaelectronvolt