File: users_guide.tex

package info (click to toggle)
necpp 1.2.4%2Bcvs20060601-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,764 kB
  • ctags: 5,989
  • sloc: cpp: 30,174; ansic: 10,162; fortran: 8,333; python: 2,948; makefile: 186; sh: 1
file content (1418 lines) | stat: -rw-r--r-- 53,216 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
\documentclass[a4paper]{book}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}

\title{NEC2++: Numerical Electromagnetics Code}
\author{Tim Molteno}
\begin{document}

\maketitle
\tableofcontents

\chapter{Introduction}

NEC is software for analysing the electromagnetic response of an arbitrary structure consisting of wires and surfaces in free space or over a ground plane. The analysis is accomplished by the numerical solution of integral equations for induced currents.

NEC stands for Numerical Electromagnetics Code.  This FORTRAN code was written by Lawrence Livermore National Lab\footnote{The developers of the hydrogen bomb and the inspiration for Dr Strangelove!}, under the sponsorship of the Naval Ocean Systems Center and the Air Force Weapons Laboratory. It is officially called NEC-2, and has been superseded by NEC-4 which remains classified. NEC-2 is the standard system for modelling antennae - it is rather like SPICE.

This document describes nec2++ -- a method-of-moments solver that is compatible with NEC2 input files, but is written in a modern language C++. 

\section{Citing nec2++}

You may cite nec2++ in the following form (BibTeX format) 
\begin{verbatim}
@preamble("\usepackage{url}")

@manual{NECPP,
	author = "{Molteno, T.C.A.}",
	title  = "{nec2++, version {\tt 1.2.3}}",
	year   = 2005,
	address = "Dunedin, New Zealand",
	note = "available from \url{http://www.physics.otago.ac.nz/research/electronics/nec}"
}
\end{verbatim}

\section{Method of Moments}

The integral equation approach used by NEC-2, is best suited to structures with dimensions up to several wavelengths. Although there is no theoretical size limit, the numerical solution requires a matrix equation of increasing order as the structure size is increased relative to wavelength. Hence, modelling very large structures may require more computer time and file storage than is practical on a particular machine. In such cases standard high-frequency approximations such as geometrical optics, physical optics, or geometrical theory of diffraction may be more suitable than the integral equation approach used in NEC-2.


\section{Using nec2++}

There are two ways to use nec2++. You can use it as a command-line program to analyze a traditional NEC-2 geometry description. This usage is identical to the original FORTRAN version. 

The other way to use nec2++ is to incorporate it into your own code. Nec2++ is written in C++ and can be called from C as a library (the C-Style interface), from Python (the Python binding) or incorporated as source code directly into your own systems. Nec2++ is licenced under the GNU Public License (see Section~!\ref{Licensing} for more details).

\begin{verbatim}
Usage: nec2++ [-i<input-file-name>] [-o<output-file-name>]
       -g: print maximum gain to stdout.
       -b: Perform NEC++ Benchmark.
       -s: print results to standard output.
       -c: print results in comma-separated-value (CSV) format,
           this options is used in conjunction with (-s) above.
       -h: print this usage information and exit.
       -v: print nec2++ version number and exit.

Example:
nec2++ -i yagi.nec -o yagi.out
\end{verbatim}

The input file for NEC-2 consists of a series of 'cards', these used to correspond to punch cards, and they are exactly like the members of a SPICE deck. Each card specifies either an antenna description, or an analysis step.

\section{Design Flow}

The analysis of an antenna can be broken down into several steps. These are;
\begin{enumerate}
\item Break design into Straight wires. 
\item For each wire, generate a list of segments roughly 0.05 wavelengths long. This is done using the GW command (see Section~\ref{wire_segments}).
\item Add excitation specification - things like frequency and voltage (see Section~\ref{excitation}).
\item Specify which analysis to perform. For example, Radiation Pattern.
\item Execute nec2c and interpret the horrible unreadable mess that results.
\end{enumerate}

There are front-ends to NEC-2, rather like SPICE front ends, that plot the output of NEC in a nice way. We will not use these here.

\section{Licensing}
\label{Licensing}

Nec++ is copyrighted free software. It is licensed under the GNU Public License Version 2.0 (GPL). This essentially allows you to incorporate nec2++ into any other software covered by a compatable free software license.

\chapter{NEC Reference}

\section{Antenna Geometry Syntax}

The antenna geometry specification consists of one or more commands followed by a GE command. There are two kinds of geometric object that can be specified, wires and patches. Wires are composed of segments, and grouped according to a {\em tag}.

\subsection{'GE': End Geometry}

The end of the antenna geometry specification is signalled by a GE card. This card also specifies what kind of ground plane to include in the geometry.

\begin{verbatim}
GE (integer gpflag)
\end{verbatim}

gpflag - Geometry ground plain flag. 
\begin{itemize}
\item 0 - no ground plane is present. 
\item 1 - Indicates a ground plane is present. Structure symmetry is modified as required, and the current expansion is modified so that the currents an segments touching the ground (x, Y plane) are interpolated to their images below the ground (charge at base is zero) 
\item -1 - indicates a ground is present. Structure symmetry is modified as required. Current expansion, however, is not modified, Thus, currents on segments touching the ground will go to zero at the ground. 
\end{itemize}

\subsection{Linear Wire Segments}
\label{wire_segments}

\begin{verbatim}
GW tag_number num_segments x0 y0 z0 x1 y1 z1 wire_radius)
\end{verbatim}

\subsection{Example: Single horizontal wire}

An antenna consisting of an horizontal 10 meter length of 0.002 meter radius wire (the same as number-8 wire) 3 meters above the ground:

\begin{verbatim}
GW 1 10 0.  0. 3.  10. 0. 3. .002
GE
\end{verbatim}



\subsection{Example: Rhombic Antenna}

This antenna has four straight wires, each broken into ten segments. This is an
horizontal rhombic, elevated 15 meters above the ground -- therefore the $z$
co-ordinates are all $15$. The geometry is:

\begin{verbatim}
GW 1 10 35.  0. 15.  0. 15. 15. .1
GW 2 10 0.  15. 15. 35.  0. 15. .1
GW 3 10 -35.   0. 15.  0. 15. 15. .1
GW 4 10  0. -15. 15.  35. 0. 15. .1
GE
\end{verbatim}

\subsection{Helix}

\begin{verbatim}
GH(integer tag_number, 
integer num_segments, 
double turn_spacing,
double total_length, /* Negative for left-handed helix */
double radius_x0,
double radius_y0,
double radius_x_end,
double radius_y_end
double wire_radius);
\end{verbatim}

\subsection{Comments}

A comment consists of zero or more CM cards, followed be a CE card that signifies the end of the comment.

\begin{verbatim}
(CM <comment>)*
CE <comment>
\end{verbatim}

Here is an example:
\begin{verbatim}
CM This is the description of an antenna.
CM Comments can have several lines, the last
CM of which must be a CE card.
CE This is the last line of the comment.
\end{verbatim}

\subsection{Transmission Line}

To join two segments of an antenna with a transmission line, we can use the TL card. This
The shunt admittance is Ys

\begin{verbatim}
TL tag_0, segment_0, 
tag_1, segment_1, 
z0, length
	Re[Ys0], Im[Ys0]
	Re[Ys1], Im[ys1]
\end{verbatim}


\section{Source Specification}
\label{excitation}

NEC allows antennae to be driven by a voltage source, a current source, or an applied electromagnetic field. For the moment we will only consider the voltage sources, this is the type of source that would be used for a transmitter antenna. The frequency of the applied electric field is specified separately.

\subsection{Voltage Source}

To specify an applied-E-field source, use the EX card. The wire to be driven is specified with the {\tt source\_tag} -- this is the tag number that was chosen in the antenna geometry (probably with a {\tt GW}) card. The {\tt source\_segment} is the segment number of the wire that is to be driven. This parameter lets you drive a wire in the middle, or at some other point. The element number starts at 1.

\begin{verbatim}
EX 0 source_tag source_segment 0 Re(Voltage) Im(Voltage)
\end{verbatim}

