Jspice3
jj.c
Go to the documentation of this file.
1 /***************************************************************************
2 JSPICE3 adaptation of Spice3e2 - Copyright (c) Stephen R. Whiteley 1992
3 Author: 1993 Stephen R. Whiteley
4 ****************************************************************************/
5 
6 #include "spice.h"
7 #include <stdio.h>
8 #include "jjdefs.h"
9 
10 static IFparm JJpTable[] = { /* parameters */
11  IOP("area", JJ_AREA, IF_REAL, "Area factor"),
12  IOP("ic", JJ_IC, IF_REALVEC, "Initial condition vector"),
13  IOP("phi", JJ_ICP, IF_REAL, "Initial condition phase"),
14  IOP("vj", JJ_ICV, IF_REAL, "Initial condition voltage"),
15  IOP("control",JJ_CON, IF_INSTANCE,"Control inductor or voltage source"),
16  OP( "icrit", JJ_QUEST_CRT,IF_REAL, "Maximum critical current"),
17  OP( "cap", JJ_QUEST_CAP,IF_REAL, "Capacitance"),
18  OP( "g0", JJ_QUEST_G0, IF_REAL, "Subgap conductance"),
19  OP( "gn", JJ_QUEST_GN, IF_REAL, "Normal conductance"),
20  OP( "gs", JJ_QUEST_GS, IF_REAL, "Quasiparticle onset conductance"),
21  OP( "g1", JJ_QUEST_G1, IF_REAL, "NbN quasiparticle parameter"),
22  OP( "g2", JJ_QUEST_G2, IF_REAL, "NbN quasiparticle parameter"),
23 };
24 
25 static IFparm JJmPTable[] = { /* model parameters */
26  OP( "jj", JJ_MOD_JJ, IF_FLAG, "Model name"),
27  IOP("rtype", JJ_MOD_RT, IF_INTEGER,"Quasiparticle current model"),
28  IOP("cct", JJ_MOD_IC, IF_INTEGER,"Critical current model"),
29  IOP("vg", JJ_MOD_VG, IF_REAL, "Gap voltage"),
30  IOP("delv", JJ_MOD_DV, IF_REAL, "Delta gap voltage"),
31  IOP("icrit", JJ_MOD_CRT, IF_REAL, "Max crit current per unit area"),
32  IOP("cap", JJ_MOD_CAP, IF_REAL, "Capacitance per unit area"),
33  IOP("r0", JJ_MOD_R0, IF_REAL, "Subgap resistance for unit area"),
34  IOP("rn", JJ_MOD_RN, IF_REAL, "Normal resistance for unit area"),
35  IOP("icon", JJ_MOD_CCS, IF_REAL, "Control current first null"),
36  OP( "vless", JJ_MQUEST_VL, IF_REAL, "Gap threshold voltage"),
37  OP( "vmore", JJ_MQUEST_VM, IF_REAL, "Gap knee voltage"),
38  OP( "vdp", JJ_MQUEST_VDP,IF_REAL, "Dropback voltage"),
39 };
40 
41 static char *JJnames[] = {
42  "B+",
43  "B-",
44  "Ph"
45 };
46 
47 static char *JJmodNames[] = {
48  "jj",
49  NULL
50 };
51 
52 static IFkeys JJkeys[] = {
53  { 'b', NUMELEMS(JJnames), JJnames, 1, 0 },
54 };
55 
56 
57 static int JJkSize = NUMELEMS(JJkeys);
58 static int JJpTSize = NUMELEMS(JJpTable);
59 static int JJmPTSize = NUMELEMS(JJmPTable);
60 static int JJiSize = sizeof(JJinstance);
61 static int JJmSize = sizeof(JJmodel);
62 
63 
65  {
66  "JJ",
67  "Josephson Junction model",
68 
69  &JJkSize,
70  JJkeys,
71  1,
72  JJmodNames,
73  JJparse,
74 
75  &JJpTSize,
76  JJpTable,
77 
78  &JJmPTSize,
79  JJmPTable,
80  },
81 
82  JJparam,
83  JJmParam,
84  JJload,
85  JJsetup,
86  JJsetup,
87  NULL /* JJtemp */,
88  JJtrunc,
89  NULL,
90  NULL /* JJacLoad */,
91  JJaccept,
92  GENdestroy,
93  GENmDelete,
94  GENdelete,
95  JJgetic,
96  JJask,
97  JJmAsk,
98  NULL /* JJpzLoad */,
99  NULL /* JJconvTest */,
100  NULL /* JJdisto */,
101  NULL /* JJnoise */,
102 
103  &JJiSize,
104  &JJmSize
105 };
static IFparm JJmPTable[]
Definition: jj.c:25
#define JJ_QUEST_G1
Definition: jjdefs.h:135
#define IOP(a, b, c, d)
Definition: devdefs.h:120
#define JJ_MOD_IC
Definition: jjdefs.h:141
struct sJJmodel JJmodel
#define NUMELEMS(ARRAY)
Definition: spice.h:157
static IFparm JJpTable[]
Definition: jj.c:10
#define JJ_ICP
Definition: jjdefs.h:124
static IFkeys JJkeys[]
Definition: jj.c:52
#define JJ_MQUEST_VL
Definition: jjdefs.h:153
struct sJJinstance JJinstance
static int JJmPTSize
Definition: jj.c:59
#define JJ_AREA
Definition: jjdefs.h:122
void GENdestroy()
int JJmParam()
#define IF_INSTANCE
Definition: ifsim.h:112
#define JJ_MOD_R0
Definition: jjdefs.h:146
static int JJkSize
Definition: jj.c:57
#define JJ_QUEST_CAP
Definition: jjdefs.h:131
#define JJ_MQUEST_VM
Definition: jjdefs.h:154
int JJparam()
#define JJ_QUEST_GS
Definition: jjdefs.h:134
#define JJ_QUEST_G0
Definition: jjdefs.h:132
#define JJ_MOD_CCS
Definition: jjdefs.h:148
#define NULL
Definition: spdefs.h:121
#define JJ_MOD_RN
Definition: jjdefs.h:147
#define JJ_MOD_CRT
Definition: jjdefs.h:144
static int JJmSize
Definition: jj.c:61
static int JJpTSize
Definition: jj.c:58
#define IF_INTEGER
Definition: ifsim.h:107
#define JJ_MQUEST_VDP
Definition: jjdefs.h:155
#define JJ_ICV
Definition: jjdefs.h:125
int JJmAsk()
int JJtrunc()
#define JJ_MOD_JJ
Definition: jjdefs.h:149
int JJload()
Definition: ifsim.h:54
Definition: ifsim.h:267
int JJsetup()
#define JJ_MOD_VG
Definition: jjdefs.h:142
#define IF_REAL
Definition: ifsim.h:108
#define JJ_QUEST_CRT
Definition: jjdefs.h:130
#define JJ_QUEST_G2
Definition: jjdefs.h:136
#define IF_FLAG
Definition: ifsim.h:106
SPICEdev JJinfo
Definition: jj.c:64
int GENmDelete()
int JJaccept()
#define IF_REALVEC
Definition: ifsim.h:125
int GENdelete()
#define JJ_IC
Definition: jjdefs.h:123
#define JJ_MOD_RT
Definition: jjdefs.h:140
static int JJiSize
Definition: jj.c:60
#define JJ_QUEST_GN
Definition: jjdefs.h:133
#define JJ_MOD_DV
Definition: jjdefs.h:143
static char * JJnames[]
Definition: jj.c:41
#define OP(a, b, c, d)
Definition: devdefs.h:119
int JJgetic()
#define JJ_CON
Definition: jjdefs.h:126
static char * JJmodNames[]
Definition: jj.c:47
#define JJ_MOD_CAP
Definition: jjdefs.h:145
int JJask()
void JJparse()