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

Go to the source code of this file.

Macros

#define CKALLOC(ptr, size, type)
 

Functions

int NIinit (CKTcircuit *ckt)
 
void NIprint (CKTcircuit *ckt)
 
int NIreinit (CKTcircuit *ckt)
 
void NIdestroy (CKTcircuit *ckt)
 

Macro Definition Documentation

#define CKALLOC (   ptr,
  size,
  type 
)
Value:
if(( ckt->ptr =\
(type *) MALLOC((size)*sizeof(type))) == NULL) return(E_NOMEM);
#define MALLOC(x)
Definition: util.h:9
#define NULL
Definition: spdefs.h:121
Definition: types.c:18
#define E_NOMEM
Definition: iferrmsg.h:27

Definition at line 15 of file niinit.c.

Function Documentation

void NIdestroy ( CKTcircuit ckt)

Definition at line 88 of file niinit.c.

94 {
95  spDestroy(ckt->CKTmatrix);
96  ckt->CKTmatrix = NULL;
97  FREE(ckt->CKTrhs);
98  FREE(ckt->CKTrhsOld);
99  FREE(ckt->CKTrhsSpare);
100  FREE(ckt->CKTirhs);
101  FREE(ckt->CKTirhsOld);
102  FREE(ckt->CKTirhsSpare);
103 }
double * CKTirhs
Definition: cktdefs.h:100
double * CKTrhsSpare
Definition: cktdefs.h:99
SMPmatrix * CKTmatrix
Definition: cktdefs.h:95
#define FREE(ptr)
Definition: spdefs.h:436
double * CKTrhsOld
Definition: cktdefs.h:98
double * CKTirhsSpare
Definition: cktdefs.h:102
#define NULL
Definition: spdefs.h:121
double * CKTirhsOld
Definition: cktdefs.h:101
void spDestroy()
double * CKTrhs
Definition: cktdefs.h:97
int NIinit ( CKTcircuit ckt)

Definition at line 20 of file niinit.c.

26 {
27  int error;
28 
30  ckt->CKTmatrix = spCreate(0,1,&error);
31  return (error);
32 }
#define NIUNINITIALIZED
Definition: cktdefs.h:122
SMPmatrix * CKTmatrix
Definition: cktdefs.h:95
int CKTniState
Definition: cktdefs.h:96
char * spCreate()
void NIprint ( CKTcircuit ckt)

Definition at line 36 of file niinit.c.

42 {
43 
44  if (ckt->CKTmatrix &&
45  spGetSize(ckt->CKTmatrix,1) > 0)
46  spPrint(ckt->CKTmatrix,0,1,1);
47  else
48  printf("Matrix not found.\n");
49 }
void spPrint()
SMPmatrix * CKTmatrix
Definition: cktdefs.h:95
int spGetSize()
int NIreinit ( CKTcircuit ckt)

Definition at line 53 of file niinit.c.

61 {
62  int size;
63  int i;
64 
65  size = spGetSize(ckt->CKTmatrix,1);
66  FREE(ckt->CKTrhs);
67  FREE(ckt->CKTrhsOld);
68  FREE(ckt->CKTrhsSpare);
69  FREE(ckt->CKTirhs);
70  FREE(ckt->CKTirhsOld);
71  FREE(ckt->CKTirhsSpare);
72  CKALLOC(CKTrhs,size+1,double);
73  CKALLOC(CKTrhsOld,size+1,double);
74  CKALLOC(CKTrhsSpare,size+1,double);
75  CKALLOC(CKTirhs,size+1,double);
76  CKALLOC(CKTirhsOld,size+1,double);
77  CKALLOC(CKTirhsSpare,size+1,double);
78  for (i = 0; i < 8; i++) {
79  FREE(ckt->CKTsols[i]);
80  CKALLOC(CKTsols[i],size+1,double);
81  }
83  return (0);
84 }
#define NIACSHOULDREORDER
Definition: cktdefs.h:123
double * CKTirhs
Definition: cktdefs.h:100
double * CKTrhsSpare
Definition: cktdefs.h:99
SMPmatrix * CKTmatrix
Definition: cktdefs.h:95
#define NISHOULDREORDER
Definition: cktdefs.h:120
#define FREE(ptr)
Definition: spdefs.h:436
#define CKALLOC(ptr, size, type)
Definition: niinit.c:15
#define NIPZSHOULDREORDER
Definition: cktdefs.h:127
double * CKTrhsOld
Definition: cktdefs.h:98
double * CKTirhsSpare
Definition: cktdefs.h:102
int CKTniState
Definition: cktdefs.h:96
int spGetSize()
double * CKTirhsOld
Definition: cktdefs.h:101
double * CKTsols[8]
Definition: cktdefs.h:106
double * CKTrhs
Definition: cktdefs.h:97