\subsubsection{Example}

Drive the 10th segment of the wire with the tag 2 with an amplitude of 11.3 Volts.
\begin{verbatim}
EX 0 2 10 0 11.3
\end{verbatim}
\subsection{Frequency}

Specify the frequency (frequencies) in MHz. A linear scan over a range of frequencies is specified by:
\begin{verbatim}
FR 0  n_freq  0  0  frequency  step_size 
\end{verbatim}
A single frequency is specified by setting the {\tt n\_freq} parameter to 1. For example, a 2.4 GHz excitation would be specified by {\tt FR 0 1 0 0 2400}.



\section{Specifying Wire Conductivity}

The 'LD' card can be used to specify arbitraty loads on segments of an antenna. Here is how to use it to specify a conductivity for all the wires with a certain tag, $t$, where $t \neq 0$.
\begin{verbatim}
LD 5 t 0 c
\end{verbatim}
where $c$ is the conductivity in siemens. If the wires were Titanium we would use a thermal conductivity of $1.798E+06$ siemens. A table of electrical properties of various materials is shown in Table~\ref{table_conductivity}.

\begin{table}
\begin{center}
\begin{tabular}{|l|l|}
\hline
Material & Electrical Conductivity \\
\hline
Aluminium 99.99\% & 3.767E+07 \\
Aluminium 6061 T4 & 2.265E+07 \\
Copper (Pure annealed) & 5.800E+07 \\
Gold & 4.257E+07 \\
Graphite & 1.276E+05 \\
Iron & 9.048E+06 \\
Magnesium (Cast Alloy) & 5.220E+06 \\
Seawater & 4-5 \\
Silver & 6.090E+07 \\
Solder Antimonial Tin & 6.902E+06 \\
Solder (Silver) & 9.628E+06 \\
Stainless Steel (304) & 1.450E+06 \\
Stainless Stell (316) & 1.334E+06 \\
Titanium & 1.798E+06 \\
\hline
\end{tabular}
\caption{Electrical Properties of various elements commonly used in Antenna Construction}
\label{table_conductivity}
\end{center}
\end{table}


\section{Analysis Commands}

\subsection{Ground Specification}

If you want to specify a ground, use the {\tt GN} card. This tells NEC what kind of ground to simulate.

\subsection{Extended Thin Wire Kernel}

NEC-2 has an option to use a more accurate thin-wire model that works for larger diameter wires. This is called the extended thin-wire kernel. You can specify this by including an EK card in the NEC-2 file. 

The normal kernel should be used if the segment length, $Delta$, is much greater than the wire radius $a$, i.e., $Delta / a > 10$. The extended kernel should be used if $10 > Delta / a > 3$. 

\subsection{Radiation Pattern Request}

In normal mode, space-wave fields are computed. The polar co-ordinates are used where $\Theta$ is the angle from the $z$-axis, and $\phi$ is the angle from the $x$ axis. 

\begin{verbatim}
RP 0 <n_theta>  <n_phi>  0000, 
theta_0  phi_0  
theta_step  phi_step 
distance
\end{verbatim}

The distance parameter does not have to be specified.

\subsubsection{Example}

Calculate a radiation pattern for one azimuth angle, and 90 different elevation angles starting at zero (vertical) and in steps of one degree, ending at horizontal (90 degrees).
\begin{verbatim}
RP 0 90 1 0000 0 90 1 0
\end{verbatim}
\subsection{Execute}

This is an optional card that forces generation of a radiation pattern.

\begin{verbatim}
XQ 1 /* generate 2D XZ radiation pattern */
XQ 2 /* Generate 2D YZ radiation pattern */
XQ 3 /* Generate both */
\end{verbatim}

\section{End Card}

The last card is the EN card that signifies the end of the simulation.

\section{Example: Vertical Half Wave Antenna}

This is a model of a 5 meter vertical antenna, two meters above the ground. The wire antenna is 0.1 meter in radius. To keep each segment approximately 0.05 wavelengths long, we divide the half wavelength into 9 segments with a GW card.

The frequency is then specified as 30 MHz with {\tt FR 0 1 0 0 30.}, and the voltage as 1 Volt with {\tt EX 0 0 5 0 1.}
\begin{verbatim}
CM VERTICAL HALF WAVELENGTH ANTENNA OVER GROUND
CE WITH PERFECT GROUND (GN 1), 1 VOLT, 30 MHZ
GW 0 9 0. 0. 2. 0. 0. 7 .1
GE 1
FR 0 1 0 0 30.
EX 0 0 5 0 1.
GN 1
RP 0 90 1 0000 0 90 1 0
EN
\end{verbatim}

The output is shown below (with the preamble removed).

\begin{verbatim}
 ---- ANGLES -----     ----- POWER GAINS ----- 
  THETA      PHI       MAJOR    MINOR    TOTAL 
 DEGREES   DEGREES        DB       DB       DB
    0.00      0.00   -999.99  -999.99  -999.99
    1.00      0.00    -29.68  -999.99   -29.68 
    2.00      0.00    -23.66  -999.99   -23.66
    3.00      0.00    -20.15  -999.99   -20.15
    4.00      0.00    -17.65  -999.99   -17.65
    5.00      0.00    -15.72  -999.99   -15.72
    6.00      0.00    -14.15  -999.99   -14.15
    7.00      0.00    -12.82  -999.99   -12.82
    8.00      0.00    -11.68  -999.99   -11.68
    9.00      0.00    -10.67  -999.99   -10.67
   10.00      0.00     -9.77  -999.99    -9.77
   11.00      0.00     -8.97  -999.99    -8.97
   ...
   87.00      0.00      8.31  -999.99     8.31
   88.00      0.00      8.37  -999.99     8.37
   89.00      0.00      8.41  -999.99     8.41
\end{verbatim}

We can plot this radiation pattern data using xnecview. This is shown in Figure~\ref{radiation_pattern_figure}.

\begin{figure}
\begin{center}
%\includegraphics{figures/radiation_pattern.eps}
\caption{Radiation Pattern for a vertical half-wave wire.}
\label{radiation_pattern_figure}
\end{center}
\end{figure}

\subsection{Yagi}

\begin{verbatim}
CM NEC Input File of a 16 element Yagi
CE
GW 15  7   0.00000  -0.34000   0.00000   0.00000   0.34000   0.00000  0.00250
GW 16  7   0.27300  -0.31750   0.00000   0.27300   0.31750   0.00000  0.00250
GW  1  7   0.69300  -0.30500   0.00000   0.69300   0.30500   0.00000  0.00250
GW  2  7   1.11300  -0.30500   0.00000   1.11300   0.30500   0.00000  0.00250
GW  3  7   1.53300  -0.30500   0.00000   1.53300   0.30500   0.00000  0.00250
GW  4  7   1.95300  -0.30500   0.00000   1.95300   0.30500   0.00000  0.00250
GW  5  7   2.37300  -0.30500   0.00000   2.37300   0.30500   0.00000  0.00250
GW  6  7   2.79300  -0.30500   0.00000   2.79300   0.30500   0.00000  0.00250
GW  7  7   3.21300  -0.30500   0.00000   3.21300   0.30500   0.00000  0.00250
GW  8  7   3.63300  -0.30500   0.00000   3.63300   0.30500   0.00000  0.00250
GW  9  7   4.05300  -0.30500   0.00000   4.05300   0.30500   0.00000  0.00250
GW 10  7   4.47300  -0.30500   0.00000   4.47300   0.30500   0.00000  0.00250
GW 11  7   4.89300  -0.30500   0.00000   4.89300   0.30500   0.00000  0.00250
GW 12  7   5.31300  -0.30500   0.00000   5.31300   0.30500   0.00000  0.00250
GW 13  7   5.73300  -0.30500   0.00000   5.73300   0.30500   0.00000  0.00250
GE  0
FR  0  1    0    0  2.20E+02  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
EX  0 16    4    0  1.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00  0.00E+00
RP  0 31   73 1001  0.00E+00  0.00E+00  3.00E+00  5.00E+00  1.00E+04  0.00E+00
EN
\end{verbatim}


