unify OUTpBeginPlot() invocation

This commit is contained in:
rlar 2011-12-13 19:10:34 +00:00
parent c09058038c
commit 7d75ebcb81
15 changed files with 171 additions and 93 deletions

View File

@ -1,3 +1,20 @@
2011-12-13 Robert Larice
* src/frontend/outitf.c ,
* src/frontend/outitf.h ,
* src/frontend/spiceif.c ,
* src/include/ngspice/ifsim.h ,
* src/spicelib/analysis/acan.c ,
* src/spicelib/analysis/cktsens.c ,
* src/spicelib/analysis/dcop.c ,
* src/spicelib/analysis/dcpss.c ,
* src/spicelib/analysis/dctran.c ,
* src/spicelib/analysis/dctrcurv.c ,
* src/spicelib/analysis/distoan.c ,
* src/spicelib/analysis/noisean.c ,
* src/spicelib/analysis/pzan.c ,
* src/spicelib/analysis/tfanal.c :
unify OUTpBeginPlot() invocation
2011-12-13 Robert Larice
* src/spicelib/analysis/pzan.c :
unify OUTpBeginPlot() usage of ckt->CKTcurJob

View File

@ -88,7 +88,10 @@ static bool shouldstop = FALSE; /* Tell simulator to stop next time it asks. */
/* The two "begin plot" routines share all their internals... */
int
OUTpBeginPlot(CKTcircuit *circuitPtr, JOB *analysisPtr, IFuid analName, IFuid refName, int refType, int numNames, IFuid *dataNames, int dataType, void **plotPtr)
OUTpBeginPlot(CKTcircuit *circuitPtr, JOB *analysisPtr,
IFuid analName,
IFuid refName, int refType,
int numNames, IFuid *dataNames, int dataType, void **plotPtr)
{
char *name;
@ -109,7 +112,10 @@ if (ARCHme != 0) return(OK);
}
int
OUTwBeginPlot(CKTcircuit *circuitPtr, JOB *analysisPtr, IFuid analName, IFuid refName, int refType, int numNames, IFuid *dataNames, int dataType, void **plotPtr)
OUTwBeginPlot(CKTcircuit *circuitPtr, JOB *analysisPtr,
IFuid analName,
IFuid refName, int refType,
int numNames, IFuid *dataNames, int dataType, void **plotPtr)
{
#ifdef PARALLEL_ARCH
if (ARCHme != 0) return(OK);

View File

@ -39,10 +39,14 @@ typedef struct runDesc {
int windowCount;
} runDesc;
int OUTpBeginPlot(CKTcircuit *circuitPtr, JOB *analysisPtr, IFuid analName, IFuid refName,
int refType, int numNames, IFuid *dataNames, int dataType, void **plotPtr);
int OUTwBeginPlot(CKTcircuit *circuitPtr, JOB *analysisPtr, IFuid analName, IFuid refName,
int refType, int numNames, IFuid *dataNames, int dataType, void **plotPtr);
int OUTpBeginPlot(CKTcircuit *circuitPtr, JOB *analysisPtr,
IFuid analName,
IFuid refName, int refType,
int numNames, IFuid *dataNames, int dataType, void **plotPtr);
int OUTwBeginPlot(CKTcircuit *circuitPtr, JOB *analysisPtr,
IFuid analName,
IFuid refName, int refType,
int numNames, IFuid *dataNames, int dataType, void **plotPtr);
int OUTpData(void *plotPtr, IFvalue *refValue, IFvalue *valuePtr);
int OUTwReference(void *plotPtr, IFvalue *valuePtr, void **refPtr);
int OUTwData(void *plotPtr, int dataIndex, IFvalue *valuePtr, void *refPtr);

View File

@ -1550,10 +1550,11 @@ do {\
}
SPfrontEnd->IFnewUid (ckt, &timeUid, NULL,
"time", UID_OTHER, NULL);
error = SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob,
ckt->CKTcurJob->JOBname,timeUid,IF_REAL,numNames,nameList,
IF_REAL,&(((TRANan*)ckt->CKTcurJob)->TRANplot));
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
ckt->CKTcurJob->JOBname,
timeUid, IF_REAL,
numNames, nameList, IF_REAL, &(((TRANan*)ckt->CKTcurJob)->TRANplot));
if(error) {
fprintf(cp_err,"error in CKTnames\n");
return;

View File

@ -439,13 +439,17 @@ struct IFfrontEnd {
/* what time is it? */
int (*IFerror) (int, char *, IFuid *);
/* output an error or warning message */
int (*OUTpBeginPlot) (CKTcircuit *, JOB *, IFuid, IFuid, int,
int, IFuid *, int, void **);
int (*OUTpBeginPlot) (CKTcircuit *, JOB *,
IFuid,
IFuid, int,
int, IFuid *, int, void **);
/* start pointwise output plot */
int (*OUTpData) (void *, IFvalue *, IFvalue *);
/* data for pointwise plot */
int (*OUTwBeginPlot) (CKTcircuit *, JOB *, IFuid, IFuid, int,
int, IFuid *, int, void **);
int (*OUTwBeginPlot) (CKTcircuit *, JOB *,
IFuid,
IFuid, int,
int, IFuid *, int, void **);
/* start windowed output plot */
int (*OUTwReference) (void *, IFvalue *, void **);
/* independent vector for windowed plot */

View File

@ -153,9 +153,11 @@ ACan(CKTcircuit *ckt, int restart)
* Moreover the begin plot has not even been done yet at this
* point...
*/
SPfrontEnd->OUTpBeginPlot (ckt, ckt->CKTcurJob,
ckt->CKTcurJob->JOBname, NULL, IF_REAL, numNames, nameList,
IF_REAL,&acPlot);
SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
ckt->CKTcurJob->JOBname,
NULL, IF_REAL,
numNames, nameList, IF_REAL, &acPlot);
tfree(nameList);
ipc_send_dcop_prefix();
@ -176,9 +178,11 @@ ACan(CKTcircuit *ckt, int restart)
if (ckt->CKTkeepOpInfo) {
/* Dump operating point. */
error = SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob, "AC Operating Point",
NULL, IF_REAL, numNames, nameList, IF_REAL, &plot);
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"AC Operating Point",
NULL, IF_REAL,
numNames, nameList, IF_REAL, &plot);
if(error) return(error);
CKTdump(ckt, 0.0, plot);
SPfrontEnd->OUTendPlot (plot);
@ -187,10 +191,11 @@ ACan(CKTcircuit *ckt, int restart)
SPfrontEnd->IFnewUid (ckt, &freqUid, NULL,
"frequency", UID_OTHER, NULL);
error = SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob,
ckt->CKTcurJob->JOBname,freqUid,IF_REAL,numNames,nameList,
IF_COMPLEX,&acPlot);
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
ckt->CKTcurJob->JOBname,
freqUid, IF_REAL,
numNames, nameList, IF_COMPLEX, &acPlot);
tfree(nameList);
if(error) return(error);
@ -204,8 +209,11 @@ ACan(CKTcircuit *ckt, int restart)
freq = job->ACsaveFreq;
job->ACsaveFreq = 0; /* clear the 'old' frequency */
/* fix resume? saj, indeed !*/
error = SPfrontEnd->OUTpBeginPlot
(NULL, NULL, NULL, NULL, 0, 666, NULL, 666, &acPlot);
error = SPfrontEnd->OUTpBeginPlot (
NULL, NULL,
NULL,
NULL, 0,
666, NULL, 666, &acPlot);
/* saj*/
}

View File

@ -196,10 +196,11 @@ int sens_sens(CKTcircuit *ckt, int restart)
"frequency", UID_OTHER, NULL);
}
error = SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob,
ckt->CKTcurJob->JOBname, freq_name, IF_REAL, num_vars,
output_names, type, (void **) &sen_data);
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
ckt->CKTcurJob->JOBname,
freq_name, IF_REAL,
num_vars, output_names, type, &sen_data);
if (error)
return error;

View File

@ -45,9 +45,11 @@ DCop(CKTcircuit *ckt, int notused)
error = CKTnames(ckt,&numNames,&nameList);
if(error) return(error);
error = SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob, ckt->CKTcurJob->JOBname,
NULL, IF_REAL, numNames, nameList, IF_REAL, &plot);
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
ckt->CKTcurJob->JOBname,
NULL, IF_REAL,
numNames, nameList, IF_REAL, &plot);
tfree(nameList); /* va: nameList not used any longer, it was a memory leak */
if(error) return(error);

View File

@ -207,10 +207,11 @@ DCpss(CKTcircuit *ckt, int restart)
if(error) return(error);
SPfrontEnd->IFnewUid (ckt, &timeUid, NULL,
"time", UID_OTHER, NULL);
error = SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob,
"Time Domain Periodic Steady State",timeUid,IF_REAL,numNames,nameList,
IF_REAL, &(job->PSSplot_td));
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"Time Domain Periodic Steady State",
timeUid, IF_REAL,
numNames, nameList, IF_REAL, &(job->PSSplot_td));
tfree(nameList);
if(error) return(error);
@ -353,9 +354,11 @@ DCpss(CKTcircuit *ckt, int restart)
if(ckt->CKTminBreak==0) ckt->CKTminBreak=ckt->CKTmaxStep*5e-5;
firsttime=0;
/* To get rawfile working saj*/
error = SPfrontEnd->OUTpBeginPlot
(NULL, NULL, NULL, NULL, 0, 666, NULL, 666,
&(job->PSSplot_td));
error = SPfrontEnd->OUTpBeginPlot (
NULL, NULL,
NULL,
NULL, 0,
666, NULL, 666, &(job->PSSplot_td));
if(error) {
fprintf(stderr, "Couldn't relink rawfile\n");
return error;
@ -783,10 +786,11 @@ nextTime:
if (error) return (error);
SPfrontEnd->IFnewUid (ckt, &freqUid, NULL,
"frequency", UID_OTHER, NULL);
error = SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob,
"Frequency Domain Periodic Steady State",freqUid,IF_REAL,numNames,nameList,
IF_REAL, &(job->PSSplot_fd));
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"Frequency Domain Periodic Steady State",
freqUid, IF_REAL,
numNames, nameList, IF_REAL, &(job->PSSplot_fd));
tfree(nameList);
/* ************************* */
/* Fourier transform on data */

View File

@ -172,10 +172,11 @@ DCtran(CKTcircuit *ckt,
if(error) return(error);
SPfrontEnd->IFnewUid (ckt, &timeUid, NULL,
"time", UID_OTHER, NULL);
error = SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob,
ckt->CKTcurJob->JOBname,timeUid,IF_REAL,numNames,nameList,
IF_REAL, &(job->TRANplot));
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
ckt->CKTcurJob->JOBname,
timeUid, IF_REAL,
numNames, nameList, IF_REAL, &(job->TRANplot));
tfree(nameList);
if(error) return(error);
@ -362,9 +363,11 @@ DCtran(CKTcircuit *ckt,
if(ckt->CKTminBreak==0) ckt->CKTminBreak=ckt->CKTmaxStep*5e-5;
firsttime=0;
/* To get rawfile working saj*/
error = SPfrontEnd->OUTpBeginPlot
(NULL, NULL, NULL, NULL, 0, 666, NULL, 666,
&(job->TRANplot));
error = SPfrontEnd->OUTpBeginPlot (
NULL, NULL,
NULL,
NULL, 0,
666, NULL, 666, &(job->TRANplot));
if(error) {
fprintf(stderr, "Couldn't relink rawfile\n");
return error;

View File

@ -67,8 +67,11 @@ DCtrCurv(CKTcircuit *ckt, int restart)
/* continuing */
i = job->TRCVnestState;
/* resume to work? saj*/
error = SPfrontEnd->OUTpBeginPlot
(NULL, NULL, NULL, NULL, 0, 666, NULL, 666, &plot);
error = SPfrontEnd->OUTpBeginPlot (
NULL, NULL,
NULL,
NULL, 0,
666, NULL, 666, &plot);
goto resume;
}
ckt->CKTtime = 0;
@ -215,9 +218,11 @@ found:;
} /* TEMP_CODE */
} /* rcode*/
error = SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob, ckt->CKTcurJob->JOBname,
varUid,IF_REAL,numNames,nameList, IF_REAL,&plot);
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
ckt->CKTcurJob->JOBname,
varUid, IF_REAL,
numNames, nameList, IF_REAL, &plot);
if(error) return(error);
/* now have finished the initialization - can start doing hard part */

