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.14.2.1 $
40 //
41 // Revision Date : $Date: 2015/04/02 18:29:36 $
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_CM6SM1, // cm**6/s
108  U_DEGREE, // degree
109  U_DEGC, // degree C
110  U_DEGK, // degree C
111  U_DEGCM1, // 1/degree C
112  U_DEGCM2, // 1/(degree C)**2
113  U_EV, // eV
114  U_EVDEGKM1, // eV/(degree K)
115  U_FARAD, // F
116  U_FARADM, // F*m
117  U_FARADMM1, // F/m
118  U_FARADMM2, // F/m**2
119  U_FHGMHSMVM1, // (F/g)**(1/2)s/mV
120  U_FHGMHSMMVM1, // (F/g)**(1/2)sm/mV
121  U_FHGMHSM2MVM1, // (F/g)**(1/2)sm**2/mV
122  U_FS2HGMHMM1, // (Fs**2/g)**(1/2)/m
123  U_FS2HGMHMM1VM1, // (Fs**2/g)**(1/2)/(Vm)
124  U_FVM1MM2, // F/(V*m**2)
125  U_FVM1MM1, // F/(V*m)
126  U_FVM1, // F/V
127  U_HENRY, // Henry
128  U_HMM1, // Henry/m
129  U_HOUR, // Hour
130  U_HZ, // Hertz
131  U_JKM1, // J/K
132  U_KKGM1JM1, // K/(Kg*J)
133  U_JMM3KM1, // K/(Kg*J)
134  U_KM1, // 1/K
135  U_KGMM3, // Kg/m**3
136  U_LOGIC, // True/False
137  U_MCMM2VM1SM1, // m/(cm**2*V*s)
138  U_M2CMM2VM1SM1, // m**2/(cm**2*V*s)
139  U_THERMAL, // unknown thermal
140  U_METER, // m
141  U_METERM1, // m**-1
142  U_METERM2, // m**-2
143  U_METERM3, // m**-3
144  U_METER2, // m**2
145  U_METER3, // m**3
146  U_MEXPLL, // m**(LLN)
147  U_MEXPLW, // m**(LWN)
148  U_MEXPLLLW, // m**(LLN+LWN)
149  U_MEXPWL, // m**(WLN)
150  U_MEXPWW, // m**(WWN)
151  U_MEXPWLWW, // m**(WLN+WWN)
152  U_MHVMH, // m**(1/2)/V**(1/2)
153  U_MOM1, // m/ohm
154  U_MSM1, // m/s
155  U_MM3SM1, // 1/m**3/s
156  U_MVMH, // m/V**(1/2)
157  U_M2VMH, // m**2/V**(1/2)
158  U_M3VMH, // m**2/V**(1/2)
159  U_MVM1, // m/V
160  U_M2VM1, // m**2/V
161  U_M2VM1SM1, // m**2/(V*sec)
162  U_M3VM1, // m**3/V
163  U_MVM2, // m/V**2
164  U_MVM2DEGCM1, // m/(V**2*degree C)
165  U_M2OM1, // m**2/ohm
166  U_M2VM2DEGCM1, // m**2/(V**2*degree C)
167  U_M3VM2DEGCM1, // m**3/(V**2*degree C)
168  U_M2SM1, // m**2/s
169  U_M3SM1, // m**3/s
170  U_M2VM2, // m**2/V**2
171  U_M3VM2, // m**3/V**2
172  U_M4VM2, // m**4/V**2
173  U_MOLAR, // mol/L
174  U_OHM, // Ohm
175  U_OHMM2, // Ohm*m**2
176  U_OHMMICRON, // Ohm*micron
177  U_OHMMICRONM, // Ohm*micron*m
178  U_OHMMICRONM2, // Ohm*micron*m**2
179  U_OHMM, // Ohm*m
180  U_OHMMM1, // Ohm/m
181  U_OHMMM1SM1, // Ohm/m/s
182  U_OHMMM2SM1, // Ohm/m**2/s
183  U_OHMMM3SM1, // Ohm/m**3/s
184  U_OHMM1, // 1/Ohm
185  U_OHMM1MM1, // 1/(Ohm*m)
186  U_OHMM1MM2, // 1/(Ohm*m**2)
187  U_OHMPV, // Ohm/volt
188  U_OSQM1, // Ohm/square
189  U_PERUNIT, // per unit (used in power grid simulations)
190  U_RAD, // rads
191  U_RADPS, // rads/sec
192  U_SECOND, // s
193  U_SECM1, // 1/s
194  U_SQUARES, // # of squares
195  U_VKM1, // V/K
196  U_VHM, // V**(1/2)*m
197  U_VHM2, // V**(1/2)*m**2
198  U_VHM3, // V**(1/2)*m**3
199  U_VM, // V*m
200  U_VM2, // V*m**2
201  U_VM3, // V*m**3
202  U_VMM1, // V/m
203  U_VMMH, // V/m**(1/2)
204  U_VOLT, // V
205  U_VOLT3, // V**3
206  U_VOLTH, // V**(1/2)
207  U_VOLTMH, // V**(-1/2)
208  U_VOLTM1, // 1/V
209  U_VOLTM2 // 1/V**2
210  };
211 
213  {
217 
218  // Start categories
219 
249 
255 
258 
259  CAT_MAX, // End of Categories
260 
261  CAT_MASK = 0xFF, // Mask for extracting category from flags
262 
263  // Start Flags
264 
265  UNDOCUMENTED = 0x100,
266  DEPRECATED = 0x200,
267  POSITIONAL = 0x400,
269  };
270 
271 
272 struct UnitInfo
273 {
276  const char * description;
277  const char * doc;
278 };
279 
280 
282 {
283  const char * Name;
286  const char * Description;
287 };
288 
289 extern UnitInfo unitTable[];
291 extern size_t unitTableSize;
292 extern size_t descriptionTableSize;
293 
294 } // namespace Units
295 } // namespace Device
296 } // namespace Xyce
297 
298 namespace N_DEV_Units = Xyce::Device;
299 
300 using namespace Xyce::Device::Units;
301 
302 #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:189
Circuit Device Definitions.
size_t descriptionTableSize
Definition: N_DEV_Units.C:257