\subsection{Example: Bi-Quad 2.4GHz with back reflector}

From http://www.nec2.org/wlan.htm.

\begin{verbatim}
CM NEC Input File Bi-Quad for 2440 MHz, Trevor Marshall, 9/1/2001
CM All data in wavelengths,will scale to 300MHz
CM Square copper reflector,w/w choke,modelled as 0.05 lambda mesh
CE
GW 0 1 0. -0.45 -0.45 0. -0.45 -0.40 0.0082
GW 0 1 0. -0.45 -0.45 0. -0.40 -0.45 0.0082
GM 0 17 0. 0. 0. 0. 0. 0.05
GW 0 1 0. -0.45 0.45 0 -0.40 0.45 0.0082
GM 0 17 0. 0. 0. 0. 0.05 0.
GW 0 18 0. 0.45 0.45 0. 0.45 -0.45 0.0082
GW 0 18 0.05 -0.45 -0.45 0.05 -0.45 0.45 0.0082
GW 0 18 0.10 -0.45 -0.45 0.10 -0.45 0.45 0.0082
GW 0 18 0.15 -0.45 -0.45 0.15 -0.45 0.45 0.0082
GW 0 18 0.20 -0.45 -0.45 0.20 -0.45 0.45 0.0082
GW 0 18 0.25 -0.45 -0.45 0.25 -0.45 0.45 0.0082
GW 0 18 0.05 0.45 -0.45 0.05 0.45 0.45 0.0082
GW 0 18 0.10 0.45 -0.45 0.10 0.45 0.45 0.0082
GW 0 18 0.15 0.45 -0.45 0.15 0.45 0.45 0.0082
GW 0 18 0.20 0.45 -0.45 0.20 0.45 0.45 0.0082
GW 0 18 0.25 0.45 -0.45 0.25 0.45 0.45 0.0082
GW 0 5 0.0 -0.45 -0.45 0.25 -0.45 -0.45 0.0082
GW 0 5 0.0 -0.45 -0.40 0.25 -0.45 -0.40 0.0082
GW 0 5 0.0 -0.45 -0.35 0.25 -0.45 -0.35 0.0082
GW 0 5 0.0 -0.45 -0.30 0.25 -0.45 -0.30 0.0082
GW 0 5 0.0 -0.45 -0.25 0.25 -0.45 -0.25 0.0082
GW 0 5 0.0 -0.45 -0.20 0.25 -0.45 -0.20 0.0082
GW 0 5 0.0 -0.45 -0.15 0.25 -0.45 -0.15 0.0082
GW 0 5 0.0 -0.45 -0.10 0.25 -0.45 -0.10 0.0082
GW 0 5 0.0 -0.45 -0.05 0.25 -0.45 -0.05 0.0082
GW 0 5 0.0 -0.45 0.00 0.25 -0.45 0.00 0.0082
GW 0 5 0.0 -0.45 0.05 0.25 -0.45 0.05 0.0082
GW 0 5 0.0 -0.45 0.10 0.25 -0.45 0.10 0.0082
GW 0 5 0.0 -0.45 0.15 0.25 -0.45 0.15 0.0082
GW 0 5 0.0 -0.45 0.20 0.25 -0.45 0.20 0.0082
GW 0 5 0.0 -0.45 0.25 0.25 -0.45 0.25 0.0082
GW 0 5 0.0 -0.45 0.30 0.25 -0.45 0.30 0.0082
GW 0 5 0.0 -0.45 0.35 0.25 -0.45 0.35 0.0082
GW 0 5 0.0 -0.45 0.40 0.25 -0.45 0.40 0.0082
GW 0 5 0.0 -0.45 0.45 0.25 -0.45 0.45 0.0082
GW 0 5 0.0 0.45 -0.45 0.25 0.45 -0.45 0.0082
GW 0 5 0.0 0.45 -0.40 0.25 0.45 -0.40 0.0082
GW 0 5 0.0 0.45 -0.35 0.25 0.45 -0.35 0.0082
GW 0 5 0.0 0.45 -0.30 0.25 0.45 -0.30 0.0082
GW 0 5 0.0 0.45 -0.25 0.25 0.45 -0.25 0.0082
GW 0 5 0.0 0.45 -0.20 0.25 0.45 -0.20 0.0082
GW 0 5 0.0 0.45 -0.15 0.25 0.45 -0.15 0.0082
GW 0 5 0.0 0.45 -0.10 0.25 0.45 -0.10 0.0082
GW 0 5 0.0 0.45 -0.05 0.25 0.45 -0.05 0.0082
GW 0 5 0.0 0.45 0.00 0.25 0.45 0.00 0.0082
GW 0 5 0.0 0.45 0.05 0.25 0.45 0.05 0.0082
GW 0 5 0.0 0.45 0.10 0.25 0.45 0.10 0.0082
GW 0 5 0.0 0.45 0.15 0.25 0.45 0.15 0.0082
GW 0 5 0.0 0.45 0.20 0.25 0.45 0.20 0.0082
GW 0 5 0.0 0.45 0.25 0.25 0.45 0.25 0.0082
GW 0 5 0.0 0.45 0.30 0.25 0.45 0.30 0.0082
GW 0 5 0.0 0.45 0.35 0.25 0.45 0.35 0.0082
GW 0 5 0.0 0.45 0.40 0.25 0.45 0.40 0.0082
GW 0 5 0.0 0.45 0.45 0.25 0.45 0.45 0.0082
GW 1 11 0.1221 +0.0050 0.0 0.1221 .182 .182 0.0048
GW 2 11 0.1221 .182 .182 0.1221 0 .364 0.0048
GW 3 11 0.1221 0 .364 0.1221 -.182 .182 0.0048
GW 4 11 0.1221 -.182 .182 0.1221 -0.0050 0.0 0.0048
GW 5 11 0.1221 -0.0050 0.0 0.1221 -.182 -.182 0.0048
GW 6 11 0.1221 -.182 -.182 0.1221 0.0 -.364 0.0048
GW 7 11 0.1221 0.0 -.364 0.1221 .182 -.182 0.0048
GW 8 11 0.1221 .182 -.182 0.1221 +0.0050 0.0 0.0048
GW 9 1 0.1221 -0.0050 0.0 0.1221 +0.0050 0.0 0.0048
GE 0
FR 0 1 0 0 300.  0
EX 0 9 1 0000 1.0 0
RP 0 73 73 1001 -90. 90. 5. 5. 10000.
XQ
EN
\end{verbatim}

\section{NEC-2 Reference}

\subsection{Overview: umerical Electromagnetic Code for Antenna Analysis By the Method of Moments and similar problems}

R. P. Haviland, W4MB

\subsubsection{BACKGROUND ON MOMENT METHODS}

	The basic equations of antennas were well worked out nearly
100 years ago, not too long after the invention of the dipole and
the  loop antennas by Hertz. However, the equations were complex
and "mathematically intractable", and the early solutions were
for limited conditions and special cases. The theories of very
short dipoles and very small loops were the first developed.
However, it took until the 1930s to get a good solution for
dipoles  with sinusoidal current distribution at resonance. The
theory of arrays of antennas based on the assumption that they
could be regarded as point sources came very early, and further
advances were made in the 1930s. However, there was still a gap
between calculations and measurements for most antenna types. 

	In the 1960s, a new method of obtaining solutions to the
equations was developed. Instead of demanding that results were
correct at all points on the antenna, exactly  correct values
were demanded only at selected points, the ends of the antenna
and some specific intermediate points. It was recognized that the
values away from these points could be in error, but the amount
of error could be controlled by selection of the number of
points, and by making some assumptions as to the nature of
variation between selected points. Following mathmetical
nomenclature, the importance of the accumulated error is called
its moment (as in the phrase, a momentous occasion).
Consequently, the method of analysis came to be called the Method
of Moments.

	It should be remembered that the "exact" used above is a
