summaryrefslogtreecommitdiffstatshomepage
path: root/nl_examples/kidniki.c
diff options
context:
space:
mode:
author couriersud <couriersud@arcor.de>2016-03-17 01:24:52 +0100
committer couriersud <couriersud@arcor.de>2016-03-23 22:03:26 +0100
commit489e2919db7d33d6ac007b614e21b47e27265821 (patch)
tree995c888744d6596222665c334a11b31b59bbfe56 /nl_examples/kidniki.c
parentc22a27df812e9ca332a596b1914856e831b577b8 (diff)
Netlist: code maintenance
- rename netlist_analog_t to analog_t - straighten object model - reduce access to member variables - use pvector<analog_net_t::list_t> for groups. - simple coverity fixes.
Diffstat (limited to 'nl_examples/kidniki.c')
-rw-r--r--nl_examples/kidniki.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/nl_examples/kidniki.c b/nl_examples/kidniki.c
index 8914317e7cb..ba53fb3867b 100644
--- a/nl_examples/kidniki.c
+++ b/nl_examples/kidniki.c
@@ -4,22 +4,27 @@
#include "netlist/devices/nld_system.h"
#include "netlist/analog/nld_bjt.h"
-#define USE_FRONTIERS 0
-#define USE_FIXED_STV 0
+#define USE_FRONTIERS 1
+#define USE_FIXED_STV 1
NETLIST_START(dummy)
+#if (USE_FRONTIERS)
+ SOLVER(Solver, 18000)
+ PARAM(Solver.ACCURACY, 1e-8)
+ PARAM(Solver.NR_LOOPS, 300)
+ PARAM(Solver.GS_LOOPS, 1)
+ PARAM(Solver.GS_THRESHOLD, 6)
+ PARAM(Solver.ITERATIVE, "SOR")
+ PARAM(Solver.PARALLEL, 0)
+ PARAM(Solver.SOR_FACTOR, 1.00)
+#else
SOLVER(Solver, 12000)
- PARAM(Solver.ACCURACY, 1e-7)
+ PARAM(Solver.ACCURACY, 1e-8)
PARAM(Solver.NR_LOOPS, 300)
- PARAM(Solver.GS_LOOPS, 23)
- //PARAM(Solver.GS_THRESHOLD, 99) // Force Gaussian elimination here
- PARAM(Solver.SOR_FACTOR, 1.05)
+ PARAM(Solver.GS_LOOPS, 20)
PARAM(Solver.ITERATIVE, "GMRES")
- #if 0
- //PARAM(Solver.SOR_FACTOR, 1)
- PARAM(Solver.DYNAMIC_TS, 1)
- PARAM(Solver.LTE, 1e-1)
- #endif
+ PARAM(Solver.PARALLEL, 0)
+#endif
//FIXME proper models!
//NET_MODEL("2SC945 NPN(Is=2.04f Xti=3 Eg=1.11 Vaf=6 Bf=400 Ikf=20m Xtb=1.5 Br=3.377 Rc=1 Cjc=1p Mjc=.3333 Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0 VCEO=45V ICrating=150M MFG=Toshiba)")
//NET_MODEL("1S1588 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)")
@@ -70,6 +75,11 @@ NETLIST_START(dummy)
OPTIMIZE_FRONTIER(C63.2, RES_K(27), RES_K(1))
OPTIMIZE_FRONTIER(R31.2, RES_K(5.1), 50)
OPTIMIZE_FRONTIER(R29.2, RES_K(2.7), 50)
+ OPTIMIZE_FRONTIER(R87.2, RES_K(68), 50)
+
+ OPTIMIZE_FRONTIER(R50.1, RES_K(2.2), 50)
+ OPTIMIZE_FRONTIER(R55.1, RES_K(510), 50)
+ OPTIMIZE_FRONTIER(R84.2, RES_K(50), RES_K(5))
#endif
NETLIST_END()