1 |
PROVIDE "measures.a4l"; |
2 |
|
3 |
(* |
4 |
* measures.a4l |
5 |
* by Tom Epperly and Ben Allan |
6 |
* Part of the ASCEND Library |
7 |
* $Date: 1998/08/17 13:07:04 $ |
8 |
* $Revision: 1.5 $ |
9 |
* $Author: ballan $ |
10 |
* $Source: /afs/cs.cmu.edu/project/ascend/Repository/models/measures.a4l,v $ |
11 |
* |
12 |
* This file is part of the ASCEND Modeling Library. |
13 |
* |
14 |
* This provides common unit definitions. The user may write additional |
15 |
* files of unit definitions particular to their problem or site. |
16 |
* |
17 |
* Copyright (C) 1997 Carnegie Mellon University. |
18 |
* |
19 |
* The ASCEND Modeling Library is free software; you can redistribute |
20 |
* it and/or modify it under the terms of the GNU General Public |
21 |
* License as published by the Free Software Foundation; either |
22 |
* version 2 of the License, or (at your option) any later version. |
23 |
* |
24 |
* The ASCEND Modeling Library is distributed in hope that it will be |
25 |
* useful, but WITHOUT ANY WARRANTY; without even the implied |
26 |
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
27 |
* See the GNU General Public License for more details. |
28 |
* |
29 |
* You should have received a copy of the GNU General Public License |
30 |
* along with the program; if not, write to the Free Software |
31 |
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139 USA. Check |
32 |
* the file named COPYING. |
33 |
*) |
34 |
|
35 |
(* |
36 |
* Units input file |
37 |
* by Tom Epperly |
38 |
* Copyright(C) 1990 Thomas Guthrie Epperly |
39 |
* Copyright(C) 1994-1997 Carnegie Mellon University |
40 |
* |
41 |
* This is a file defining the conversion factors ASCEND will recognize when |
42 |
* it sees them as {units). Note that the assignment x:= 0.5 {100};; yields |
43 |
* x == 50, and that there are no 'offset conversions,' e.g. F=9/5C+32; |
44 |
* Added money which isn't really time 3-94 BAA |
45 |
* Expanded, including some of Karl's units, constants. 4-94 BAA |
46 |
* Updated with supplementary SI dimensions and less ambiguous mole dim. jz/baa |
47 |
* |
48 |
* Please keep unit names to 20 characters or less as this makes life pretty. |
49 |
* This is not a hard limit however. |
50 |
* |
51 |
* The root system units in SI MKS system are set in the C code to: |
52 |
* unitname DIMENSION |
53 |
* define kilogram M; internal mass unit SI |
54 |
* define mole Q; internal quantity unit SI |
55 |
* define second T; internal time unit SI |
56 |
* define meter L; internal length unit SI |
57 |
* define Kelvin TMP; internal temperature unit SI |
58 |
* define currency C; internal currency unit |
59 |
* define ampere E; internal electric current unit SI suggested |
60 |
* define candela LUM; internal luminous intensity unit SI |
61 |
* define radian P; internal plane angle unit SI suggested |
62 |
* define steradian S; internal solid angle unit SI suggested |
63 |
*) |
64 |
|
65 |
UNITS |
66 |
|
67 |
(* distance *) |
68 |
|
69 |
pc = {3.08374e+16*meter}; |
70 |
parsec = {pc}; |
71 |
kpc = {1000*pc}; |
72 |
Mpc = {1e6*pc}; |
73 |
km = {meter*1000}; |
74 |
m = {meter}; |
75 |
dm = {meter/10}; |
76 |
cm = {meter/100}; |
77 |
mm = {meter/1000}; |
78 |
um = {meter/1000000}; |
79 |
nm = {1.e-9*meter}; |
80 |
kilometer = {km}; |
81 |
centimeter = {cm}; |
82 |
millimeter = {mm}; |
83 |
micron = {um}; |
84 |
nanometer = {nm}; |
85 |
angstrom = {m/1e10}; |
86 |
fermi = {m/1e15}; |
87 |
|
88 |
mi = {1609.344*meter}; |
89 |
yd = {0.914412*meter}; |
90 |
ft = {0.304804*meter}; |
91 |
inch = {0.0254*meter}; |
92 |
mile = {mi}; |
93 |
yard = {yd}; |
94 |
feet = {ft}; |
95 |
foot = {ft}; |
96 |
in = {inch}; |
97 |
|
98 |
(* mass *) |
99 |
|
100 |
metton = {kilogram *1000}; |
101 |
mton = {kilogram *1000}; |
102 |
kg = {kilogram}; |
103 |
g = {kilogram/1000}; |
104 |
gram = {g}; |
105 |
mg = {g/1000}; |
106 |
milligram = {mg}; |
107 |
ug= {kilogram*1e-9}; |
108 |
microgram= {ug}; |
109 |
ng= {kilogram*1e-12}; |
110 |
nanogram= {ng}; |
111 |
pg= {kilogram*1e-15}; |
112 |
picogram= {pg}; |
113 |
|
114 |
amu = {1.661e-27*kilogram}; |
115 |
lbm = {4.535924e-1*kilogram}; |
116 |
ton = {lbm*2000}; |
117 |
oz = {0.028349525*kilogram}; |
118 |
slug = {14.5939*kilogram}; |
119 |
|
120 |
(* time *) |
121 |
|
122 |
yr = {31557600*second}; |
123 |
wk = {604800*second}; |
124 |
dy = {86400*second}; |
125 |
hr = {3600*second}; |
126 |
min = {60*second}; |
127 |
sec = {second}; |
128 |
s = {second}; |
129 |
ms = {second/1000}; |
130 |
us = {second/1e6}; |
131 |
ns = {second/1e9}; |
132 |
ps = {second/1e12}; |
133 |
year = {yr}; |
134 |
week = {wk}; |
135 |
day = {dy}; |
136 |
hour = {hr}; |
137 |
minute = {min}; |
138 |
millisecond = {ms}; |
139 |
microsecond = {us}; |
140 |
nanosecond = {ns}; |
141 |
picosecond = {ps}; |
142 |
|
143 |
(* molecular quantities *) |
144 |
|
145 |
kg_mole= {1000*mole}; |
146 |
g_mole = {mole}; |
147 |
gm_mole = {mole}; |
148 |
kmol = {1000*mole}; |
149 |
mol = {mole}; |
150 |
mmol = {mole/1000}; |
151 |
millimole= {mmol}; |
152 |
umol = {mole/1e6}; |
153 |
micromole= {umol}; |
154 |
lb_mole = {4.535924e+2*mole}; |
155 |
|
156 |
(* temperature *) |
157 |
|
158 |
K = {Kelvin}; |
159 |
R = {5*Kelvin/9}; |
160 |
Rankine = {R}; |
161 |
|
162 |
(* money *) |
163 |
|
164 |
(* PLEASE USE ISO 4127 CURRENCY CODES FOR ALL MONEY UNITS *) |
165 |
USD = {currency}; |
166 |
CR = {currency}; |
167 |
credits= {currency}; |
168 |
|
169 |
(* reciprocal time (frequency) *) |
170 |
|
171 |
rev = {1.0}; |
172 |
cycle = {rev}; |
173 |
rpm = {rev/minute}; |
174 |
rps = {rev/second}; |
175 |
hertz = {cycle/second}; |
176 |
Hz = {hertz}; |
177 |
|
178 |
(* area *) |
179 |
|
180 |
ha = {meter^2*10000}; |
181 |
hectare= {ha}; |
182 |
acre= {meter^2*4046.856}; |
183 |
|
184 |
(* volume *) |
185 |
|
186 |
L = {meter^3/1000}; |
187 |
litre = {L}; |
188 |
liter = {L}; |
189 |
mL = {L/1000}; |
190 |
ml = {L/1000}; |
191 |
ul = {L/1e6}; |
192 |
uL = {L/1e6}; |
193 |
milliliter = {ml}; |
194 |
millilitre = {mL}; |
195 |
microliter = {ul}; |
196 |
microlitre = {uL}; |
197 |
|
198 |
hogshead= {2.384809e-1*meter^3}; |
199 |
cuft = {0.02831698*meter^3}; |
200 |
impgal = {4.52837e-3*meter^3}; |
201 |
gal = {3.785412e-3*meter^3}; |
202 |
barrel = {42.0*gal}; |
203 |
gallon = {gal}; |
204 |
quart = {gal/4}; |
205 |
pint = {gal/8}; |
206 |
cup = {gal/16}; |
207 |
floz = {gal/128}; |
208 |
|
209 |
(* force *) |
210 |
|
211 |
N = {kilogram*meter/second^2}; |
212 |
newton = {N}; |
213 |
dyne = {N*1.0e-5}; |
214 |
EN = {1e18*N}; |
215 |
PN = {1e15*N}; |
216 |
TN = {1e12*N}; |
217 |
GN = {1e9*N}; |
218 |
MN = {1e6*N}; |
219 |
kN = {1000*N}; |
220 |
mN= {N*1e-3}; |
221 |
uN= {N*1e-6}; |
222 |
nN= {N*1e-9}; |
223 |
pN= {N*1e-12}; |
224 |
fN= {N*1e-15}; |
225 |
aN= {N*1e-18}; |
226 |
milliNewton= {mN}; |
227 |
microNewton= {uN}; |
228 |
nanoNewton= {nN}; |
229 |
picoNewton= {pN}; |
230 |
femtoNewton= {fN}; |
231 |
attoNewton= {aN}; |
232 |
|
233 |
lbf = {N*4.448221}; |
234 |
|
235 |
(* pressure *) |
236 |
|
237 |
Pa = {kilogram/meter/second^2}; |
238 |
MPa = {1.0e+6*Pa}; |
239 |
bar = {1.0e+5*Pa}; |
240 |
kPa = {1000*Pa}; |
241 |
pascal = {Pa}; |
242 |
|
243 |
atm = {Pa*101325.0}; |
244 |
mmHg = {133.322*Pa}; |
245 |
torr = {133.322*Pa}; |
246 |
psia = {6894.733*Pa}; |
247 |
psi = {psia}; |
248 |
ftH2O = {2989*Pa}; |
249 |
|
250 |
(* energy *) |
251 |
|
252 |
J = {kilogram*meter^2/second^2}; |
253 |
joule = {J}; |
254 |
MJ = {J * 1000000}; |
255 |
kJ = {J * 1000}; |
256 |
mJ= {J*1.0e-3}; |
257 |
uJ= {J*1.0e-6}; |
258 |
nJ= {J*1.0e-9}; |
259 |
milliJoule= {mJ}; |
260 |
microJoule= {uJ}; |
261 |
nanoJoule= {nJ}; |
262 |
erg = {J*1.0e-7}; |
263 |
|
264 |
BTU = {1055.056*J}; |
265 |
pCu = {BTU * 1.8}; |
266 |
cal = {J*4.18393}; |
267 |
calorie = {cal}; |
268 |
kcal= {1000*calorie}; |
269 |
Cal= {1000*calorie}; |
270 |
|
271 |
(* power *) |
272 |
|
273 |
W = {J/second}; |
274 |
EW = {1.0e+18*W}; |
275 |
PW = {1.0e+15*W}; |
276 |
TW = {1.0e+12*W}; |
277 |
GW = {1.0e+9*W}; |
278 |
MW = {1.0e+6*W}; |
279 |
kW = {1000*W}; |
280 |
mW = {W/1e3}; |
281 |
uW = {W/1e6}; |
282 |
nW = {W/1e9}; |
283 |
pW = {W/1e12}; |
284 |
fW = {W/1e15}; |
285 |
aW = {W/1e18}; |
286 |
terawatt = {TW}; |
287 |
gigawatt = {GW}; |
288 |
megawatt = {MW}; |
289 |
kilowatt = {kW}; |
290 |
watt = {W}; |
291 |
milliwatt = {mW}; |
292 |
microwatt = {uW}; |
293 |
nanowatt = {nW}; |
294 |
picowatt = {pW}; |
295 |
femtowatt = {fW}; |
296 |
attowatt = {aW}; |
297 |
aWW= {1*EW}; (* we could say art has a lot of power *) |
298 |
|
299 |
hp= {7.456998e+2*W}; |
300 |
|
301 |
(* absolute viscosity *) |
302 |
|
303 |
poise = {Pa*s/10}; |
304 |
cP = {poise/100}; |
305 |
|
306 |
(* electric charge *) |
307 |
|
308 |
coulomb= {ampere*second}; |
309 |
C = {coulomb}; |
310 |
coul = {coulomb}; |
311 |
mC = {0.001*C}; |
312 |
uC = {1e-6*C}; |
313 |
nC = {1e-9*C}; |
314 |
pC = {1e-12*C}; |
315 |
|
316 |
(* misc electro-magnetic fun *) |
317 |
|
318 |
V = {kilogram*meter^2/second^3/ampere}; |
319 |
F = {ampere^2*second^4/kilogram/meter^2}; |
320 |
ohm = {kilogram*meter^2/second^3/ampere^2}; |
321 |
mho = {ampere^2*second^3/kilogram/meter^2}; |
322 |
S = {mho}; |
323 |
siemens = {S}; |
324 |
A= {ampere}; |
325 |
amp = {ampere}; |
326 |
volt = {V}; |
327 |
farad= {F}; |
328 |
mA= {A/1000}; |
329 |
uA= {A/1000000}; |
330 |
kV= {1000*V}; |
331 |
MV= {1e6*V}; |
332 |
mV= {V/1000}; |
333 |
mF = {0.001*F}; |
334 |
uF = {1e-6*F}; |
335 |
nF = {1e-9*F}; |
336 |
pF = {1e-12*F}; |
337 |
kohm = {1000*ohm}; |
338 |
Mohm = {1e6*ohm}; |
339 |
kS = {1000*S}; |
340 |
mS = {0.001*S}; |
341 |
uS = {1e-6*S}; |
342 |
Wb = {V*second}; |
343 |
weber = {Wb}; |
344 |
tesla = {Wb/m^2}; |
345 |
gauss = {1e-4*tesla}; |
346 |
H = {Wb/A}; |
347 |
henry = {H}; |
348 |
mH = {0.001*H}; |
349 |
uH = {1e-6*H}; |
350 |
|
351 |
(* |
352 |
* numeric constants of some interest |
353 |
* to set a variable or constant to these, the code is (in the declarations) |
354 |
* ATOM constant REFINES real; END constant; |
355 |
* MODEL gizmo; |
356 |
* x IS_A constant; |
357 |
* x := 1 {PI}; |
358 |
* ... |
359 |
*) |
360 |
molecule = {1.0}; |
361 |
PI= {3.1415926535897932385}; (* Circumference/Diameter ratio *) |
362 |
EULER_C = {0.57721566490153286}; (* euler gamma *) |
363 |
GOLDEN_C = {1.618033988749894}; (* golden ratio *) |
364 |
HBAR = {1.055e-34*J*second}; (* Reduced planck's constant *) |
365 |
PLANCK_C = {2*PI*HBAR}; (* Planck's constant *) |
366 |
LIGHT_C = {2.99793e8 * meter/second}; (* Speed of light in vacuum *) |
367 |
MU0 = {4e-7*PI*kg*m/C/C}; (* Permeability of free space *) |
368 |
EPSILON0 = {1/LIGHT_C/LIGHT_C/MU0}; (* Permittivity of free space *) |
369 |
BOLTZMAN_C = {1.3805e-23 * J/K}; (* Boltzman's constant *) |
370 |
AVOGADRO_C = {6.022045e23 *molecule/mole}; (* Avogadro's number of molecules *) |
371 |
GRAVITY_C = {6.673e-11 * N*m*m/kg/kg}; (* Newtons gravitational constant *) |
372 |
GAS_C = {BOLTZMAN_C*AVOGADRO_C}; (* Gas constant *) |
373 |
INFINITY= {1.0e38}; (* damn big number *) |
374 |
LIM_EXP= {709.78}; (* ln ( maxdouble ) *) |
375 |
LIM_CUBE= {5.6438030941223618e101}; (* cbrt ( maxdouble ) *) |
376 |
LIM_SQR= {1.0e154}; (* sqrt(maxdouble) *) |
377 |
(* swiped from C math.h *) |
378 |
M_E= {2.7182818284590452354E0}; (* base e *) |
379 |
M_LOG2E= {1.4426950408889634074E0}; (* log2(e) *) |
380 |
M_LOG10E= {4.3429448190325182765E-1}; (* log10(e) *) |
381 |
M_LN2= {6.9314718055994530942E-1}; (* ln(2) *) |
382 |
M_LN10= {2.3025850929940456840E0}; (* ln(10) *) |
383 |
M_PI= {3.1415926535897932385E0}; (* as PI, but for consistency *) |
384 |
M_PI_2= {1.5707963267948966192E0}; (* PI/2 *) |
385 |
M_PI_4= {7.8539816339744830962E-1}; (* PI/4 *) |
386 |
M_1_PI= {3.1830988618379067154E-1}; (* 1/PI *) |
387 |
M_2_PI= {6.3661977236758134308E-1}; (* 2/PI *) |
388 |
M_2_SQRTPI= {1.1283791670955125739E0}; (* 2/sqrt(PI) *) |
389 |
M_SQRT2= {1.4142135623730950488E0}; (* sqrt(2) *) |
390 |
M_SQRT1_2= {7.0710678118654752440E-1}; (* 1/sqrt(2) *) |
391 |
|
392 |
eCHARGE = {1.602e-19*C}; (* Charge of an electron *) |
393 |
EARTH_G = {9.80665 * m/s/s}; (* Earth's gravitational field, somewhere *) |
394 |
eMASS = {9.1095e-31*kilogram}; (* Electron rest mass, I suppose *) |
395 |
pMASS = {1.67265e-27*kilogram}; (* Proton mass *) |
396 |
|
397 |
(* constant based conversions *) |
398 |
|
399 |
eV = {eCHARGE * V}; |
400 |
keV = {1000*eV}; |
401 |
MeV = {1e6*eV}; |
402 |
GeV = {1e9*eV}; |
403 |
TeV = {1e12*eV}; |
404 |
PeV = {1e15*eV}; |
405 |
EeV = {1e18*eV}; |
406 |
|
407 |
lyr = {LIGHT_C * yr}; (* Light-year *) |
408 |
|
409 |
oersted = {gauss/MU0}; |
410 |
|
411 |
(* subtly dimensionless measures *) |
412 |
|
413 |
rad = {radian}; |
414 |
srad = {steradian}; |
415 |
deg = {radian*1.74532925199433e-2}; |
416 |
degrees = {deg}; |
417 |
grad = {0.9*deg}; |
418 |
arcmin = {degrees/60.0}; |
419 |
arcsec = {arcmin/60.0}; |
420 |
|
421 |
(* light quantities *) |
422 |
|
423 |
cd = {candela}; |
424 |
lm = {candela*steradian}; |
425 |
lumen = {lm}; |
426 |
lx = {lm/meter^2}; |
427 |
lux= {lx}; |
428 |
|
429 |
(* misc rates *) |
430 |
|
431 |
gpm = {gallon/minute}; |
432 |
|
433 |
(* time variant conversions *) |
434 |
|
435 |
MINIMUMWAGE = {5.15*USD/hr}; (* Dec 2005, see http://www.dol.gov/ *) |
436 |
(* |
437 |
* conversions we'd like to see , but probably won't |
438 |
* milliHelen = {beauty/ship}; |
439 |
* Helen = {documentation/project}; |
440 |
*) |
441 |
END UNITS; |