Jspice3
resask.c File Reference
#include "spice.h"
#include <stdio.h>
#include <math.h>
#include "resdefs.h"
#include "tskdefs.h"
#include "const.h"
#include "sperror.h"
#include "util.h"
Include dependency graph for resask.c:

Go to the source code of this file.

Functions

int RESask (CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value, IFvalue *select)
 

Function Documentation

int RESask ( CKTcircuit ckt,
GENinstance inst,
int  which,
IFvalue value,
IFvalue select 
)

Definition at line 20 of file resask.c.

27 {
28  RESinstance *fast = (RESinstance *)inst;
29  static char *msg = "Current and power not available for ac analysis";
30 
31  switch (which) {
32  case RES_TEMP:
33  value->rValue = fast->REStemp-CONSTCtoK;
34  break;
35  case RES_CONDUCT:
36  value->rValue = fast->RESconduct;
37  break;
38  case RES_RESIST:
39  value->rValue = fast->RESresist;
40  break;
41  case RES_LENGTH:
42  value->rValue = fast->RESlength;
43  break;
44  case RES_WIDTH :
45  value->rValue = fast->RESwidth;
46  break;
47  case RES_CURRENT:
48  if (ckt->CKTcurrentAnalysis & DOING_AC) {
49  errMsg = MALLOC(strlen(msg)+1);
50  errRtn = "RESask";
51  strcpy(errMsg,msg);
52  return (E_ASKCURRENT);
53  }
54  if (ckt->CKTrhsOld) {
55  value->rValue = (*(ckt->CKTrhsOld + fast->RESposNode) -
56  *(ckt->CKTrhsOld + fast->RESnegNode))
57  *fast->RESconduct;
58  }
59  break;
60  case RES_POWER:
61  if (ckt->CKTcurrentAnalysis & DOING_AC) {
62  errMsg = MALLOC(strlen(msg)+1);
63  errRtn = "RESask";
64  strcpy(errMsg,msg);
65  return (E_ASKPOWER);
66  }
67  if (ckt->CKTrhsOld) {
68  value->rValue = (*(ckt->CKTrhsOld + fast->RESposNode) -
69  *(ckt->CKTrhsOld + fast->RESnegNode)) *
70  fast->RESconduct *
71  (*(ckt->CKTrhsOld + fast->RESposNode) -
72  *(ckt->CKTrhsOld + fast->RESnegNode));
73  }
74  break;
75  default:
76  return (E_BADPARM);
77  }
78  return (OK);
79 }
int RESnegNode
Definition: resdefs.h:26
double RESlength
Definition: resdefs.h:32
#define E_ASKCURRENT
Definition: sperror.h:26
char * strcpy()
#define CONSTCtoK
Definition: const.h:11
char * errMsg
Definition: main.c:42
#define E_BADPARM
Definition: iferrmsg.h:26
#define RES_CONDUCT
Definition: resdefs.h:82
double REStemp
Definition: resdefs.h:28
double rValue
Definition: ifsim.h:233
#define RES_RESIST
Definition: resdefs.h:79
double RESresist
Definition: resdefs.h:30
#define DOING_AC
Definition: tskdefs.h:24
int RESposNode
Definition: resdefs.h:25
#define OK
Definition: iferrmsg.h:17
double * CKTrhsOld
Definition: cktdefs.h:98
double RESwidth
Definition: resdefs.h:31
double RESconduct
Definition: resdefs.h:29
#define MALLOC(x)
Definition: util.h:9
#define RES_TEMP
Definition: resdefs.h:85
#define RES_POWER
Definition: resdefs.h:84
#define RES_WIDTH
Definition: resdefs.h:80
char * errRtn
Definition: main.c:41
#define E_ASKPOWER
Definition: sperror.h:27
#define RES_LENGTH
Definition: resdefs.h:81
int CKTcurrentAnalysis
Definition: cktdefs.h:130
#define RES_CURRENT
Definition: resdefs.h:83