more fix on Ec/Ev.
[gss-tcad.git] / src / include / soldata.h
blob2b6e7b0cf3c5f01ad399802988d13f46d2080431
1 #ifndef _soldata_h_
2 #define _soldata_h_
3 #include "petsc.h"
5 //The solution and auxiliary data structure for each zone node
7 //----------------------------------------------------------------
8 class SemiData
10 public:
11 PetscScalar n,p; //density
12 PetscScalar P; //electrostatic potential
13 PetscScalar T; //lattice temperature
14 PetscScalar Tn,Tp; //carrier temperature
15 PetscScalar Eqc,Eqv; //quantum conduction/valence band
16 PetscScalar n_last,p_last; //solution at previous step
17 PetscScalar P_last;
18 PetscScalar T_last;
19 PetscScalar Tn_last,Tp_last;
20 PetscScalar Eqc_last,Eqv_last;
21 public:
22 SemiData()
24 n=n_last=0.0;
25 p=p_last=0.0;
26 P=P_last=0.0;
27 T=T_last=300.0;
28 Tn=Tn_last=300.0;
29 Tn=Tn_last=300.0;
30 Eqc=Eqc_last=0.0;
31 Eqv=Eqv_last=0.0;
36 class SemiAuxData
38 public:
39 PetscScalar density;
40 PetscScalar affinity;
41 PetscScalar Ec,Ev,Eg;
42 PetscScalar phin,phip;
43 PetscScalar phi_intrinsic;
44 PetscScalar Nc,Nv;
45 PetscScalar eps,mu;
46 PetscScalar Na,Nd; //doping profile
47 PetscScalar mole_x,mole_y;
48 PetscScalar Ex,Ey;
49 PetscScalar mun,mup;
50 PetscScalar OpEx,OpEy,OpEz;
51 PetscScalar OpHx,OpHy,OpHz;
52 PetscScalar OptG;//dot not plot this variable
53 PetscScalar RealOptG;//for transient case
54 SemiAuxData()
56 Na=Nd=0;
57 Ex=Ey=0;
58 phi_intrinsic=phin=phip=0;
59 mole_x=mole_y=0;
60 OpEx=OpEy=OpEz=0.0;
61 OpHx=OpHy=OpHz=0.0;
62 OptG=0.0;
63 RealOptG=0.0;
69 //----------------------------------------------------------------
70 class ISData
72 public:
73 PetscScalar P; //potential
74 PetscScalar T; //lattice temperature
75 PetscScalar P_last; //solution at n-1 step
76 PetscScalar T_last;
78 public:
79 ISData()
81 P=P_last=0.0;
82 T=T_last=1.0;
86 class ISAuxData
88 public:
89 PetscScalar density;
90 PetscScalar eps,mu;
91 PetscScalar affinity;
92 PetscScalar Ex,Ey;
93 PetscScalar OpEx,OpEy,OpEz;
94 PetscScalar OpHx,OpHy,OpHz;
95 ISAuxData()
97 Ex=Ey=0;
98 OpEx=OpEy=OpEz=0.0;
99 OpHx=OpHy=OpHz=0.0;
104 //----------------------------------------------------------------
105 class ELData
107 public:
108 PetscScalar P; //potential
109 PetscScalar T; //lattice temperature
110 PetscScalar P_last; //solution at n-1 step
111 PetscScalar T_last; //solution at n-1 step
112 ELData()
114 P=P_last=0;
115 T=T_last=1.0;
119 class ELAuxData
121 public:
122 PetscScalar density;
123 PetscScalar eps,mu;
124 PetscScalar affinity;
125 PetscScalar Ex,Ey;
126 PetscScalar OpEx,OpEy,OpEz;
127 PetscScalar OpHx,OpHy,OpHz;
128 ELAuxData()
130 OpEx=OpEy=OpEz=0.0;
131 OpHx=OpHy=OpHz=0.0;
132 Ex=Ey=0.0;
137 //----------------------------------------------------------------
138 class VacuumData
140 public:
141 PetscScalar P; //potential
142 PetscScalar P_last; //solution at n-1 step
143 VacuumData()
145 P=P_last=0;
149 class VacuumAuxData
151 public:
152 PetscScalar eps,mu;
153 PetscScalar Ex,Ey;
154 PetscScalar OpEx,OpEy,OpEz;
155 PetscScalar OpHx,OpHy,OpHz;
156 VacuumAuxData()
158 Ex=Ey=0;
159 OpEx=OpEy=OpEz=0.0;
160 OpHx=OpHy=OpHz=0.0;
165 //----------------------------------------------------------------
166 class PMLData
168 public:
169 PetscScalar P; //potential
170 PetscScalar P_last; //solution at n-1 step
171 PMLData()
173 P=P_last=0;
177 class PMLAuxData
179 public:
180 PetscScalar eps,mu;
181 PetscScalar Ex,Ey;
182 PetscScalar OpEx,OpEy,OpEz;
183 PetscScalar OpHx,OpHy,OpHz;
184 PMLAuxData()
186 Ex=Ey=0;
187 OpEx=OpEy=OpEz=0.0;
188 OpHx=OpHy=OpHz=0.0;
191 #endif