mathmetical fiction. The starting equations are exact, but
difficult to solve. Approximations must be used to get numerical
results. The accuracy of these must be watched. This use of
approximations is found in all of the antenna solution methods. A
goal of the originators of the programs has been to make the
programs "exact" in the practical sense hopefully, they are as
accurate as the measurement which can be made under conditions
outside the laboratory. 

	For many years these techniques were exclusively used by
specialists, often under limits of military security. Two factors
made the techniques available to Amateurs. One was the development
of the small powerful computer, at a price within the
Amateur pocketbook. The second was the development and release of
a simplified version of the Method of Moments as applied to wire
antennas, specifically intended for these computers. The pair
made analysis relatively painless. It was possible to think of
the antenna in terms of dimensions and connections, common
Amateur practice. And the computer did all of the drudgery. Even
the time needed became negligible, going from minutes and hours
to seconds and even fractional seconds today.

	This first program to be generally available was called
MININEC, standing for Miniature Numerical Electromagnetic Code.
While the first version was used by a small number of amateurs, 
use did not become common until the third version became
available, first as developed, then with  modifications intended
for simplest possible use. The extent of use can be judged from
the number of articles based on MININEC results which have
appeared in Amateur publications.

	 Users of MININEC will recall will recall that it is:
  
		Limited to thin wires
		Limited to straight wire segments
		Uses constant current distribution on segments
		Allows near and/or far field calculations 
		Allows reactance or resistance at segment junctions
		Provides for single or multiple voltage excitation.
And calculates:
		Drive point resistance and reactance
		Current distribution on elements
		Power at specified voltage input
		Far field pattern and gain at specified angles
		Near field intensities along a line.

	These may be calculated for free space, or with a ground
present. However the ground directly under the antenna is always
a perfectly reflecting ideal earth. This means that drive
impedance errors are appreciable for antennas lower than about
1/4 wavelength above ground. This also affects the far field
pattern, in particular the depth of the nulls in the pattern.
Errors are acceptably small for higher antennas.

	Since MININEC is a "minature" code, it follows that there
was a full-featured code. This was the earlier NEC.




\subsubsection{SUMMARY OF NEC FEATURES}

	NEC stands for Numerical Electromagnetic Code. The first
version of the program (7) was constructed in the late 1970s,
although it derives from an antenna analysis program developed a
few years earlier. The program is now in its fourth revision,
which is being validation tested. However, the last two revisions
are restricted to military use, so only the first two revisions
are available to Amateurs. (The third revision may be released
for general use "any day now"). The following is based on NEC2,
with a few indications of changes reported for later revisions.

	One difference between NEC and MININEC is the handling of
assumed segment current variation. Instead of a single form, NEC
uses a three term relation, of the form, constant + sine term +
cosine term. This means that NEC will give good results with
fewer segments than needed for MININEC. This also means that
large problems can run faster. Additionally, because NEC provides
automatic storage of data on tape when problems are too large for
available memory. NEC can handle far more complex antennas.  

	Another difference is that there is an alternate special
routine to calculate current on the surface of a wire, rather
than assuming that it is concentrated at the wire center. This
means that NEC can be more accurate for fat wires.

	NEC has three methods of exciting an antenna by direct
connection. One is a current source, and two are different
methods of modelling voltage sources. Antennas may be excited by
incoming fields, rather than only by direct connection. There are
three possible modes for incident wave excitation, linear and the
two senses of circular polarization. There are some restrictions
on use of sources, for example, no mixing of the three basic
types, voltage, current or incident wave.

	Other than these points, there is little difference between
MININEC and NEC on a lot of Amateur antenna problems. Results are
essentially identical for, say, a four element Yagi located well
above earth. There is no reason to abandon MININEC for a lot of
work. A few tries with NEC will show that the simpler program is
best for simple problems.

	Where NEC really shows its value is in going beyond the
limits of MININEC or other programs. For example, NEC will accept
input describing wires bent in an arc, or even into helices.
Internally, it handles these by simulation with straight
segments, which can be done with MININEC. But the process is
automatic in NEC. Also,because of its handling of memory,  NEC
can solve large elements or even arrays of this type. (The spiral
antenna use in printed circuit antennas is a helix of zero
height: NEC4 can handle logarithmic spirals.)

	Another NEC extension is ability to handle surfaces. These
must be sections of a flat surface, joining other surfaces at the
edge. Three or four sided surfaces are possible, singly or as
divisions of a large plane surface. Wire--surface junctions can be
made, for good analysis of, say, a 2 meter antenna mounted on an
auto. This can be simulated with the other programs by wire grid
models, but only crudely, due to problem size restrictions. Dish
and horn antennas can be modeled as surfaces. NEC can handle very
complex surfaces, either directly as solid sheets or as wire
grids.

Probably the most important feature of NEC for Amateur use
is the possibilities for solutions involving the presence of the
earth. Free space or ideal ground are two possibilities. Another
is reflection coefficient approximation to ground, which, in
essence, multiplies the radiation from the underground or image
antenna by a factor to account for ground loss. The last
possibility is a relatively exact solution based on the work of
Sommerfield. This involves table lookup of data prepared
separately (and slowly). Any one table applies only to the ground
condition and frequency specified, so studies of antenna--ground
interactions at different frequencies and ground types is time
consuming.

	The calculation method selected applies to ground directly
under the antenna as well as at the point of ground reflection.
In addition, more ground conditions can be specified, but apply
only to the far field. These may be in circular or linear zones,
of different elevations, to simulate hills and valleys. The
equations are valid for antennas close to the edge of a cliff.
Ground screens can be specified. The near and far fields can be
calculated.

	NEC includes a number of routines to simplify setting up
antennas and structures. Symmetry can be used to specify these:
for example a rhombic can be specified by one wire and double
symmetry. Quasicircular structures are specified by one face and
the number of faces. Arrays are easy, since any antenna or
structure can be duplicated at one or more other locations. There
are a few other time savers, such as use of interaction range
approximations for well separated elements.

	Loads can be introduced into elements as series or parallel
RCL circuits, as impedances, and/or as wire resistance.
Transmission lines may connect point pairs on elements or
structures, and twoterminal networks any pair of points. True
transmission line relations are used, much more accurate than can
be obtained with parallel wires in other programs. NEC3 and NEC4
include routines for insulated wires. NEC4 can handle sagging
wires directly, and includes detection of error producing
overlapping and intersecting wires. 

	The range of output data in NEC is large. The charge on a
wire is available as well as the current. Coupling between
elements can be output. Far field patterns can use an internally
generated format, or one specified. Fixed frequency or stepped
operation can be selected, with linear or constant percentage
steps. Some intermediate results can be saved to shorten run time
on other but similar problems. 

	The paper output of NEC can only be called verbose. It is
divided into sections, with the input instructions printed first,
then the pertinent conditions, followed by the actual output. The
run time of each section is shown, and usually is surprising
small.



\subsubsection{THE PURPOSE OF NECCARDS}

	NEC is written in Fortran, the first language developed
which did not use machine language for programming. It is still a
powerful tool, preferred for large complex scientific and
engineering problems. However, is not as easy to use as BASIC.
The NEC program is large: a printout of the source code of
programs and subroutines by pages is well over an inch thick.
Also, as required by techniques of the time, NEC is structured
for input by punched cards, and temporary recording by tape. 
Some 36 card types are needed to cover all features, each have at
least one input and some up to four integer and up to seven
decimal values. Setting up a problem is not easy. While there is
more freedom in card order than found in many Fortran programs,
there are many complex order and format requirements.

	Rather than an extensive rewrite to allow full direct input
from the keyboard and use of disk for input and records, the
approach here is to retain the card technique, and modify only
direct input and output for disk operations. For initial input,
the card program encompasses the full range of NEC analysis
possibilities, simplifying these by calling for inputs in a
logical order acceptable to the program. The program output is
written to disk as a simulated tape, in the style that is
generated by cards. These "card images" are then used for input
to the NEC program itself.

	The public domain NEC program packagae includes a number of
specialized programs, for input and output. A few of these are
included here. One is CHECKER, which checks an input file for
duplication. The second is GRAPS, a graphical plotting package.
The final one is SOMNEC, which generates the special files called
TAPE21 used for description of Sommerfield ground analysis.

	Additionally, input and output files are compatable with
