circuit flag CKTvarHertz

This commit is contained in:
h_vogt 2010-03-20 17:35:56 +00:00
parent af4e5ebcdc
commit df5931e570
5 changed files with 9 additions and 10 deletions

View File

@ -1,6 +1,6 @@
2010-03-20 Holger Vogt
* com_compose.c: comment corrected
* subckt.c, cktdefs.h, acan.c, ifeval.c, inp2b.c, inpptree.c:
* subckt.c, cktdefs.h, acan.c, ifeval.c, inp2b.c, inpptree.c, cktinit.c:
Variable HERTZ added to B source
2010-03-16 Holger Vogt

View File

@ -178,8 +178,6 @@ typedef struct {
#define MODEINITTRAN 0x1000
#define MODEINITPRED 0x2000
#define MODEINITHERTZ 0x4000
/* old 'nosolv' paramater */
#define MODEUIC 0x10000l
@ -255,7 +253,7 @@ typedef struct {
double CKTrelDv; /* rel limit for iter-iter voltage change */
int CKTtroubleNode; /* Non-convergent node number */
GENinstance *CKTtroubleElt; /* Non-convergent device instance */
int CKTvarHertz; /* variable HERTZ in B source */
/* gtri - evt - wbk - 5/20/91 - add event-driven and enhancements data */
#ifdef XSPICE
Evt_Ckt_Data_t *evt; /* all data about event driven stuff */

View File

@ -230,7 +230,7 @@ ACan(CKTcircuit *ckt, int restart)
ckt->CKTomega = 2.0 * M_PI *freq;
/* Update opertating point, if variable 'hertz' is given */
if (ckt->CKTmode & MODEINITHERTZ) {
if (ckt->CKTvarHertz) {
#ifdef XSPICE
/* Call EVTop if event-driven instances exist */
@ -256,10 +256,10 @@ ACan(CKTcircuit *ckt, int restart)
CKTncDump(ckt);
return(error);
}
ckt->CKTmode = (ckt->CKTmode & MODEUIC) | MODEDCOP | MODEINITSMSIG;
error = CKTload(ckt);
if(error) return(error);
}
ckt->CKTmode = (ckt->CKTmode & MODEUIC) | MODEDCOP | MODEINITSMSIG;
error = CKTload(ckt);
if(error) return(error);
ckt->CKTmode = (ckt->CKTmode&MODEUIC) | MODEAC;
error = NIacIter(ckt);
@ -352,7 +352,7 @@ ACan(CKTcircuit *ckt, int restart)
freq *= ((ACAN*)ckt->CKTcurJob)->ACfreqDelta;
if(((ACAN*)ckt->CKTcurJob)->ACfreqDelta==1) goto endsweep;
break;
break;
case LINEAR:
#ifdef HAS_WINDOWS

View File

@ -81,6 +81,7 @@ CKTinit(void **ckt) /* new circuit to create */
sckt->CKTnodeDamping = 0;
sckt->CKTabsDv = 0.5;
sckt->CKTrelDv = 2.0;
sckt->CKTvarHertz = 0;
#ifdef XSPICE
/* gtri - begin - wbk - allocate/initialize substructs */

View File

@ -41,7 +41,7 @@ void INP2B(void *ckt, INPtables * tab, card * current)
/* if we find 'hertz' variable, set flag to actual circuit */
if(strstr(current->line, "hertz"))
inckt->CKTmode = MODEINITHERTZ;
inckt->CKTvarHertz = 1;
line = current->line;
INPgetTok(&line, &name, 1);