Jspice3
Main Page
Data Structures
Files
File List
Globals
srcconv.c
Go to the documentation of this file.
1
/***************************************************************************
2
JSPICE3 adaptation of Spice3e2 - Copyright (c) Stephen R. Whiteley 1992
3
Copyright 1990 Regents of the University of California. All rights reserved.
4
Authors: 1985 Thomas L. Quarles
5
1987 Kanwar Jit Singh
6
1992 Stephen R. Whiteley
7
****************************************************************************/
8
9
#include "
spice.h
"
10
#include <stdio.h>
11
#include "
misc.h
"
12
#include "
srcdefs.h
"
13
#include "
sperror.h
"
14
#include "
util.h
"
15
16
17
int
18
SRCconvTest
(inModel, ckt)
19
20
GENmodel
*inModel;
21
CKTcircuit
*ckt;
22
{
23
SRCmodel
*
model
= (
SRCmodel
*)inModel;
24
SRCinstance
*here;
25
int
i;
26
double
diff;
27
double
prev;
28
double
tol;
29
double
rhs;
30
31
for
( ; model !=
NULL
; model = model->
SRCnextModel
) {
32
for
(here = model->
SRCinstances
; here !=
NULL
;
33
here = here->
SRCnextInstance
) {
34
35
if
(!here->
SRCtree
|| !here->
SRCtree
->
numVars
)
continue
;
36
37
for
(i = 0; i < here->
SRCtree
->
numVars
; i++) {
38
here->
SRCvalues
[i] = *(ckt->
CKTrhsOld
+ here->
SRCeqns
[i]);
39
}
40
41
if
((*(here->
SRCtree
->IFeval))
42
(here->
SRCtree
, ckt->
CKTgmin
,&rhs,here->
SRCvalues
,
43
here->
SRCderivs
,&ckt->
CKTtime
) ==
OK
) {
44
/* !! last arg bogus if ft_sim->specSigs changed !! */
45
46
prev = here->
SRCprev
;
47
diff =
FABS
(prev - rhs);
48
if
(here->
SRCtype
==
SRC_V
) {
49
tol = ckt->
CKTreltol
*
50
MAX
(
FABS
(rhs),
FABS
(prev)) + ckt->
CKTvoltTol
;
51
}
52
else
{
53
tol = ckt->
CKTreltol
*
54
MAX
(
FABS
(rhs),
FABS
(prev)) + ckt->
CKTabstol
;
55
}
56
57
if
(diff > tol) {
58
ckt->
CKTnoncon
++;
59
ckt->
CKTtroubleElt
= (
GENinstance
*) here;
60
return
(
OK
);
61
}
62
}
63
else
{
64
return
(
E_BADPARM
);
65
}
66
}
67
}
68
return
(
OK
);
69
}
CKTcircuit::CKTtime
double CKTtime
Definition:
cktdefs.h:77
sSRCinstance::SRCnextInstance
struct sSRCinstance * SRCnextInstance
Definition:
srcdefs.h:26
SRC_V
#define SRC_V
Definition:
srcdefs.h:217
sSRCinstance
Definition:
srcdefs.h:20
sSRCinstance::SRCvalues
double * SRCvalues
Definition:
srcdefs.h:109
misc.h
CKTcircuit::CKTtroubleElt
GENinstance * CKTtroubleElt
Definition:
cktdefs.h:229
srcdefs.h
MAX
#define MAX(a, b)
Definition:
spdefs.h:135
sSRCinstance::SRCeqns
int * SRCeqns
Definition:
srcdefs.h:118
sSRCmodel
Definition:
srcdefs.h:196
sSRCinstance::SRCprev
double SRCprev
Definition:
srcdefs.h:121
CKTcircuit
Definition:
cktdefs.h:62
E_BADPARM
#define E_BADPARM
Definition:
iferrmsg.h:26
CKTcircuit::CKTreltol
double CKTreltol
Definition:
cktdefs.h:183
CKTcircuit::CKTabstol
double CKTabstol
Definition:
cktdefs.h:180
OK
#define OK
Definition:
iferrmsg.h:17
CKTcircuit::CKTrhsOld
double * CKTrhsOld
Definition:
cktdefs.h:98
sperror.h
NULL
#define NULL
Definition:
spdefs.h:121
sSRCmodel::SRCinstances
SRCinstance * SRCinstances
Definition:
srcdefs.h:205
util.h
SRCconvTest
int SRCconvTest(GENmodel *inModel, CKTcircuit *ckt)
Definition:
srcconv.c:18
spice.h
sGENmodel
Definition:
gendefs.h:39
model
static char model[32]
Definition:
subckt.c:76
FABS
#define FABS(a)
Definition:
util.h:41
sIFparseTree::numVars
int numVars
Definition:
ifsim.h:159
sSRCinstance::SRCderivs
double * SRCderivs
Definition:
srcdefs.h:115
CKTcircuit::CKTvoltTol
double CKTvoltTol
Definition:
cktdefs.h:185
CKTcircuit::CKTgmin
double CKTgmin
Definition:
cktdefs.h:190
sGENinstance
Definition:
gendefs.h:24
CKTcircuit::CKTnoncon
int CKTnoncon
Definition:
cktdefs.h:203
sSRCinstance::SRCtype
int SRCtype
Definition:
srcdefs.h:65
sSRCinstance::SRCtree
IFparseTree * SRCtree
Definition:
srcdefs.h:103
sSRCmodel::SRCnextModel
struct sSRCmodel * SRCnextModel
Definition:
srcdefs.h:202
src
lib
dev
src
srcconv.c
Generated by
1.8.11