many common programs. For example, a text or line editor can be
used to read, check and modify the card images use for input.
These plus a spreadsheet can be used to read most of the output
files. Full feaured spreadsheets include analysis and plotting
programs, useful for presenting data.

\subsubsection{OBTAINING PROGRAMS AND PROGRAM DATA}

	The basic source for NEC (and for MININEC) is the Applied
Computational Electromagnetic Society, ACES. This may be as
NEEDS, a package of antenna programs, or as individual programs,
all in source and compiled code form. It is necessary to become a
member to obtain the programs from this source. This also brings
a Newsletter, a Journal, makes many other programs available, and
guarantees that the latest released version can be obtained.
Although much of the Newsletter/ Journal material is based on
complex mathematical techniques, there is a wealth of practical
material. This includes such items as hints on accurate
modelling, design of small antenna ranges, graphs of earth
characteristics, and reports of bugs and corrections to programs.
The material is almost a necessity for any serious worker on
antennas. For information, write Dr. Richard Adler, Secretary,
ACES, Naval Postgraduate School Code EC/AB, Monterey, CA 93943

	The second source for NEC is the report, Numerical
Electromagnetics Code (NEC) - Method of Moments, G. J. Burke and
A. J. Poggio, available from the National Technical Information
Service, Springfield, VA 22161 as AD-AO75 460. This three part
report includes theory, code description and fortran code. It is
available in microfiche at a very reasonable cost, or in paper at
greater cost. This report is an enormous aid in  full use of the
capabilities of NEC, and is a necessity if program modifications
are to be attempted. 

	Versions of NEC are also available from other commercial
sources. The announcing ads do not specify the source version.
They also imply but do not state that some features of the
original code have been eliminated, so check the detail
capabilities if you have a difficult problem. Check also the InterNet
files if you have access to that system. 

	See the ads and announcements in QST, other amateur
magazines and in the technical journals and newsletters for
future changes in availability. This computational field is still
developing.


\subsection{Summary}

\begin{verbatim}
NEC CARD FORMATS

	Cards for NEC input must be in the correct format for input
to be correct. The following shows the format for each card, in
abbreviated form. See the ASCII version of NECCARD for complete
information, or the referenced documents.

	The format is two letters designating card type, then data
fields separated by commas. The fields present are designated as
A=ASCII, B=blank, I=Integer, F=Floating point. The floating point
fields must include a decimal point. 

		DATA CARDS						
GA,I,I,D,D,D,D			WIRE ARC
GC,B,B,D,D,D			WIRE, D7 OF GW=0
GF,I					READ NGF FILE
GE,I					END GEOMETRY
GH,I,I,D,D,D,D,D,D,D	HELIX
GM,I,I,D,D,D,D,D,D,D	COORDINATE TRANSFORM
GP					SUPPRESS GEOMETRY PRINT
GR,I,I				GENERATE CYLINDER
GS					SCALE STRUCTURE
GW,I,I,D,D,D,D,D,D,D	WIRE (IF D7=0, SEE GC)
GX,I,I				SYMMETRY
SP,B,I,D,D,D,D,D,D		SURFACE PATCH, (+ SC IF I1=1,2 OR 3) 
SC,B,I,D,D,D,D,D,D	     PATCH CONTINUE, I2 OF SP=1,2 OR 3
SM,I,I,D,D,D,D,D,D		MULTIPLE PATCHES, ALWAYS + SC
SC,B,B,D,D,D			PATCH CONTINUE

		PROGRAM CONTROL CARDS
CP,I,I,I,I			MAX COUPLING
EK,I					EXTENDED KERNEL
EN					END RUN
EX,I,I,I,I,D,D,D,D,D,D   EXCITATION
FR,I,I,B,B,D,D			FREQUENCY
GD,B,B,B,B,D,D,D,D		FAR GROUND
GN,I,I,B,B,D,D			NEAR GROUND
KH,B,B,B,B,D			INTERACT RANGE
LD,I,I,I,I,D,D,D		LOADING
NE,I,I,I,I,D,D,D,D,D,D   NEAR ELECTRIC FIELD
NH,I,I,I,I,D,D,D,D,D,D   NEAR MAGNETIC FIELD
NT,I,I,I,I,D,D,D,D,D,D   NEWORK
NX					NEXT STRUCTURE
PL,I,I,I,I			STORE PLOT DATA
PQ,I,I,I,I			PRINT CHARGE
PT,I,I,I,I			PRINT CURRENT
RP,I,I,I,I,D,D,D,D,D,D	SET PATTERN
TL,I,I,I,I,D,D,D,D,D,D	TRANSMISSION LINE
WG					WRITE NGF FILE
EQ,I					EXECUTE

\end{verbatim}


\begin{verbatim}
CHECKLIST FOR NEC INPUT CARDS

CM Comments, up to 78 characters including blanks
CE End of comments, blank

   Following cards have up to 2 integers, up to 7 FP numbers

GA Tag#,#segs,Arc Rad,Start Angle,End Angle,Wire Rad (wire curve)
GE Ground Present (ends geometry input)
GH Tag#,#segs,Spacing,Length,XStart Rad,YStart Rad,XEnd rad,YEnd 
   Rad,Wire Rad (helix)
GF Print/no Print (read NGF file)
GM TagInc,#new,RotX,RotY,RotZ,MovX,MovY,MovZ,Tag (dupstructure)
GR TagInc,#new (generate cylinder from a face)
GS ,,Times Factor (Scale by factor) 
GW Tag#,#segs,X1,Y1,Z1,X2,Y2,Z2,Rad (straight wire)
GC ,,RatioLength,Rad1,Rad2 (Taper if GW Rad=0)
GX TagInc,Planes (Reflect structure per planes)
SP ,Shape,X,Y,Z,eaXY,aaX,Area (surface patch)
SC ,NewShape,X3,Y3,Z3,X4,Y4,Z4 (shape if SP>0)
SM X#,Y#,X1,Y1,Z1,X2,Y2,Z2 (Multipe Patches in X,Y)
SC ,,X3,Y3,Z3 (Required after SM)

    Following cards have up to 4 integers, up to 6 FP numbers

CP Tag1,Seg1,Tag2,Seg2 (max coupling named segs, up to 5)
EK Cancel (Extended TW kernel, 1=cancel)
EN    (ends run)
EX Type, (voltage,current,external, place or angle)
FR TypeStep,#step,,Freq,Step (frequency, Mhz)
GD ,,,,K,Cond,DistTo2,Elev2 (additional ground zone)
GN Type,#Radials,,,K,Cond (first ground type)
KH ,,,,Dist  (interaction approx range)
LD Type,Tag,TagStaet,TagEnd,R,L,C (loads at segments)
NE Coord,N1,N2,N3,X,Y,Z,dX,dY,dZ (near field (or angle))
NH                 (same)
NT Tag1,Seg1,Tag2,Seg2,Real11,Imag11,R12,I12,R22,I22 (network)
NX     (new structure starts)
PQ Flag,SegsTag,Flag,Flag  (print wire charge)
PL File,Flag,Flag,Flag    (data Storage for plots)
PT Flag,SegsTag,Flag,Flag  (print currents)
RP Mode,#th,#ph,Th1,Ph1,dTh,dPh,Dist,Normal (Pattern out)
TL Tag1,Seg1,Tag2,Seg2,Zo,Len,Radm1,I1,R2,I2 (trans line)
WG     (write NGF file)
XQ Options
\end{verbatim}



\subsection{More Detail}

\begin{verbatim}
STRUCTURE OF NEC CARD IMAGES, ONE CARD = ONE LINE IN IMAGE

NAME		CARD CONTENTS
	I= INTEGER, NO DECIMAL POINT ALLOWED
	F= FLOATING POINT VALUE, DECIMAL POINT REQUIRED

	****   STRUCTURE GEOMETRY CARDS   ****

CM CE   	 COMMENTS
	MAX 78 CHARACTERS PER CARD (LINE)

