pyRFtk 2.0.8__tar.gz → 2.0.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. {pyrftk-2.0.8 → pyrftk-2.0.9}/PKG-INFO +1 -1
  2. {pyrftk-2.0.8 → pyrftk-2.0.9}/pyproject.toml +1 -1
  3. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/ReadTSF.py +12 -6
  4. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/__init__.py +2 -2
  5. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/rfCircuit.py +33 -3
  6. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/rfGTL.py +2 -0
  7. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/rfObject.py +98 -13
  8. pyrftk-2.0.8/rfCommon.log +0 -67
  9. {pyrftk-2.0.8 → pyrftk-2.0.9}/.gitignore +0 -0
  10. {pyrftk-2.0.8 → pyrftk-2.0.9}/LICENCE +0 -0
  11. {pyrftk-2.0.8 → pyrftk-2.0.9}/README.md +0 -0
  12. {pyrftk-2.0.8 → pyrftk-2.0.9}/logo/logo.pdf +0 -0
  13. {pyrftk-2.0.8 → pyrftk-2.0.9}/logo/logo.png +0 -0
  14. {pyrftk-2.0.8 → pyrftk-2.0.9}/logo/logo.svg +0 -0
  15. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/.gitignore +0 -0
  16. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/ConvertGeneral.py +0 -0
  17. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/ReadDictData.py +0 -0
  18. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/S_from_VI.py +0 -0
  19. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/S_from_Y.py +0 -0
  20. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/S_from_Z.py +0 -0
  21. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/WriteTSF.py +0 -0
  22. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/Y_from_S.py +0 -0
  23. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/Z_from_S.py +0 -0
  24. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/_check_3D_shape_.py +0 -0
  25. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/circuit.py +0 -0
  26. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/codebase.py +0 -0
  27. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/compareSs.py +0 -0
  28. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/config.py +0 -0
  29. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/findpath.py +0 -0
  30. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/getlines.py +0 -0
  31. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/maxfun.py +0 -0
  32. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/plotVSWs.py +0 -0
  33. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/printMatrices.py +0 -0
  34. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/resolveTLparams.py +0 -0
  35. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/rfArcObj.py +0 -0
  36. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/rfBase.py +0 -0
  37. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/rfCoupler.py +0 -0
  38. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/rfRLC.py +0 -0
  39. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/rfTRL.py +0 -0
  40. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/str_dict.py +0 -0
  41. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/tictoc.py +0 -0
  42. {pyrftk-2.0.8 → pyrftk-2.0.9}/src/pyRFtk/whoami.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyRFtk
3
- Version: 2.0.8
3
+ Version: 2.0.9
4
4
  Summary: Design tool for RF antennae networks
5
5
  Project-URL: Homepage, https://lpp-erm-kms.github.io/pyrftk/
6
6
  Author-email: Frederic Durodie <frederic.durodie@rma.ac.be>, Arthur Adriaens <arthur.adriaens@mil.be>
@@ -3,7 +3,7 @@ requires = ["hatchling","numpy","matplotlib","logging"]
3
3
  build-backend = "hatchling.build"
4
4
  [project]
5
5
  name = "pyRFtk"
