46 #include <Xyce_config.h>
64 #include <N_ERH_ErrorMgr.h>
66 #include <N_LAS_Vector.h>
67 #include <N_LAS_Matrix.h>
77 .setOriginalValueStored(
true)
79 .setDescription(
"DC Current");
84 .setDescription(
"Offset Current");
88 .setDescription(
"Initial Current");
92 .setDescription(
"Pulsed Current");
96 .setDescription(
"Delay");
100 .setDescription(
"Rise Time");
104 .setDescription(
"Fall Time");
108 .setDescription(
"Pulse Width");
112 .setDescription(
"Period");
115 .setDescription(
"Scale Factor -- smooth pulse only");
120 .setDescription(
"Amplitude");
124 .setDescription(
"Frequency");
127 .setDescription(
"Theta");
130 .setDescription(
"Phase");
135 .setDescription(
"Rise Delay Time");
139 .setDescription(
"Rise Time Constant");
143 .setDescription(
"Fall Delay Time");
147 .setDescription(
"Fall Time Constant");
152 .setDescription(
"Amplitude");
155 .setDescription(
"Phase");
160 .setDescription(
"Carrier Frequency");
164 .setDescription(
"Signal Frequency");
167 .setDescription(
"Modulation Index");
172 .setDescription(
"Repeat Time");
176 .setDescription(
"Time");
180 .setDescription(
"Current");
215 :
SourceInstance(instance_block, configuration.getInstanceParameters(), factory_block),
237 TRANSIENTSOURCETYPEgiven(false),
239 ACSOURCETYPEgiven(false),
241 DCSOURCETYPEgiven(false),
390 const std::vector<int> & extLIDVecRef)
395 #ifdef Xyce_DEBUG_DEVICE
398 Xyce::dout() << std::endl << section_divider << std::endl;
399 Xyce::dout() <<
" ISRCInstance::registerLIDs" << std::endl;
400 Xyce::dout() <<
" name = " <<
getName() << std::endl;
414 #ifdef Xyce_DEBUG_DEVICE
417 Xyce::dout() <<
" li_Pos = " <<
li_Pos << std::endl;
418 Xyce::dout() <<
" li_Neg = " <<
li_Neg << std::endl;
419 Xyce::dout() << section_divider << std::endl;
512 bVecReal[
li_Pos] -= source;
513 bVecReal[
li_Neg] += source;
521 bVecImag[
li_Pos] -= source;
522 bVecImag[
li_Neg] += source;
552 bool bsuccess =
true;
554 #ifndef SEPARATE_F_AND_B
594 bool bsuccess =
true;
636 :
DeviceModel(MB, configuration.getModelParameters(), factory_block)
651 std::vector<Instance*>::iterator iter;
655 for (iter=first; iter!=last; ++iter)
687 std::vector<Instance*>::iterator iter;
691 for (iter=first; iter!=last; ++iter)
693 (*iter)->processParams();
709 #ifdef Xyce_DEBUG_DEVICE
711 std::vector<Instance*>::const_iterator iter;
717 os <<
" name modelName Parameters" << std::endl;
718 for (i=0, iter=first; iter!=last; ++iter, ++i)
720 os <<
" " << i <<
": " << (*iter)->getName() <<
" ";
723 if ( (*iter)->tranSourceData_ != 0 )
725 (*iter)->tranSourceData_->printOutParams ();
728 if ( (*iter)->dcSourceData_ != 0 )
730 (*iter)->dcSourceData_->printOutParams ();
733 if ( (*iter)->acSourceData_ != 0 )
735 (*iter)->acSourceData_->printOutParams ();
760 for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
789 bool Master::loadDAEVectors (
double * solVec,
double * fVec,
double *qVec,
double * bVec,
double * storeLeadF,
double * storeLeadQ)
806 #ifndef SEPARATE_F_AND_B
807 fVec[inst.
li_Pos] += source;
808 fVec[inst.
li_Neg] -= source;
810 bVec[inst.
li_Pos] -= source;
811 bVec[inst.
li_Neg] += source;
847 .registerDevice(
"i", 1);