GA		WIRE ARC
	I1- TAG NO.
	I2- NO. SEGMENTS IN ARC
	F1- ARC RADIUS
	F2- START ANGLE, DEG.
	F3- END ANGLE
	F4- WIRE RADIUS

GE		GEOMETRY END
	I1- O=NO GND, +/-=GND, +BASE CHARGE=0, -BASE CURRENT=0

GH		HELIX/SPIRAL
	I1- TAG NO.
	I2- NO SEGMENTS
	F1- TURN SPACING, 0=SPIRAL
	F2- LENGTH, - FOR LEFT HAND
	F3- X RADIUS AT START
	F4- Y RADIUS AT START
	F5- X RADIUS AT END
	F6- Y RADIUS AT END
	F7- WIRE RADIUS

GF		READ SAVED NGF FILE
	I1- <XX>0 TO PRINT TABLE OF SEGMENT ENDS

GM		RELOCATE/REORIENT
	I1- TAG INCREMENT FOR NEW STRUCTURE
	I2- NO. NEW STRUCTURES
	F1- ROTATE ABOUT X, DEG., +=RIGHT HAND
	F2- ROTATE ABOUT Y, DEG. (SEPARATE CARDS TO CHANGE ORDER)
	F3- ROTATE ABOUT Z, DEG.
	F4- X TRANSLATE
	F5- Y TRANSLATE
	F6- Z TRANSLATE
	F7- TAG TO MOVE, 0=ALL TAGS

GR		GENERATE CYLINDER, Z>0
	I1- TAG INCREMENT
	I2- NO. FACES APPROXIMATING CYLINDER

GS		SCALE DIMENSIONS
	I1- 0=TIMES F1, 1=FT. TO M., 2=IN TO M.
	I2- BLANK
	F1- SCALING FACTOR (I1=0), OR BLANK

GW		STRAIGHT WIRE, ENDS 1,2
	I1- TAG NO.
	I2- NO. SEGMENTS
	F1- X1
	F2- Y1
	F3- Z1
	F4- X2
	F5- Y2
	F6- Z2
	F7- WIRE RAD., 0=USE GC FOR TAPERED WIRE

GC		TAPERED WIRE CONTINUE
	I1- BLANK
	I2- BLANK
	F1- RATIO OF RADII ADJACENT SEGMENTS
	F2- RADIUS FIRST SEGMENT
	F3- RADIUS LAST SEGMENT

GX		REFLECT IN COORDINATE PLANE
	I1- TAG NO. INCREMENT
	I2- 1XX FOR REFLECT IN X, 0XX= NO REFLECT IN X
	    X1X FOR REFLECT IN Y, X0X= NO REFLECT IN Y
	    XX1 FOR REFLECT IN Z, XX0= NO REFLECT IN Z

SP		SURFACE PATCH, SC FOLLOWS IF NOT ARBITRARY
	I1- BLANK
	I2- SHAPE, 0-ARBIT.,OR 1=RECT., 2=TRIAN., 3=QUADLAT. (SEE SC)
	F1- ARB., CENTER X, ELSE CORNER 1 X
	F2- ARB., CENTER Y, ELSE CORNER 1 Y
	F3- ARB., CENTER Z, ELSE CORNER 1 Z
	F4- ARB., ANGLE ABOVE XY, ELSE CORNER 2 X
	F5- ARB., ANGLE FROM X, ELSE CORNER 2 Y
	F6- ARB., PATCH AREA, ELSE CORNER 2 Z

SC		SM PATCH CONTINUE, NOT ARBITRARY
	I1- BLANK
	I2- BLANK
	F1- CORNER 3 X
	F2- CORNER 3 Y
	F3- CORNER 3 Z
	F4- QUAD ONLY, CORNER 4 X
	F5- QUAD ONLY, CORNER 4 Y
	F6- QUAD ONLY, CORNER 4 Z

SM		PATCHES IN RECTANGULAR AREA, SC MUST FOLLOW
	I1- NUMBER OF PATCHES IN X DIRECTION
	I2- NUMBER OF PATCHES IN Y DIRECTION
	F1- CORNER 1 X
	F2- CORNER 1 Y
	F3- CORNER 1 Z
	F4- CORNER 2 X
	F5- CORNER 2 Y
	F6- CORNER 2 Z


SC		SM PATCH CONTINUE
	I1- BLANK
	I2- BLANK
	F1- CORNER 3 X
	F2- CORNER 3 Y
	F3- CORNER 3 Z

	****   PROGRAM CONTROL CARDS   ****

CP		MAXIMUM SEGMENT COUPLING CALCULATION, 2 1/2 CARDS. MAX
	I1- TAG #1 (EXCITE WITH EX CARD, TYPE I1=0)
	I2- SEGMENT # IN TAG 1 TO BE EXCITED
	I3- TAG #2 (CALCULATE WITH XQ, RP, NE, NH CARD)
	I3- SEGMENT # IN TAG 2

EK		USE EXTENDED THIN-WIRE KERNEL
	I1- BLANK OR 0= USE EXT KERNEL, -1 RESET TO USE NORMAL

EN		INDICATES END OF RUN

EX		EXCITE STRUCTURE, LAST ENCOUNTERED=USED
	I1- 0=E VOLTAGE (A), 1=LINEAR WAVE (B), 2= R CIRC WAVE (B)
	    3=L CIRC WAVE (B), 4= CURRENT (C), 5= VOLTAGE DISC. (A)
	I2- (A) SOURCE TAG#, (B) # TH ANGLS, (C) BLANK
	I3- (A) SOURCE SEG#, (B) # PH ANGLS, (C) BLANK
	I4- (A) XX= ADMIT.,IMPED. PRINT, X=0 NO/1 DO, (BC), 1= ADM. PRINT
	F1- (A) EREAL, (B) TH ANGL, (C) X OF SOURCE
	F2- (A) EIMAG, (B) PH ANGL, (C) Y OF SOURCE
	F3- (A) NORM FOR I4, (B) ET ANGL, Z OF SOURCE
	F4- (A) BLANK, (B) TH INC, (C) ALPHA ANGLE FROM XY
	F5- (A) BLANK, (B) PH INC, (C) BETA ANGLE FROM X
	F6- (A) BLANK, (B) MIN/MAJ AXIS, PRODUCT AMPS X LENGTH

FR		FREQUENCY
	I1- O= LINEAR STEP, 1=MULTIPLICATIVE
	I2- NO. STEPS, BLANK=1
	I3- BLANK
	I4- BLANK
	F1- FREQUENCY OR START FREQUENCY
	F2- FREQ INCREMENT, ADD OR MULTIPLY

GD		FAR GROUND, (NEAR GROUND BY GN), (SET FLAG ON RP)
	I1- BLANK
	I2- BLANK
	I3- BLANK
	I4- BLANK
	F1- DIELECTRIC OF FAR GROUND
	F2- CONDUCTIVITY, FAR GROUND
	F3- DISTANCE TO START OF FAR GROUND
	F4- HEIGHT FAR GROUND, 0=SAME AS NEAR, >0= BELOW NEAR GROUND

GN		NEAR GROUND, GROUND SCREEN, ADDED GROUND
	I1- -1=SET FREE SPACE (A), 0=REFL COEFF, 1=IDEAL (B), 2-SOMMERFIELD
	I2- (A) BLANK), NO WIRES IN GND SCREEN (C), 0= NO WIRES (D)
	I3- BLANK
	I4- BLANK
	F1- (A,B) BLANK, DIELECTRIC OF NEAR GROUND
	F2- (A,B) BLANK, CONDUCTIVITY OF NEAR GROUND
	F3- (A,B) BLANK, (C) RADIUS OF SCREEN, (D) DIELECTRIC 2ND MEDIUM
	F4- (A,B) BLANK, (C) RADII SCREEN WIRES, (D) CONDUCT. 2ND MEDIUM
	F5- (A,B) BLANK, (C) BLANK, (D) DIST TO 2ND MEDIUM, SEE RP
	F6- (A,B) BLANK, (C) BLANK, (D) HEIGHT 2ND MEDIUM (AS IN GD)

