Prepare Cshunt: add a cpacitor to each voltage node
Function inppas4() will add the extra caps, to be done.
This commit is contained in:
parent
f7d8271e6c
commit
00bc5b97a1
|
|
@ -1336,6 +1336,10 @@ inp_dodeck(
|
||||||
}
|
}
|
||||||
} // if (!noparse) . . .
|
} // if (!noparse) . . .
|
||||||
|
|
||||||
|
/* If option cshunt is given, add capacitors to each voltage node */
|
||||||
|
if (ft_curckt->ci_defTask->TSKcshunt > 0.)
|
||||||
|
INPpas4(ckt, tab);
|
||||||
|
|
||||||
/* add title of deck to data base */
|
/* add title of deck to data base */
|
||||||
/* this won't work if the title is the empty string
|
/* this won't work if the title is the empty string
|
||||||
* cp_addkword() doesn't work for tt === ""
|
* cp_addkword() doesn't work for tt === ""
|
||||||
|
|
|
||||||
|
|
@ -215,6 +215,7 @@ struct CKTcircuit {
|
||||||
#endif /* NEWTRUNC */
|
#endif /* NEWTRUNC */
|
||||||
double CKTgmin; /* .options GMIN */
|
double CKTgmin; /* .options GMIN */
|
||||||
double CKTgshunt; /* .options RSHUNT */
|
double CKTgshunt; /* .options RSHUNT */
|
||||||
|
double CKTcshunt; /* .options CSHUNT */
|
||||||
double CKTdelmin; /* minimum time step for tran analysis */
|
double CKTdelmin; /* minimum time step for tran analysis */
|
||||||
double CKTtrtol; /* .options TRTOL */
|
double CKTtrtol; /* .options TRTOL */
|
||||||
double CKTfinalTime; /* TSTOP */
|
double CKTfinalTime; /* TSTOP */
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,7 @@ void INPpas1(CKTcircuit *, struct card *, INPtables *);
|
||||||
void INPpas2(CKTcircuit *, struct card *, INPtables *, TSKtask *);
|
void INPpas2(CKTcircuit *, struct card *, INPtables *, TSKtask *);
|
||||||
void INPpas3(
|
void INPpas3(
|
||||||
CKTcircuit *, struct card *, INPtables *, TSKtask *, IFparm *, int);
|
CKTcircuit *, struct card *, INPtables *, TSKtask *, IFparm *, int);
|
||||||
|
void INPpas4(CKTcircuit *, INPtables *);
|
||||||
int INPpName(char *, IFvalue *, CKTcircuit *, int, GENinstance *);
|
int INPpName(char *, IFvalue *, CKTcircuit *, int, GENinstance *);
|
||||||
int INPtermInsert(CKTcircuit *, char **, INPtables *, CKTnode **);
|
int INPtermInsert(CKTcircuit *, char **, INPtables *, CKTnode **);
|
||||||
int INPtermSearch(CKTcircuit*, char**, INPtables*, CKTnode**);
|
int INPtermSearch(CKTcircuit*, char**, INPtables*, CKTnode**);
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,7 @@ enum {
|
||||||
OPT_XMU,
|
OPT_XMU,
|
||||||
OPT_INDVERBOSITY,
|
OPT_INDVERBOSITY,
|
||||||
OPT_EPSMIN,
|
OPT_EPSMIN,
|
||||||
|
OPT_CSHUNT,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef XSPICE
|
#ifdef XSPICE
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ struct TSKtask {
|
||||||
#endif /* NEWTRUNC */
|
#endif /* NEWTRUNC */
|
||||||
double TSKgmin;
|
double TSKgmin;
|
||||||
double TSKgshunt; /* shunt conductance (CKTdiagGmin) */
|
double TSKgshunt; /* shunt conductance (CKTdiagGmin) */
|
||||||
|
double TSKcshunt; /* shunt capacitor to ground */
|
||||||
double TSKdelmin;
|
double TSKdelmin;
|
||||||
double TSKtrtol;
|
double TSKtrtol;
|
||||||
double TSKdefaultMosM;
|
double TSKdefaultMosM;
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,7 @@ CKTdoJob(CKTcircuit *ckt, int reset, TSKtask *task)
|
||||||
ckt->CKTvoltTol = task->TSKvoltTol;
|
ckt->CKTvoltTol = task->TSKvoltTol;
|
||||||
ckt->CKTgmin = task->TSKgmin;
|
ckt->CKTgmin = task->TSKgmin;
|
||||||
ckt->CKTgshunt = task->TSKgshunt;
|
ckt->CKTgshunt = task->TSKgshunt;
|
||||||
|
ckt->CKTcshunt = task->TSKcshunt;
|
||||||
ckt->CKTdelmin = task->TSKdelmin;
|
ckt->CKTdelmin = task->TSKdelmin;
|
||||||
ckt->CKTtrtol = task->TSKtrtol;
|
ckt->CKTtrtol = task->TSKtrtol;
|
||||||
#ifdef XSPICE
|
#ifdef XSPICE
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,7 @@ CKTnewTask(CKTcircuit *ckt, TSKtask **taskPtr, IFuid taskName, TSKtask **defPtr)
|
||||||
/* use the application defaults */
|
/* use the application defaults */
|
||||||
tsk->TSKgmin = 1e-12;
|
tsk->TSKgmin = 1e-12;
|
||||||
tsk->TSKgshunt = 0;
|
tsk->TSKgshunt = 0;
|
||||||
|
tsk->TSKcshunt = -1;
|
||||||
tsk->TSKabstol = 1e-12;
|
tsk->TSKabstol = 1e-12;
|
||||||
tsk->TSKreltol = 1e-3;
|
tsk->TSKreltol = 1e-3;
|
||||||
tsk->TSKchgtol = 1e-14;
|
tsk->TSKchgtol = 1e-14;
|
||||||
|
|
|
||||||
|
|
@ -172,6 +172,9 @@ CKTsetOpt(CKTcircuit *ckt, JOB *anal, int opt, IFvalue *val)
|
||||||
case OPT_EPSMIN:
|
case OPT_EPSMIN:
|
||||||
task->TSKepsmin = val->rValue;
|
task->TSKepsmin = val->rValue;
|
||||||
break;
|
break;
|
||||||
|
case OPT_CSHUNT:
|
||||||
|
task->TSKcshunt = val->rValue;
|
||||||
|
break;
|
||||||
/* gtri - begin - wbk - add new options */
|
/* gtri - begin - wbk - add new options */
|
||||||
#ifdef XSPICE
|
#ifdef XSPICE
|
||||||
case OPT_EVT_MAX_OP_ALTER:
|
case OPT_EVT_MAX_OP_ALTER:
|
||||||
|
|
@ -238,6 +241,7 @@ static IFparm OPTtbl[] = {
|
||||||
{ "rshunt", OPT_ENH_RSHUNT, IF_SET|IF_REAL, "Shunt resistance from analog nodes to ground" },
|
{ "rshunt", OPT_ENH_RSHUNT, IF_SET|IF_REAL, "Shunt resistance from analog nodes to ground" },
|
||||||
/* gtri - end - wbk - add new options */
|
/* gtri - end - wbk - add new options */
|
||||||
#endif
|
#endif
|
||||||
|
{ "cshunt", OPT_CSHUNT, IF_SET|IF_REAL, "Shunt capacitor from analog nodes to ground" },
|
||||||
{ "noopiter", OPT_NOOPITER,IF_SET|IF_FLAG,"Go directly to gmin stepping" },
|
{ "noopiter", OPT_NOOPITER,IF_SET|IF_FLAG,"Go directly to gmin stepping" },
|
||||||
{ "gmin", OPT_GMIN,IF_SET|IF_REAL,"Minimum conductance" },
|
{ "gmin", OPT_GMIN,IF_SET|IF_REAL,"Minimum conductance" },
|
||||||
{ "gshunt", OPT_GSHUNT,IF_SET|IF_REAL,"Shunt conductance" },
|
{ "gshunt", OPT_GSHUNT,IF_SET|IF_REAL,"Shunt conductance" },
|
||||||
|
|
|
||||||
|
|
@ -1336,6 +1336,7 @@
|
||||||
<ClInclude Include="..\src\spicelib\parser\inppas1.h" />
|
<ClInclude Include="..\src\spicelib\parser\inppas1.h" />
|
||||||
<ClInclude Include="..\src\spicelib\parser\inppas2.h" />
|
<ClInclude Include="..\src\spicelib\parser\inppas2.h" />
|
||||||
<ClInclude Include="..\src\spicelib\parser\inppas3.h" />
|
<ClInclude Include="..\src\spicelib\parser\inppas3.h" />
|
||||||
|
<ClInclude Include="..\src\spicelib\parser\inppas4.h" />
|
||||||
<ClInclude Include="..\src\spicelib\parser\inpxx.h" />
|
<ClInclude Include="..\src\spicelib\parser\inpxx.h" />
|
||||||
<ClInclude Include="..\src\winmain.h" />
|
<ClInclude Include="..\src\winmain.h" />
|
||||||
<ClInclude Include=".\src\include\inttypes.h" />
|
<ClInclude Include=".\src\include\inttypes.h" />
|
||||||
|
|
@ -2655,6 +2656,7 @@
|
||||||
<ClCompile Include="..\src\spicelib\parser\inppas1.c" />
|
<ClCompile Include="..\src\spicelib\parser\inppas1.c" />
|
||||||
<ClCompile Include="..\src\spicelib\parser\inppas2.c" />
|
<ClCompile Include="..\src\spicelib\parser\inppas2.c" />
|
||||||
<ClCompile Include="..\src\spicelib\parser\inppas3.c" />
|
<ClCompile Include="..\src\spicelib\parser\inppas3.c" />
|
||||||
|
<ClCompile Include="..\src\spicelib\parser\inppas4.c" />
|
||||||
<ClCompile Include="..\src\spicelib\parser\inppname.c" />
|
<ClCompile Include="..\src\spicelib\parser\inppname.c" />
|
||||||
<ClCompile Include="..\src\spicelib\parser\inpptree.c" />
|
<ClCompile Include="..\src\spicelib\parser\inpptree.c" />
|
||||||
<ClCompile Include="..\src\spicelib\parser\inpsymt.c" />
|
<ClCompile Include="..\src\spicelib\parser\inpsymt.c" />
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue