removed ancient PARALLEL_ARCH feature

removed variables
  ARCHme
  ARCHsize

removed functions
  SMPcombine()
  SMPcCombine()
  CKTpartition()

removed files
  spcombin.c
  cktpartn.c

removed struct slots
  STATcombineTime
  STATtranCombTime
  STATacCombTime
  GENowner
  <MODEL>owner
This commit is contained in:
Francesco Lannutti 2012-10-22 23:06:25 +02:00
parent cb0ff8049a
commit c23bd59c44
504 changed files with 3 additions and 1417 deletions

View File

@ -84,11 +84,6 @@ OUTpBeginPlot(CKTcircuit *circuitPtr, JOB *analysisPtr,
{
char *name;
#ifdef PARALLEL_ARCH
if (ARCHme != 0)
return (OK);
#endif
if (ft_curckt->ci_ckt == circuitPtr)
name = ft_curckt->ci_name;
else
@ -108,11 +103,6 @@ OUTwBeginPlot(CKTcircuit *circuitPtr, JOB *analysisPtr,
int numNames, IFuid *dataNames, int dataType, runDesc **plotPtr)
{
#ifdef PARALLEL_ARCH
if (ARCHme != 0)
return (OK);
#endif
return (beginPlot(analysisPtr, circuitPtr, "circuit name",
analName, refName, refType, numNames,
dataNames, dataType, TRUE,
@ -448,11 +438,6 @@ OUTpData(runDesc *plotPtr, IFvalue *refValue, IFvalue *valuePtr)
runDesc *run = plotPtr; // FIXME
int i;
#ifdef PARALLEL_ARCH
if (ARCHme != 0)
return (OK);
#endif
run->pointCount++;
#ifdef TCL_MODULE
@ -675,11 +660,6 @@ OUTendPlot(runDesc *plotPtr)
{
runDesc *run = plotPtr; // FIXME
#ifdef PARALLEL_ARCH
if (ARCHme != 0)
return (OK);
#endif
if (run->writeOut) {
fileEnd(run);
} else {

View File

@ -250,9 +250,6 @@ dosim(
ft_intrpt = FALSE;
/* command "run" is given with rawfile name in wl */
if (dofile) {
#ifdef PARALLEL_ARCH
if (ARCHme == 0) {
#endif /* PARALLEL_ARCH */
if (!*wl->wl_word)
rawfileFp = stdout;
#if defined(__MINGW32__) || defined(_MSC_VER)
@ -283,11 +280,6 @@ dosim(
}
#endif /* __MINGW32__ */
rawfileBinary = !ascii;
#ifdef PARALLEL_ARCH
} else {
rawfileFp = NULL;
}
#endif /* PARALLEL_ARCH */
} else {
rawfileFp = NULL;
}

View File

@ -98,9 +98,6 @@ com_resume(wordlist *wl)
}
if (dofile) {
#ifdef PARALLEL_ARCH
if (ARCHme == 0) {
#endif /* PARALLEL_ARCH */
if (!last_used_rawfile)
rawfileFp = stdout;
#if defined(__MINGW32__) || defined(_MSC_VER)
@ -129,11 +126,6 @@ com_resume(wordlist *wl)
return;
}
#endif
#ifdef PARALLEL_ARCH
} else {
rawfileFp = NULL;
}
#endif /* PARALLEL_ARCH */
rawfileBinary = !ascii;
} else {
rawfileFp = NULL;

View File

@ -345,7 +345,6 @@ extern int CKTop(CKTcircuit *, long, long, int);
extern int CKTpModName(char *, IFvalue *, CKTcircuit *, int , IFuid , GENmodel **);
extern int CKTpName(char *, IFvalue *, CKTcircuit *, int , char *, GENinstance **);
extern int CKTparam(CKTcircuit *, GENinstance *, int , IFvalue *, IFvalue *);
extern int CKTpartition(register CKTcircuit *ckt);
extern int CKTpzFindZeros(CKTcircuit *, PZtrial **, int *);
extern int CKTpzLoad(CKTcircuit *, SPcomplex *);
extern int CKTpzSetup(CKTcircuit *, int);

View File

@ -20,7 +20,6 @@ struct GENinstance {
GENinstance *GENnextInstance; /* pointer to next instance of
* current model*/
IFuid GENname; /* pointer to character string naming this instance */
int GENowner; /* number of owner process */
int GENstate; /* state index number */
int GENnode1; /* appropriate node numbers */
int GENnode2; /* appropriate node numbers */

View File

@ -232,9 +232,6 @@ extern char *Help_Path;
extern char *Lib_Path;
extern char *Inp_Path;
extern int ARCHme; /* My logical process number */
extern int ARCHsize; /* Total number of processes */
#if ADMS >= 3
int load_vadev(CKTcircuit *ckt, char *name);
#endif

View File

@ -33,20 +33,17 @@ typedef struct {
double STATdecompTime; /* total time spent in LU decomposition */
double STATsolveTime; /* total time spent in F-B subst. */
double STATreorderTime; /* total time spent reordering */
double STATcombineTime; /* total time spent combining */
double STATsyncTime; /* total time spent sync'ing after load */
double STATtranTime; /* transient analysis time */
double STATtranDecompTime; /* time spent in transient LU decomposition */
double STATtranSolveTime; /* time spent in transient F-B subst. */
double STATtranLoadTime; /* time spent in transient device loading */
double STATtranTruncTime; /* time spent calculating LTE and new step */
double STATtranCombTime; /* time spent in transient combining */
double STATtranSyncTime; /* time spent in transient sync'ing */
double STATacTime; /* AC analysis time */
double STATacDecompTime; /* time spent in AC LU decomposition */
double STATacSolveTime; /* time spent in AC F-B subst. */
double STATacLoadTime; /* time spent in AC device loading */
double STATacCombTime; /* time spent in AC combining */
double STATacSyncTime; /* time spent in transient sync'ing */
STATdevList *STATdevNum; /* PN: Number of instances and models for each device */
} STATistics;
@ -106,9 +103,6 @@ typedef struct {
#define OPT_ORIGNZ 52
#define OPT_FILLNZ 53
#define OPT_TOTALNZ 54
#define OPT_COMBTIME 55
#define OPT_TRANCOMB 56
#define OPT_ACCOMB 57
#define OPT_SYNCTIME 58
#define OPT_TRANSYNC 59
#define OPT_ACSYNC 60

View File

@ -39,10 +39,5 @@ SMPelement * SMPfindElt( SMPmatrix *, int , int , int );
int SMPcZeroCol(SMPmatrix *eMatrix, int Col);
int SMPcAddCol(SMPmatrix *eMatrix, int Accum_Col, int Addend_Col);
int SMPzeroRow(SMPmatrix *eMatrix, int Row);
#ifdef PARALLEL_ARCH
void SMPcombine(SMPmatrix *Matrix, double RHS[], double Spare[]);
void SMPcCombine(SMPmatrix *Matrix, double RHS[], double Spare[],
double iRHS[], double iSpare[]);
#endif
#endif /*SMP*/

View File

@ -30,9 +30,6 @@ Author: 1985 Thomas L. Quarles
#define E_NOF2SRC (E_PRIVATE+15) /* no source at F2 for IM disto analysis */
#define E_NODISTO (E_PRIVATE+16) /* no distortion analysis - NODISTO defined */
#define E_NONOISE (E_PRIVATE+17) /* no noise analysis - NONOISE defined */
#ifdef PARALLEL_ARCH
#define E_MULTIERR (E_PRIVATE+18) /* multiple errors from diff. processes */
#endif /* PARALLEL_ARCH */
const char *SPerror(int type);

View File

@ -105,10 +105,6 @@ char *ft_rawfile = "rawspice.raw";
/* Frontend and circuit options */
IFsimulator *ft_sim = NULL;
/* (Virtual) Machine architecture parameters */
int ARCHme;
int ARCHsize;
char *errRtn; /* name of the routine declaring error */
char *errMsg; /* descriptive message about what went wrong */
char *cp_program; /* program name 'ngspice' */
@ -494,13 +490,6 @@ static void
sp_shutdown(int exitval)
{
destroy_ivars();
#ifdef PARALLEL_ARCH
{
Error("Fatal error in SPICE", -1);
} else {
PEND_();
}
#endif /* PARALLEL_ARCH */
#ifdef HAS_WINDOWS
if (exitval == EXIT_BAD)
winmessage("Fatal error in SPICE");
@ -833,19 +822,6 @@ main(int argc, char **argv)
application_name = argv[0];
#endif
#ifdef PARALLEL_ARCH
PBEGIN_(argc, argv);
ARCHme = NODEID_();
ARCHsize = NNODES_();
SETDBG_(&debug_flag);
fprintf( stderr, "On-line: process %d of %d total.\n", ARCHme, ARCHsize );
evlog(EVKEY_ENABLE, EVKEY_EVENT, "On-line", EVKEY_DUMP, EVKEY_DISABLE,
EVKEY_LAST_ARG);
#else
ARCHme = 0;
ARCHsize = 1;
#endif
ivars(argv[0]);
cp_in = stdin;
@ -950,11 +926,7 @@ main(int argc, char **argv)
if (optarg) {
/* turn off buffering for stdout */
setbuf(stdout, NULL);
#ifdef PARALLEL_ARCH
sprintf (log_file, "%s%03d", optarg, ARCHme);
#else
sprintf (log_file, "%s", optarg);
#endif
orflag = TRUE;
}
break;

View File

@ -5,7 +5,6 @@ noinst_LTLIBRARIES = libsparse.la
libsparse_la_SOURCES = \
spalloc.c \
spbuild.c \
spcombin.c \
spconfig.h \
spdefs.h \
spextra.c \

View File

@ -66,10 +66,6 @@
#include "spconfig.h"
#include "ngspice/spmatrix.h"
#include "spdefs.h"
#ifdef PARALLEL_ARCH
#define COMBINE 1
#endif /* PARALLEL_ARCH */
/*
* Function declarations

View File

@ -1,300 +0,0 @@
/*
* MATRIX UTILITY MODULE
*
* Author: Advising professor:
* Kenneth S. Kundert Alberto Sangiovanni-Vincentelli
* UC Berkeley
*
* This file contains various optional utility routines.
*
* >>> User accessible functions contained in this file:
* spCombine
*
* >>> Other functions contained in this file:
*/
/*
* Revision and copyright information.
*
* Copyright (c) 1985,86,87,88,89,90
* by Kenneth S. Kundert and the University of California.
*
* Permission to use, copy, modify, and distribute this software and
* its documentation for any purpose and without fee is hereby granted,
* provided that the copyright notices appear in all copies and
* supporting documentation and that the authors and the University of
* California are properly credited. The authors and the University of
* California make no representations as to the suitability of this
* software for any purpose. It is provided `as is', without express
* or implied warranty.
*/
/*
* IMPORTS
*
* >>> Import descriptions:
* spConfig.h
* Macros that customize the sparse matrix routines.
* spMatrix.h
* Macros and declarations to be imported by the user.
* spDefs.h
* Matrix type and macro definitions for the sparse matrix routines.
*/
#define spINSIDE_SPARSE
#include "spconfig.h"
#include "ngspice/spmatrix.h"
#include "spdefs.h"
#ifdef PARALLEL_ARCH
#define COMBINE 1
#endif /* PARALLEL_ARCH */
#if COMBINE
static void CombineComplexMatrix( MatrixPtr,
RealVector, RealVector, RealVector, RealVector );
static void ClearBuffer( MatrixPtr, int, int, ElementPtr );
static void ClearComplexBuffer( MatrixPtr, int, int, ElementPtr );
/*
* COMBINE MATRICES ON A MULTIPROCESSOR
*
* >>> Arguments:
* eMatrix <input> (char *)
* Pointer to the matrix to be combined.
*
* >>> Local variables:
* Size (int)
* Local version of the size of the matrix.
* pElement (ElementPtr)
* Pointer to an element in the matrix.
*/
#define SPBSIZE 256*1024
static double Buffer[SPBSIZE];
void
spCombine( eMatrix, RHS, Spare, iRHS, iSolution )
char *eMatrix;
RealVector RHS, Spare, iRHS, iSolution;
{
MatrixPtr Matrix = (MatrixPtr)eMatrix;
register ElementPtr pElement;
register int I, Size;
ElementPtr FirstBufElement, pLastElement;
int FirstBufCol, BufIndex;
struct ElementListNodeStruct *pListNode;
long type = MT_COMBINE, length = Matrix->Size + 1;
/* Begin `spCombine'. */
assert( IS_VALID(Matrix) && !Matrix->Factored );
if (!Matrix->InternalVectorsAllocated)
spcCreateInternalVectors( Matrix );
if (Matrix->Complex) {
CombineComplexMatrix( Matrix, RHS, Spare, iRHS, iSolution );
return;
}
Size = Matrix->Size;
/* Mark original non-zeroes. */
pListNode = Matrix->FirstElementListNode;
while (pListNode != NULL)
{ pElement = pListNode->pElementList;
if (pListNode == Matrix->LastElementListNode) {
pLastElement = Matrix->NextAvailElement - 1;
} else {
pLastElement = &(pElement[ pListNode->NumberOfElementsInList - 1 ]);
}
while (pElement <= pLastElement)
{
(pElement++)->Col = -1;
}
pListNode = pListNode->Next;
}
/* Stripmine the communication to reduce overhead */
BufIndex = 0;
FirstBufCol = 1;
FirstBufElement = Matrix->FirstInCol[ FirstBufCol ];
for (I = 1; I <= Size; I++)
{
pElement = Matrix->FirstInCol[I];
while (pElement != NULL)
{
if ( BufIndex >= SPBSIZE )
{ /* Buffer is Full. */
ClearBuffer( Matrix, BufIndex, FirstBufCol, FirstBufElement );
BufIndex = 0;
FirstBufCol = I;
FirstBufElement = pElement;
}
if ( pElement->Col == -1 ) {
Buffer[ BufIndex++ ] = pElement->Real;
}
pElement = pElement->NextInCol;
}
}
/* Clean out the last, partially full buffer. */
if ( BufIndex != 0 )
{
ClearBuffer( Matrix, BufIndex, FirstBufCol, FirstBufElement );
}
/* Sum all RHS's together */
DGOP_( &type, RHS, &length, "+" );
return;
}
static void
CombineComplexMatrix( Matrix, RHS, Spare, iRHS, iSolution )
MatrixPtr Matrix;
RealVector RHS, Spare, iRHS, iSolution;
{
register ElementPtr pElement;
register int I, Size;
ElementPtr FirstBufElement, pLastElement;
int FirstBufCol, BufIndex;
struct ElementListNodeStruct *pListNode;
long type = MT_COMBINE, length = Matrix->Size + 1;
/* Begin `CombineComplexMatrix'. */
assert(Matrix->Complex);
Size = Matrix->Size;
/* Mark original non-zeroes. */
pListNode = Matrix->FirstElementListNode;
while (pListNode != NULL)
{ pElement = pListNode->pElementList;
if (pListNode == Matrix->LastElementListNode) {
pLastElement = Matrix->NextAvailElement - 1;
} else {
pLastElement = &(pElement[ pListNode->NumberOfElementsInList - 1 ]);
}
while (pElement <= pLastElement)
{
(pElement++)->Col = -1;
}
pListNode = pListNode->Next;
}
/* Stripmine the communication to reduce overhead */
BufIndex = 0;
FirstBufCol = 1;
FirstBufElement = Matrix->FirstInCol[ FirstBufCol ];
for (I = 1; I <= Size; I++)
{
pElement = Matrix->FirstInCol[I];
while (pElement != NULL)
{
if ( BufIndex >= SPBSIZE/2 )
{ /* Buffer is Full. */
ClearComplexBuffer( Matrix, BufIndex, FirstBufCol,
FirstBufElement );
BufIndex = 0;
FirstBufCol = I;
FirstBufElement = pElement;
}
if ( pElement->Col == -1 ) {
Buffer[ BufIndex++ ] = pElement->Real;
Buffer[ BufIndex++ ] = pElement->Imag;
}
pElement = pElement->NextInCol;
}
}
/* Clean out the last, partially full buffer. */
if ( BufIndex != 0 )
{
ClearComplexBuffer( Matrix, BufIndex, FirstBufCol, FirstBufElement );
}
/* Sum all RHS's together */
DGOP_( &type, RHS, &length, "+" );
DGOP_( &type, iRHS, &length, "+" );
return;
}
static void
ClearBuffer( Matrix, NumElems, StartCol, StartElement )
MatrixPtr Matrix;
int NumElems, StartCol;
ElementPtr StartElement;
{
register ElementPtr pElement = StartElement;
register int Index, Col = StartCol;
long type = MT_COMBINE;
/* First globalize the buffer. */
DGOP_( &type, Buffer, &NumElems, "+" );
/* Now, copy all of the data back into the matrix. */
for ( Index = 0; Index < NumElems; Index++ )
{
if ( pElement == NULL )
{
pElement = Matrix->FirstInCol[ ++Col ];
}
while ( pElement->Col != -1 ) {
pElement = pElement->NextInCol;
if ( pElement == NULL )
{
pElement = Matrix->FirstInCol[ ++Col ];
}
}
pElement->Real = Buffer[ Index ];
pElement->Col = Col;
pElement = pElement->NextInCol;
}
}
static void
ClearComplexBuffer( Matrix, DataCount, StartCol, StartElement )
MatrixPtr Matrix;
int DataCount, StartCol;
ElementPtr StartElement;
{
register ElementPtr pElement = StartElement;
register int Index, Col = StartCol;
long type = MT_COMBINE;
/* First globalize the buffer. */
DGOP_( &type, Buffer, &DataCount, "+" );
/* Now, copy all of the data back into the matrix. */
for ( Index = 0; Index < DataCount; )
{
if ( pElement == NULL )
{
pElement = Matrix->FirstInCol[ ++Col ];
}
while ( pElement->Col != -1 ) {
pElement = pElement->NextInCol;
if ( pElement == NULL )
{
pElement = Matrix->FirstInCol[ ++Col ];
}
}
pElement->Real = Buffer[ Index++ ];
pElement->Imag = Buffer[ Index++ ];
pElement->Col = Col;
pElement = pElement->NextInCol;
}
}
#endif /* COMBINE */

View File

@ -31,8 +31,6 @@
* SMPcProdDiag
* LoadGmin
* SMPfindElt
* SMPcombine
* SMPcCombine
*/
/*
@ -558,26 +556,3 @@ SMPzeroRow(SMPmatrix *eMatrix, int Row)
return spError( Matrix );
}
#ifdef PARALLEL_ARCH
/*
* SMPcombine()
*/
void
SMPcombine(SMPmatrix *Matrix, double RHS[], double Spare[])
{
spSetReal( Matrix );
spCombine( Matrix, RHS, Spare, NULL, NULL );
}
/*
* SMPcCombine()
*/
void
SMPcCombine(SMPmatrix *Matrix, double RHS[], double Spare[],
double iRHS[], double iSpare[])
{
spSetComplex( Matrix );
spCombine( Matrix, RHS, Spare, iRHS, iSpare );
}
#endif /* PARALLEL_ARCH */

View File

@ -100,9 +100,6 @@ seconds(void)
int ret;
struct rusage ruse;
#ifdef PARALLEL_ARCH
return (TCGTIME_());
#else
memset(&ruse, 0, sizeof(ruse));
ret = getrusage(RUSAGE_SELF, &ruse);
if(ret == -1) {
@ -110,7 +107,6 @@ seconds(void)
return 1;
}
return ((double)ruse.ru_utime.tv_sec + (double) ruse.ru_utime.tv_usec / 1000000.0);
#endif /* PARALLEL_ARCH */
#else
#ifdef HAVE_TIMES

View File

@ -50,7 +50,6 @@ libckt_la_SOURCES = \
cktnum2n.c \
cktop.c \
cktparam.c \
cktpartn.c \
cktpmnam.c \
cktpname.c \
cktpzld.c \

View File

@ -29,7 +29,6 @@ do { \
startdTime = ckt->CKTstat->STATdecompTime; \
startsTime = ckt->CKTstat->STATsolveTime; \
startlTime = ckt->CKTstat->STATloadTime; \
startcTime = ckt->CKTstat->STATcombineTime; \
startkTime = ckt->CKTstat->STATsyncTime; \
} while(0)
@ -40,7 +39,6 @@ do { \
ckt->CKTstat->STATacDecompTime += ckt->CKTstat->STATdecompTime - startdTime; \
ckt->CKTstat->STATacSolveTime += ckt->CKTstat->STATsolveTime - startsTime; \
ckt->CKTstat->STATacLoadTime += ckt->CKTstat->STATloadTime - startlTime; \
ckt->CKTstat->STATacCombTime += ckt->CKTstat->STATcombineTime - startcTime; \
ckt->CKTstat->STATacSyncTime += ckt->CKTstat->STATsyncTime - startkTime; \
} while(0)
@ -55,7 +53,6 @@ ACan(CKTcircuit *ckt, int restart)
double startdTime;
double startsTime;
double startlTime;
double startcTime;
double startkTime;
double startTime;
int error;
@ -405,9 +402,6 @@ CKTacLoad(CKTcircuit *ckt)
int i;
int size;
int error;
#ifdef PARALLEL_ARCH
long type = MT_ACLOAD, length = 1;
#endif /* PARALLEL_ARCH */
double startTime;
startTime = SPfrontEnd->IFseconds();
@ -421,11 +415,7 @@ CKTacLoad(CKTcircuit *ckt)
for (i=0;i<DEVmaxnum;i++) {
if ( DEVices[i] && DEVices[i]->DEVacLoad && ckt->CKThead[i] ) {
error = DEVices[i]->DEVacLoad (ckt->CKThead[i], ckt);
#ifdef PARALLEL_ARCH
if (error) goto combine;
#else
if(error) return(error);
#endif /* PARALLEL_ARCH */
}
}
@ -457,24 +447,6 @@ CKTacLoad(CKTcircuit *ckt)
#endif
#ifdef PARALLEL_ARCH
combine:
ckt->CKTstat->STATloadTime += SPfrontEnd->IFseconds() - startTime;
startTime = SPfrontEnd->IFseconds();
/* See if any of the DEVload functions bailed. If not, proceed. */
IGOP_( &type, &error, &length, "max" );
ckt->CKTstat->STATsyncTime += SPfrontEnd->IFseconds() - startTime;
if (error == OK) {
startTime = SPfrontEnd->IFseconds();
SMPcCombine( ckt->CKTmatrix, ckt->CKTrhs, ckt->CKTrhsSpare,
ckt->CKTirhs, ckt->CKTirhsSpare );
ckt->CKTstat->STATcombineTime += SPfrontEnd->IFseconds() - startTime;
return(OK);
} else {
return(error);
}
#else
ckt->CKTstat->STATloadTime += SPfrontEnd->IFseconds() - startTime;
return(OK);
#endif /* PARALLEL_ARCH */
}

View File

@ -85,9 +85,6 @@ CKTacct(CKTcircuit *ckt, JOB *anal, int which, IFvalue *val)
case OPT_SYNCTIME:
val->rValue = ckt->CKTstat->STATsyncTime;
break;
case OPT_COMBTIME:
val->rValue = ckt->CKTstat->STATcombineTime;
break;
case OPT_REORDTIME:
val->rValue = ckt->CKTstat->STATreorderTime;
break;
@ -103,9 +100,6 @@ CKTacct(CKTcircuit *ckt, JOB *anal, int which, IFvalue *val)
case OPT_TRANSYNC:
val->rValue = ckt->CKTstat->STATtranSyncTime;
break;
case OPT_TRANCOMB:
val->rValue = ckt->CKTstat->STATtranCombTime;
break;
case OPT_TRANDECOMP:
val->rValue = ckt->CKTstat->STATtranDecompTime;
break;
@ -121,9 +115,6 @@ CKTacct(CKTcircuit *ckt, JOB *anal, int which, IFvalue *val)
case OPT_ACSYNC:
val->rValue = ckt->CKTstat->STATacSyncTime;
break;
case OPT_ACCOMB:
val->rValue = ckt->CKTstat->STATacCombTime;
break;
case OPT_ACDECOMP:
val->rValue = ckt->CKTstat->STATacDecompTime;
break;

View File

@ -34,10 +34,6 @@ CKTload(CKTcircuit *ckt)
double startTime;
CKTnode *node;
int error;
#ifdef PARALLEL_ARCH
int ibuf[2];
long type = MT_LOAD, length = 2;
#endif /* PARALLEL_ARCH */
#ifdef STEPDEBUG
int noncon;
#endif /* STEPDEBUG */
@ -74,11 +70,7 @@ CKTload(CKTcircuit *ckt)
noncon = ckt->CKTnoncon;
}
#endif /* STEPDEBUG */
#ifdef PARALLEL_ARCH
if (error) goto combine;
#else
if (error) return(error);
#endif /* PARALLEL_ARCH */
}
}
@ -167,31 +159,8 @@ CKTload(CKTcircuit *ckt)
/* SMPprint(ckt->CKTmatrix, stdout); if you want to debug, this is a
good place to start ... */
#ifdef PARALLEL_ARCH
combine:
ckt->CKTstat->STATloadTime += SPfrontEnd->IFseconds() - startTime;
startTime = SPfrontEnd->IFseconds();
/* See if any of the DEVload functions bailed. If not, proceed. */
ibuf[0] = error;
ibuf[1] = ckt->CKTnoncon;
IGOP_(&type, ibuf, &length, "+");
ckt->CKTnoncon = ibuf[1];
ckt->CKTstat->STATsyncTime += SPfrontEnd->IFseconds() - startTime;
if (ibuf[0] == OK) {
startTime = SPfrontEnd->IFseconds();
SMPcombine(ckt->CKTmatrix, ckt->CKTrhs, ckt->CKTrhsSpare);
ckt->CKTstat->STATcombineTime += SPfrontEnd->IFseconds() - startTime;
return(OK);
} else {
if (ibuf[0] != error) {
error = E_MULTIERR;
}
return(error);
}
#else
ckt->CKTstat->STATloadTime += SPfrontEnd->IFseconds()-startTime;
return(OK);
#endif /* PARALLEL_ARCH */
}
static int

View File

@ -95,10 +95,6 @@ CKTconvTest (CKTcircuit * ckt)
{
int i;
int error = OK;
#ifdef PARALLEL_ARCH
int ibuf[2];
long type = MT_CONV, length = 2;
#endif /* PARALLEL_ARCH */
for (i = 0; i < DEVmaxnum; i++)
{
@ -106,10 +102,6 @@ CKTconvTest (CKTcircuit * ckt)
{
error = DEVices[i]->DEVconvTest (ckt->CKThead[i], ckt);
}
#ifdef PARALLEL_ARCH
if (error || ckt->CKTnoncon)
goto combine;
#else
if (error)
return (error);
if (ckt->CKTnoncon)
@ -118,23 +110,8 @@ CKTconvTest (CKTcircuit * ckt)
* DEVices[i]->DEVpublic.name); */
return (OK);
}
#endif /* PARALLEL_ARCH */
}
#ifdef PARALLEL_ARCH
combine:
/* See if any of the DEVconvTest functions bailed. If not, proceed. */
ibuf[0] = error;
ibuf[1] = ckt->CKTnoncon;
IGOP_ (&type, ibuf, &length, "+");
ckt->CKTnoncon = ibuf[1];
if (ibuf[0] != error)
{
error = E_MULTIERR;
}
return (error);
#else
return (OK);
#endif /* PARALLEL_ARCH */
}

View File

@ -1,46 +0,0 @@
/**********
Copyright 1990 Regents of the University of California. All rights reserved.
Author: 1992 David A. Gates, UC Berkeley CADgroup
**********/
/* CKTpartition(ckt)
* this labels each instance of a circuit as belonging to a
* particular processor in a multiprocessor computer.
*/
#include "ngspice/ngspice.h"
#include "ngspice/smpdefs.h"
#include "ngspice/cktdefs.h"
#include "ngspice/const.h"
#include "ngspice/devdefs.h"
#include "ngspice/sperror.h"
#ifdef XSPICE
extern int *DEVicesfl;
#endif
int
CKTpartition(CKTcircuit *ckt)
{
int i, instNum = 0;
GENmodel *model;
GENinstance *inst;
for (i=0;i<DEVmaxnum;i++) {
if ( (ckt->CKThead[i] != NULL)
#ifdef XSPICE
&& DEVicesfl[i] == 0
#endif
){
for (model = ckt->CKThead[i]; model; model = model->GENnextModel) {
for (inst = model->GENinstances; inst;
inst = inst->GENnextInstance) {
inst->GENowner = instNum % ARCHsize;
instNum++;
}
}
}
}
return(OK);
}

View File

@ -18,9 +18,6 @@ CKTpzLoad(CKTcircuit *ckt, SPcomplex *s)
int error;
int i;
#ifdef PARALLEL_ARCH
long type = MT_PZLOAD, length = 1;
#endif /* PARALLEL_ARCH */
for (i = 0; i <= SMPmatSize(ckt->CKTmatrix); i++) {
ckt->CKTrhs[i] = 0.0;
@ -31,24 +28,9 @@ CKTpzLoad(CKTcircuit *ckt, SPcomplex *s)
for (i = 0; i < DEVmaxnum; i++) {
if (DEVices[i] && DEVices[i]->DEVpzLoad != NULL && ckt->CKThead[i] != NULL) {
error = DEVices[i]->DEVpzLoad (ckt->CKThead[i], ckt, s);
#ifdef PARALLEL_ARCH
if (error) goto combine;
#else
if(error) return(error);
#endif /* PARALLEL_ARCH */
}
}
#ifdef PARALLEL_ARCH
combine:
/* See if any of the DEVload functions bailed. If not, proceed. */
IGOP_( &type, &error, &length, "max" );
if (error == OK) {
SMPcCombine(ckt->CKTmatrix, ckt->CKTrhs, ckt->CKTrhsSpare,
ckt->CKTirhs, ckt->CKTirhsSpare );
} else {
return(error);
}
#endif /* PARALLEL_ARCH */
if (job->PZbalance_col && job->PZsolution_col) {
SMPcAddCol(ckt->CKTmatrix, job->PZbalance_col, job->PZsolution_col);

View File

@ -54,8 +54,6 @@ CKTsetup(CKTcircuit *ckt)
if (ckt->CKTisSetup)
return E_NOCHANGE;
CKTpartition(ckt);
error = NIinit(ckt);
if (error) return(error);
ckt->CKTisSetup = 1;

View File

@ -282,14 +282,12 @@ static IFparm OPTtbl[] = {
{ "time", OPT_TOTANALTIME, IF_ASK|IF_REAL,"Total analysis time" },
{ "loadtime", OPT_LOADTIME, IF_ASK|IF_REAL,"Matrix load time" },
{ "synctime", OPT_SYNCTIME, IF_ASK|IF_REAL,"Matrix synchronize time" },
{ "combinetime", OPT_COMBTIME, IF_ASK|IF_REAL,"Matrix combine time" },
{ "reordertime", OPT_REORDTIME, IF_ASK|IF_REAL,"Matrix reorder time" },
{ "factortime", OPT_DECOMP, IF_ASK|IF_REAL,"Matrix factor time" },
{ "solvetime", OPT_SOLVE, IF_ASK|IF_REAL,"Matrix solve time" },
{ "trantime", OPT_TRANTIME, IF_ASK|IF_REAL,"Transient analysis time" },
{ "tranloadtime", OPT_TRANLOAD, IF_ASK|IF_REAL,"Transient load time" },
{ "transynctime", OPT_TRANSYNC, IF_ASK|IF_REAL,"Transient sync time" },
{ "trancombinetime", OPT_TRANCOMB, IF_ASK|IF_REAL,"Transient combine time" },
{ "tranfactortime", OPT_TRANDECOMP,IF_ASK|IF_REAL,"Transient factor time" },
{ "transolvetime", OPT_TRANSOLVE, IF_ASK|IF_REAL,"Transient solve time" },
{ "trantrunctime", OPT_TRANTRUNC, IF_ASK|IF_REAL,"Transient trunc time" },
@ -298,7 +296,6 @@ static IFparm OPTtbl[] = {
{ "actime", OPT_ACTIME, IF_ASK|IF_REAL,"AC analysis time" },
{ "acloadtime", OPT_ACLOAD, IF_ASK|IF_REAL,"AC load time" },
{ "acsynctime", OPT_ACSYNC, IF_ASK|IF_REAL,"AC sync time" },
{ "accombinetime", OPT_ACCOMB, IF_ASK|IF_REAL,"AC combine time" },
{ "acfactortime", OPT_ACDECOMP,IF_ASK|IF_REAL,"AC factor time" },
{ "acsolvetime", OPT_ACSOLVE, IF_ASK|IF_REAL,"AC solve time" },
{ "trytocompact", OPT_TRYTOCOMPACT, IF_SET|IF_FLAG,

View File

@ -22,9 +22,6 @@ CKTtrunc(CKTcircuit *ckt, double *timeStep)
#ifndef NEWTRUNC
int i;
double timetemp;
#ifdef PARALLEL_ARCH
long type = MT_TRUNC, length = 1;
#endif /* PARALLEL_ARCH */
#ifdef STEPDEBUG
double debugtemp;
#endif /* STEPDEBUG */
@ -55,10 +52,6 @@ CKTtrunc(CKTcircuit *ckt, double *timeStep)
}
*timeStep = MIN(2 * *timeStep,timetemp);
#ifdef PARALLEL_ARCH
DGOP_( &type, timeStep, &length, "min" );
#endif /* PARALLEL_ARCH */
ckt->CKTstat->STATtranTruncTime += SPfrontEnd->IFseconds() - startTime;
return(OK);
#else /* NEWTRUNC */
@ -188,9 +181,6 @@ CKTtrunc(CKTcircuit *ckt, double *timeStep)
}
*timeStep = MIN(2 * *timeStep,timetemp);
#ifdef PARALLEL_ARCH
DGOP_( &type, timeStep, &length, "min" );
#endif /* PARALLEL_ARCH */
ckt->CKTstat->STATtranTruncTime += SPfrontEnd->IFseconds() - startTime;
return(OK);
#endif /* NEWTRUNC */

View File

@ -51,7 +51,6 @@ do { \
startdTime = ckt->CKTstat->STATdecompTime; \
startsTime = ckt->CKTstat->STATsolveTime; \
startlTime = ckt->CKTstat->STATloadTime; \
startcTime = ckt->CKTstat->STATcombineTime; \
startkTime = ckt->CKTstat->STATsyncTime; \
} while(0)
@ -63,7 +62,6 @@ do { \
ckt->CKTstat->STATtranDecompTime += ckt->CKTstat->STATdecompTime - startdTime; \
ckt->CKTstat->STATtranSolveTime += ckt->CKTstat->STATsolveTime - startsTime; \
ckt->CKTstat->STATtranLoadTime += ckt->CKTstat->STATloadTime - startlTime; \
ckt->CKTstat->STATtranCombTime += ckt->CKTstat->STATcombineTime - startcTime; \
ckt->CKTstat->STATtranSyncTime += ckt->CKTstat->STATsyncTime - startkTime; \
} while(0)
@ -84,7 +82,6 @@ DCpss(CKTcircuit *ckt, int restart)
double startdTime;
double startsTime;
double startlTime;
double startcTime;
double startkTime;
double startTime;
int startIters;
@ -106,9 +103,6 @@ DCpss(CKTcircuit *ckt, int restart)
int ltra_num;
CKTnode *node;
#ifdef PARALLEL_ARCH
long type = MT_TRANAN, length = 1;
#endif /* PARALLEL_ARCH */
#ifdef XSPICE
/* gtri - add - wbk - 12/19/90 - Add IPC stuff */
Ipc_Boolean_t ipc_firsttime = IPC_TRUE;
@ -970,9 +964,6 @@ resume:
exit(0);
}
#endif
#ifdef PARALLEL_ARCH
DGOP_( &type, &(ckt->CKTdelta), &length, "min" );
#endif /* PARALLEL_ARCH */
#endif /* XSPICE */
@ -1271,9 +1262,6 @@ resume:
#endif
}
}
#ifdef PARALLEL_ARCH
DGOP_( &type, &(ckt->CKTdelta), &length, "min" );
#endif /* PARALLEL_ARCH */
if (ckt->CKTdelta <= ckt->CKTdelmin) {
if (olddelta > ckt->CKTdelmin) {

View File

@ -50,7 +50,6 @@ do { \
startdTime = ckt->CKTstat->STATdecompTime; \
startsTime = ckt->CKTstat->STATsolveTime; \
startlTime = ckt->CKTstat->STATloadTime; \
startcTime = ckt->CKTstat->STATcombineTime; \
startkTime = ckt->CKTstat->STATsyncTime; \
} while(0)
@ -62,7 +61,6 @@ do { \
ckt->CKTstat->STATtranDecompTime += ckt->CKTstat->STATdecompTime - startdTime; \
ckt->CKTstat->STATtranSolveTime += ckt->CKTstat->STATsolveTime - startsTime; \
ckt->CKTstat->STATtranLoadTime += ckt->CKTstat->STATloadTime - startlTime; \
ckt->CKTstat->STATtranCombTime += ckt->CKTstat->STATcombineTime - startcTime; \
ckt->CKTstat->STATtranSyncTime += ckt->CKTstat->STATsyncTime - startkTime; \
} while(0)
@ -81,7 +79,6 @@ DCtran(CKTcircuit *ckt,
double startdTime;
double startsTime;
double startlTime;
double startcTime;
double startkTime;
double startTime;
int startIters;
@ -102,9 +99,6 @@ DCtran(CKTcircuit *ckt,
int ltra_num;
CKTnode *node;
#ifdef PARALLEL_ARCH
long type = MT_TRANAN, length = 1;
#endif /* PARALLEL_ARCH */
#ifdef XSPICE
/* gtri - add - wbk - 12/19/90 - Add IPC stuff */
Ipc_Boolean_t ipc_firsttime = IPC_TRUE;
@ -629,9 +623,6 @@ resume:
exit(0);
}
#endif
#ifdef PARALLEL_ARCH
DGOP_( &type, &(ckt->CKTdelta), &length, "min" );
#endif /* PARALLEL_ARCH */
#endif /* XSPICE */
@ -894,9 +885,6 @@ resume:
#endif
}
}
#ifdef PARALLEL_ARCH
DGOP_( &type, &(ckt->CKTdelta), &length, "min" );
#endif /* PARALLEL_ARCH */
if (ckt->CKTdelta <= ckt->CKTdelmin) {
if (olddelta > ckt->CKTdelmin) {

View File

@ -3563,7 +3563,6 @@ typedef struct s$(module)instance {
struct s$(module)model *$(module)modPtr; /* pointer to model */
struct s$(module)instance *$(module)nextInstance; /* pointer to next instance of current model*/
IFuid $(module)name; /* pointer to character string naming this instance */
int $(module)owner; /* number of owner process */
int $(module)state; /* index into state table for this device */
/* node */

View File

@ -191,7 +191,6 @@ typedef struct s$(module)instance {
struct s$(module)model *$(module)modPtr; /* pointer to model */
struct s$(module)instance *$(module)nextInstance; /* pointer to next instance of current model*/
IFuid $(module)name; /* pointer to character string naming this instance */
int $(module)owner; /* number of owner process */
int $(module)state; /* index into state table for this device */
/* node */

View File

@ -52,7 +52,6 @@ $(module)noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt, Nd
{
for (inst=model-&gt;$(module)instances; inst != NULL; inst=inst->$(module)nextInstance)
{
if (inst-&gt;$(module)owner != ARCHme) continue;
switch (operation)
{
case N_OPEN:

View File

@ -41,9 +41,6 @@ ASRCacLoad(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->ASRCinstances; here != NULL ;
here = here->ASRCnextInstance) {
if (here->ASRCowner != ARCHme)
continue;
difference = (here->ASRCtemp + here->ASRCdtemp) - 300.15;
factor = 1.0 + (here->ASRCtc1)*difference +
(here->ASRCtc2)*difference*difference;

View File

@ -23,7 +23,6 @@ ASRCconvTest(GENmodel *inModel, CKTcircuit *ckt)
for( ; model != NULL; model = model->ASRCnextModel) {
for( here = model->ASRCinstances; here != NULL;
here = here->ASRCnextInstance) {
if (here->ASRCowner != ARCHme) continue;
i = here->ASRCtree->numVars;
if (asrc_nvals < i) {

View File

@ -21,7 +21,6 @@ typedef struct sASRCinstance {
struct sASRCinstance *ASRCnextInstance; /* pointer to next instance of
* current model */
IFuid ASRCname; /* pointer to character string naming this instance */
int ASRCowner; /* number of owner process */
int ASRCstates; /* state info */
int ASRCposNode; /* number of positive node of source */
int ASRCnegNode; /* number of negative node of source */

View File

@ -38,9 +38,6 @@ ASRCload(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->ASRCinstances; here != NULL ;
here=here->ASRCnextInstance)
{
if (here->ASRCowner != ARCHme)
continue;
difference = (here->ASRCtemp + here->ASRCdtemp) - 300.15;
factor = 1.0 + (here->ASRCtc1)*difference + (here->ASRCtc2)*difference*difference;
if(here->ASRCreciproctc == 1) {

View File

@ -34,9 +34,6 @@ ASRCpzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s)
for (here = model->ASRCinstances; here != NULL ;
here=here->ASRCnextInstance)
{
if (here->ASRCowner != ARCHme)
continue;
difference = (here->ASRCtemp + here->ASRCdtemp) - 300.15;
factor = 1.0 + (here->ASRCtc1)*difference +
(here->ASRCtc2)*difference*difference;

View File

@ -21,8 +21,6 @@ ASRCtemp(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->ASRCinstances; here != NULL ;
here=here->ASRCnextInstance) {
if (here->ASRCowner != ARCHme) continue;
/* Default Value Processing for Source Instance */
if(!here->ASRCtempGiven) {

View File

@ -40,7 +40,6 @@ BJTacLoad(GENmodel *inModel, CKTcircuit *ckt)
for( ; model != NULL; model = model->BJTnextModel) {
for( here = model->BJTinstances; here!= NULL;
here = here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
m = here->BJTm;

View File

@ -34,7 +34,6 @@ BJTconvTest(GENmodel *inModel, CKTcircuit *ckt)
for( ; model != NULL; model = model->BJTnextModel) {
for(here=model->BJTinstances;here!=NULL;here = here->BJTnextInstance){
if (here->BJTowner != ARCHme) continue;
vbe=model->BJTtype*(
*(ckt->CKTrhsOld+here->BJTbasePrimeNode)-

View File

@ -21,7 +21,6 @@ typedef struct sBJTinstance {
struct sBJTinstance *BJTnextInstance; /* pointer to next instance of
* current model*/
IFuid BJTname; /* pointer to character string naming this instance */
int BJTowner; /* number of owner process */
int BJTstate; /* pointer to start of state vector for bjt */
int BJTcolNode; /* number of collector node of bjt */

View File

@ -58,7 +58,6 @@ BJTdisto(int mode, GENmodel *genmodel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->BJTinstances; here != NULL ;
here=here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
/* getting Volterra kernels */
/* until further notice x = vbe, y = vbc, z= vbed */

View File

@ -31,7 +31,6 @@ BJTgetic(GENmodel *inModel, CKTcircuit *ckt)
for( ; model ; model = model->BJTnextModel) {
for(here = model->BJTinstances; here ; here = here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
if(!here->BJTicVBEGiven) {
here->BJTicVBE =

View File

@ -144,7 +144,6 @@ BJTload(GENmodel *inModel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->BJTinstances; here != NULL ;
here=here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
vt = here->BJTtemp * CONSTKoverQ;

View File

@ -54,7 +54,6 @@ BJTnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt,
for (model=firstModel; model != NULL; model=model->BJTnextModel) {
for (inst=model->BJTinstances; inst != NULL;
inst=inst->BJTnextInstance) {
if (inst->BJTowner != ARCHme) continue;
switch (operation) {

View File

@ -36,7 +36,6 @@ BJTpzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s)
for( ; model != NULL; model = model->BJTnextModel) {
for( here = model->BJTinstances; here!= NULL;
here = here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
m = here->BJTm;

View File

@ -341,9 +341,6 @@ BJTsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
CKTnode *tmpNode;
IFuid tmpName;
if (here->BJTowner != ARCHme)
goto matrixpointers;
if(!here->BJTareaGiven) {
here->BJTarea = 1.0;
}
@ -363,7 +360,6 @@ BJTsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
*states += 8 * (ckt->CKTsenInfo->SENparms);
}
matrixpointers:
if(model->BJTcollectorResist == 0) {
here->BJTcolPrimeNode = here->BJTcolNode;
} else if(here->BJTcolPrimeNode == 0) {

View File

@ -91,7 +91,6 @@ BJTsLoad(GENmodel *inModel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->BJTinstances; here != NULL ;
here=here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
#ifdef SENSDEBUG
printf("base = %d , baseprm = %d ,col = %d, colprm = %d\n",

View File

@ -34,7 +34,6 @@ BJTsPrint(GENmodel *inModel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->BJTinstances; here != NULL ;
here=here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
ckt->CKTsenInfo->SEN_parmVal[here->BJTsenParmNo] = here->BJTarea;
@ -50,4 +49,3 @@ BJTsPrint(GENmodel *inModel, CKTcircuit *ckt)
}
}
}

View File

@ -36,7 +36,6 @@ BJTsSetup(SENstruct *info, GENmodel *inModel)
/* loop through all the instances of the model */
for (here = model->BJTinstances; here != NULL ;
here=here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
if(here->BJTsenParmNo){
here->BJTsenParmNo = ++(info->SENparms);
@ -48,4 +47,3 @@ BJTsSetup(SENstruct *info, GENmodel *inModel)
}
return(OK);
}

View File

@ -48,7 +48,6 @@ BJTsUpdate(GENmodel *inModel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->BJTinstances; here != NULL ;
here=here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
sxpbe = 0;
sxpbc = 0;

View File

@ -100,7 +100,6 @@ BJTtemp(GENmodel *inModel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->BJTinstances; here != NULL ;
here=here->BJTnextInstance) {
if (here->BJTowner != ARCHme) continue;
if(!here->BJTdtempGiven)
here->BJTdtemp = 0.0;

View File

@ -26,7 +26,6 @@ BJTtrunc(GENmodel *inModel, CKTcircuit *ckt, double *timeStep)
for( ; model != NULL; model = model->BJTnextModel) {
for(here=model->BJTinstances;here!=NULL;here = here->BJTnextInstance){
if (here->BJTowner != ARCHme) continue;
CKTterr(here->BJTqbe,ckt,timeStep);
CKTterr(here->BJTqbc,ckt,timeStep);

View File

@ -56,7 +56,6 @@ B1acLoad(GENmodel *inModel, CKTcircuit *ckt)
for( ; model != NULL; model = model->B1nextModel) {
for(here = model->B1instances; here!= NULL;
here = here->B1nextInstance) {
if (here->B1owner != ARCHme) continue;
if (here->B1mode >= 0) {
xnrm=1;

View File

@ -46,7 +46,6 @@ B1convTest(GENmodel *inModel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->B1instances; here != NULL ;
here=here->B1nextInstance) {
if (here->B1owner != ARCHme) continue;
vbs = model->B1type * (
*(ckt->CKTrhsOld+here->B1bNode) -

View File

@ -51,7 +51,6 @@ for( ; model != NULL; model = model->B1nextModel ) {
/* loop through all the instances of the model */
for (here = model->B1instances; here != NULL ;
here=here->B1nextInstance) {
if (here->B1owner != ARCHme) continue;
/* loading starts here */

View File

@ -130,8 +130,6 @@ B1dSetup(GENmodel *inModel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->B1instances; here != NULL ;
here=here->B1nextInstance) {
if (here->B1owner != ARCHme) continue;
EffectiveLength=here->B1l - model->B1deltaL * 1.e-6;/* m */
DrainArea = here->B1m * here->B1drainArea;

View File

@ -25,7 +25,6 @@ B1getic(GENmodel *inModel, CKTcircuit *ckt)
for( ; model ; model = model->B1nextModel) {
for(here = model->B1instances; here ; here = here->B1nextInstance) {
if (here->B1owner != ARCHme) continue;
if(!here->B1icVBSGiven) {
here->B1icVBS =

View File

@ -134,7 +134,6 @@ B1load(GENmodel *inModel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->B1instances; here != NULL ;
here=here->B1nextInstance) {
if (here->B1owner != ARCHme) continue;
EffectiveLength=here->B1l - model->B1deltaL * 1.e-6;/* m */
DrainArea = here->B1drainArea;

View File

@ -48,7 +48,6 @@ B1noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt,
for (model=firstModel; model != NULL; model=model->B1nextModel) {
for (inst=model->B1instances; inst != NULL; inst=inst->B1nextInstance) {
if (inst->B1owner != ARCHme) continue;
switch (operation) {

View File

@ -56,7 +56,6 @@ B1pzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s)
for( ; model != NULL; model = model->B1nextModel) {
for(here = model->B1instances; here!= NULL;
here = here->B1nextInstance) {
if (here->B1owner != ARCHme) continue;
if (here->B1mode >= 0) {
xnrm=1;

View File

@ -276,11 +276,9 @@ B1setup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt,
CKTnode *tmpNode;
IFuid tmpName;
if (here->B1owner == ARCHme) {
/* allocate a chunk of the state vector */
here->B1states = *states;
*states += B1numStates;
}
/* perform the parameter defaulting */
if(!here->B1drainAreaGiven) {

View File

@ -48,8 +48,6 @@ B1temp(GENmodel *inModel, CKTcircuit *ckt)
for (here = model->B1instances; here != NULL ;
here=here->B1nextInstance) {
if (here->B1owner != ARCHme) continue;
if( (EffChanLength = here->B1l - model->B1deltaL *1e-6 )<=0) {
IFuid namarray[2];
namarray[0] = model->B1modName;

View File

@ -21,7 +21,6 @@ B1trunc(GENmodel *inModel, CKTcircuit *ckt, double *timeStep)
for( ; model != NULL; model = model->B1nextModel) {
for(here=model->B1instances;here!=NULL;here = here->B1nextInstance){
if (here->B1owner != ARCHme) continue;
#ifdef STEPDEBUG
debugtemp = *timeStep;

View File

@ -24,7 +24,6 @@ typedef struct sBSIM1instance {
struct sBSIM1instance *B1nextInstance; /* pointer to next instance of
*current model*/
IFuid B1name; /* pointer to character string naming this instance */
int B1owner; /* number of owner process */
int B1states; /* index into state table for this device */
int B1dNode; /* number of the gate node of the mosfet */

View File

@ -57,7 +57,6 @@ B2acLoad(GENmodel *inModel, CKTcircuit *ckt)
for( ; model != NULL; model = model->B2nextModel) {
for(here = model->B2instances; here!= NULL;
here = here->B2nextInstance) {
if (here->B2owner != ARCHme) continue;
if (here->B2mode >= 0) {
xnrm=1;

View File

@ -46,7 +46,6 @@ B2convTest(GENmodel *inModel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->B2instances; here != NULL ;
here=here->B2nextInstance) {
if (here->B2owner != ARCHme) continue;
vbs = model->B2type * (
*(ckt->CKTrhsOld+here->B2bNode) -

View File

@ -25,7 +25,6 @@ B2getic(GENmodel *inModel, CKTcircuit *ckt)
for( ; model ; model = model->B2nextModel) {
for(here = model->B2instances; here ; here = here->B2nextInstance) {
if (here->B2owner != ARCHme) continue;
if(!here->B2icVBSGiven) {
here->B2icVBS =

View File

@ -135,7 +135,6 @@ B2load(GENmodel *inModel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->B2instances; here != NULL ;
here=here->B2nextInstance) {
if (here->B2owner != ARCHme) continue;
EffectiveLength=here->B2l - model->B2deltaL * 1.e-6;/* m */
DrainArea = here->B2drainArea;

View File

@ -48,7 +48,6 @@ B2noise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt,
for (model=firstModel; model != NULL; model=model->B2nextModel) {
for (inst=model->B2instances; inst != NULL; inst=inst->B2nextInstance) {
if (inst->B2owner != ARCHme) continue;
switch (operation) {

View File

@ -56,7 +56,6 @@ B2pzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s)
for( ; model != NULL; model = model->B2nextModel) {
for(here = model->B2instances; here!= NULL;
here = here->B2nextInstance) {
if (here->B2owner != ARCHme) continue;
if (here->B2mode >= 0) {
xnrm=1;

View File

@ -434,11 +434,9 @@ B2setup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
for (here = model->B2instances; here != NULL ;
here=here->B2nextInstance) {
if (here->B2owner == ARCHme) {
/* allocate a chunk of the state vector */
here->B2states = *states;
*states += B2numStates;
}
/* perform the parameter defaulting */

View File

@ -52,7 +52,6 @@ B2temp(GENmodel *inModel, CKTcircuit *ckt)
/* loop through all the instances of the model */
for (here = model->B2instances; here != NULL ;
here=here->B2nextInstance) {
if (here->B2owner != ARCHme) continue;
pSizeDependParamKnot = model->pSizeDependParamKnot;
Size_Not_Found = 1;

View File

@ -20,7 +20,6 @@ B2trunc(GENmodel *inModel, CKTcircuit *ckt, double *timeStep)
for( ; model != NULL; model = model->B2nextModel) {
for(here=model->B2instances;here!=NULL;here = here->B2nextInstance){
if (here->B2owner != ARCHme) continue;
#ifdef STEPDEBUG
debugtemp = *timeStep;

View File

@ -20,7 +20,6 @@ typedef struct sBSIM2instance {
struct sBSIM2instance *B2nextInstance; /* pointer to next instance of
*current model*/
IFuid B2name; /* pointer to character string naming this instance */
int B2owner; /* number of owner process */
int B2states; /* index into state table for this device */
int B2dNode; /* number of the gate node of the mosfet */

View File

@ -47,9 +47,6 @@ double m;
{ for (here = model->BSIM3instances; here!= NULL;
here = here->BSIM3nextInstance)
{
if (here->BSIM3owner != ARCHme)
continue;
Csd = -(here->BSIM3cddb + here->BSIM3cgdb + here->BSIM3cbdb);
Csg = -(here->BSIM3cdgb + here->BSIM3cggb + here->BSIM3cbgb);
Css = -(here->BSIM3cdsb + here->BSIM3cgsb + here->BSIM3cbsb);

View File

@ -34,9 +34,6 @@ double cbd, cbhat, cbs, cd, cdhat, tol, vgd, vgdo, vgs;
for (here = model->BSIM3instances; here != NULL ;
here=here->BSIM3nextInstance)
{
if (here->BSIM3owner != ARCHme)
continue;
vbs = model->BSIM3type
* (*(ckt->CKTrhsOld+here->BSIM3bNode)
- *(ckt->CKTrhsOld+here->BSIM3sNodePrime));

View File

@ -26,9 +26,6 @@ BSIM3instance *here;
for (; model ; model = model->BSIM3nextModel)
{ for (here = model->BSIM3instances; here; here = here->BSIM3nextInstance)
{
if (here->BSIM3owner != ARCHme)
continue;
if (!here->BSIM3icVBSGiven)
{ here->BSIM3icVBS = *(ckt->CKTrhs + here->BSIM3bNode)
- *(ckt->CKTrhs + here->BSIM3sNode);

View File

@ -186,8 +186,6 @@ for (; model != NULL; model = model->BSIM3nextModel)
{ for (here = model->BSIM3instances; here != NULL;
here = here->BSIM3nextInstance)
{
if (here->BSIM3owner != ARCHme)
continue;
#endif
Check = 1;
ByPass = 0;

View File

@ -41,8 +41,6 @@ double m;
{ for (here = model->BSIM3instances; here!= NULL;
here = here->BSIM3nextInstance)
{
if (here->BSIM3owner != ARCHme)
continue;
if (here->BSIM3mode >= 0)
{ Gm = here->BSIM3gm;
Gmbs = here->BSIM3gmbs;

View File

@ -864,12 +864,9 @@ BSIM3instance **InstArray;
for (here = model->BSIM3instances; here != NULL ;
here=here->BSIM3nextInstance)
{
if (here->BSIM3owner == ARCHme)
{
/* allocate a chunk of the state vector */
here->BSIM3states = *states;
*states += BSIM3numStates;
}
/* perform the parameter defaulting */
if (!here->BSIM3drainAreaGiven)
here->BSIM3drainArea = 0.0;

View File

@ -145,7 +145,6 @@ int Size_Not_Found;
for (here = model->BSIM3instances; here != NULL;
here = here->BSIM3nextInstance)
{
if (here->BSIM3owner != ARCHme) continue;
pSizeDependParamKnot = model->pSizeDependParamKnot;
Size_Not_Found = 1;
while ((pSizeDependParamKnot != NULL) && Size_Not_Found)

View File

@ -32,8 +32,6 @@ BSIM3instance *here;
{ for (here = model->BSIM3instances; here != NULL;
here = here->BSIM3nextInstance)
{
if (here->BSIM3owner != ARCHme)
continue;
#ifdef STEPDEBUG
debugtemp = *timeStep;
#endif /* STEPDEBUG */

View File

@ -21,7 +21,6 @@ typedef struct sBSIM3instance
struct sBSIM3model *BSIM3modPtr;
struct sBSIM3instance *BSIM3nextInstance;
IFuid BSIM3name;
int BSIM3owner; /* number of owner process */
int BSIM3states; /* index into state table for this device */
int BSIM3dNode;
int BSIM3gNode;

View File

@ -81,7 +81,6 @@ double m;
for (here = model->B4SOIinstances; here!= NULL;
here = here->B4SOInextInstance)
{
if (here->B4SOIowner != ARCHme) continue;
selfheat = (model->B4SOIshMod == 1) && (here->B4SOIrth0 != 0.0);
if (here->B4SOImode >= 0)
{ Gm = here->B4SOIgm;

View File

@ -41,7 +41,6 @@ double cbd, cbhat, cbs, cd, cdhat, tol, vgd, vgdo, vgs;
for (here = model->B4SOIinstances; here != NULL ;
here=here->B4SOInextInstance)
{
if (here->B4SOIowner != ARCHme) continue;
vbs = model->B4SOItype
* (*(ckt->CKTrhsOld+here->B4SOIbNode)
- *(ckt->CKTrhsOld+here->B4SOIsNodePrime));

View File

@ -29,7 +29,6 @@ typedef struct sB4SOIinstance
struct sB4SOImodel *B4SOImodPtr;
struct sB4SOIinstance *B4SOInextInstance;
IFuid B4SOIname;
int B4SOIowner; /* number of owner process */
int B4SOIstates; /* index into state table for this device */
int B4SOIdNode;

View File

@ -35,7 +35,6 @@ B4SOImodel *oldmod = NULL;
prev = (B4SOIinstance *)NULL;
for (here = mod->B4SOIinstances; here; here = here->B4SOInextInstance)
{
if (here->B4SOIowner != ARCHme) continue;
if(prev) FREE(prev);
prev = here;
}

View File

@ -33,7 +33,6 @@ B4SOIinstance *here;
for (; model ; model = model->B4SOInextModel)
{ for (here = model->B4SOIinstances; here; here = here->B4SOInextInstance)
{
if (here->B4SOIowner != ARCHme) continue;
if(!here->B4SOIicVBSGiven)
{ here->B4SOIicVBS = *(ckt->CKTrhs + here->B4SOIbNode)
- *(ckt->CKTrhs + here->B4SOIsNode);

View File

@ -496,7 +496,6 @@ int B4SOILoadOMP(B4SOIinstance *here, CKTcircuit *ckt) {
{ for (here = model->B4SOIinstances; here != NULL;
here = here->B4SOInextInstance)
{
if (here->B4SOIowner != ARCHme) continue;
#endif
Check = 0;
ByPass = 0;

View File

@ -45,7 +45,6 @@ delgot:
*oldmod = (*model)->B4SOInextModel; /* cut deleted device out of list */
for (here = (*model)->B4SOIinstances; here; here = here->B4SOInextInstance)
{
if (here->B4SOIowner != ARCHme) continue;
if(prev) FREE(prev);
prev = here;
}

View File

@ -152,8 +152,6 @@ double m;
{ for (here = model->B4SOIinstances; here != NULL;
here = here->B4SOInextInstance)
{
if (here->B4SOIowner != ARCHme) continue;
m = here->B4SOIm;
pParam = here->pParam;

View File

@ -44,7 +44,6 @@ double m;
{ for (here = model->B4SOIinstances; here!= NULL;
here = here->B4SOInextInstance)
{
if (here->B4SOIowner != ARCHme) continue;
if (here->B4SOImode >= 0)
{ Gm = here->B4SOIgm;
Gmbs = here->B4SOIgmbs;

View File

@ -163,7 +163,6 @@ B4SOItemp(
for (here = model->B4SOIinstances; here != NULL;
here = here->B4SOInextInstance)
{
if (here->B4SOIowner != ARCHme) continue;
here->B4SOIrbodyext = here->B4SOIbodySquares *
model->B4SOIrbsh;
pSizeDependParamKnot = model->pSizeDependParamKnot;

View File

@ -38,7 +38,6 @@ register B4SOIinstance *here;
{ for (here = model->B4SOIinstances; here != NULL;
here = here->B4SOInextInstance)
{
if (here->B4SOIowner != ARCHme) continue;
#ifdef STEPDEBUG
debugtemp = *timeStep;
#endif /* STEPDEBUG */

View File

@ -54,10 +54,6 @@ double m;
for (here = model->B3SOIDDinstances; here!= NULL;
here = here->B3SOIDDnextInstance)
{
if (here->B3SOIDDowner != ARCHme)
continue;
selfheat = (model->B3SOIDDshMod == 1) && (here->B3SOIDDrth0 != 0.0);
if (here->B3SOIDDdebugMod > 2)
{

View File

@ -34,10 +34,6 @@ double cbd, cbhat, cbs, cd, cdhat, tol, vgd, vgdo, vgs;
for (here = model->B3SOIDDinstances; here != NULL ;
here=here->B3SOIDDnextInstance)
{
if (here->B3SOIDDowner != ARCHme)
continue;
vbs = model->B3SOIDDtype
* (*(ckt->CKTrhsOld+here->B3SOIDDbNode)
- *(ckt->CKTrhsOld+here->B3SOIDDsNodePrime));

View File

@ -24,7 +24,6 @@ typedef struct sB3SOIDDinstance
struct sB3SOIDDmodel *B3SOIDDmodPtr;
struct sB3SOIDDinstance *B3SOIDDnextInstance;
IFuid B3SOIDDname;
int B3SOIDDowner; /* number of owner process */
int B3SOIDDstates; /* index into state table for this device */
int B3SOIDDdNode;

View File

@ -26,10 +26,6 @@ B3SOIDDinstance *here;
for (; model ; model = model->B3SOIDDnextModel)
{ for (here = model->B3SOIDDinstances; here; here = here->B3SOIDDnextInstance)
{
if (here->B3SOIDDowner != ARCHme)
continue;
if(!here->B3SOIDDicVBSGiven)
{ here->B3SOIDDicVBS = *(ckt->CKTrhs + here->B3SOIDDbNode)
- *(ckt->CKTrhs + here->B3SOIDDsNode);

View File

@ -309,10 +309,6 @@ double m;
{ for (here = model->B3SOIDDinstances; here != NULL;
here = here->B3SOIDDnextInstance)
{
if (here->B3SOIDDowner != ARCHme)
continue;
Check = 0;
ByPass = 0;
selfheat = (model->B3SOIDDshMod == 1) && (here->B3SOIDDrth0 != 0.0);

View File

@ -132,10 +132,6 @@ int i;
{ for (here = model->B3SOIDDinstances; here != NULL;
here = here->B3SOIDDnextInstance)
{
if (here->B3SOIDDowner != ARCHme)
continue;
pParam = here->pParam;
switch (operation)
{ case N_OPEN:

View File

@ -38,10 +38,6 @@ double m;
{ for (here = model->B3SOIDDinstances; here!= NULL;
here = here->B3SOIDDnextInstance)
{
if (here->B3SOIDDowner != ARCHme)
continue;
if (here->B3SOIDDmode >= 0)
{ Gm = here->B3SOIDDgm;
Gmbs = here->B3SOIDDgmbs;

Some files were not shown because too many files have changed in this diff Show More