KH		INTERACTION AP[PROXIMATION RANGE
	I1- BLANK
	I2- BLANK
	I3- BLANK
	I4- BLANK
	F1- DISTANCE TO START APPROXIMATION, WAVELENGTHS

LD		LOADING
	I1- -1 CANCEL LOADS, 0=SERIES RLC LUMP, 1=PARALLEL RLC LUMP,
	    2=SERIES DIST., 3=PARALLEL DIST. (A), 4=Z (B), 5=WIRE COND. (C)
	I2- TAG# TO BE LOADED, BLANK/0= USE ABSOLUTE #s	
	I3- SEG# OF TAG # TO START LOADS, OR ABSOLUTE SEG#
	I4- SEG# OF TAG# TO END LOADS, OR OR ABSOLUTE SEG#
	F1- RES., OHMS, OR (A) OHMS/UNIT LENGTH, OR (B) RES. OR (C) OHMS/METER
	F2- IND., HENRY, OR (A) HY/LENGTH OR (B) REACT. OR (C) BLANK
	F3- CAP,. FARAD, OR (A,B) BLANK

NE NH		NEAR ELECTRIC, NEAR MAGNETIC FIELD
	I1- O=RECT. COORD. (A), 1=SPHERICAL (B)
	I2- NO. POINTS IN (A) X, (B) R (CHANGES MOST RAPIDLY)
	I3- NO. POINTS IN (A) Y, (B) PHI
	I4- NO. POINTS IN (A) X, (B) TH
	F1- COORDINATE (A) X, (B) R
	F2- COORDINATE (A) Y, (B) PHI
	F3- COORDINATE (A) Z, (B) TH
	F4- INCREMENT (A) X, (B) R
	F5- INCREMENT (A) Y, (B) PHI
	F6- INCREMENT (A) Z, (B) TH

NT		NETWORKS
	I1- PORT 1 TAG #, BLANK/0, USE I2 AS ABSOLUTE
	I2- SEGMENT#, OR ABSOLUTE END 1 SEGMENT, -1=CANCEL NETS/LINES
	I3- AS I1 FOR PORT 2
	I4- AS I2 FOR PORT 2
	F1- REAL OF Y(11), MHOS
	F2- IMAG OF Y(11)
	F3- REAL OF Y(12)
	F4- IMAG OF Y(12)
	F5- REAL OF Y(22)
	F6- IMAG OF Y(22)

NX		NEXT STRUCTURE

PQ		PRINT WIRE CHARGE
	I1- -1 NO CHARGE PRINT (DEFAULT), 0 OR BLANK, PRINT CHARGE
	I2- TAG# TO PRINT, 0=I3/I4 IS ABSOLUTE
	I3- START SEGMENT # OF TAG, OR ABSOLUTE SEGMENT#, 0 OR BLANK, ALL SEGS
	I4- END SEG. # OF TAG, OR ABSOLUTE SEG.#, OR BLANK= I3 ONLY

PL		PLOT DATA STORAGE
	I1- 0=NO STORE, 1=CURRENTS, 2=NEAR FIELD, 3=PATTERNS
	I2(1,2)- 0=NO, 1=REAL,IMAG, 3=MAG, PHASE
	I2(3)- 1=TH, 2=PHI, 3=RHO ANGLES
	I3(1)- 0=N0, 1=IX, 2=IY, 3=IZ, 4=IX IY IZ
	I3(2)- 0-N0, 1=X, 2=Y, 3=Z, 4=X Y Z, 5=TOTAL  COMPONENT
	I3(3)- 0=NO, 1=TH, 2=PHI, 3=RHO E-FIELD COMPOMENT
 	I4(1)- BLANK
	I4(2)- 1=X, 2=Y, 3=Z CORDINATE VALUES
	I4(3)- 1=V, 2=H, 3=TOTAL, 4=V H T     GAINS DB

PT		CURRENT PRINT CONTROL
	I1- -2=ALL, -1=SUPR. PRNT., 0=SEGS BELOW, 1=REC. FMT., 2=NORMAL(1)
	I2- TAG# OF SEGMENT, 0=ABSOLUTE LOCATION
	I3- START SEG OR ABS SEG
	I4- END SEG OR ABS SEG
		(1,1,1,1=SUPPRESS CURRENT PRINT)

RP		RADIATION PATTERN SET
	I1- SEE GN; 0=SPACE WAVE, 1=SPACE+GND WAVE, 2=LIN CLIFF, 3=CIR CLIFF,
	     4=GND SCREEN, 5=SCRN+LIN CLIFF, 6=SCRN+CIR CLIFF
	I2- # VALUES OF TH, BLANK=1
	I3- # VALUES OF PHI, BLANK=1
	I4- BLANK IF I1=1, ELSE abcd
	 a- 0=MAJ0R, MINOR, TOT, 1=V, H, TOT   AXIS GAIN
	 b- 0=NONE, 1=MAJ, 2=MIN, 3=V, 4=H, 5=T NORMALIZED AXIX GAIN
	 c- 0=POWER GAIN, 1=DIRECTIVE GAIN
	 d- 0= NO AVERAGE, 1=AVERAGE, 2= AVERAGE SOME SUPPRESSED
	F1- INITIAL TH, OR I1=1, INITIAL Z
	F2- INITIAL PHI
	F3- INCREMENT TH OR I1=1, INCREMENT Z
	F4- INCREMENT PHI
	F5- RADIAL DIST. OF FIELD POINT OR 0=OMIT EXP, 1- CYLIND. CORD.
	F6- NORMALIZE FACTOR FOR I4, BLANK/0= TO MAX GAIN.
NOTE: A BLANK RP CAN BE USED TO SEPARATE DATA BLOCKS

TL		TRANSMISSION LINE 
	I1- PORT 1 TAG #, BLANK/0, USE I2 AS ABSOLUTE
	I2- SEGMENT#, OR ABSOLUTE END 1 SEGMENT, -1=CANCEL NETS/LINES
	I3- AS I1 FOR PORT 2
	I4- AS I2 FOR PORT 2
	F1- LINE Zo, -=CROSSED LINE
	F2- LINE LENGTH METERS, BLANK=STRAIGHT LINE P1 TO P2
	F3- REAL SHUNT ADM., END 1 MHOS
	F4- IMAG SHUNT ADM., END 1
	F5- REAL SHUNT ADM., END 2
	F6- IMAG SHUNT ADM., END 2

WG		WRITE NUMERICAL GREENS FUNCTION FOR LATER USE

XQ		EXECUTE ACCUMULATED CARD DECK
	I1- 0=NO PATTERN, 1=XY PATTERN, 2= YZ PATTERN, 3=BOTH
	   (DO NOT USE FOR RADIAL GND SCREEN OR 2ND GND MEDIUM)

NOTES: FOR A SINGLE FREQUENCY, XQ, NE, NH, RP CAUSE IMMEDIATE EXECUTION
       FOR MULTIPLE FREQS, ONLY XQ, RP CAUSE EXECUTION
\end{verbatim}



\section{Examples}

This section includes some examples showing how to use NEC to perform antenna simulations.

\subsection{Long-wavelength transmission from a buoy}

We are designing an antenna for buoy floating in the ocean. A radio frequency band of 13.75000 MHz with a bandwidth of 2kHz has been allocated.  The buoy has a two meter vertical antenna with a radius of 2cm, the antenna is 10cm above the ocean! The transmitter can generate 10 Volts, The simplest NEC description is

\begin{verbatim}
GW 1 10 0 0 0.1 0 0 2 0.02
GE 1
EK
FR 0 1 0 0 13.75
EX 0 1 10 0 10 0
XQ
EN
\end{verbatim}

We can use a more sophisticated analysis by specifying an imperfect ground using the GN card. We use some common values for seawater, a conductivity of 4 siemens and a dielectric constant of 80. 

We can also experiment with loading the antenna at its top. To compare two possible antennae, we run two simulations in the same NEC file. Each is started by the XQ card. The second includes a top-loading {\tt LD 0 1 10 10 1 6E-5 1E-7} of $R = 1 \Omega$, $L = 60 \mu H$, $C = 0.1 \mu F$. These values were obtained by trial and error (maximizing the radiated power).

\begin{verbatim}
CM 2m Vertical antenna excited at 13.75 MHz [15m]
CM floating in the ocean. We assume properties
CM conductivity 4 mhos/meter, dielectric constant  80.
CM We use sommerfeld ground under two conditions.
CM     1) With no loading
CM     2) With RLC loading at end.
CE  
GW 1 10 0 0 0.1 0 0 2 0.02
GE 1
EK
FR 0 1 0 0 13.75
EX 0 1 10 0 10 0
GN 2 0 0 0 80.0 4.0 
RP 0 10 2 1301 0. 0. 10. 90. 
XQ
LD 0 1 10 10 1 6E-5 1E-7
XQ
EN
\end{verbatim}

