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

Go to the source code of this file.

Functions

int CKTic (CKTcircuit *ckt)
 
int CKTsetic (CKTcircuit *ckt)
 

Variables

SPICEdevDEVices []
 

Function Documentation

int CKTic ( CKTcircuit ckt)

Definition at line 19 of file cktic.c.

22 {
23  int i, error, size;
24  CKTnode *node;
25 
26  size = spGetSize(ckt->CKTmatrix,1);
27  for (i = 0; i <= size; i++) {
28  *(ckt->CKTrhs + i) = 0;
29  }
30  for (node = ckt->CKTnodes; node != NULL; node = node->next) {
31  if (node->nsGiven) {
32  node->ptr =
33  spGetElement(ckt->CKTmatrix,node->number,node->number);
34  if (node->ptr == (double *)NULL)
35  return (E_NOMEM);
36  ckt->CKThadNodeset = 1;
37  *(ckt->CKTrhs + node->number) = node->nodeset;
38  }
39  if (node->icGiven) {
40  if (!( node->ptr)) {
41  node->ptr =
42  spGetElement(ckt->CKTmatrix,node->number,node->number);
43  if (node->ptr == (double *)NULL)
44  return (E_NOMEM);
45  }
46  *(ckt->CKTrhs + node->number) = node->ic;
47  }
48  }
49  return (OK);
50 }
unsigned int nsGiven
Definition: cktdefs.h:45
unsigned int icGiven
Definition: cktdefs.h:44
SMPmatrix * CKTmatrix
Definition: cktdefs.h:95
double nodeset
Definition: cktdefs.h:41
#define OK
Definition: iferrmsg.h:17
unsigned int CKThadNodeset
Definition: cktdefs.h:208
#define NULL
Definition: spdefs.h:121
#define E_NOMEM
Definition: iferrmsg.h:27
struct sCKTnode * next
Definition: cktdefs.h:43
int number
Definition: cktdefs.h:39
CKTnode * CKTnodes
Definition: cktdefs.h:135
double * ptr
Definition: cktdefs.h:42
int spGetSize()
spREAL * spGetElement()
double ic
Definition: cktdefs.h:40
double * CKTrhs
Definition: cktdefs.h:97
int CKTsetic ( CKTcircuit ckt)

Definition at line 54 of file cktic.c.

57 {
58  struct sCKTmodHead *mh;
59  int (*func)();
60  int error;
61 
62  for (mh = ckt->CKTheadList; mh != NULL; mh = mh->next) {
63  if ((func = DEVices[mh->type]->DEVsetic) != NULL) {
64  error = (*func)(mh->head,ckt);
65  if (error)
66  return (error);
67  }
68  }
69  return (OK);
70 }
struct sCKTmodHead * next
Definition: cktdefs.h:58
int(* DEVsetic)()
Definition: devdefs.h:103
#define OK
Definition: iferrmsg.h:17
struct sCKTmodHead * CKTheadList
Definition: cktdefs.h:63
#define NULL
Definition: spdefs.h:121
Definition: fteparse.h:37
int type
Definition: cktdefs.h:56
GENmodel * head
Definition: cktdefs.h:57
SPICEdev * DEVices[]
Definition: sconfig.c:109

Variable Documentation

SPICEdev* DEVices[]

Definition at line 109 of file sconfig.c.