Xyce  6.1
N_DEV_Units.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 // Copyright Notice
3 //
4 // Copyright 2002 Sandia Corporation. Under the terms
5 // of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S.
6 // Government retains certain rights in this software.
7 //
8 // Xyce(TM) Parallel Electrical Simulator
9 // Copyright (C) 2002-2015 Sandia Corporation
10 //
11 // This program is free software: you can redistribute it and/or modify
12 // it under the terms of the GNU General Public License as published by
13 // the Free Software Foundation, either version 3 of the License, or
14 // (at your option) any later version.
15 //
16 // This program is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU General Public License for more details.
20 //
21 // You should have received a copy of the GNU General Public License
22 // along with this program. If not, see <http://www.gnu.org/licenses/>.
23 //-----------------------------------------------------------------------------
24 
25 //-------------------------------------------------------------------------
26 // Filename : $RCSfile: N_DEV_Units.h,v $
27 //
28 // Purpose : Defines units and catagory definitions for documentation purposes
29 //
30 // Special Notes :
31 //
32 // Creator : David G. Baur Raytheon Sandia National Laboratories 1355
33 //
34 // Creation Date : 2013/04/18 18:01:27
35 //
36 // Revision Information:
37 // ---------------------
38 //
39 // Revision Number: $Revision: 1.16 $
40 //
41 // Revision Date : $Date: 2015/10/24 03:57:55 $
42 //
43 // Current Owner : $Author: tvrusso $
44 //-------------------------------------------------------------------------
45 
46 #ifndef Xyce_N_DEV_Units_h
47 #define Xyce_N_DEV_Units_h
48 
49 namespace Xyce {
50 namespace Device {
51 namespace Units {
52 
54  {
55  LEVEL_1 = 1,
63  LEVEL_9 = 9,
87  STANDARD, // Unit and description are taken from standard list
88  U_NONE, // Actual unit specifications start here
89  U_UNKNOWN, // unknown
90  U_AMP, // A
91  U_AMPCMM1, // A/cm
92  U_AMPCMM2, // A/cm**2
93  U_AMPMM1, // A/m
94  U_AMPMM2, // A/m**2
95  U_AMPVM2, // A/V**2
96  U_AMPVM3, // A/V**3
97  U_COULOMB, // C
98  U_CM, // cm
99  U_CM2, // cm**2
100  U_CM2VM1SM1, // cm**2/(Vs)
101  U_CMM2, // 1/cm**2
102  U_CMM2VM1SM1, // 1/(cm**2*V*s)
103  U_CMM3, // 1/cm**3
104  U_CMSM1, // cm/s
105  U_MCMM3, // m/cm**3
106  U_M2CMM3, // m**2/cm**3
107  U_CM3SM1, // cm**3/s
108  U_CM6SM1, // cm**6/s
109  U_DEGREE, // degree
110  U_DEGC, // degree C
111  U_DEGK, // degree C
112  U_DEGCM1, // 1/degree C
113  U_DEGCM2, // 1/(degree C)**2
114  U_EV, // eV
115  U_EVDEGKM1, // eV/(degree K)
116  U_FARAD, // F
117  U_FARADM, // F*m
118  U_FARADMM1, // F/m
119  U_FARADMM2, // F/m**2
120  U_FHGMHSMVM1, // (F/g)**(1/2)s/mV
121  U_FHGMHSMMVM1, // (F/g)**(1/2)sm/mV
122  U_FHGMHSM2MVM1, // (F/g)**(1/2)sm**2/mV
123  U_FS2HGMHMM1, // (Fs**2/g)**(1/2)/m
124  U_FS2HGMHMM1VM1, // (Fs**2/g)**(1/2)/(Vm)
125  U_FVM1MM2, // F/(V*m**2)
126  U_FVM1MM1, // F/(V*m)
127  U_FVM1, // F/V
128  U_HENRY, // Henry
129  U_HMM1, // Henry/m
130  U_HOUR, // Hour
131  U_HZ, // Hertz
132  U_JKM1, // J/K
133  U_KKGM1JM1, // K/(Kg*J)
134  U_JMM3KM1, // K/(Kg*J)
135  U_KM1, // 1/K
136  U_KGMM3, // Kg/m**3
137  U_LOGIC, // True/False
138  U_MCMM2VM1SM1, // m/(cm**2*V*s)
139  U_M2CMM2VM1SM1, // m**2/(cm**2*V*s)
140  U_THERMAL, // unknown thermal
141  U_METER, // m
142  U_METERM1, // m**-1
143  U_METERM2, // m**-2
144  U_METERM3, // m**-3
145  U_METER2, // m**2
146  U_METER3, // m**3
147  U_MEXPLL, // m**(LLN)
148  U_MEXPLW, // m**(LWN)
149  U_MEXPLLLW, // m**(LLN+LWN)
150  U_MEXPWL, // m**(WLN)
151  U_MEXPWW, // m**(WWN)
152  U_MEXPWLWW, // m**(WLN+WWN)
153  U_MHVMH, // m**(1/2)/V**(1/2)
154  U_MOM1, // m/ohm
155  U_MSM1, // m/s
156  U_MM3SM1, // 1/m**3/s
157  U_MVMH, // m/V**(1/2)
158  U_M2VMH, // m**2/V**(1/2)
159  U_M3VMH, // m**2/V**(1/2)
160  U_MVM1, // m/V
161  U_M2VM1, // m**2/V
162  U_M2VM1SM1, // m**2/(V*sec)
163  U_M3VM1, // m**3/V
164  U_MVM2, // m/V**2
165  U_MVM2DEGCM1, // m/(V**2*degree C)
166  U_M2OM1, // m**2/ohm
167  U_M2VM2DEGCM1, // m**2/(V**2*degree C)
168  U_M3VM2DEGCM1, // m**3/(V**2*degree C)
169  U_M2SM1, // m**2/s
170  U_M3SM1, // m**3/s
171  U_M2VM2, // m**2/V**2
172  U_M3VM2, // m**3/V**2
173  U_M4VM2, // m**4/V**2
174  U_MOLAR, // mol/L
175  U_OHM, // Ohm
176  U_OHMM2, // Ohm*m**2
177  U_OHMMICRON, // Ohm*micron
178  U_OHMMICRONM, // Ohm*micron*m
179  U_OHMMICRONM2, // Ohm*micron*m**2
180  U_OHMM, // Ohm*m
181  U_OHMMM1, // Ohm/m
182  U_OHMMM1SM1, // Ohm/m/s
183  U_OHMMM2SM1, // Ohm/m**2/s
184  U_OHMMM3SM1, // Ohm/m**3/s
185  U_OHMM1, // 1/Ohm
186  U_OHMM1MM1, // 1/(Ohm*m)
187  U_OHMM1MM2, // 1/(Ohm*m**2)
188  U_OHMPV, // Ohm/volt
189  U_OSQM1, // Ohm/square
190  U_PERUNIT, // per unit (used in power grid simulations)
191  U_RAD, // rads
192  U_RADPS, // rads/sec
193  U_SECOND, // s
194  U_SECM1, // 1/s
195  U_SQUARES, // # of squares
196  U_VKM1, // V/K
197  U_VHM, // V**(1/2)*m
198  U_VHM2, // V**(1/2)*m**2
199  U_VHM3, // V**(1/2)*m**3
200  U_VM, // V*m
201  U_VM2, // V*m**2
202  U_VM3, // V*m**3
203  U_VMM1, // V/m
204  U_VMMH, // V/m**(1/2)
205  U_VOLT, // V
206  U_VOLT3, // V**3
207  U_VOLTH, // V**(1/2)
208  U_VOLTMH, // V**(-1/2)
209  U_VOLTM1, // 1/V
210  U_VOLTM2 // 1/V**2
211  };
212 
214  {
218 
219  // Start categories
220 
250 
256 
259 
260  CAT_MAX, // End of Categories
261 
262  CAT_MASK = 0xFF, // Mask for extracting category from flags
263 
264  // Start Flags
265 
266  UNDOCUMENTED = 0x100,
267  DEPRECATED = 0x200,
268  POSITIONAL = 0x400,
270  };
271 
272 
273 struct UnitInfo
274 {
277  const char * description;
278  const char * doc;
279 };
280 
281 
283 {
284  const char * Name;
287  const char * Description;
288 };
289 
290 extern UnitInfo unitTable[];
292 extern size_t unitTableSize;
293 extern size_t descriptionTableSize;
294 
295 } // namespace Units
296 } // namespace Device
297 } // namespace Xyce
298 
299 namespace N_DEV_Units = Xyce::Device;
300 
301 using namespace Xyce::Device::Units;
302 
303 #endif // Xyce_N_DEV_Units_h
Pure virtual class to augment a linear system.
UnitInfo unitTable[]
Definition: N_DEV_Units.C:55
StdDescription descriptionTable[]
Definition: N_DEV_Units.C:190
Circuit Device Definitions.
size_t descriptionTableSize
Definition: N_DEV_Units.C:258