
Accuracy and runtimes of
atlc is very accurate, as the data below will confirm. In a total of 31 tests performed on standard twoconductor transmission lines the maximum error was only 0.945 % and the rms error was 0.259 %. On a directional coupler, the maximum error was 0.927%, but the typical error was around 0.6%. Read on if you wish to know how these figures were arrived at. 
Filename  D  d  Er  Zo (theory)  Zo (atlc ) 
Error (%)  T1  T2  T1/T2 
coax500400.bmp  500  400  1.0  13.388  13.3710  0.127 %  9  7  1.29 
coax500200.bmp  500  200  1.0  54.977  54.9031  0.134%  28  18  1.55 
coax500200.bmp  500  200  100.0  5.4977  5.49031  0.134%  28  18  1.55 
coax500100.bmp  500  100  1.0  96.566  96.4277  0.143%  47  29  1.62 
coax50050.bmp  500  50  1.0  138.155  137.8984  0.186%  56  36  1.56 
coax50025.bmp  500  25  1.0  179.744  179.8969  +0.085 %  66  38  1.73 
atlc
was configured with the withmp
option so used both CPUs. T1/T2 is the ratio of the two times.According to the book Microwave and Optical Components, Volume 1,  Microwave Passive and Antenna Components, page 7, there is an exact formula for the impedance of a coaxial line (see below). If O is the offset between the centres of the two conductors, then the impedance Zo assuming Er=1, is
60 log_{e}(x+sqrt(x^21)) where x=(d^{2}+D^{2}4 O^{2})/(2*D*d)
Filename  D  d  O  Er  Zo (theory)  Zo (atlc ) 
Error (%)  T1  T2  T1/T2 
eccentrica.bmp  400  320  0  1.0  13.388613  13.3755  0.097 %    6   
eccentricb.bmp  500  400  40  1.0  8.043820  8.0240  0.246%    7   
eccentricc.bmp  400  160  0  1.0  54.977  54.9552  0.040%    11   
eccentricd.bmp  500  200  150  1.0  52.020884  51.9983  0.043%    13   
eccentrice.bmp  500  200  100  1.0  41.588831  41.5628  0.063%    16   
eccentricf.bmp  500  100  0  1.0  96.566275  96.4893  0..080%    16   
eccentricg.bmp  500  100  50  1.0  94.007954  93.9300  0.083%    18   
eccentrich.bmp  500  100  100  1.0  85.525017  85.4427  0.096%    21   
eccentrici.bmp  400  40  0  1.0  138.155106  138.0519  0.075%    18   
eccentricj.bmp  500  50  50  1.0  135.679453  135.5753  0.077%    20   
eccentrick.bmp  500  50  100  1.0  127.555728  127.4478  0.085%    22   
eccentricl.bmp  400  40  12  1.0  110.834765  110.7099  0.113%    23   
eccentricm.bmp  400  40  160  1.0  73.540034  73.2376  0.411%    21   
eccentricn.bmp  1600  160  640  1.0  73.540034  73.2376  0.134%       
Note, due to their large size, the eccentric coax files are not distributed. They can however easily be made with the supplied script create, which itself calls the programme circ_in_circ, which is used for creating a circular conductor inside another circular conductor.
circ_in_circ 500 400 0 1 > eccentrica.bmp
circ_in_circ 500 400 40 1 > eccentricb.bmp
circ_in_circ 500 200 0 1 > eccentricc.bmp
the file create
.
This has an exact analytical solution, dependent on the ratio of the width of the inner conductor w, to the distance between the two outer conductors H. This assumes that the outer conductors extend to plus and minus infinity and the inner conductor is infinitely thin. This structure has the advantage of requiring no curves, so can be represented more accurately with the square grid used in atlc.
However, its impossible to have an inner conductor that is less than 1 pixel high and it is impossible to make the dimension W infinity wide as it was take an infinite amount of disk space, RAM and CPU time). However, if the width W is made at least 4xH+w, then making it any larger does not seem to have much affect on the result. Hence the results below were obtained by setting the internal W equal to 4 times the internal height plus the inner width W. The actual bitmaps used by atlc are 10 pixels higher and 10 pixels wider, to enforce a boundary. The programme sym_strip
can be used to quickly produce suitable bitmaps for such circumstances. It enforces having the width W of the equal to at least w+4*h, as well as H being at least 201 pixels. It must be odd, since the one pixel inner conductor must fit centrally between the two outer conductors.
sym_strip 1200 201 290 50Ohm201.bmp
w=290 H=201 w/H=1.442786 xo=23.753772
Zo is theoretically 49.989477 Ohms (assuming W is infinite)
This structure, which has a w/H value of 1.442786, has a theoretical impedance close to 50 Ohms (49.989477 to be precise). atlc calculates this to be 49.8457 Ohms, an error of only 0.087%, when using a grid 1134x201. Increasing the number of pixels to 2222x401, the results are surprisingly somewhat worst with an error of 0.191%. I have no explanation for this. but increasing the pixels further to 4399x801, results in a larger error still, as atlc reports this as 49.9127.
Filename  W  H  w  w/H  Zo (theory)  Zo (atlc ) 
Error (%)  T1  T2  T1/T2 
25Ohm201.bmp  1512  201  668  3.323383  25.017590  24.9194  0.392%  44  25  1.76 
25Ohm401.bmp  2978  401  1334  3.326683  24.995678  24.9383  0.409%  393  216  1.81 
25Ohm801.bmp  2978  401  1334  3.326683  24.995678  24.9383  0.409%  393  216  1.81 
50Ohm201.bmp  1134  201  290  1.42786  49.989477  49.8457  +0.087%  26  19  1.37 
50Ohm401.bmp  2222  401  578  1.441397  50.026376  49.9307  0.191%  329  181  1.82 
50Ohm801.bmp  4399  801  1155  1.441948  50.011737  Zo atlc  error  t1  t2  t1/t2 
100Ohm201.bmp  945  201  101  0.502488  100.160858  100.0925  0.068%  ?  22  1.28 
100Ohm401.bmp  1846  401  202  0.503741  100.023  99.9115  0.329%  299  207  1.75 
100Ohm801.bmp  1846  401  202  0.503741  100.023  99.9115  0.329%  299  207  1.75 
200Ohm201.bmp  862  201  18  0.089552  200.818306  202.7158  +0.945%  x  19  1.53 
200Ohm401.bmp  1680  401  36  0.089776  200.669461  201.1821  +0.255%  284  1.69  
200Ohm801.bmp  3317  801  73  0.091136  199.770642  199.6340  0.068%  3447  1978  1.74 
Note, due to their large size, most of the files *Ohm*.bmp are not distributed with atlc
. but may be produced easily with the aid of a script called create
in the examples directory. The script create calls a programme sym_strip
, which was developed for the purpose of producing symmetrical stripline bitmaps. Sorry there is no documentation for sym_strip
now, but if look at the script create
, its use should be obvious.
atlc
with coupled linesatlc
with coupled lines is more difficult that with single isolated lines, since there is to my knowledge only one structure for which exact analytical results exist. For two infinitely thin conductors halfway between two infinitely wide groundplanes (see below)
the odd and even mode impedances can be calculated analytically. If the spacing between the two groundplanes is H, the width of the conductors w, the spacing between the conductors s, and the permittivity of the medium Er,
^

 <w><s><w>
