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

Go to the source code of this file.

Macros

#define CKALLOC(var, size, type)
 

Functions

int CKTsetup (CKTcircuit *ckt)
 

Macro Definition Documentation

#define CKALLOC (   var,
  size,
  type 
)
Value:
if(size && (!(var =(type *)MALLOC((size)*sizeof(type))))){\
}
#define MALLOC(x)
Definition: util.h:9
Definition: types.c:18
#define E_NOMEM
Definition: iferrmsg.h:27
return(True)

Definition at line 23 of file cktsetup.c.

Function Documentation

int CKTsetup ( CKTcircuit ckt)

Definition at line 30 of file cktsetup.c.

33 {
34  extern SPICEdev *DEVices[];
35  int i;
36  int error;
37  struct sCKTmodHead *mh;
38  int (*func)();
39  SMPmatrix *matrix;
40 
41 
42  ckt->CKTnumStates = 0;
43  matrix = ckt->CKTmatrix;
44 
45  /* we use the imag part for caching constants */
46  spSetComplex(matrix);
47  spClear(matrix);
48  spSetReal(matrix);
49 
50  for (mh = ckt->CKTheadList; mh != NULL; mh = mh->next) {
51  if ((func = DEVices[mh->type]->DEVsetup) != NULL) {
52  error = (*func)(matrix,mh->head,ckt,&ckt->CKTnumStates);
53  if (error) return (error);
54  }
55  }
56 
57  for (i = 0; i <= ckt->CKTmaxOrder+1; i++) {
58  FREE(ckt->CKTstates[i]);
59  CKALLOC(ckt->CKTstates[i],ckt->CKTnumStates,double);
60  }
61  if (ckt->CKTniState & NIUNINITIALIZED) {
62  error = NIreinit(ckt);
63  if (error) return (error);
64  }
65 
66  return (OK);
67 }
int(* DEVsetup)()
Definition: devdefs.h:93
#define NIUNINITIALIZED
Definition: cktdefs.h:122
struct sCKTmodHead * next
Definition: cktdefs.h:58
SPICEdev * DEVices[]
Definition: sconfig.c:109
SMPmatrix * CKTmatrix
Definition: cktdefs.h:95
#define CKALLOC(var, size, type)
Definition: cktsetup.c:23
#define FREE(ptr)
Definition: spdefs.h:436
int CKTmaxOrder
Definition: cktdefs.h:88
int NIreinit()
void spSetReal()
#define OK
Definition: iferrmsg.h:17
struct sCKTmodHead * CKTheadList
Definition: cktdefs.h:63
#define NULL
Definition: spdefs.h:121
int CKTniState
Definition: cktdefs.h:96
double * CKTstates[8]
Definition: cktdefs.h:68
int CKTnumStates
Definition: cktdefs.h:138
void spClear()
Definition: fteparse.h:37
void spSetComplex()
int type
Definition: cktdefs.h:56
GENmodel * head
Definition: cktdefs.h:57
#define SMPmatrix
Definition: smpdefs.h:11