Comparisons for using the "contact trace" utility This gives results verifying the "contact trace" and "contact connection" utilities. We wish to use the trace and connection utilities to match known results. Particularly, we want to see if defining a diagonal trace maintains the good results. Each section below gives the modifications to the original input file given at the bottom of this document. A. using decay_rect for everything (as in Summer96/comparision/3d_example2.inp) (4884 elements, 135 sec (level 5) on alpha/ocelot)) Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+08 1 x 1 3.75027 +3.16843j B. Using the trace utility for the trace: (3690 elements, 242 secs (level 4) on Alpha) *+ contact decay_rect (0,0,0,50,2000,13,3000,500,3000) + contact trace (0,-1000,0,0,1000,0,26,1) Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+08 1 x 1 3.74841 +3.16417j C. Using the connection utility also: (2604 elements, 76 seconds) *+ contact decay_rect (0,-1000,0,30,30,10,10,3000,3000) *+ contact decay_rect (0, 1000,0,30,30,10,10,3000,3000) + contact connection np1 (0,-1000,0,30,30,2.5) + contact connection np2 (0, 1000,0,30,30,2.5) *+ np1 (0,-1000,0) *+ np2 (0,1000,0) Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+08 1 x 1 3.63203 +3.16448j Resistance has dropped as expected since we are now forcing all nodes under the connection to be at the same potential. D. More accurately trying to capture contact: 3714 elements, level 4, 244 secs + contact connection np1 (0,-1000,0,26,26,3) + contact connection np2 (0, 1000,0,26,26,3) Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+08 1 x 1 3.62884 +3.16465j E. Let's try a diagonal trace of same dimension (note ratio=2.5 for this one) 9790 filaments, level 7!, 110 seconds A diagonal trace takes many more elements since we can't exploit the slow change in current along the direction of current flow since its not along the x or y axis. + contact trace (-707.1,-707.1,0,707.1,707.1,0,26,1) + contact connection np1 (-707.1,-707.1,0,26,26,2.5) + contact connection np2 (707.1, 707.1,0,26,26,2.5) NS1 x=-707.1 y=-707.1 z=223.5 NS2 x=707.1 y=707.1 z=223.5 Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+08 1 x 1 3.64035 +3.18872j Hmm, accuracy could be because multipole went down to level 7 for some reason. F. Let;s try same as E above, but manually ask for a coarser discretization below trace at 45 degrees + contact trace (-707.1,-707.1,0,707.1,707.1,0,26,10) 2736 elements, level 4, 123 secs Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+08 1 x 1 3.6437 +3.16781j Odd, quite accurate. Perhaps we are lucky. See trial H. G. Let's do E, but run it with "-l 5" to force level 5 9484 fils, 426 sec Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+08 1 x 1 3.64923 +3.18364j Not much different from E H. How much can we play with the scale factor before this makes a difference (scale factor = 20) + contact trace (-707.1,-707.1,0,707.1,707.1,0,26,20) 2308 fils, 115 seconds level 4 Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+08 1 x 1 3.63131 +3.17088j Ok, so it's gone back up again, so it is probably luck that F was accurate. Still a surprisingly small effect, probably because Si is so resistive and 330MHz isn't that high a frequency. Let's pick a higher frequency. 33 GHz: I. do the above comparisions for f=33GHz 133 secs. .freq fmin=3.3e10 fmax=3.3e10 ndec=1 I1. For trial D, with ratio=2.5 (scale = 1, trace in y direction) 2946 fils, 157 secs + contact trace (0,-1000,0,0,1000,0,26,1) + contact connection np1 (0,-1000,0,26,26,2.5) + contact connection np2 (0, 1000,0,26,26,2.5) NS1 x=0 y=-1000 z=223.5 NS2 x=0 y=1000 z=223.5 *NS1 x=-707.1 y=-707.1 z=223.5 *NS2 x=707.1 y=707.1 z=223.5 Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+10 1 x 1 12.7711 +205.346j I2.Trying the above with some extra discretization along length (decay_rect) + contact decay_rect (0,0,0,26,2000,13,100,500,3000) *+ contact trace (0,-1000,0,0,1000,0,26,1) Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+10 1 x 1 12.7465 +205.59j Seems to be good results. I3. Diagonal trace: For scale=20 (trial H at 33GHz, (trace diagonal)) + contact trace (-707.1,-707.1,0,707.1,707.1,0,26,20) Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+10 1 x 1 11.1734 +213.896j I4.For scale=10 (trial F at 33GHz) 145 secs + contact trace (-707.1,-707.1,0,707.1,707.1,0,26,10) Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+10 1 x 1 12.5388 +207.403j I5.For scale=1 (trial E) 314 sec, 60 iters, level 7 + contact trace (-707.1,-707.1,0,707.1,707.1,0,26,1) Row 1: ns1 to np1 Impedance matrix for frequency = 3.3e+10 1 x 1 9.77926 +217.875j ************************************************************ ** So big question: Why does the diagonal trace give better results ** when the scale factor is 10 rather than 1??? ** (compare I1 to I5 vs. I1 to I4 for f=33GHz and ** B to E vs B to F for f=330MHz) ** The higher scale factor is enlarging elements which should lead to less ** accurate results. However when ** the scale factor goes to 20, results seem to deviate again. ************************************************************ * same as Summer96/comparison/3d_example2.inp but using the "contact trace" * * a M5 line (26um wide, 1um thick) over Si substrate 8um below, sigma=2.6e7 * 430um thick substrate, sigma=1.5e4 1/(ohm*m) * line length=1000um .units uM * * Define substrate, sigma=1.5e4 1/(m*ohm)= 0.015 1/(um*ohm) g1 x1 = -1500 y1 = -1500 z1 = 0 + x2 = 1500 y2 = -1500 z2 = 0 + x3 = 1500 y3 = 1500 z3 = 0 + thick = 430 sigma= 0.015 *+ seg1 = 100 seg2 = 100 + file=NONE * under the trace *+ contact decay_rect (0,0,0,50,2000,13,3000,500,3000) + contact trace (0,-1000,0,0,1000,0,26,1) * the contacts + contact decay_rect (0,-1000,0,30,30,10,10,3000,3000) + contact decay_rect (0, 1000,0,30,30,10,10,3000,3000) + + nhinc = 3 rh=2 * nodes to reference later: + np1 (0,-1000,0) + np2 (0,1000,0) * * line width=26um * thick h=1um sigma=2.6e7 1/(m*ohm)=26 1/(um*ohm) * NS1 x=0 y=-1000 z=223.5 NS2 x=0 y=1000 z=223.5 EM5 NS1 NS2 w=26 h=1 sigma=26 nwinc=4 nhinc=1 .equiv NS2 np2 .external NS1 np1 * .freq fmin=3.3e8 fmax=3.3e8 ndec=1 .end