Jspice3
pzld.c File Reference
#include "spice.h"
#include <stdio.h>
#include "devdefs.h"
#include "pzdefs.h"
#include "sperror.h"
#include "cktext.h"
Include dependency graph for pzld.c:

Go to the source code of this file.

Functions

int CKTpzLoad (CKTcircuit *ckt, SPcomplex *s)
 

Variables

SPICEdevDEVices []
 

Function Documentation

int CKTpzLoad ( CKTcircuit ckt,
SPcomplex s 
)

Definition at line 19 of file pzld.c.

23 {
24  PZAN *pzan = (PZAN *) (ckt->CKTcurJob);
25  int solution_col;
26  int error;
27  struct sCKTmodHead *mh;
28  int i, size;
29  int (*func)();
30 
31  size = spGetSize(ckt->CKTmatrix,1);
32  for (i = 0; i <= size; i++) {
33  ckt->CKTrhs[i] = 0.0;
34  ckt->CKTirhs[i] = 0.0;
35  }
36 
37  spSetComplex(ckt->CKTmatrix);
38  spClear(ckt->CKTmatrix);
39  for (mh = ckt->CKTheadList; mh != NULL; mh = mh->next) {
40  if ((func = DEVices[mh->type]->DEVpzLoad) != NULL) {
41  error = (*func)(mh->head, ckt, s);
42  if (error) return (error);
43  }
44  }
45 
46 #ifdef notdef
47  printf("*** Before PZ adjustments *\n");
48  spPrint(ckt->CKTmatrix,0,1,1);
49 #endif
50 
51  if (pzan->PZbalance_col && pzan->PZsolution_col) {
52  spAddCol(ckt->CKTmatrix, pzan->PZbalance_col, pzan->PZsolution_col);
53  /* AC sources ?? XXX */
54  }
55 
56  if (pzan->PZsolution_col) {
57  spZeroCol(ckt->CKTmatrix, pzan->PZsolution_col);
58  }
59 
60  /* Driving function (current source) */
61  if (pzan->PZdrive_pptr)
62  *pzan->PZdrive_pptr = 1.0;
63  if (pzan->PZdrive_nptr)
64  *pzan->PZdrive_nptr = -1.0;
65 
66 #ifdef notdef
67  printf("*** After PZ adjustments *\n");
68  spPrint(ckt->CKTmatrix,0,1,1);
69 #endif
70 
71  return(OK);
72 }
int PZbalance_col
Definition: pzdefs.h:34
double * CKTirhs
Definition: cktdefs.h:100
void spPrint()
struct sCKTmodHead * next
Definition: cktdefs.h:58
SMPmatrix * CKTmatrix
Definition: cktdefs.h:95
SPICEdev * DEVices[]
Definition: sconfig.c:109
#define OK
Definition: iferrmsg.h:17
int PZsolution_col
Definition: pzdefs.h:35
struct sCKTmodHead * CKTheadList
Definition: cktdefs.h:63
#define NULL
Definition: spdefs.h:121
int spAddCol()
int spGetSize()
void spClear()
Definition: fteparse.h:37
void spSetComplex()
int type
Definition: cktdefs.h:56
double * PZdrive_pptr
Definition: pzdefs.h:40
int(* DEVpzLoad)()
Definition: devdefs.h:106
int spZeroCol()
double * PZdrive_nptr
Definition: pzdefs.h:41
GENmodel * head
Definition: cktdefs.h:57
JOB * CKTcurJob
Definition: cktdefs.h:216
double * CKTrhs
Definition: cktdefs.h:97
Definition: pzdefs.h:23

Variable Documentation

SPICEdev* DEVices[]

Definition at line 109 of file sconfig.c.