View File

@ -107,9 +107,11 @@ time1 = SPfrontEnd->IFseconds();
if (ckt->CKTkeepOpInfo) {
/* Dump operating point. */
error = SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob, "Distortion Operating Point",
NULL, IF_REAL, numNames, nameList, IF_REAL, &acPlot);
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"Distortion Operating Point",
NULL, IF_REAL,
numNames, nameList, IF_REAL, &acPlot);
if(error) return(error);
CKTdump(ckt, 0.0, acPlot);
SPfrontEnd->OUTendPlot (acPlot);
@ -516,9 +518,11 @@ time1 = SPfrontEnd->IFseconds();
if(error) return(error);
SPfrontEnd->IFnewUid (ckt, &freqUid, NULL,
"frequency", UID_OTHER, NULL);
SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob, "DISTORTION - 2nd harmonic",
freqUid,IF_REAL, numNames,nameList,IF_COMPLEX,&acPlot);
SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"DISTORTION - 2nd harmonic",
freqUid, IF_REAL,
numNames, nameList, IF_COMPLEX, &acPlot);
if (job->DstepType != LINEAR) {
SPfrontEnd->OUTattributes (acPlot, NULL,
OUT_SCALE_LOG, NULL);
@ -540,9 +544,11 @@ time1 = SPfrontEnd->IFseconds();
if(error) return(error);
SPfrontEnd->IFnewUid (ckt, &freqUid, NULL,
"frequency", UID_OTHER, NULL);
SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob, "DISTORTION - 3rd harmonic", freqUid, IF_REAL,
numNames,nameList,IF_COMPLEX,&acPlot);
SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"DISTORTION - 3rd harmonic",
freqUid, IF_REAL,
numNames, nameList, IF_COMPLEX, &acPlot);
for (i=0; i< displacement ; i++)
{
DkerProc(D_THRF1,*(job->r3H11stor + i),
@ -562,9 +568,11 @@ time1 = SPfrontEnd->IFseconds();
if(error) return(error);
SPfrontEnd->IFnewUid (ckt, &freqUid, NULL,
"frequency", UID_OTHER, NULL);
SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob, "DISTORTION - IM: f1+f2", freqUid, IF_REAL,
numNames,nameList,IF_COMPLEX,&acPlot);
SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"DISTORTION - IM: f1+f2",
freqUid, IF_REAL,
numNames, nameList, IF_COMPLEX, &acPlot);
for (i=0; i< displacement ; i++)
{
DkerProc(D_F1PF2,*(job->r2H12stor + i),
@ -582,9 +590,11 @@ time1 = SPfrontEnd->IFseconds();
if(error) return(error);
SPfrontEnd->IFnewUid (ckt, &freqUid, NULL,
"frequency", UID_OTHER, NULL);
SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob, "DISTORTION - IM: f1-f2", freqUid, IF_REAL,
numNames,nameList,IF_COMPLEX,&acPlot);
SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"DISTORTION - IM: f1-f2",
freqUid, IF_REAL,
numNames, nameList, IF_COMPLEX, &acPlot);
for (i=0; i< displacement ; i++)
{
DkerProc(D_F1MF2,
@ -603,9 +613,11 @@ time1 = SPfrontEnd->IFseconds();
if(error) return(error);
SPfrontEnd->IFnewUid (ckt, &freqUid, NULL,
"frequency", UID_OTHER, NULL);
SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob, "DISTORTION - IM: 2f1-f2", freqUid, IF_REAL,
numNames,nameList,IF_COMPLEX,&acPlot);
SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"DISTORTION - IM: 2f1-f2",
freqUid, IF_REAL,
numNames, nameList, IF_COMPLEX, &acPlot);
for (i=0; i< displacement ; i++)
{
DkerProc(D_2F1MF2,

View File

@ -132,10 +132,11 @@ NOISEan (CKTcircuit *ckt, int restart)
* plot
*/
error = SPfrontEnd->OUTpBeginPlot (ckt, ckt->CKTcurJob,
"Noise Spectral Density Curves - (V^2 or A^2)/Hz",
freqUid,IF_REAL,data->numPlots,data->namelist,IF_REAL,
&(data->NplotPtr));
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"Noise Spectral Density Curves - (V^2 or A^2)/Hz",
freqUid, IF_REAL,
data->numPlots, data->namelist, IF_REAL, &(data->NplotPtr));
if (error) return(error);
if (job->NstpType != LINEAR) {
@ -166,8 +167,11 @@ NOISEan (CKTcircuit *ckt, int restart)
data->outNoiz = job->NsavOnoise;
data->inNoise = job->NsavInoise;
/* saj resume rawfile fix*/
error = SPfrontEnd->OUTpBeginPlot
(NULL, NULL, NULL, NULL, 0, 666, NULL, 666, &(data->NplotPtr));
error = SPfrontEnd->OUTpBeginPlot (
NULL, NULL,
NULL,
NULL, 0,
666, NULL, 666, &(data->NplotPtr));
/*saj*/
}
@ -275,10 +279,11 @@ NOISEan (CKTcircuit *ckt, int restart)
if (error) return(error);
SPfrontEnd->OUTpBeginPlot (ckt, ckt->CKTcurJob,
"Integrated Noise - V^2 or A^2",
NULL, 0, data->numPlots, data->namelist, IF_REAL,
&(data->NplotPtr));
SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"Integrated Noise - V^2 or A^2",
NULL, 0,
data->numPlots, data->namelist, IF_REAL, &(data->NplotPtr));
error = CKTnoise(ckt,INT_NOIZ,N_CALC,data);
if (error) return(error);

