void hybrid::initDC (void) { setVoltageSources (2); setInternalVoltageSource (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_3); voltageSource (VSRC_2, NODE_2, NODE_4); }
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); }
// 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 cpwstep::initAC (void) { setVoltageSources (2); setInternalVoltageSource (true); allocMatrixMNA (); setB (NODE_1, VSRC_1, +1.0); setB (NODE_1, VSRC_2, +0.0); setB (NODE_2, VSRC_1, +0.0); setB (NODE_2, VSRC_2, +1.0); setC (VSRC_1, NODE_1, -1.0); setC (VSRC_1, NODE_2, +0.0); setC (VSRC_2, NODE_1, +0.0); setC (VSRC_2, NODE_2, -1.0); setE (VSRC_1, +0.0); setE (VSRC_2, +0.0); checkProperties (); }
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 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 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 inductor::initHB (void) { setVoltageSources (1); setInternalVoltageSource (1); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); }
void cpwstep::initDC (void) { setVoltageSources (1); setInternalVoltageSource (true); allocMatrixMNA (); voltageSource (VSRC_1, NODE_1, NODE_2); }