The results of this simulation are interesting.

\appendix



\chapter{Error Messages}
   
\subsection{CHECK DATA, PARAMETER SPECIFYING SEGMENT POSITION IN A GROUP OF EQUAL TAGS CANNOT BE ZERO.}

Routine: ISEGNO

This error results from an input data error and may occur at any point
where a tag number is used to identify a segment. Execution terminated.

Data on the NT, TL, EX, and PT cards should be checked.

\subsection{CONNECT - SEGMENT CONNECTION ERROR FOR SEGMENT <XX>}

Routine: CONNECT

Possible causes: number of segments at a junction exceeds limit; segment lengths are zero; array overflow.

\subsection{DATA FAULT ON LOADING CARD NO. =<XX>  ITAG STEP1 =<XX>  IS GREATER THAN ITAG STEP2 = <XX>}

        Routine: MAIN

        When several segments are loaded, the number of the second segment

        specified must be greater than the number of the first segment.

        Execution terminated.

\subsection{ERROR - ARC ANGLE EXCEEDS 360. DEGREES}

        Routine: ARC

        Error on GA card.

\subsection{ERROR - B LESS THAN A IN ROM2}

        Routine: ROM2

        Program malfunction.

\subsection{ERROR - CORNERS OF QUADRILATERAL PATCH DO NOT LIE IN A PLANE}

        Routine: Patch

        The four corners of a quadrilateral patch (SP card) must lie in a plane.

\subsection{ERROR - COUPLING IS NOT BETWEEN 0 AND 1}

        Routine: Couple

        Inaccuracy in solution or error in data.

\subsection{ERROR - GF MUST BE FIRST GEOMETRY DATA CARD}

Routine: {\tt c\_geometry::parse\_geometry}

See section III-5.

\subsection{FAULTY DATA CARD LABEL AFTER GEOMETRY SECTION}

Routine: {\tt nec\_main}

A card with an unrecognizable mnemonic has been encountered in the program control cards following the geometry cards.  Execution terminated.

\subsection{GEOMETRY DATA CARD ERROR}

Routine: {\tt c\_geometry::parse\_geometry}

A geometry data card was expected, but the card mnemonic is not that of a geometry card.  Execution terminated.  After the GE card in a data deck, the possible geometry mnemonics are GE, GM, GR, GS, GW, GX, SP, and SS. The GE card must be used to terminate the geometry cards.

\subsection{GEOMETRY DATA ERROR -- PATCH <XX> LIES IN PLANE OF SYMMETRY}

Routine: {\tt c\_geometry::reflect}

\subsection{GEOMETRY DATA ERROR -- SEGMENT <XX> EXTENDS BELOW GROUND}

Routine: {\tt c\_geometry::connect\_segments}

When ground is specified on the GE card, no segment may extend below the XY plane.  Execution terminated.

\subsection{GEOMETRY DATA ERROR - - SEGMENT <XX> LIES IN GROUND PLANE}

Routine: {\tt c\_geometry::connect\_segments}

When ground is specified on the GE card, no segment should lie in the XY plane.  Execution terminated.

\subsection{GEOMETRY DATA ERROR - - SEGMENT <XX> LIES IN PLANE OF SYMMETRY}

Routine: {\tt c\_geometry::reflect}

A segment may not lie in or cross a plane of symmetry about which the
structure is reflected since the segment and its image will coincide or
cross.  Execution terminated.

\subsection{IMPROPER LOAD TYPE CHOSEN, REQUESTED TYPE IS <XX>}

        Routine: LOAD

        Valid load types (LDTYP on the LD card) are from 0 through 5.

        Execution terminated.

\subsection{INCORRECT LABEL FOR A COMMENT CARD}

        Routine: MAIN

        The program expected a comment card, with mnemonic CM or CE, but

        encountered a different mnemonic.  Execution terminated.  Comment cards

        must be the first cards in a data set, and the comments must be

        terminated by the CE mnemonic.

\subsection{LOADING DATA CARD ERROR, NO SEGMENT HAS AN ITAG=<XX>}

        Routine: LOAD

        ITAG specified on an LD card could not be found as a segment tag.

        Execution terminated.

\subsection{NO SEGMENT HAS AN ITAG OF <XX>}

        Routine: ISEGNO

        This error results from faulty input data and can occur at any point

        where a tag number is used to identify a segment.  Execution terminated.

        Tag numbers on the NT, TL, EX, CP, PQ, and PT cards should be checked.

\subsection{NOTE, SOME OF THE ABOVE SEGMENTS HAVE BEEN LOADED TWICE, IMPEDANCES ADDED}

        Routine: LOAD

        A segment or segments have been loaded by two or more LD cards.  The

        impedances of the loads have been added in series.  This is only an

        informative message.  Execution continues.

\subsection{PATCH DATA ERROR}

        Routine: {\tt c\_geometry::parse\_geometry}

        Invalid data on SP, SM, or SC card; or SC card not found where required.

\subsection{PIVOT(<XX>) = <XX>}

        Routine: FACTR (in-core) or LFACTR  (out-of-core)

        This will be printed during the Gauss Doolittle factoring of the

        interaction matrix or the network matrix when a pivot element less than

        10E-10 is encountered, and indicates that the matrix is nearly singular.

        The number in parentheses shows on which pass through the matrix the

        condition occurred.  This is usually an abnormal condition although

        execution will continue.  It may result from coinciding segments or a

        segment of zero length.

\subsection{RADIAL WIRE G.S. APPROXIMATION MAY NOT BE USED WITH SOMMERFELD GROUND OPTION}

        Routine: MAIN

\subsection{ROM2 - - STEP SIZE LIMITED AT Z = <XX>}

        Routine: ROM2

        Probably caused by a wire too close to the ground in the Somerfeld/

        Norton ground method.  Execution continues but results may be inaccurate.

  

\subsection{SBF - SEGMENT CONNECTION ERROR FOR SEGMENT <XX>}
\label{error_39}
Routine: SBF

The number of segments at a junction exceeds dimension limit (30), or the connection numbers are not self-consistant.

\subsection{SEGMENT DATA ERROR}

Routine: {\tt c\_geometry::geometry\_complete}

A segment with zero length or zero radius was found.  Execution terminated.

  

\subsection{STEP SIZE LIMTED AT Z=<XX>}

Routine: INTX, HFX

The numerical integration to compute interaction matrix elements, using the Romberg variable interval width method, was limited by the minimum allowed  step size. Execution will continue. An inaccuracy may occur but is usually not serious.  May result from thin wire or wire close to the ground.

\subsection{SYMMETRY ERROR - NROW, NCOL = <XX>}

Routine: FBLOCK

Array overflow or program malfunction.

\subsection{TBF - SEGMENT CONNECTION ERROR FOR SEGMENT <XX>}

Routine: TBF

Same as error \ref{error_39}.

  

\subsection{TRIO - SEGMENT CONNECTION ERROR FOR SEGMENT <XX>}

Routine: TRIO

Same as error \ref{error_39}.

  

\subsection{WHEN MULTIPLE FREQUENCIES ARE REQUESTED, ONLY ONE NEAR FIELD CARD CAN BE USED - LAST CARD READ IS USED}

Routine: MAIN

Execution continues.

\end{document}