cocoaNEC 2.0 Changelog

What's new in cocoaNEC 2.0 0.81

Jul 20, 2012
  • The NEC TL card only models an ideal lossless transmission line. cocoaNEC now lets you use more realistic coax and twin-lead models by modeling a transmission line with the admittance matrix of a NEC NT (network) card. For modeling common mode current, the shield of a coax cable can also be included.
  • For convenience, many types of coax and twin-lead lines are built-in, e.g., RG-8, RG-174, LMR-200, Wireman 551, etc.
  • The NEC LD card that is generated by the NC impedanceLoad function places an impedance in series with voltage sources (EX) and transmission line (TL) and network (NT) cards that are placed in the same wire segment. cocoaNEC now adds an extension (impedanceTermination) to NEC that places an impedance in parallel with the other objects.
  • A plot of the current distribution on a wire is now generated when you control click on a wire in the Geometry View.
  • Text Views (including the NC Source in the NC window and NEC2 Output in the Output Window) are now searchable (command-F and Find Menu in the Edit menu of the Menu Bar).
  • You can now chose to draw distributed loads by selecting the checkbox in the Output Window's drawer.
  • Each time a model is executed from a control function by using runModel, the result from a previous run in the Smith Chart and Scalar Plot outputs are replaced by new data. NC now includes a new function keepDataBetweenModelRuns, which plots new feed points without erasing the previous feed points. Sample code "OCF sweep.nc" is added to the Examples folder that plots a sequence of feed point impedances of an off-center fed dipole when the feed point is moved.
  • Some cocoaNEC features such as current sources require the generation of auxiliary wires in the far field. The prior implementation did not allow 2 different current sources to be located on the same segment of a wire, since their auxiliary wires would touch. This limitation no longer exists. cocoaNEC now allows multiple current sources (and the new impedanceTermination loads) to be located on the same wire segment.
  • frequencySweep now generates extra NT cards when the NT parameters are frequency dependent. This is needed for the new coax function.
  • Fixed a bug in the NC line() function.
  • Fixed a bug with local variables that causes certain function recursions to fail.
  • Fixed a bug where NEC-4.2 (GN3) was calling the nec2c context in the Output window. Thanks the Bill K1GQ for noticing the bug and reporting it. NEC-4.2 with GN3 should work properly now.

New in cocoaNEC 2.0 0.68 (Dec 4, 2010)

  • "Horizontal+Vertical" and "RHCP+LHCP" selections are added to the Output Window's Options panel.
When "Horizontal+Vertical" is selected, both horizontal (solid line) and vertical (dashed line) polarizations are now displayed in the antenna patterns. When "RHCP+LHCP" is selected, both right hand circular polarization (solid line) and left hand circular polarization (dashed line) are now displayed. 
The following shows the Summary view patterns of a quadrature fed Inverted Vee Turnstile antenna when "RHCP+LHCP" is selected: 
The solid line represents right hand circular polarization and the dashed line represents left hand circular polarization. 
You can now select the polarization of the antenna pattern from the Output Menu of the cocoaNEC Main Menu bar. This allows you to quickly change polarization without having to tab back and forth in the Output window between a pattern view and the options view.

New in cocoaNEC 2.0 0.67 (Oct 13, 2010)

  • You can now choose left hand circular and right hand circular in the Polarization selection column in the Output Window's Options panel for plotting the antenna response to LHCP and RHCP signals.
  • The two radiation patterns in the Summary view of the output window used to always display the total gain (sum of vertical and horizontal gains). Like the azimuth, elevation and 3D plots, these two plots in the Summary view are now controlled by the same Polarization selection in the Options tab (see above).
  • Fixed a bug in the printf function in the NC interpreter that caused a second argument in the variable list not to print. The %g format (same meaning as the printf format in the C library) is now support in addition to %d, %f and %e.

New in cocoaNEC 2.0 0.64 (Jun 1, 2010)

  • NEC-2 Card Deck export (in the File menu) has not been working since v0.61. It should again work in v0.64.
  • Worked around Cocoa's NSTextView slowness problem by truncating the Summary view when it grows large.
  • In addition to the above, the NEC-2 Output file listing is deferred until the tab view for the output listing is chosen. This should further speed up the processing of NC loops.
  • Fixed some memory leaks.

New in cocoaNEC 2.0 0.62 (Sep 26, 2009)

  • Turns on the Average Power Gain computation whenever a 3D Radiation Pattern is generated.
  • The Average Power Gain is the gain of the modeled antenna relative to an isotropic antenna, averaged over the 4π steradian sphere. For an ideal lossless antenna, this value is 1.0, and the gain number is often used as one of the criteria to check for convergence (usually called the Average Gain Test, or AGT in the literature) of the model (e.g., whether wires are cut into sufficient segments, corners of loops are well formed, etc). Any model whose average gain is within about 0.2 dB of unity gain can be considered a reasonable model. Please note that the inclusion of any lossy elements in the model will render the average gain number meaningless for converence testing purpose.
  • When the 3D radiation plot is not disabled (see the notes for v0.61 below), the Average Gain is reported in the Summary tab of the Output Window, as shown in the figure below:
  • AGT - Additionally, averageGain is now available as a model variable (similar to the maxGain model variable) that can be referenced from inside of an NC control function. This allows you to change the number of wire segments, etc under programmed control instead of manually adjusting them for convergence.
  • The bundle name for cocoaNEC 2.0 has been changed from w7ay.cocoaNEC 2.0 to w7ay.cocoaNEC-2.0. This will change the name of the preference (plist) file for cocoaNEC. The only preference currently is the choice between using NEC-2 or NEC-4, so this is the only thing that you would need to change if you are defaulting cocoaNEC to using NEC-4.
  • The change is made so that cocoaNEC files (NC or spreadsheet models) can comply with the Snow Leopard sole scheme to connect a file with an application. Mac OS X 10.6 no longer uses the Resource Signature to distinguish between application.

