examples/inductive-systems/*, add test files

This commit is contained in:
rlar 2017-01-02 19:40:04 +01:00
parent bf542f64d8
commit 13decee3ed
4 changed files with 176 additions and 0 deletions

View File

@ -0,0 +1,32 @@
* indentify non-viable inductive systems (2x2 case)
* (compile (concat "../../../w32/src/ngspice " buffer-file-name) t)
* (compile (concat "valgrind --track-origins=yes --leak-check=full --show-reachable=yes ../../../w32/src/ngspice " buffer-file-name) t)
.subckt ind2 a1 a2 b1 b2 L11=0 L22=0 L12=0
R1 a1 n1 1k
L1 n1 a2 {L11}
L2 n2 b2 {L22}
R2 n2 a2 1k
K12 L1 L2 {L12/sqrt(abs(L11*L22))}
.ends
v1 a 0 dc 1
R1 a 0 1k
R2 b 0 1k
Xgood1 a 0 b 0 ind2 L11=1u L22=4u L12=1.98u
Xbad2 a 0 b 0 ind2 L11=1u L22=4u L12=2.01u
Xgood3 a 0 b 0 ind2 L11=1u L22=4u L12=-1.98u
Xbad4 a 0 b 0 ind2 L11=1u L22=4u L12=-2.01u
Xbad5 a 0 b 0 ind2 L11=1u L22=-4u L12=1n
Xbad6 a 0 b 0 ind2 L11=-1u L22=4u L12=1n
.control
op
remcirc
quit 0
.endc
.end

View File

@ -0,0 +1,31 @@
* indentify non-viable inductive systems (3xx case)
* (compile (concat "../../../w32/src/ngspice " buffer-file-name) t)
* (compile (concat "valgrind --track-origins=yes --leak-check=full --show-reachable=yes ../../../w32/src/ngspice " buffer-file-name) t)
.subckt ind3 a b c L11=10u L22=11u L33=10u K12=0 K13=0 K23=0
R1 a n1 1k
R2 b n2 1k
R4 c n3 1k
L1 n1 0 {L11}
L2 n2 0 {L22}
L3 n3 0 {L33}
K12 L1 L2 {K12}
K13 L1 L3 {K13}
K23 L2 L3 {K23}
.ends
Xgood1 a b c ind3
Xgood2 a b c ind3 K12=0.96 K23=0.99 K13=0.98
Xgood3 a b c ind3 K12=0.96 K23=0.99 K13=0.9898988607
Xbad4 a b c ind3 K12=0.96 K23=0.99 K13=0.9898988608
Xborder5 a b c ind3 K12=1 K23=1 K13=1
Xbad6 a b c ind3 K12=1.01 K23=1 K13=1
.control
op
remcirc
quit 0
.endc
.end

View File

@ -0,0 +1,33 @@
* indentify non-viable inductive systems (4x4 case)
* this excersices the "merging" case in muttemp.c
* (compile (concat "../../../w32/src/ngspice " buffer-file-name) t)
* (compile (concat "valgrind --track-origins=yes --leak-check=full --show-reachable=yes ../../../w32/src/ngspice " buffer-file-name) t)
.subckt ind4 a b c d L11=0 L22=0 L33=0 L44=0 L12=0 L13=0 L14=0 L23=0 L24=0 L34=0
R1 a 1 1k
R2 b 2 1k
R3 c 3 1k
R4 d 4 1k
L1 a 0 {L11}
L2 b 0 {L22}
L3 c 0 {L33}
L4 d 0 {L44}
K13 L1 L3 {L13/sqrt(abs(L11*L33))}
K14 L1 L4 {L14/sqrt(abs(L11*L44))}
K23 L2 L3 {L23/sqrt(abs(L22*L33))}
K24 L2 L4 {L24/sqrt(abs(L22*L44))}
K12 L1 L2 {L12/sqrt(abs(L11*L22))}
K34 L3 L4 {L34/sqrt(abs(L33*L44))}
.ends
Xgood1 a b c d ind4 L11=1u L22=4u L33=3u L44=5u L12=1n L13=1n L14=1n L23=1n L24=1n L34=1n
.control
op
remcirc
quit 0
.endc
.end

View File

@ -0,0 +1,80 @@
* indentify non-viable inductive systems ("altering" case)
* exercise "alter" and "indverbosity"
* (compile (concat "../../../w32/src/ngspice " buffer-file-name) t)
* (compile (concat "valgrind --track-origins=yes --leak-check=full --show-reachable=yes ../../../w32/src/ngspice " buffer-file-name) t)
V1 x 0 dc=0 ac=1
Rx x 1 1
R1 2 0 1k
R2 3 0 1k
L1 1 0 10u
L2 2 0 11u
L3 3 0 10u
k12 L1 L2 0
k23 L2 L3 0
k13 L1 L3 0
R101 101 0 1k
L101 101 0 1u
L102 102 0 2u
L103 103 0 3u
K1012 L101 L102 0.1
K1013 L101 L103 0.2
.AC LIN 5k 1k 10MEG
.control
listing e
echo coupling factors 0 0 0 -- ok
op
alter k12 0.96
alter k23 0.99
alter k13 0.98
echo coupling factors 0.96 0.98 0.98 -- ok
op
alter k12 0.96
alter k23 0.99
alter k13 0.9898988607
echo coupling factors 0.96 0.98 0.9898988607 -- ok
op
alter k12 0.96
alter k23 0.99
alter k13 0.9898988608
echo coupling factors 0.96 0.98 0.9898988608 -- not ok
op
alter k12 1
alter k23 1
alter k13 1
echo coupling factors 1 1 1 -- not ok
op
echo coupling factors 1.01 1 1 -- not ok
alter k12 1.01
set indverbosity = 2
echo "op with indverbosity=2"
op
set indverbosity = 1
echo "op with indverbosity=1"
op
set indverbosity = 0
echo "op with indverbosity=0"
op
destroy all
remcirc
quit
.endc
.END