29 #include "component.h"
37 using namespace device;
40 tunneldiode::tunneldiode () :
circuit (2) {
51 void tunneldiode::calcId (nr_double_t U, nr_double_t& I, nr_double_t&
G) {
63 nr_double_t
e = (eta - U) / de;
72 G =
Q / dv / de / (1.0 +
exp(-e)) * a - b *
Q / dv / dW / (1.0 +
sqr (U/dW));
92 nr_double_t Ipos, Ineg, Gpos, Gneg;
93 gd = Id = A * Ip * Tmax * de * T / eta /
M_PI_2;
94 calcId ( Ud, Ipos, Gpos);
95 calcId (-Ud, Ineg, Gneg);
101 nr_double_t
c = A * Iv /
sinh (Vv / nv);
102 Id += c *
sinh (Ud / nv);
103 gd += c *
cosh (Ud / nv) / nv;
105 nr_double_t Ieq = Id - Ud * gd;
139 nr_double_t
c = 1.0 + fabs(Ud) / Vj;
140 Cd = A * Cj0 /
pow (c, M);
141 Qd = A * Cj0 * Vj / (1.0-
M) * (1.0 -
pow (c, 1.0 - M));
159 matrix tunneldiode::calcMatrixY (nr_double_t frequency) {
181 #define qState 0 // charge state
182 #define cState 1 // current state