You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

52 lines
1.1 KiB

/**********
Copyright 1990 Regents of the University of California. All rights reserved.
Author: 1985 Thomas L. Quarles
**********/
/* CKTaccept(ckt)
*
* this is a driver program to iterate through all the various accept
* functions provided for the circuit elements in the given circuit */
#include <config.h>
#include <devdefs.h>
#include <sperror.h>
#include <ifsim.h>
#include <devdefs.h>
#include "dev.h"
int
CKTaccept(CKTcircuit *ckt)
{
int i;
int error;
SPICEdev **devs;
#ifdef PREDICTOR
double *temp;
int size;
#endif
devs = devices();
for (i = 0; i < DEVmaxnum; i++) {
if ( ((*devs[i]).DEVaccept != NULL) && (ckt->CKThead[i] != NULL) ){
error = (*((*devs[i]).DEVaccept))(ckt,ckt->CKThead[i]);
if (error)
return(error);
}
}
#ifdef PREDICTOR
/* now, move the sols vectors around */
temp = ckt->CKTsols[7];
for ( i=7;i>0;i--) {
ckt->CKTsols[i] = ckt->CKTsols[i-1];
}
ckt->CKTsols[0]=temp;
size = SMPmatSize(ckt->CKTmatrix);
for(i=0;i<=size;i++) {
ckt->CKTsols[0][i]=ckt->CKTrhs[i];
}
#endif /* PREDICTOR */
return(OK);
}