#include "spice.h"
#include <stdio.h>
#include "cktdefs.h"
#include "util.h"
#include "cktext.h"
Go to the source code of this file.
void CKTterr |
( |
int |
qcap, |
|
|
CKTcircuit * |
ckt, |
|
|
double * |
timeStep |
|
) |
| |
Definition at line 18 of file cktterr.c.
32 static double gearCoeff[] = {
41 y0 = *(ckt->CKTstate0 +
ccap);
42 y1 = *(ckt->CKTstate1 +
ccap);
47 y0 = *(ckt->CKTstate0 + qcap);
48 y1 = *(ckt->CKTstate1 + qcap);
51 chargetol =
MAX(y0,y1);
52 if (chargetol < ckt->CKTchgtol)
56 tol =
MAX(volttol,chargetol);
61 y0 = *(ckt->CKTstate0 + qcap);
62 y1 = *(ckt->CKTstate1 + qcap);
63 y2 = *(ckt->CKTstate2 + qcap);
64 del = (y0-y1)*dd[0] - (y1-y2)*dd[1];
67 y0 = *(ckt->CKTstate0 + qcap);
68 y1 = *(ckt->CKTstate1 + qcap);
69 y2 = *(ckt->CKTstate2 + qcap);
70 y3 = *(ckt->CKTstate3 + qcap);
71 del = (y0-y1)*dd[0] - (y1-y2)*dd[1] + (y2-y3)*dd[2];
79 for (i = ckt->
CKTorder + 1; i >= 0; i--) {
82 for (i = 0; i <= ckt->
CKTorder; i++) {
87 for (i = 0; i <= j; i++) {
88 diff[i] = (diff[i] - diff[i+1])/deltmp[i];
91 for (i = 0; i <= j; i++) {
95 del = diff[0]*gearCoeff[ckt->
CKTorder-1];
97 if (del < 0) del = -del;