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