47 #ifndef Xyce_N_DEV_BJT_H
48 #define Xyce_N_DEV_BJT_H
67 typedef Sacado::Fad::SFad<double, 1>
fadType;
69 template <
typename ScalarT>
70 inline ScalarT
Xycemax ( ScalarT f1, ScalarT f2) {
return f1 > f2 ? f1 : f2; }
72 template <
typename ScalarT>
73 inline ScalarT
Xycemin ( ScalarT f1, ScalarT f2) {
return f1 < f2 ? f1 : f2; }
86 const std::string ¶m,
87 std::vector<double> & dfdp,
88 std::vector<double> & dqdp,
89 std::vector<double> & dbdp,
90 std::vector<int> & Findices,
91 std::vector<int> & Qindices,
92 std::vector<int> & Bindices
107 const std::string ¶m,
108 std::vector<double> & dfdp,
109 std::vector<double> & dqdp,
110 std::vector<double> & dbdp,
111 std::vector<int> & Findices,
112 std::vector<int> & Qindices,
113 std::vector<int> & Bindices
122 static const char *
name() {
return "Bipolar Junction Transistor";}
135 template <
typename ScalarT>
139 const ScalarT & TEMP,
142 const ScalarT & TNOM,
143 const ScalarT & energyGap,
144 const ScalarT & tempExpIS,
145 const ScalarT & betaExp,
146 const ScalarT & potBE,
147 const ScalarT & depCapBE,
148 const ScalarT & juncExpBE,
149 const ScalarT & depCapBC,
150 const ScalarT & juncExpBC,
151 const ScalarT & depCapCoeff,
152 const ScalarT & satCur,
153 const ScalarT & betaF,
154 const ScalarT & betaR,
161 bool leakBECurrentGiven,
162 bool leakBCCurrentGiven,
164 const ScalarT & leakBEEmissionCoeff,
165 const ScalarT & leakBCEmissionCoeff,
167 const ScalarT & rollOffExp,
168 const ScalarT & baseResist,
169 const ScalarT & collectorResist,
170 const ScalarT & emitterResist,
171 const ScalarT & potBC,
172 const ScalarT & rollOffF,
173 const ScalarT & rollOffR,
174 const ScalarT & earlyVoltF,
175 const ScalarT & earlyVoltR,
179 ScalarT & leakBECurrent,
180 ScalarT & leakBCCurrent,
181 ScalarT & tBELeakCur,
182 ScalarT & tBCLeakCur,
183 ScalarT & tleakBEEmissionCoeff,
184 ScalarT & tleakBCEmissionCoeff,
186 ScalarT & tRollOffExp,
187 ScalarT & tInvRollOffF,
188 ScalarT & tInvRollOffR,
189 ScalarT & tBaseResist,
190 ScalarT & tCollectorResist,
191 ScalarT & tEmitterResist,
205 ScalarT & tInvEarlyVoltF,
206 ScalarT & tInvEarlyVoltR
209 template <
typename ScalarT>
212 bool leakBECurrentGiven,
213 bool leakBCCurrentGiven,
216 bool minBaseResistGiven,
226 const ScalarT & satCur,
227 const ScalarT & baseResist,
228 const ScalarT & earlyVoltF,
229 const ScalarT & rollOffF,
230 const ScalarT & earlyVoltR,
231 const ScalarT & rollOffR,
233 const ScalarT & collectorResist,
234 const ScalarT & emitterResist,
235 const ScalarT & transTimeFVBC,
236 const ScalarT & excessPhase,
237 const ScalarT & transTimeF,
238 const ScalarT & juncExpBE,
239 const ScalarT & juncExpBC,
242 ScalarT & leakBECurrent,
243 ScalarT & leakBCCurrent,
244 ScalarT & minBaseResist,
245 ScalarT & invEarlyVoltF,
246 ScalarT & invRollOffF,
247 ScalarT & invEarlyVoltR,
248 ScalarT & invRollOffR,
250 ScalarT & collectorConduct,
251 ScalarT & emitterConduct,
252 ScalarT & transTimeVBCFac,
253 ScalarT & excessPhaseFac,
254 ScalarT & depCapCoeff,
262 template <
typename ScalarT>
268 bool beginIntegrationFlag,
271 const int li_istateCEXBC
281 bool beginIntegrationFlag,
284 const int li_istateCEXBC
294 bool beginIntegrationFlag,
297 const int li_istateCEXBC
300 template <
typename ScalarT>
311 bool beginIntegrationFlag,
314 const double * currStaVec,
315 const double * lastStaVec,
317 const int li_istateCEXBC,
336 bool beginIntegrationFlag,
339 const double * currStaVec,
340 const double * lastStaVec,
342 const int li_istateCEXBC,
359 bool beginIntegrationFlag,
362 const double * currStaVec,
363 const double * lastStaVec,
365 const int li_istateCEXBC,
371 template <
typename ScalarT>
373 const ScalarT & i_fx,
376 const ScalarT & iBEleak,
378 const ScalarT & iBCleak,
380 const ScalarT & invqB,
381 const ScalarT & tBetaF,
382 const ScalarT & tBetaR,
387 const ScalarT & dqBdvBp,
388 const ScalarT & dqBdvCp,
389 const ScalarT & dqBdvEp,
407 template <
typename ScalarT>
416 const ScalarT & i_fx,
419 const ScalarT & AREA,
422 const ScalarT & tSatCur,
424 const ScalarT & tleakBEEmissionCoeff,
425 const ScalarT & tleakBCEmissionCoeff,
426 const ScalarT & tBELeakCur,
427 const ScalarT & tBCLeakCur,
428 const ScalarT & tInvRollOffF,
429 const ScalarT & tInvRollOffR,
430 const ScalarT & tRollOffExp,
431 const ScalarT & tInvEarlyVoltF,
432 const ScalarT & tInvEarlyVoltR,
433 const ScalarT & tBECap,
434 const ScalarT & tBCCap,
435 const ScalarT & tDepCap,
436 const ScalarT & tBEPot,
437 const ScalarT & tBCPot,
444 const bool newExcessPhase,
448 const bool tranopFlag,
450 const bool initTranFlag,
451 const bool beginIntegrationFlag,
452 const int newtonIter,
456 const ScalarT & emissionCoeffF,
457 const ScalarT & emissionCoeffR,
458 const ScalarT & baseFracBCCap,
460 const ScalarT & depCapCoeff,
461 const ScalarT & potBC,
462 const ScalarT & transTimeF,
463 const ScalarT & transTimeR,
464 const ScalarT & transTimeBiasCoeffF,
465 const ScalarT & transTimeVBCFac,
466 const ScalarT & transTimeHighCurrF,
467 const ScalarT & juncExpBE,
468 const ScalarT & juncExpBC,
469 const ScalarT & potSubst,
470 const ScalarT & expSubst,
472 const ScalarT & emitterConduct,
473 const ScalarT & collectorConduct,
474 const ScalarT & minBaseResist,
475 const ScalarT & baseResist,
476 const ScalarT & baseCurrHalfResist,
478 const ScalarT & excessPhaseFac,
492 const int li_istateCEXBC,
512 ScalarT & iBEhighCurr,
513 ScalarT & gBEhighCurr,
597 void registerLIDs(
const std::vector<int> & intLIDVecRef,
598 const std::vector<int> & extLIDVecRef );
605 const std::vector< std::vector<int> > &
jacobianStamp()
const;
606 void registerJacLIDs(
const std::vector< std::vector<int> > & jacLIDVec );
610 bool lambertWCurrent (
double &Id,
double &Gd,
double Vd,
double Vte,
double Isat);
622 #ifdef Xyce_DEBUG_EXCESS_PHASE
630 (
double & iEX,
double & gEX,
double & iC_local);
891 #ifndef Xyce_NONPOINTER_MATRIX_LOAD
1233 virtual bool updateState (
double * solVec,
double * staVec,
double * stoVec);
1237 virtual bool loadDAEVectors (
double * solVec,
double * fVec,
double * qVec,
double * bVec,
double * storeLeadF,
double * storeLeadQ,
double * leadF,
double * leadQ,
double * junctionV);
1240 virtual bool loadDAEMatrices (Linear::Matrix & dFdx, Linear::Matrix & dQdx);
virtual ~bjtModelSensitivity()
double * q_SubstEquCollPNodePtr
double * q_dIfxEquIfxNodePtr
double * f_IfxEquEmitPNodePtr
int ABaseEquEmitPNodeOffset
static std::vector< std::vector< int > > jacMap2_RB_RC_RE_
int AIfxEquCollPNodeOffset
double * q_EmitPEquIfxNodePtr
double * q_BaseEquBasePNodePtr
const std::vector< std::vector< int > > & jacobianStamp() const
int AEmitPEquIfxNodeOffset
int AdIfxEquEmitPNodeOffset
double * q_BasePEquBaseNodePtr
Instance(const Configuration &configuration, const InstanceBlock &IB, Model &it_MB, const FactoryBlock &factory_block)
double * f_BasePEquEmitPNodePtr
static std::vector< int > jacMap_RB_RE_
double * q_IfxEquBasePNodePtr
double leakBEEmissionCoeff
Pure virtual class to augment a linear system.
double * f_CollEquCollNodePtr
double * q_CollPEquEmitPNodePtr
int AEmitPEquEmitNodeOffset
virtual bool updateSecondaryState(double *staDeriv, double *stoVec)
Updates the devices secondary state information.
Master(const Configuration &configuration, const FactoryBlock &factory_block, const SolverState &ss1, const DeviceOptions &do1)
double * f_IfxEquCollPNodePtr
double baseCurrHalfResist
bool updateIntermediateVars(const ScalarT &vBE, const ScalarT &vBC, const ScalarT &vBX, const ScalarT &vCS, const ScalarT &i_fx, const ScalarT &AREA, const ScalarT &tSatCur, const ScalarT &vt, const ScalarT &tleakBEEmissionCoeff, const ScalarT &tleakBCEmissionCoeff, const ScalarT &tBELeakCur, const ScalarT &tBCLeakCur, const ScalarT &tInvRollOffF, const ScalarT &tInvRollOffR, const ScalarT &tRollOffExp, const ScalarT &tInvEarlyVoltF, const ScalarT &tInvEarlyVoltR, const ScalarT &tBECap, const ScalarT &tBCCap, const ScalarT &tDepCap, const ScalarT &tBEPot, const ScalarT &tBCPot, const ScalarT &tF1, const ScalarT &tF4, const ScalarT &tF5, const double &gmin, const bool newExcessPhase, const bool dcopFlag, const bool tranopFlag, const bool acopFlag, const bool initTranFlag, const bool beginIntegrationFlag, const int newtonIter, const double pdt, const ScalarT &emissionCoeffF, const ScalarT &emissionCoeffR, const ScalarT &baseFracBCCap, const ScalarT &CJS, const ScalarT &depCapCoeff, const ScalarT &potBC, const ScalarT &transTimeF, const ScalarT &transTimeR, const ScalarT &transTimeBiasCoeffF, const ScalarT &transTimeVBCFac, const ScalarT &transTimeHighCurrF, const ScalarT &juncExpBE, const ScalarT &juncExpBC, const ScalarT &potSubst, const ScalarT &expSubst, const ScalarT &emitterConduct, const ScalarT &collectorConduct, const ScalarT &minBaseResist, const ScalarT &baseResist, const ScalarT &baseCurrHalfResist, const ScalarT &excessPhaseFac, const ScalarT &f2, const ScalarT &f3, const ScalarT &f6, const ScalarT &f7, const int level, double *nextStaVec, double *currStaVec, double *lastStaVec, const int li_istateCEXBC, const double dt0, const double dt1, ScalarT &iB, ScalarT &iC, ScalarT &iE, ScalarT &iBE, ScalarT &gBE, ScalarT &iBC, ScalarT &gBC, ScalarT &iCE, ScalarT &iBEleak, ScalarT &gBEleak, ScalarT &iBCleak, ScalarT &gBCleak, ScalarT &qB, ScalarT &invqB, ScalarT &iBEhighCurr, ScalarT &gBEhighCurr, ScalarT &capeqCB, ScalarT &geqCB, ScalarT &qBEdep, ScalarT &capBEdep, ScalarT &qBEdiff, ScalarT &capBEdiff, ScalarT &qBCdep, ScalarT &capBCdep, ScalarT &qBCdiff, ScalarT &capBCdiff, ScalarT &qBX, ScalarT &capBX, ScalarT &qCS, ScalarT &capCS, ScalarT &gEpr, ScalarT &gCpr, ScalarT &gX, ScalarT &diBrdvB, ScalarT &diBrdvCp, ScalarT &diBrdvEp, ScalarT &diBrdvBp, ScalarT &diCEdvEp, ScalarT &diCEdvCp, ScalarT &diCEdvBp, ScalarT &diBEdvBp, ScalarT &diBEdvCp, ScalarT &diBEdvEp, ScalarT &gBEtot, ScalarT &gBCtot, ScalarT &tBetaF, ScalarT &tBetaR)
double * f_CollPEquCollPNodePtr
static std::vector< std::vector< int > > jacStamp_RB_RC_
Model & operator=(const Model &)
double * f_IfxEquBasePNodePtr
int ACollEquCollPNodeOffset
double * f_SubstEquSubstNodePtr
double * q_EmitPEquEmitPNodePtr
Base class for all parameters.
int ABaseEquCollPNodeOffset
double * f_CollEquCollPNodePtr
static std::vector< std::vector< int > > jacStamp_RB_RC_RE_
int ASubstEquSubstNodeOffset
int AEmitPEquBasePNodeOffset
void registerJacLIDs(const std::vector< std::vector< int > > &jacLIDVec)
int ABaseEquBasePNodeOffset
bool updateIntermediateVars()
double * f_EmitPEquEmitNodePtr
static std::vector< int > jacMap_RE_
static std::vector< int > jacMap_RB_RC_
std::vector< Instance * > InstanceVector
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
double * f_BaseEquBasePNodePtr
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
double * q_EmitPEquEmitNodePtr
void registerLIDs(const std::vector< int > &intLIDVecRef, const std::vector< int > &extLIDVecRef)
double * q_CollPEquCollPNodePtr
static std::vector< std::vector< int > > jacStamp_RB_RE_
double * q_SubstEquSubstNodePtr
static std::vector< std::vector< int > > jacStamp_RE_
ScalarT Xycemax(ScalarT f1, ScalarT f2)
double * q_BaseEquEmitPNodePtr
double * f_IfxEquIfxNodePtr
int ACollPEquCollPNodeOffset
int ABasePEquCollPNodeOffset
general sensitivity functor for all model params.
int AdIfxEqudIfxNodeOffset
double * f_dIfxEquEmitPNodePtr
void auxDAECalculations(const ScalarT &i_fx, const ScalarT &td, const ScalarT &iBE, const ScalarT &iBEleak, const ScalarT &iBC, const ScalarT &iBCleak, const ScalarT &qB, const ScalarT &invqB, const ScalarT &tBetaF, const ScalarT &tBetaR, const ScalarT &gBC, const ScalarT &gBE, const ScalarT &dqBdvBp, const ScalarT &dqBdvCp, const ScalarT &dqBdvEp, bool dcopFlag, ScalarT &iCE, ScalarT &iC, ScalarT &iB, ScalarT &iE, ScalarT &diCEdvBp, ScalarT &diCEdvCp, ScalarT &diCEdvEp, ScalarT &diBEdvBp, ScalarT &diBEdvCp, ScalarT &diBEdvEp)
DeviceMaster instantiates a device as described by the device traits T.
void registerStoreLIDs(const std::vector< int > &stoLIDVecRef)
int ABaseEquBaseNodeOffset
double * f_EmitPEquBasePNodePtr
double * f_BaseEquEmitPNodePtr
double * q_CollPEquBaseNodePtr
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
static std::vector< int > jacMap_RC_
double * q_EmitPEquBasePNodePtr
static std::vector< std::vector< int > > jacMap2_RE_
int ACollPEquBasePNodeOffset
double * q_BaseEquBaseNodePtr
double * f_BasePEquBaseNodePtr
void setupNoiseSources(Xyce::Analysis::NoiseData &noiseData)
int AEmitPEquCollPNodeOffset
virtual void operator()(const ParameterBase &entity, const std::string ¶m, std::vector< double > &dfdp, std::vector< double > &dqdp, std::vector< double > &dbdp, std::vector< int > &Findices, std::vector< int > &Qindices, std::vector< int > &Bindices) const
static std::vector< int > jacMap_
static std::vector< std::vector< int > > jacStamp_RB_
double * f_BaseEquCollPNodePtr
static std::vector< std::vector< int > > jacStamp_RC_RE_
general sensitivity functor for all instance params.
virtual void registerBranchDataLIDs(const std::vector< int > &branchLIDVecRef)
double * f_EmitEquEmitPNodePtr
double * f_CollPEquBasePNodePtr
double * f_dIfxEquBasePNodePtr
int AEmitPEquEmitPNodeOffset
double * q_BasePEquCollPNodePtr
bool processParams(bool leakBECurrentGiven, bool leakBCCurrentGiven, bool c2Given, bool c4Given, bool minBaseResistGiven, bool VAFgiven, bool IKFgiven, bool VARgiven, bool IKRgiven, bool VTFgiven, bool FCgiven, const ScalarT &c2, const ScalarT &c4, const ScalarT &satCur, const ScalarT &baseResist, const ScalarT &earlyVoltF, const ScalarT &rollOffF, const ScalarT &earlyVoltR, const ScalarT &rollOffR, const ScalarT &collectorResist, const ScalarT &emitterResist, const ScalarT &transTimeFVBC, const ScalarT &excessPhase, const ScalarT &transTimeF, const ScalarT &juncExpBE, const ScalarT &juncExpBC, ScalarT &leakBECurrent, ScalarT &leakBCCurrent, ScalarT &minBaseResist, ScalarT &invEarlyVoltF, ScalarT &invRollOffF, ScalarT &invEarlyVoltR, ScalarT &invRollOffR, ScalarT &collectorConduct, ScalarT &emitterConduct, ScalarT &transTimeVBCFac, ScalarT &excessPhaseFac, ScalarT &depCapCoeff, ScalarT &f2, ScalarT &f3, ScalarT &f6, ScalarT &f7)
static std::vector< std::vector< int > > jacMap2_RB_RE_
Sacado::Fad::SFad< double, 1 > fadType
int AdIfxEquBasePNodeOffset
static std::vector< std::vector< int > > jacMap2_RB_
double * q_BaseEquCollPNodePtr
void oldDAEExcessPhaseCalculation1(const ScalarT &td, const ScalarT &qB, const ScalarT &iBE, bool dcopFlag, bool beginIntegrationFlag, double *currStaVec, double *lastStaVec, const int li_istateCEXBC)
void auxDAECalculations()
int ACollPEquSubstNodeOffset
static std::vector< int > jacMap_RB_
static bool modelRequired()
double * f_CollPEquEmitPNodePtr
double * f_dIfxEquCollPNodePtr
The Device class is an interface for device implementations.
bool processInstanceParams()
processInstanceParams
static const char * deviceTypeName()
void loadErrorWeightMask()
double leakBCEmissionCoeff
double * q_EmitEquEmitPNodePtr
virtual std::ostream & printOutInstances(std::ostream &os) const
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
double * q_CollPEquCollNodePtr
virtual bool loadDAEMatrices(Linear::Matrix &dFdx, Linear::Matrix &dQdx)
Populates the device's Jacobian object with these pointers.
static bjtModelSensitivity bjtModelSens
double transTimeBiasCoeffF
double tleakBEEmissionCoeff
virtual bool updateState(double *solVec, double *staVec, double *stoVec)
Updates the devices state information.
static int numFillNodes()
double * f_dIfxEquIfxNodePtr
void oldDAEExcessPhaseCalculation1()
int AEmitEquEmitNodeOffset
double * q_dIfxEquBasePNodePtr
double * f_IfxEqudIfxNodePtr
bool updateTemperature(const double &temp=-999.0)
Class Configuration contains device configuration data.
double * q_CollEquCollPNodePtr
int ACollPEquCollNodeOffset
double * f_CollPEquCollNodePtr
void addInstance(Instance *instance)
static const char * name()
virtual bool loadDAEVectors(double *solVec, double *fVec, double *qVec, double *bVec, double *storeLeadF, double *storeLeadQ, double *leadF, double *leadQ, double *junctionV)
Populates the device's ExternData object with these pointers.
double * q_IfxEquCollPNodePtr
static std::vector< std::vector< int > > jacStamp_RC_
static bool isLinearDevice()
virtual void operator()(const ParameterBase &entity, const std::string ¶m, std::vector< double > &dfdp, std::vector< double > &dqdp, std::vector< double > &dbdp, std::vector< int > &Findices, std::vector< int > &Qindices, std::vector< int > &Bindices) const
void getNoiseSources(Xyce::Analysis::NoiseData &noiseData)
double * f_EmitEquEmitNodePtr
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
int ACollPEquEmitPNodeOffset
double * q_EmitPEquCollPNodePtr
double * f_CollPEquSubstNodePtr
std::vector< Instance * > instanceContainer
bool updateTemperature( const ScalarT &TEMP, const ScalarT &TNOM, const ScalarT &energyGap, const ScalarT &tempExpIS, const ScalarT &betaExp, const ScalarT &potBE, const ScalarT &depCapBE, const ScalarT &juncExpBE, const ScalarT &depCapBC, const ScalarT &juncExpBC, const ScalarT &depCapCoeff, const ScalarT &satCur, const ScalarT &betaF, const ScalarT &betaR, const ScalarT &c2, const ScalarT &c4, bool c2Given, bool c4Given, bool leakBECurrentGiven, bool leakBCCurrentGiven, const ScalarT &leakBEEmissionCoeff, const ScalarT &leakBCEmissionCoeff, const ScalarT &rollOffExp, const ScalarT &baseResist, const ScalarT &collectorResist, const ScalarT &emitterResist, const ScalarT &potBC, const ScalarT &rollOffF, const ScalarT &rollOffR, const ScalarT &earlyVoltF, const ScalarT &earlyVoltR, ScalarT &vt, ScalarT &leakBECurrent, ScalarT &leakBCCurrent, ScalarT &tBELeakCur, ScalarT &tBCLeakCur, ScalarT &tleakBEEmissionCoeff, ScalarT &tleakBCEmissionCoeff, ScalarT &tRollOffExp, ScalarT &tInvRollOffF, ScalarT &tInvRollOffR, ScalarT &tBaseResist, ScalarT &tCollectorResist, ScalarT &tEmitterResist, ScalarT &tBECap, ScalarT &tBEPot, ScalarT &tBCCap, ScalarT &tBCPot, ScalarT &tDepCap, ScalarT &tF1, ScalarT &tF4, ScalarT &tF5, ScalarT &tVCrit, ScalarT &tSatCur, ScalarT &tBetaF, ScalarT &tBetaR, ScalarT &tInvEarlyVoltF, ScalarT &tInvEarlyVoltR)
static std::vector< std::vector< int > > jacMap2_
static int numOptionalNodes()
static std::vector< int > jacMap_RB_RC_RE_
double * q_BasePEquEmitPNodePtr
double * f_EmitPEquIfxNodePtr
bool lambertWCurrent(double &Id, double &Gd, double Vd, double Vte, double Isat)
void registerStateLIDs(const std::vector< int > &stateLIDVecRef)
int ACollEquCollNodeOffset
double * f_EmitPEquCollPNodePtr
int AIfxEqudIfxNodeOffset
double * f_EmitPEquEmitPNodePtr
double tleakBCEmissionCoeff
void oldDAEExcessPhaseCalculation2(double &iEX, double &gEX, double &iC_local)
double * q_IfxEquIfxNodePtr
int AdIfxEquIfxNodeOffset
double * q_dIfxEquCollPNodePtr
double * q_CollPEquBasePNodePtr
int AIfxEquEmitPNodeOffset
bool updatePrimaryState()
void oldDAEExcessPhaseCalculation2(const ScalarT &td, const ScalarT &qB, const ScalarT &iBE, const ScalarT &gBE, const double dt0, const double dt1, bool dcopFlag, bool beginIntegrationFlag, double *nextStaVec, const double *currStaVec, const double *lastStaVec, const int li_istateCEXBC, ScalarT &iEX, ScalarT &gEX, ScalarT &iC_local)
double * q_dIfxEqudIfxNodePtr
double * q_dIfxEquEmitPNodePtr
int ABasePEquBaseNodeOffset
static std::vector< int > jacMap_RC_RE_
virtual ~bjtInstanceSensitivity()
int ACollPEquBaseNodeOffset
void updateIntermediateParams()
int AIfxEquBasePNodeOffset
double * q_EmitEquEmitNodePtr
double * f_BasePEquCollPNodePtr
int ACollPEquIfxNodeOffset
bool processParams()
processParams
Base sensitivity functor.
ModelBlock represents a .MODEL line from the netlist.
bool outputPlotFiles(bool force_final_output)
The DeviceTraits template describes the configuration of a device.
bool updateSecondaryState()
Manages parameter binding for class C.
int ASubstEquCollPNodeOffset
InstanceBlock represent a device instance line from the netlist.
static std::vector< std::vector< int > > jacStamp_
double transTimeHighCurrF
int getNumNoiseSources() const
double * q_CollPEquIfxNodePtr
int ABasePEquBasePNodeOffset
int AEmitEquEmitPNodeOffset
double * q_IfxEquEmitPNodePtr
static std::vector< std::vector< int > > jacMap2_RB_RC_
double * f_CollPEquIfxNodePtr
double * f_BasePEquBasePNodePtr
double * f_CollPEquBaseNodePtr
double * q_CollPEquSubstNodePtr
double * q_CollEquCollNodePtr
ScalarT Xycemin(ScalarT f1, ScalarT f2)
double * f_dIfxEqudIfxNodePtr
static std::vector< std::vector< int > > jacMap2_RC_
static std::vector< std::vector< int > > jacMap2_RC_RE_
double * q_BasePEquBasePNodePtr
int ABasePEquEmitPNodeOffset
static bjtInstanceSensitivity bjtInstanceSens
static void loadModelParameters(ParametricData< Model > &model_parameters)
Instance & operator=(const Instance &)
int AdIfxEquCollPNodeOffset
double * f_SubstEquCollPNodePtr
double * f_BaseEquBaseNodePtr
double * q_IfxEqudIfxNodePtr