H   Er


v
then the impedances are given by.
Zeven=(30*pi/sqrt(er))*(K(ke')/K(ke))
Zodd=(30*pi/sqrt(er))*(K(ko')/K(ko))
K(kx)=complete elliptic integral of the first kind.
ke=(tanh((pi/2)*(w/H)))*tanh((pi/2)*(w+s)/H)
ko=(tanh((pi/2)*(w/H)))*coth((pi/2)*(w+s)/H)
ke'=sqrt(1(ke^2))
ko'=sqrt(1(ko^2))
Those equations are taken from Matthaei, Young and Jones, Microwave Filters, Impedance Matching Networks and Coupling Structures, Artech House, Dedham, MA., 1980. I'm very grateful to Paul Gili AA1LL / KB1CZP
A programme make_coupler
was written to automatically generate bitmaps given the height H between the groundplanes, the conductor widths w and spacing s. Ideally this needs simulating from infinity to +infinity, but that is not practical. It was assumed that if the complete structure width W was equal to 2*w+s+8*H that would be adequate (this seemed about right, but I've no proof it is optimal). As well as producing a bitmap, make_coupler
also calculate the theoretical values of impedance. In order to perform calculations of the theoetical impedance, make_coupler
uses the GNU scientific library gsl for the elliptic integral calculations. Hence to obtain the theoretical values, gsl, available at http://sources.redhat.com/gsl, must be installed. The bitmaps will still be produces without the gsl library.
Filename  W  H  w  s  Er  Zodd  Zodd(atlc)  Error  Zeven  Zeven(atlc)  Error 
coupler1.bmp  11  1.0  1.0  1.0  1.0  64.7675  64.3750  0.606%  66.0151  65.6213  0.597% 
coupler2.bmp  19  1.991  1.0  1.0  1.0  93.282  92.4177  0.927%  107.229  106.3752  0.796% 
coupler3.bmp  27  3.0  1.0  1.0  1.0  105.481701  104.7110  0.731%  139.767112  138.9298  0.599% 
coupler5.bmp  43  5.0  1.0  1.0  1.0  114.316017  113.3319  0.861%  189.265925  188.1258  0.602% 
coupler6.bmp  10.0  1.0  1.0  0.5  1.0  62.200158  61.7915  0.657%  68.243083  67.8686  0.549% 
coupler7.bmp  10.0  1.0  1.0  .099  1.0  50.723352  50.3224  0.790%  74.403376  73.9993  0.543% 
coupler8.bmp  5  0.25  1.0  1.0  1.0  21.220896  21.0692  0.715%  21.220907  21.0692  0.715% 
Note, because of the need to simulate a large width W, these calculations are much slower than those above. The fact the simulation has to be done twice also adds to the time taken. A typical run, using the default bitmap size (18, which gives bitmap of 128 to 512kb), the time taken is approximately 2 minutes on a dual 300 MHz Sun Ultra 60.
atlc is written and supported by Dr. David Kirkby (G8WRB) It it issued under the GNU General Public License