View File

@ -46,9 +46,11 @@ PZan(CKTcircuit *ckt, int reset)
/* Dump operating point. */
error = CKTnames(ckt,&numNames,&nameList);
if(error) return(error);
error = SPfrontEnd->OUTpBeginPlot (ckt,
ckt->CKTcurJob, "Distortion Operating Point",
NULL, IF_REAL, numNames, nameList, IF_REAL, &plot);
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
"Distortion Operating Point",
NULL, IF_REAL,
numNames, nameList, IF_REAL, &plot);
if(error) return(error);
CKTdump(ckt, 0.0, plot);
SPfrontEnd->OUTendPlot (plot);
@ -148,9 +150,11 @@ PZpost(CKTcircuit *ckt)
name, UID_OTHER, NULL);
}
SPfrontEnd->OUTpBeginPlot (ckt, ckt->CKTcurJob, ckt->CKTcurJob->JOBname,
NULL, 0, job->PZnPoles + job->PZnZeros, namelist,
IF_COMPLEX, &pzPlotPtr);
SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
ckt->CKTcurJob->JOBname,
NULL, 0,
job->PZnPoles + job->PZnZeros, namelist, IF_COMPLEX, &pzPlotPtr);
j = 0;
if (job->PZnPoles > 0) {

View File

@ -113,9 +113,11 @@ TFanal(CKTcircuit *ckt, int restart)
name, UID_OTHER, NULL);
}
error = SPfrontEnd->OUTpBeginPlot (ckt, ckt->CKTcurJob,
job->JOBname, NULL, 0, 3,
uids,IF_REAL,&plotptr);
error = SPfrontEnd->OUTpBeginPlot (
ckt, ckt->CKTcurJob,
job->JOBname,
NULL, 0,
3, uids, IF_REAL, &plotptr);
if(error) return(error);
/*find transfer function */