diff options
Diffstat (limited to 'Windows/spice/examples/various/3d_loop.sp')
-rw-r--r-- | Windows/spice/examples/various/3d_loop.sp | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/Windows/spice/examples/various/3d_loop.sp b/Windows/spice/examples/various/3d_loop.sp deleted file mode 100644 index 5f64efd1..00000000 --- a/Windows/spice/examples/various/3d_loop.sp +++ /dev/null @@ -1,179 +0,0 @@ -testing loops -*variables are global -*vector reside only in the plot where they where created - -.param rr = 10k - -R1 r2 0 r = {rr + 40*TEMPER} -V1 r2 0 1 - -.control -*create a new plot as our base plot -setplot new -set curplottitle = "crossplot" -set plotname=$curplot - -let aa = 5 -let bb = 3 -let cc = 6 -set aa="$&aa" -set bb="$&bb" -set cc="$&cc" - -* generate vector with all (here 90) elements -let result=vector(90) -settype current result -* reshape vector to format 5 x 3 x 6 -*reshape result [5][3][6] -reshape result [$aa][$bb][$cc] - -* vector to store temperature -let tvect=vector(5) -* vector to store voltage -let vvect=vector(6) -* vector to store parameter values -let pvect=vector(3) - -*index for storing in vectors tvect and result - -let indexp = 0 - -foreach pvar 9.5k 10k 10.5k - let indexv = 0 - alterparam rr = $pvar - let pvect[indexp] = $pvar - mc_source - foreach var -40 -20 0 20 40 - set temp = $var - dc v1 0 5 1 - *store name of the actual dc plot - set dcplotname = $curplot - * back to the base plot - setplot $plotname - let result[indexv][indexp] = {$dcplotname}.v1#branch - let tvect[indexv] = $var - if indexv = 0 - let vvect = {$dcplotname}.r2 - end - let indexv = indexv + 1 -* destroy $dcplotname - end - let indexp = indexp + 1 - remcirc -end - -settype voltage vvect -setscale vvect - -let indexplot = 0 -while indexplot < indexp -*plot result[0][indexplot] result[1][indexplot] result[2][indexplot] result[3][indexplot] result[4][indexplot] -let indexplot = indexplot + 1 -end - - -plot -+result[0][0] result[1][0] result[2][0] result[3][0] result[4][0] -+result[0][1] result[1][1] result[2][1] result[3][1] result[4][1] -+result[0][2] result[1][2] result[2][2] result[3][2] result[4][2] - -write 3d_loop_i_vs_v.out -+result[0][0] result[1][0] result[2][0] result[3][0] result[4][0] -+result[0][1] result[1][1] result[2][1] result[3][1] result[4][1] -+result[0][2] result[1][2] result[2][2] result[3][2] result[4][2] - -*transpoe a 3D vector -let aai = 0 -let bbi = 0 -let cci = 0 -let result1 = vector(90) -settype current result1 -* reshape vector to format 3 x 6 x 5 -reshape result1 [$bb][$cc][$aa] - -* shift from vector format 5 x 3 x 6 to 3 x 6 x 5 -*echo test output > resultout.txt -while aai < aa - let bbi = 0 - while bbi < bb - let cci = 0 - while cci < cc - let result1[bbi][cci][aai] = result[aai][bbi][cci] -* print bbi cci aai >> resultout.txt -* print result1[bbi][cci][aai] >> resultout.txt - let cci = cci + 1 - end - let bbi = bbi + 1 - end - let aai = aai + 1 -end - -settype temp-sweep tvect -setscale tvect - -* current through v1 versus temperature -plot -+result1[0][0] result1[1][0] result1[2][0] -+result1[0][1] result1[1][1] result1[2][1] -+result1[0][2] result1[1][2] result1[2][2] -+result1[0][3] result1[1][3] result1[2][3] -+result1[0][4] result1[1][4] result1[2][4] -+result1[0][5] result1[1][5] result1[2][5] - -write 3d_loop_i_vs_t.out -+result1[0][0] result1[1][0] result1[2][0] -+result1[0][1] result1[1][1] result1[2][1] -+result1[0][2] result1[1][2] result1[2][2] -+result1[0][3] result1[1][3] result1[2][3] -+result1[0][4] result1[1][4] result1[2][4] -+result1[0][5] result1[1][5] result1[2][5] - -*plot result1 - -*transpoe a 3D vector -let aai = 0 -let bbi = 0 -let cci = 0 -let result2 = vector(90) -settype current result2 -* reshape vector to format 6 x 5 x 3 -reshape result2 [$cc][$aa][$bb] - -* shift from vector format 3 x 6 x 5 to 6 x 5 x 3 -*echo test output > resultout.txt -while aai < aa - let bbi = 0 - while bbi < bb - let cci = 0 - while cci < cc - let result2[cci][aai][bbi] = result1[bbi][cci][aai] -* print cci aai bbi >> resultout.txt -* print result2[cci][aai][bbi] >> resultout.txt - let cci = cci + 1 - end - let bbi = bbi + 1 - end - let aai = aai + 1 -end - -settype impedance pvect -setscale pvect - -* current through v1 versus parameter rr -plot -+result2[0][0] result2[1][0] result2[2][0] result2[3][0] result2[4][0] result2[5][0] -+result2[0][1] result2[1][1] result2[2][1] result2[3][1] result2[4][1] result2[5][1] -+result2[0][2] result2[1][2] result2[2][2] result2[3][2] result2[4][2] result2[5][2] -+result2[0][3] result2[1][3] result2[2][3] result2[3][3] result2[4][3] result2[5][3] -+result2[0][4] result2[1][4] result2[2][4] result2[3][4] result2[4][4] result2[5][4] - -write 3d_loop_i_vs_para.out -+result2[0][0] result2[1][0] result2[2][0] result2[3][0] result2[4][0] result2[5][0] -+result2[0][1] result2[1][1] result2[2][1] result2[3][1] result2[4][1] result2[5][1] -+result2[0][2] result2[1][2] result2[2][2] result2[3][2] result2[4][2] result2[5][2] -+result2[0][3] result2[1][3] result2[2][3] result2[3][3] result2[4][3] result2[5][3] -+result2[0][4] result2[1][4] result2[2][4] result2[3][4] result2[4][4] result2[5][4] - -.endc - -.end |