void strafo::initDC (void) { setVoltageSources (3); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_6); voltageSource (VSRC_2, NODE_5, NODE_4); voltageSource (VSRC_3, NODE_2, NODE_3); }
void hybrid::initDC (void) { setVoltageSources (2); setInternalVoltageSource (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_3); voltageSource (VSRC_2, NODE_2, NODE_4); }
void mscross::initDC (void) { initModel (); setVoltageSources (5); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_5); voltageSource (VSRC_2, NODE_3, NODE_5); voltageSource (VSRC_3, NODE_2, NODE_6); voltageSource (VSRC_4, NODE_4, NODE_6); voltageSource (VSRC_5, NODE_5, NODE_6); }
void ctline::initAC (void) { nr_double_t l = getPropertyDouble ("L"); if (l != 0.0) { setVoltageSources (0); allocMatrixMNA (); } else { setVoltageSources (2); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); voltageSource (VSRC_2, NODE_3, NODE_4); } }
void twistedpair::initAC (void) { calcLength (); if (len != 0.0) { setVoltageSources (0); allocMatrixMNA (); } else { setVoltageSources (2); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); voltageSource (VSRC_2, NODE_3, NODE_4); } }
void biastee::initAC (void) { setISource (false); setVoltageSources (1); allocMatrixMNA (); clearB (); clearC (); voltageSource (VSRC_1, NODE_2, NODE_1); }
void msmbend::initDC (void) { // a DC short (voltage source V = 0 volts) setVoltageSources (1); setInternalVoltageSource (1); allocMatrixMNA (); clearY (); voltageSource (VSRC_1, NODE_1, NODE_2); }
void pac::initHB (void) { setVoltageSources (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); nr_double_t g = 1.0 / getPropertyDouble ("Z"); setY (NODE_1, NODE_1, +g); setY (NODE_2, NODE_2, +g); setY (NODE_1, NODE_2, -g); setY (NODE_2, NODE_1, -g); }
// Initialize computation of MNA matrix entries for HB. void resistor::initHB (void) { initModel (); nr_double_t r = getScaledProperty ("R"); setVoltageSources (1); setInternalVoltageSource (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); setD (VSRC_1, VSRC_1, -r); }
void tline4p::initTR (void) { nr_double_t l = getPropertyDouble ("L"); nr_double_t z = getPropertyDouble ("Z"); deleteHistory (); if (l > 0.0) { setVoltageSources (2); allocMatrixMNA (); setHistory (true); initHistory (l / C0); setB (NODE_1, VSRC_1, +1); setB (NODE_2, VSRC_2, +1); setB (NODE_4, VSRC_1, -1); setB (NODE_3, VSRC_2, -1); setC (VSRC_1, NODE_1, +1); setC (VSRC_2, NODE_2, +1); setC (VSRC_1, NODE_4, -1); setC (VSRC_2, NODE_3, -1); setD (VSRC_1, VSRC_1, -z); setD (VSRC_2, VSRC_2, -z); } else { setVoltageSources (2); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); voltageSource (VSRC_2, NODE_3, NODE_4); } }
void twistedpair::initDC (void) { nr_double_t d = getPropertyDouble ("d"); nr_double_t rho = getPropertyDouble ("rho"); calcLength (); if (d != 0.0 && rho != 0.0 && len != 0.0) { // tiny resistances nr_double_t g1 = M_PI * sqr (d / 2) / rho / len; nr_double_t g2 = g1; setVoltageSources (0); allocMatrixMNA (); setY (NODE_1, NODE_1, +g1); setY (NODE_2, NODE_2, +g1); setY (NODE_1, NODE_2, -g1); setY (NODE_2, NODE_1, -g1); setY (NODE_3, NODE_3, +g2); setY (NODE_4, NODE_4, +g2); setY (NODE_3, NODE_4, -g2); setY (NODE_4, NODE_3, -g2); } else { // DC shorts setVoltageSources (2); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); voltageSource (VSRC_2, NODE_3, NODE_4); } }
void msvia::initDC (void) { nr_double_t r = calcResistance (); // for non-zero resistances usual MNA entries if (r != 0.0) { nr_double_t g = 1.0 / r; setVoltageSources (0); allocMatrixMNA (); setY (NODE_1, NODE_1, +g); setY (NODE_2, NODE_2, +g); setY (NODE_1, NODE_2, -g); setY (NODE_2, NODE_1, -g); } // for zero resistances create a zero voltage source else { setVoltageSources (1); setInternalVoltageSource (1); allocMatrixMNA (); clearY (); voltageSource (VSRC_1, NODE_1, NODE_2); } }
void tline::initDC (void) { nr_double_t z = getPropertyDouble ("Z"); nr_double_t a = getPropertyDouble ("Alpha"); nr_double_t l = getPropertyDouble ("L"); a = log (a) / 2; if (a * l != 0.0) { setVoltageSources (0); allocMatrixMNA (); a = exp (a * l); nr_double_t f = 1 / z / (a - 1); nr_double_t y11 = +f * (a + 1); nr_double_t y21 = -f * 2 * sqrt (a); setY (NODE_1, NODE_1, y11); setY (NODE_2, NODE_2, y11); setY (NODE_1, NODE_2, y21); setY (NODE_2, NODE_1, y21); } else { setVoltageSources (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); } }
void resistor::initDC (void) { initModel (); nr_double_t r = getScaledProperty ("R"); // for non-zero resistances usual MNA entries if (r != 0.0) { nr_double_t g = 1.0 / r; setVoltageSources (0); allocMatrixMNA (); setY (NODE_1, NODE_1, +g); setY (NODE_2, NODE_2, +g); setY (NODE_1, NODE_2, -g); setY (NODE_2, NODE_1, -g); } // for zero resistances create a zero voltage source else { setVoltageSources (1); setInternalVoltageSource (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); } }
void coaxline::initDC (void) { nr_double_t l = getPropertyDouble ("L"); nr_double_t d = getPropertyDouble ("d"); nr_double_t rho = getPropertyDouble ("rho"); if (d != 0.0 && rho != 0.0 && l != 0.0) { // a tiny resistance nr_double_t g = M_PI * sqr (d / 2) / rho / l; setVoltageSources (0); allocMatrixMNA (); setY (NODE_1, NODE_1, +g); setY (NODE_2, NODE_2, +g); setY (NODE_1, NODE_2, -g); setY (NODE_2, NODE_1, -g); } else { // a DC short setVoltageSources (1); setInternalVoltageSource (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); } }
/*! DC model initialization. *! DC model of a bondwire is a resistance. */ void bondwire::initDC (void) { nr_double_t g; getProperties (); /* for non-zero resistances usual MNA entries */ if (rho != 0.0) { g = 1.0 / resistance (0); setVoltageSources (0); allocMatrixMNA (); setY (NODE_1, NODE_1, +g); setY (NODE_2, NODE_2, +g); setY (NODE_1, NODE_2, -g); setY (NODE_2, NODE_1, -g); } /* for zero resistances create a zero voltage source */ else { setVoltageSources (1); setInternalVoltageSource (1); allocMatrixMNA (); clearY (); voltageSource (VSRC_1, NODE_1, NODE_2); } }
void iprobe::initDC (void) { allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); }
void inductor::initHB (void) { setVoltageSources (1); setInternalVoltageSource (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); }
void ctline::initDC (void) { setVoltageSources (2); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); voltageSource (VSRC_2, NODE_3, NODE_4); }
void cpwstep::initDC (void) { setVoltageSources (1); setInternalVoltageSource (true); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); }
void vdc::initHB (void) { allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); }
void vdc::initDC (void) { allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2, getPropertyDouble ("U")); }
void dcblock::initAC (void) { setISource (false); setVoltageSources (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); }
void ashort::initDC (void) { allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); }
void mutual::initDC (void) { setVoltageSources (2); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_4); voltageSource (VSRC_2, NODE_2, NODE_3); }
void phaseshifter::initDC (void) { setVoltageSources (1); allocMatrixMNA (); clearY (); voltageSource (VSRC_1, NODE_1, NODE_2); }
void vac::initHB (void) { setVoltageSources (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); }
void inductor::initDC (void) { setVoltageSources (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); }
void vexp::initDC (void) { allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); setE (VSRC_1, getPropertyDouble ("U1")); }