New in cocoaNEC 2.0 0.60 (Sep 10, 2009)

  • Fixed a string overflow bug in the SWRView that could cause unpredicatable crashes when large SWR is encountered.

New in cocoaNEC 2.0 0.59 (Sep 5, 2009)

  • Allow Spreadsheet variables to access the spreadsheet constants (c_pi, c_frequency, etc)

New in cocoaNEC 2.0 0.58 (Sep 3, 2009)

  • Fixed a bug where the Spreadsheet interface was rounding loading parameters that are less than 0.000001 up to 0.000001.

New in cocoaNEC 2.0 0.57 (Aug 19, 2009)

  • The NC parser for scientific notation constants was scanning an extra character past the constant itself, requiring an extra space following the number in the NC source. Since the Spreadsheet interface now uses NC as the intermediate "language," constants that are expressed in scientific notion was breaking.
  • The spreadsheet global variables, g_pi, g_frequency, g_dielectric, etc, were not included into the NC source, causing a spreadsheet model to fail if these variables are used.

New in cocoaNEC 2.0 0.56 (Aug 12, 2009)

  • Returning a variable from an NC user function used to cause all the code between the statement where the variable is defined up to the return statement itself to be ignored.
  • Placing an excitation on an NC taperedWire could cause the EX card to reference a non-existant segment. The excitation should now be placed in the center segment of a tapered wire.

New in cocoaNEC 2.0 0.55 (Jun 23, 2009)

  • You can now quickly check if your copy of cocoaNEC is up to date. Please note that you have to manually check for updates. cocoaNEC will not pester you by itself. When directed to do so with the Check for Updates menu item, it will check the running version of cocoaNEC against a web file.
  • archelix2
  • NC now includes the following calls.
  • arc_
  • helix_
  • wire_
  • patch_
  • rectangularPatch_
  • triangularPatch_
  • quadPatch_
  • multiPatch_
  • voltageFeedAtSegment
  • currentFeedAtSegment
  • networkAtSegments
  • transmissionLineAtSegments
  • seriesLoadsAtSegments
  • parallelLoadsAtSegments
  • impedanceAtSegments
  • conductivityAtSegments
  • These calls are added to support the new way that the Spreadsheet method works, but these NC calls can be used by any NC programs (for example to generate arcs or helices). The new geometry calls include the ability to generate GM cards for each Geometry element.
  • The voltageFeedAtSegment and currentFeedAtSegment allow you to feed a wire, arc or helix not just at the center segment but at any segment. networkAtSegments and transmissionLineAtSegments also allow you to connect geometry elements at points that are not their centers.
  • Similarly, seriesLoadsAtSegments, parallelLoadsAtSegments and impedanceAtSegments allow you to insert series or parallel lumped RLC or R+iX element in any range of segments of a geometry element instead of only at the center segment. conductivityAtSegments allows you to specify conductivity for a range of segments instead of being applied to all segments of a wire when you use the conductivity call.
  • You can now directly generate arbitrary surface patches, rectangular patches, triangular patches, quadrilateral patches and multiple patches from NC.
  • Please check NCFunctions page for details.
  • In prior versions of cocoaNEC, the Spreadsheet and NC methods had used independent mechanisms to generate a NEC-2 card deck. From version 0.55 onwards, a Spreadsheet model no longer generates a card deck. Instead, the Spreadsheet generates an NC program, and the NC program is executed to produce the actual card images. This reduces the amount of code that I need to maintain.
  • If you have an existing Spreadsheet model that had worked under version 0.54 but no longer works under version 0.55, please revert the application back to v0.54, which is still available in the Download page, and please drop me an e-mail.
  • Each Spreadsheet row now includes a "transform" column. When the transform cell is empty, the row behaves as before. However, when a transform variable is included, it is associated with a NEC-2 "GM" card. This allows a geometry element to be rotated or translated.
  • ust as with ordinary variables and network and transmission line elements, the transform variables are defined in its own drop down sheet.
  • Each geometry element can now be defined as before without a transform, or it can include a transform which it can share with other geometry elements.
  • The spreadsheet interface now has a Show Cards button. This can be used to inspect the card deck or NC program from a failed run.
  • show cards
  • More examples have been added to the examples folder. New files include simple spreadsheet models for an arc and a helix, and an NC model of a Log Periodic Dipole Array by Doug, K4DSP that is defined with recursive function calls.

New in cocoaNEC 2.0 0.54 (Jun 10, 2009)

  • The NC interpreter now supports arrays of int, real, element, vector or transform data types.

New in cocoaNEC 2.0 0.53 (Jun 5, 2009)

  • The NC interpreter now supports vectors and coordinate transforms.
  • Three new geometry functions are added: wirev, taperedWirev and linev.
  • These are vector versions of their scalar counterparts.
  • In addition to using the vector notation, these functions have a transform parameter that transforms (e.g., rotate and translate, shown above) the vectors before creating the geometry.
  • Pre-increment (++v) and pre-decrement (--v) operators on scalar (int and real) variables have been added to NC.

New in cocoaNEC 2.0 0.50 (Jan 5, 2009)

  • The modulus (%) function was missing in the NC implementation. Thanks to David Johnson for reporting this.