6
- version = "2.0.8"
6
+ version = "2.0.9"
7
7
  authors = [
8
8
  { name="Frederic Durodie", email="frederic.durodie@rma.ac.be" },
9
9
  { name="Arthur Adriaens", email="arthur.adriaens@mil.be" },
@@ -1,4 +1,4 @@
1
- __updated__ = "2025-01-21 15:58:36"
1
+ __updated__ = "2026-05-20 14:58:47"
2
2
 
3
3
  import numpy as np
4
4
  import re
@@ -349,14 +349,15 @@ def ReadTSF(src, **kwargs):
349
349
 
350
350
  ## do some checking
351
351
  nZcs, nZbase = 0, 0
352
- if len(Zcs) and (nZcs := Zcs.shape[1]):
352
+ if len(Zcs) and (nZcs := np.array(Zcs).shape[1]):
353
353
  # Zcs (and probably gammas) were present in the file
354
354
  if Zbase is not None:
355
355
  # there was also a R ... in the format
356
356
  if (nZbase := len(Zbase) if hasattr(Zbase, '__iter__') else 1) != nZcs :
357
- warn(f'\nInconsistent length of the Zcs ({nZcs}) comments and the '
358
- f'format supplied reference impedance R ({nZbase})',
359
- stacklevel=4)
357
+ if False:
358
+ warn(f'\nInconsistent length of the Zcs ({nZcs}) comments and the '
359
+ f'format supplied reference impedance R ({nZbase})',
360
+ stacklevel=4)
360
361
  else:
361
362
  # numbers match ... but do the values
362
363
  if nZbase == 1:
@@ -376,7 +377,9 @@ def ReadTSF(src, **kwargs):
376
377
  if nZbase == 1 and nZcs != 1:
377
378
  err = []
378
379
 
379
-
380
+ else: # this should be the case when no Zcs or gammas are present
381
+ nZbase = len(Zlist)
382
+
380
383
 
381
384
  # if the data type is Z or Y we need to convert to S
382
385
 
@@ -397,6 +400,7 @@ def ReadTSF(src, **kwargs):
397
400
 
398
401
  elif Zbase is not None and (nZbase == 1 or nZbase == Ss.shape[1]):
399
402
  Ss = ConvertGeneral(TZbase if TZbase else 50., Ss, Zbase, 'P', 'V')
403
+ # print(f'have converted the data from {Zbase} in the touchstone to {TZbase}')
400
404
 
401
405
  elif Zbase is None: # No Zcs and Zbase is None:
402
406
  Ss = ConvertGeneral(TZbase if TZbase else 50., Ss, Zcs, 'P', 'V')
@@ -404,6 +408,7 @@ def ReadTSF(src, **kwargs):
404
408
  else:
405
409
  logit['ERROR'] and tLogger.error(f'len(Zcs)[{len(Zcs)}] != N[{N}]')
406
410
  logit['ERROR'] and tLogger.error(f'Zcs={Zcs}')
411
+ raise ValueError('in ReadTSF: please specify Zbase')
407
412
 
408
413
 
409
414
  # set the portnames
@@ -440,6 +445,7 @@ def ReadTSF(src, **kwargs):
440
445
  debug and tLogger.debug(ident(f'set ports to {ports}'))
441
446
 
442
447
  debug and tLogger.debug(ident(f'< [CommonLib.ReadTSF]',-1))
448
+
443
449
  return {
444
450
  "ports" : ports,
445
451
  "fs" : fs,
@@ -1,6 +1,6 @@
1
- __updated__ = "2025-01-24 07:58:36"
1
+ __updated__ = "2026-04-24 09:20:26"
2
2
 
3
- # print('\n*** using local copy of pyRFtk ***\n')
3
+ print('\n*** using local copy of pyRFtk ***\n')
4
4
 
5
5
  from .config import tLogger, setLogLevel, logit, ident, _newID, logident
6
6
  from .rfBase import rfBase
@@ -1,4 +1,6 @@
1
- __updated__ = "2023-11-09 10:00:05"
1
+ __updated__ = "2026-05-19 11:11:41"
2
+
3
+ #FIXME: addblock of a np.array fails because of xpos issues (also __str__ fails)
2
4
 
3
5
  import numpy as np
4
6
  import matplotlib.pyplot as plt
@@ -292,6 +294,30 @@ class rfCircuit(rfBase):
292
294
 
293
295
  return obj
294
296
 
297
+ #==============================================================================================
298
+ #
299
+ # o b j e c t
300
+ #
301
+ def object(self,path):
302
+ """object
303
+
304
+ returns the object pointed to by path
305
+
306
+ eg. rfCircuit_object = self.object('block1.block2. ... .blockN')
307
+
308
+ is equivalent to
309
+
310
+ rfCircuit_object = \
311
+ self.blocks['block1']['object'].blocks['block2']['object']. ... .blocks['blockN']['object']
312
+
313
+ Note this is similar to findObj
314
+ """
315
+ obj = self
316
+ for blk in path.split('.'):
317
+ obj = obj.blocks[blk]['object']
318
+
319
+ return obj
320
+
295
321
  #===========================================================================
296
322
  #
297
323
  # _ s u b s t p o r t s
@@ -692,8 +718,12 @@ class rfCircuit(rfBase):
692
718
 
693
719
  # update the self.xpos
694
720
  # self.xpos = []
695
- for p, x in zip(oports, RFobj.xpos):
696
- self.xpos.append(relpos + x)
721
+ if hasattr(RFobj,'xpos'):
722
+ for p, x in zip(oports, RFobj.xpos):
723
+ self.xpos.append(relpos + x)
724
+ else:
725
+ for p in oports:
726
+ self.xpos.append(relpos)
697
727
 
698
728
  _debug_ and tLogger.debug(ident(
699
729
  f'< [circuit.addblock] (inserted a new block)', -1
@@ -59,6 +59,8 @@ class rfGTL(rfCircuit):
59
59
 
60
60
  with open(path2model,'r') as f:
61
61
  self.model = ast.literal_eval(f.read())
62
+
63
+ pprint(self.model)
62
64
 
63
65
  try:
64
66
  self.GTL = self.model[self.objkey]['GTL']
@@ -1,4 +1,6 @@
1
- __updated__ = "2023-11-08 11:19:50"
1
+ __updated__ = "2026-05-20 14:05:43"
2
+
3
+ #TODO: add the possibility to fill doing rfObject(fs=[ ...], Ss=[ ... ])
2
4
 
3
5
  if __name__ == '__main__':
4
6
  import sys
@@ -60,9 +62,9 @@ class rfObject():
60
62
  and
61
63
 
62
64
  excitation = {port1:a1, ... }
63
- Vamx, rfObject.maxV(fHz, excitation)
65
+ Vmax, rfObject.maxV(fHz, excitation)
64
66
 
65
-
67
+ [note code partially debugged using co-pilot (GPT-5 mini)]
66
68
  """
67
69
  #===========================================================================
68
70
  #
@@ -85,6 +87,8 @@ class rfObject():
85
87
  fixme: no parameters to set the Zcs and Gms port properties
86
88
  """
87
89
 
90
+ self.got_args = False
91
+
88
92
  if not hasattr(self,'args'):
89
93
  self.args = args
90
94
 
@@ -93,12 +97,76 @@ class rfObject():
93
97
 
94
98
  self.Id = kwargs.pop('Id',f'{type(self).__name__}_{_newID()}')
95
99
 
100
+ # if only an arg is given -> convert it (type cast) to an rfObject
101
+ # this eg to convert a list/numpy array to an rfOject
102
+ #
103
+ # obj = rfObject(numpy.array([[0,1],[1,0]])
104
+ # obj.getS(fs) returns [[0,1],[1,0]] for all frequenies fs
105
+ #
106
+ # what could be valid kwargs ?
107
+ #
108
+ # ports, xpos, Zbase
109
+
110
+ # print(f'rfObject: Nargs = {len(args)}')
111
+
112
+ if Nargs := len(args):
113
+ if Nargs == 1:
114
+ # check type of arg
115
+ if not isinstance(args[0], (np.ndarray, np.matrix, list)):
116
+ raise TypeError(
117
+ f'rfObject: args[0] must be of type list, numpy.array or '
118
+ f'numpy.matrix; got {type(args[0])}')
119
+
120
+ arg0 = np.array(args[0], dtype=complex)
121
+
122
+ if len(arg0.shape) != 2:
123
+ raise TypeError(
124
+ f'rfObject: arg[0] must must represent a square 2-dim '
125
+ f'array; got {arg0.shape}')
126
+
127
+ if arg0.shape[0] != arg0.shape[1]:
128
+ raise TypeError(
129
+ f'rfObject: arg[0] must must represent a square 2-dim '
130
+ f'array; got {arg0.shape[0]} x {arg0.shape[1]}')
131
+
132
+ self.N = arg0.shape[0]
133
+ self.ports = [f'm{k:03d}' for k in range(1,self.N+1)]
134
+ self.Ss = np.array([arg0, arg0])
135
+ self.fs = np.array([0, 1e18])
136
+
137
+ self.got_args = True
138
+
139
+ elif Nargs == 2:
140
+ raise NotImplementedError()
141
+
142
+ else:
143
+ raise TypeError(f"rfObject: at most 2 args expected; got {Nargs}")
144
+
96
145
  #TODO: validate allowed port names
97
- self.ports = kwargs.get('ports',[])
98
- self.alias = {}
99
- if isinstance(self.ports, str):
100
- self.ports = self.ports.split()
101
- self.N = len(self.ports)
146
+
147
+ self.alias = {} #FIXME: what was the idea again ... does not appear to be used
148
+
149
+ _ports = kwargs.get('ports', [])
150
+ if isinstance(_ports, str):
151
+ _ports = _ports.split()
152
+ _N = len(_ports)
153
+
154
+ # If the object was created from an argument (e.g. an S-matrix),
155
+ # self.N and self.ports may already be set. Only override ports
156
+ # from kwargs when the caller actually provided a non-empty ports list.
157
+ if hasattr(self, 'N'):
158
+ if _N:
159
+ if _N != self.N:
160
+ raise ValueError(
161
+ f'rfObject: the supplied args suggests a {self.N} port '
162
+ f'object but the supplied port kwarg suggests a {_N} port one')
163
+ # override only when ports were explicitly provided
164
+ self.ports = _ports
165
+ else:
166
+ # no N previously set -> use provided ports count (may be zero)
167
+ self.N = _N
168
+ # assign provided ports (may be empty list)
169
+ self.ports = _ports
102
170
 
103
171
  self.Zbase = kwargs.get('Zbase', rcparams['Zbase'])
104
172
  self.funit = kwargs.get('funit', rcparams['funit'])
@@ -107,13 +175,17 @@ class rfObject():
107
175
 
108
176
  self.interp = kwargs.get('interp',rcparams['interp'])
109
177
  self.interpkws = kwargs.get('interpkws',rcparams['interpkws'])
110
-
178
+
111
179
  self.xpos = kwargs.get('xpos', [0.]*self.N)
112
-
180
+
113
181
  # initialize arrays and stuff
114
- self.fs = np.array([],dtype=float).reshape((0,))
182
+ if not hasattr(self,'fs'):
183
+ self.fs = np.array([],dtype=float).reshape((0,))
115
184
  self.sorted = True
116
- self.Ss = np.array([], dtype=complex).reshape((0, self.N, self.N))
185
+
186
+ if not hasattr(self, 'Ss'):
187
+ self.Ss = np.array([], dtype=complex).reshape((0, self.N, self.N))
188
+
117
189
  self.Zcs = np.array([], dtype=complex).reshape(0, self.N)
118
190
  self.Gms = np.array([], dtype=complex).reshape(0, self.N)
119
191
  self.process_kwargs()
@@ -121,13 +193,22 @@ class rfObject():
121
193
 
122
194
  self.touchstone = kwargs.get('touchstone', None)
123
195
  if self.touchstone:
196
+ if self.got_args:
197
+ raise ValueError(
198
+ f'rfObject: touchstone is not compatible with the use of args')
199
+
124
200
  Tkwargs = {'Zbase': self.Zbase, 'funit':'HZ'}
201
+ # FIXME: if Zbase is not supplied it defaults to 50 Ohm but that is
202
+ # not taking into account the information supplied in the
203
+ # touchstone !
204
+
125
205
  for (kw, value) in kwargs.items():
126
206
  if kw in Tkwargs:
127
207
  Tkwargs[kw] = value
128
208
 
129
209
  self.read_tsf(self.touchstone, **Tkwargs)
130
-
210
+
211
+
131
212
  self.interpOK = False
132
213
 
133
214
  self.f, self.S = None, None
@@ -214,7 +295,10 @@ class rfObject():
214
295
  for kw, val in self.kwargs.items():
215
296
  s += ',\n'
216
297
  s += ' %s = %r' % (kw,val)
298
+ if 'Zbase' not in self.kwargs:
299
+ s += f'\n Zbase = {self.Zbase} [default]'
217
300
  s += '\n)'
301
+
218
302
  return s
219
303
 
220
304
  #===========================================================================
@@ -673,3 +757,4 @@ class rfObject():
673
757
  f'pyRFtk2.rfObject.deembed: port(s) {",".join([p for p in ports])}'
674
758
  ' not found.')
675
759
 
760
+
pyrftk-2.0.8/rfCommon.log DELETED
@@ -1,67 +0,0 @@
1
- DEBUG - config.py setLogLevel [ 39]: Change loglevel from CRITICAL to DEBUG
2
- DEBUG - rfCircuit.py __init__ [ 60]: [ 0] > __init__
3
- DEBUG - rfBase.py __init__ [ 70]: [ 1] | > __init__
4
- DEBUG - rfBase.py __init__ [ 114]: [ 2] | | self.fs=[]
5
- DEBUG - rfBase.py __init__ [ 138]: [ 1] | < __init__
6
- DEBUG - rfCircuit.py __init__ [ 110]: [ 0] < __init__
7
- DEBUG - rfCircuit.py addblock [ 533]: [ 0] > [circuit.addblock] name= TL1, RFobj= rfTRL_1, ports= None, params={}, kwargs= {}
8
- DEBUG - rfCircuit.py addblock [ 698]: [ 0] < [circuit.addblock] (inserted a new block)
9
- DEBUG - rfCircuit.py addblock [ 533]: [ 0] > [circuit.addblock] name= TL2, RFobj= rfTRL_1, ports= None, params={}, kwargs= {}
10
- DEBUG - rfCircuit.py addblock [ 698]: [ 0] < [circuit.addblock] (inserted a new block)
11
- DEBUG - rfCircuit.py connect [ 748]: [ 0] > [circuit.connect] ports= ('TL1.1', 'TL2.1', '1')
12
- DEBUG - rfCircuit.py connect [ 821]: [ 0] < [circuit.connect]
13
- DEBUG - rfCircuit.py connect [ 748]: [ 0] > [circuit.connect] ports= ('TL1.2', 'TL2.2', '2')
14
- DEBUG - rfCircuit.py connect [ 821]: [ 0] < [circuit.connect]
15
- DEBUG - rfCircuit.py getS [ 1203]: [ 0] > [circuit.getS] fs= 10000000.0, Zbase= None, params= {}, flags= {}
16
- DEBUG - rfCircuit.py get1S [ 1228]: [ 1] | not using sNp: no sNp
17
- DEBUG - rfCircuit.py get1S [ 1235]: [ 1] | getting S for TL1
18
- DEBUG - rfCircuit.py get1S [ 1235]: [ 1] | getting S for TL2
19
- DEBUG - rfCircuit.py extS [ 949]: [ 1] | > [circuit.extS]
20
- DEBUG - rfCircuit.py extS [ 955]: [ 2] | | M is not square (10, 12)
21
- DEBUG - rfCircuit.py extS [ 993]: [ 2] | | Portnames= ['1', '2']
22
- DEBUG - rfCircuit.py extS [ 994]: [ 2] | | ports= ['1', '2']
23
- DEBUG - rfCircuit.py extS [ 1021]: [ 2] | | S:
24
- DEBUG - rfCircuit.py extS [ 1028]: [ 2] | | [2,2]
25
- DEBUG - rfCircuit.py extS [ 1028]: [ 2] | | 0.15417 -104.89°, 0.98804 -14.89°,
26
- DEBUG - rfCircuit.py extS [ 1028]: [ 2] | | 0.98804 -14.89°, 0.15417 -104.89°,
27
- DEBUG - rfCircuit.py extS [ 1030]: [ 1] | < [circuit.extS]
28
- DEBUG - rfCircuit.py getS [ 1282]: [ 1] | Ss: 1 matrix
29
- DEBUG - rfCircuit.py getS [ 1286]: [ 1] | f= 10000000.0 Hz
30
- DEBUG - rfCircuit.py getS [ 1293]: [ 1] | [2,2]
31
- DEBUG - rfCircuit.py getS [ 1293]: [ 1] | 0.15417 -104.89°, 0.98804 -14.89°,
32
- DEBUG - rfCircuit.py getS [ 1293]: [ 1] | 0.98804 -14.89°, 0.15417 -104.89°,
33
- DEBUG - rfCircuit.py getS [ 1295]: [ 0] < [circuit.getS]
34
- DEBUG - rfCircuit.py <lambda> [ 840]: [ 0] > [circuit.terminate] port= "1", kwargs= {'Z': 0}
35
- DEBUG - rfCircuit.py terminate [ 883]: [ 1] | port was an external port
36
- DEBUG - rfCircuit.py <lambda> [ 840]: [ 1] | "1" -> idxA: 8, idxB: 9
37
- DEBUG - rfCircuit.py terminate [ 885]: [ 1] | self.E["1"] = 10
38
- DEBUG - rfCircuit.py terminate [ 888]: [ 1] | self.M[8] -> (1+0j)
39
- DEBUG - rfCircuit.py terminate [ 934]: [ 0] < [circuit.terminate]
40
- DEBUG - rfCircuit.py getS [ 1203]: [ 0] > [circuit.getS] fs= 10000000.0, Zbase= None, params= {}, flags= {}
41
- DEBUG - rfCircuit.py get1S [ 1228]: [ 1] | not using sNp: no sNp
42
- DEBUG - rfCircuit.py get1S [ 1235]: [ 1] | getting S for TL1
43
- DEBUG - rfCircuit.py get1S [ 1235]: [ 1] | getting S for TL2
44
- DEBUG - rfCircuit.py extS [ 949]: [ 1] | > [circuit.extS]
45
- DEBUG - rfCircuit.py extS [ 993]: [ 2] | | Portnames= ['2']
46
- DEBUG - rfCircuit.py extS [ 994]: [ 2] | | ports= ['2']
47
- DEBUG - rfCircuit.py extS [ 1021]: [ 2] | | S:
48
- DEBUG - rfCircuit.py extS [ 1028]: [ 2] | | [1,1]
49
- DEBUG - rfCircuit.py extS [ 1028]: [ 2] | | 1.00000 +167.86°,
50
- DEBUG - rfCircuit.py extS [ 1030]: [ 1] | < [circuit.extS]
51
- DEBUG - rfCircuit.py getS [ 1282]: [ 1] | Ss: 1 matrix
52
- DEBUG - rfCircuit.py getS [ 1286]: [ 1] | f= 10000000.0 Hz
53
- DEBUG - rfCircuit.py getS [ 1293]: [ 1] | [1,1]
54
- DEBUG - rfCircuit.py getS [ 1293]: [ 1] | 1.00000 +167.86°,
55
- DEBUG - rfCircuit.py getS [ 1295]: [ 0] < [circuit.getS]
56
- DEBUG - rfCircuit.py getS [ 1203]: [ 0] > [circuit.getS] fs= 10000000.0, Zbase= None, params= {}, flags= {}
57
- DEBUG - rfCircuit.py get1S [ 1228]: [ 1] | not using sNp: no sNp
58
- DEBUG - rfCircuit.py getS [ 1282]: [ 1] | Ss: 1 matrix
59
- DEBUG - rfCircuit.py getS [ 1286]: [ 1] | f= 10000000.0 Hz
60
- DEBUG - rfCircuit.py getS [ 1293]: [ 1] | [1,1]
61
- DEBUG - rfCircuit.py getS [ 1293]: [ 1] | 1.00000 +167.86°,
62
- DEBUG - rfCircuit.py getS [ 1295]: [ 0] < [circuit.getS]
63
- DEBUG - rfCircuit.py __init__ [ 60]: [ 0] > __init__
64
- DEBUG - rfBase.py __init__ [ 70]: [ 1] | > __init__
65
- DEBUG - rfBase.py __init__ [ 114]: [ 2] | | self.fs=[]
66
- DEBUG - rfBase.py __init__ [ 138]: [ 1] | < __init__
67
- DEBUG - rfCircuit.py __init__ [ 110]: [ 0] < __init__
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes