INSTRUCTIONS FOR ThinWire and TWCards CONCEPT OF PROGRAMS The program ThinWire is a method of moments solution of current, impedances and patterns for simple and complex antennas in which the radiating elements are of small diameter, i.e., they can be regarded as wires. The original program was written in Fortran by Jack H. Richmond, at the Ohio State University ElectroScience Laboratory, Columbus Ohio, in 1974, under NASA contract NGL 36- 008-138. The current version retains all features of the original published program, and adds routines by R.P.Haviland to simplify running and re-running the program. The program TWCards is a program by R. P. Haviland, written to complete the problem set-up procedures needed for input to ThinWire, for solution of practical problems. The various modifications to the Thin-Wire program were written in conjunction with this program, to simplify data input, and to clarify and organize data output. Many of these routines are based on notes in the Theory reference below. References Program- COMPUTER PROGRAM FOR THIN-WIRE STRUCTURES IN A HOMOGENOUS MEDIUM, J.H.Richmond, JUNE 1974,NASA CR-2399, NTSC N74-28708 Theory- RADIATION AND SCATTERING BY THIN-WIRE STRUCTURES IN THE COMPLEX FREQUENCY DOMAIN, J.H.Richmond, MAY 1974, NASA CR-2396, NTSC See also- Dielectric coated wire antennas, J. H. Richmond and E. H. Mewman, Radio Science, vol. 11, n 1, pp 13-20, 1976 SOLUTION SET-UP The program Thinwire handles two families of problems, and provides two options in each. -The Radiation Pattern family solves antennas which are fed from one or more sources. The options are bare wires, and wires with insulation. The solution provides; Drive Impedance Element Currents Power input, Loss and Efficiency Far field patterns Near field at a point (pattern can be added) -The Scatter Pattern family solves antennas which are in a radiation field, and are receiving energy from the field and reradiating (scattering) a portion of the energy. The options are backscatter, the radiation returned towad the source of the incoming radiation, and bi-static scatter, the scatter pattern produced when energy is received from a specific direction. The solution provides; -Absorbed, re-radiated and dissipated power -Radar Cross-sections -Element currents -Far-field patterns The choice of family and member are made in the program TWCard, as part of the data input procedure. DATA INPUT The core of the ThinWire data input and handling is contained in the 11 WRITE statements of the setup program TWCards, which are identical in form to the 11 READ statements of ThinWire. Each of these are in comma format, emulating card input for Fortran. TWCards states units to be used as it request data input. See the later explanations for items which are not obvious. All dimensions are in the MKS system, with angles in degrees. The program TWCards requests quanties it needs, with a reminder of units to use. Some of the input data are checked for impossible values, but the input must be accurate. It is suggested that data be sent to disk, then to a printer by a editor program, for checking against the original values. READ 0 Program identification, location FileName NA$ or NAS FileDate DA$ DAS FilePath FP$ FPS READ 1 Wire insulation Data Diameter BM Dielectric Const. ER2 Conductivity SIG2 Loss Tangent TD2 READ 2 Wire and Medium Data Diameter AM Conductivity SIG3 Dielectric Const. ER3 Loss Tangent TD3 READ 3 Flags and Sizes Do Echo area IBISC Do Far field IGAIN Do Near field INEAR Do Scattering ISCAT Write currents IWR # Generators NGEN # Segments NM # Points NP # Loads NLOAD READ 4 Far Field angles Initial Azimuth PHA Angle Increment PHAI # Increments PHAN Initial Elevation THA Angle Increment THAI # Increments THAN READ 5 Scatter angles Initial Azimuth PHI Angle Increment PHII # Increments PHIN Initial Elevation THI Angle Increment THII # Increments THIN READ 6 Echo angles Initial Azimuth PHS Angle Increment PHSI # Increments PHSN Initial Elevation THS Angle Increment THSI # Increments THSN READ 7 Segment endpoint array, indexed to NM End 1 IA() End 2 IB() READ 8 Point location arrray, indexed to IP X location X() Y location Y() Z location Z() READ 9 Near Field Point X location XP Y location YP Z location ZP READ 10 Lumped-load data array, indexed to NLOAD Resistance ZLOADR() or ZLD() Reactance ZLOADI() Load Point JLOAD() READ 11 Generator data array, indexed to NGEN Real voltage GENR() or VG() Imag. voltage GENI() Generator Point JGEN() The only difference in the READ of ThinWire is that complex values are read, rather than the real, imaginary of TWCards, as in generator voltages. POINTS AND SEGMENTS ThinWire deals with straight wires. The geometry of a wire is described by its endpoints, which are designated by serial number, IA() and IB(). In turn, the end points are described by location, X(), Y(), Z(). Two or more wires can have the same endpoint. In antenna setup, there must be at least 2 segments and three points for an isolated wire. ThinWire automatically divides the wires into sub-segments for calculation. The initial default number of sub-segments, INT, is set to 4 for the first run. It may be changed at the end of the run. A value of 0 causes a change in calculation method, from a Simpsons rule integration to an integral form. INT less than 4 speed calculations but reduces accuracy. Values greater than 4 are usually used to check solutions. Convergence towards a value as INT is increased is an indication of accuracy. Note that this is at the expense of calculation time. In addition to this automatic sub-segmentation by ThinWire, TWCards also allows for segmentation. This is sometimes convenient, for example when multiple loads are to be introduced into an otherwise continuous wire. TWCards automatically assigns ends and point locations of intermediate points. Wire junctions are designated by a common end point. TWCards assumes that a junction exists if either end of a new wire has the same coordinates as a previous point. IMPORTANT- No check is made for other wire intersections: program entry must be careful to avoid creating unwanted intersections. Also, accuracy will be lost if a wire approaches another too closely, whether end to end, or crossing. ThinWire neglects the current on wire ends. ANTENNA ENVIRONMENT ThinWire will give satisfactory results over a wide range of ambient gas/liquid environments, as described by the second read input. The default conditions are for air. ThinWire does not include routines for proximity to earth. To give a partial solution for antennas near earth, TWCards includes a routine to double the number of elements, with the Z position of the second half being the negative of the first. This produces a mirror image of the antenna, thus simulating an antenna over ideal earth. If ground simulation is specified, an error message occurs if the original antenna has a negative value of Z. A Z-value of zero is assumed to represent a grounded antenna. If a generator is specified at the grounded point, its exciting voltages are doubled to account for the image. ACCURACY CONSIDERATIONS Accuracy will be questionable under the following conditions; Wire Radius> 0.007 Wavelengths Longest input segment length> 0.3 wavelenths Longest input segment length> 100 times shorted segment length Wire Length< 30 wire diameters Wire intersection angle< 30 degrees, approximately Wire conductivitity not >> environment conductivity Wire separation < 10 times wire diameter, approximately. Here segment length refers to the input sgmentation, not the sub- segments created automatically. Thick insulation results are less accurate. The definition of "thick" depends on the insulation and environment dielectric constant as well as the insulation to wire diameter ratio. With typical insulation, a ratio of 2 or less gives normal accuracy. OUTPUT OF TWCards The output of a single run of TWCards is a single file, in comma format. Each line of the file corresponds to one of the read statements listed above. Each entry on the line is a value of the variable list of that line, in order of occurrence. INPUTS OF ThinWire Program When the ThinWire program is run, it first asks for several items: Name, filepath of input data (the file from TWCards) Printer or output to file If to file, name, filepath of output file. The file data is loaded and execution and output started. Error routines handle non-located file and filepath problems. While there are some error messages for impossible situations, checking the output data should always be done, as for any complex program. OUTPUTS OF ThinWire A evident from the number of entries in the list of read statements above, there are a considerable number of outputs from the ThinWire program. Some of these occur only if a specific item has been requested, others occur with each run. The initial outputs, the same for all conditions, are: Program Identification Record of program inputs, as in the READ list Antenna efficiency, power input, drive impedance The outputs which occur as specified are: Branch currents Near field location and strength Far field pattern Backscatter field Bistatic scatter field All follow the normal practice in antenna analysis. For the scattering outputs, the backscatter routine may be considered to show the response to an incoming plane wave from the the direction angles shown. The echo area is equivalent to the radar cross-section. For bistatic scattering, the backscatter routine should be specified, with a single pair of angles for the incident wave. The bistatic routine then gives the echo area in the directions specified by its angle values. TWCards handles the creation of the flags as needed. PROGRAM STRUCTURE The ThinWire program is written as a group of subroutines, called from the MAIN segment, with further calls to sub-subroutines. MAIN handles all input, and much of the output. The calls are, by name, nearest calling label +/- added lines, and purpose: MAIN 59 SORT calaculate segmentation, connections, modes 62+3 SGANT calculate impedance matrix 63 GANT1 calculate currents 200+1 GNFLD calculate near field 300+1 GFFLD calculate radiation pattern 400+1 GFFLD calculate backscatter 500+1 GFFLD calculate bistatic scatter SGANT 12-2 CBES calculate bessel function 50+6 GGS calculate mutual impedance 83+3 GGMM calculate self, mutual impedance 150+5 DSHELL include wire insulation 155+2 GGMM calculate self impedance GGS 300-3 GGMM end-2 GGMM GGMM 40-3 EXPJ calculate exponential integral 40-2 EXPJ 50+6 EXPJ 50+9 EXPJ 140+1 EXPJ 140+2 EXPJ GANT1 55+1 SQROT invert matrix 80+1 RITE output currents 80+5 GDISS calculate wire dissipation GNFLD +13 GNF calculate near field GFFLD 130+4 GFF calculate far field 150+1 SQROT 150+3 SQROT 150+4 RITE 150+5 GDISS 150+6 RITE 150+7 GDISS SQROT invert matrix, output values RITE Output currents MUTUAL ADMITTANCE Mutual admittaance is calculated by setting the excitation voltage of one element to a convenient value such as 1 or 1000 volts, and reading the current of the second. Pay attention to location of the segment endpoints: excitation is at an such an endpoint( as are output current values) if there is another segment connected to the same point. For an isolated segment end, the calculated current is "near" the end, as determined by integration approximations. PROGRAM MODIFICATIONS The following modifications require that the changed program be re-compiled with a Fortran compiler suited to the computer in use. For very small antennas, less than about 0.1 wavelengths overall, better accuracy will be obtained with all routines and sub- routines set to double precision. For large antennas, the provided executional programs may not allow sufficient segmentation for good accuracy. Dimension statements in TWCards and ThinWire can be changed to allow more segments, load, and excitations, up to limits set by the computer and operating system. (If speed is no problem, TWCards can be used in interpreted mode). If near field calculations are needed at a number of locations, it is probably best to add another WRITE statement to TWCards, and a corresponding READ to ThinWire, plus a DO loop to set the values of XP, YP, ZP in the main routine at 200. The executional programs assume that insulation, if specified, is present on all antenna segments. If only some segments are insulated, these are indicated by the variable ISC(J)=1. These could be set by adding a routine to the rerun/exit routine at the end of the main segment of Thin Wire. Alternatively, another WRITE/READ pair can be introduced.