|
nec2++ 2.1.1
|
Container for an nec2++ simulation. More...
#include <nec_context.h>
Public Member Functions | |
| void | initialize () |
| Initialize everything, called after construction so that we can tell the geometry object what nec_context object to point to. | |
| void | calc_prepare () |
| After the geometry has been specified, this function prepares for calculations. | |
| void | reset_processing_to_structure_loading () |
| void | reset_processing_to_excitation_setup () |
| c_geometry * | get_geometry () |
| double | get_gain (int freq_index, int theta_index, int phi_index) |
| Get the maximum gain in dB. | |
| double | get_gain_max (int freq_index=0) |
| double | get_gain_min (int freq_index=0) |
| double | get_gain_mean (int freq_index=0) |
| double | get_gain_sd (int freq_index=0) |
| double | get_gain_rhcp_max (int freq_index=0) |
| double | get_gain_rhcp_min (int freq_index=0) |
| double | get_gain_rhcp_mean (int freq_index=0) |
| double | get_gain_rhcp_sd (int freq_index=0) |
| double | get_gain_lhcp_max (int freq_index=0) |
| double | get_gain_lhcp_min (int freq_index=0) |
| double | get_gain_lhcp_mean (int freq_index=0) |
| double | get_gain_lhcp_sd (int freq_index=0) |
| double | get_impedance_real (int freq_index=0) |
| Impedance: Real Part. | |
| double | get_impedance_imag (int freq_index=0) |
| Impedance: Imaginary Part. | |
| nec_antenna_input * | get_input_parameters (int index) |
| Get Antenna Input Parameter Results. | |
| nec_norm_rx_pattern * | get_norm_rx_pattern (int index) |
| Get Normalized Receiving Pattern Results. | |
| nec_radiation_pattern * | get_radiation_pattern (int index) |
| Get Radiation Pattern results. | |
| nec_structure_excitation * | get_structure_excitation (int index) |
| Get structure excitation results. | |
| nec_near_field_pattern * | get_near_field_pattern (int index) |
| Get near field pattern results. | |
| nec_structure_currents * | get_structure_currents (int index) |
| Get structure currents results. | |
| void | set_isave (int in_isave) |
| int | get_inc () |
| nec_float | get_xpr1 () |
| nec_float | get_xpr2 () |
| void | set_output (nec_output_file in_output, nec_output_flags in_output_flags) |
| void | set_results_format (enum RESULT_FORMAT result_format) |
| void | set_gain_only (bool flag) |
| void | geometry_complete (int gpflag) |
| Signal the end of a geometry description. | |
| void | medium_parameters (nec_float permittivity, nec_float permeability) |
| void | wire (int tag_id, int segment_count, nec_float xw1, nec_float yw1, nec_float zw1, nec_float xw2, nec_float yw2, nec_float zw2, nec_float rad, nec_float rdel, nec_float rrad) |
| void | sp_card (int ns, nec_float x1, nec_float y1, nec_float z1, nec_float x2, nec_float y2, nec_float z2) |
| void | sc_card (int i2, nec_float x3, nec_float y3, nec_float z3, nec_float x4, nec_float y4, nec_float z4) |
| void | gx_card (int i1, int i2) |
| void | move (nec_float rox, nec_float roy, nec_float roz, nec_float xs, nec_float ys, nec_float zs, int its, int nrpt, int itgi) |
| void | arc (int tag_id, int segment_count, nec_float rada, nec_float ang1, nec_float ang2, nec_float rad) |
| void | helix (int tag_id, int segment_count, nec_float s, nec_float hl, nec_float a1, nec_float b1, nec_float a2, nec_float b2, nec_float rad) |
| Add an helix to the geometry,. | |
| void | fr_card (int ifrq, int nfrq, nec_float freq_mhz, nec_float del_freq) |
| "fr" card, frequency parameters | |
| void | ld_card (int itmp1, int itmp2, int itmp3, int itmp4, nec_float tmp1, nec_float tmp2, nec_float tmp3) |
| "ld" card, loading parameters | |
| void | gn_card (int ground_type, int rad_wire_count, nec_float tmp1, nec_float tmp2, nec_float tmp3, nec_float tmp4, nec_float tmp5, nec_float tmp6) |
| Ground parameters under the antenna. | |
| void | ex_card (enum excitation_type itmp1, int itmp2, int itmp3, int itmp4, nec_float tmp1, nec_float tmp2, nec_float tmp3, nec_float tmp4, nec_float tmp5, nec_float tmp6) |
| void | ex_card (enum excitation_type itmp1, int itmp2, int itmp3, int itmp4, int itmp5, nec_float tmp1, nec_float tmp2, nec_float tmp3, nec_float tmp4, nec_float tmp5, nec_float tmp6) |
| Specifies the excitation for the structure. The excitation can be voltage sources on the structure, an elementary current source, or a plane-wave incident on the structure. | |
| void | tl_card (int itmp1, int itmp2, int itmp3, int itmp4, nec_float tmp1, nec_float tmp2, nec_float tmp3, nec_float tmp4, nec_float tmp5, nec_float tmp6) |
| "tl" card, transmission line parameters | |
| void | nt_card (int itmp1, int itmp2, int itmp3, int itmp4, nec_float tmp1, nec_float tmp2, nec_float tmp3, nec_float tmp4, nec_float tmp5, nec_float tmp6) |
| void | xq_card (int itmp1) |
| "xq" execute card - calc. including radiated fields | |
| void | gd_card (nec_float tmp1, nec_float tmp2, nec_float tmp3, nec_float tmp4) |
| void | rp_card (int calc_mode, int n_theta, int n_phi, int output_format, int normalization, int D, int A, nec_float theta0, nec_float phi0, nec_float delta_theta, nec_float delta_phi, nec_float radial_distance, nec_float gain_norm) |
| Standard radiation pattern parameters. | |
| void | pt_card (int itmp1, int itmp2, int itmp3, int itmp4) |
| void | pq_card (int itmp1, int itmp2, int itmp3, int itmp4) |
| void | kh_card (nec_float tmp1) |
| void | ne_card (int itmp1, int itmp2, int itmp3, int itmp4, nec_float tmp1, nec_float tmp2, nec_float tmp3, nec_float tmp4, nec_float tmp5, nec_float tmp6) |
| void | nh_card (int itmp1, int itmp2, int itmp3, int itmp4, nec_float tmp1, nec_float tmp2, nec_float tmp3, nec_float tmp4, nec_float tmp5, nec_float tmp6) |
| void | set_extended_thin_wire_kernel (bool ekflag) |
| void | cp_card (int itmp1, int itmp2, int itmp3, int itmp4) |
| void | pl_card (const char *ploutput_filename, int itmp1, int itmp2, int itmp3, int itmp4) |
| void | all_jobs_completed () |
| void | write_results (ostream &os) |
| void | simulate (bool far_field_flag=false) |
| Start a simulation. | |
| void | gfld (nec_float rho, nec_float phi, nec_float rz, nec_complex *eth, nec_complex *epi, nec_complex *erd, bool space_only, nec_float in_wavelength) |
| gfld computes the radiated field including ground wave. | |
| void | ffld (nec_float thet, nec_float phi, nec_complex *eth, nec_complex *eph, nec_float in_wavelength) |
Static Public Member Functions | |
| static nec_float | benchmark () |
| Benchmark the libnecpp engine. A score of 100 is roughly an Athlon XP 1800. | |
Public Attributes | |
| nec_output_file | m_output |
| an object to pipe output through... | |
| nec_ground | ground |
| std::unique_ptr< c_geometry > | m_geometry |
| c_plot_card | plot_card |
| c_ground_wave | ground_wave |
| int | iptflq |
| pq card flags | |
| int | iptaq |
| int | iptaqf |
| int | iptaqt |
| int | iptflg |
| pt card flags... | |
| int | iptag |
| int | iptagf |
| int | iptagt |
| int | iflow |
| int | ifrq |
| int | nfrq |
| nec_float | delfrq |
| int_array | ldtyp |
| int_array | ldtag |
| int_array | ldtagf |
| int_array | ldtagt |
| real_array | zlr |
| real_array | zli |
| real_array | zlc |
| real_matrix | fnorm |
| int | nthi |
| int | nphi |
| nec_float | thetis |
| nec_float | phiss |
| nec_results | m_results |
| The results object that holds all the specific results. | |
| nec_output_flags | m_output_flags |
| an object to pipe output through... | |
| nec_float | _wavelength |
| complex_array | cm |
| int | icase |
| int | npblk |
| int64_t | nlast |
| int | nbbx |
| int | npbx |
| int | nlbx |
| int | nbbl |
| int | npbl |
| int | nlbl |
| int_array | ip |
| nec_float | freq_mhz |
| real_array | air |
| real_array | aii |
| real_array | bir |
| coefficients of the constant terms in the current interpolation functions for the current vector | |
| real_array | bii |
| real_array | cir |
| coefficients of the sine terms in the current interpolation functions | |
| real_array | cii |
| complex_array | current_vector |
| coefficients of the cosine terms in the current interpolation functions | |
| int | ifar |
| the current vector | |
| int | nload |
| input integer flag (from RP card) specifies type of field computation, or type of ground system for far fields | |
| complex_array | zarray |
| int | ncoup |
| int | icoup |
| int_array | nctag |
| int_array | ncseg |
| complex_array | y11a |
| complex_array | y12a |
| int_array | ivqd |
| int_array | source_segment_array |
| int_array | iqds |
| int | nvqd |
| int | voltage_source_count |
| int | nqds |
| complex_array | vqd |
| complex_array | vqds |
| complex_array | source_voltage_array |
| int | masym |
| int | neq |
| int | npeq |
| int | neq2 |
| int | network_count |
| int | ntsol |
| int | nprint |
| int_array | iseg1 |
| int_array | iseg2 |
| int_array | ntyp |
| real_array | x11r |
| real_array | x11i |
| real_array | x12r |
| real_array | x12i |
| real_array | x22r |
| real_array | x22i |
| nec_float | input_power |
| nec_float | network_power_loss |
| nec_complex | zped |
| enum excitation_type | m_excitation_type |
| int | m_rp_output_format |
| int | m_rp_normalization |
| int | m_near |
| int | nfeh |
| int | nrx |
| int | nry |
| int | nrz |
| int | nth |
| int | nph |
| int | ipd |
| int | iavp |
| nec_float | thets |
| nec_float | phis |
| nec_float | dth |
| nec_float | dph |
| nec_float | rfld |
| nec_float | gnor |
| nec_float | xpr6 |
| nec_float | structure_power_loss |
| nec_float | xnr |
| nec_float | ynr |
| nec_float | znr |
| nec_float | dxnr |
| nec_float | dynr |
| nec_float | dznr |
| int | ind1 |
| int | indd1 |
| int | ind2 |
| int | indd2 |
| bool | m_use_exk |
| nec_float | m_s |
| nec_float | m_b |
| nec_float | xj |
| nec_float | yj |
| nec_float | zj |
| nec_float | cabj |
| nec_float | sabj |
| nec_float | salpj |
| nec_float | rkh |
| nec_float | t1xj |
| nec_float | t1yj |
| nec_float | t1zj |
| nec_float | t2xj |
| nec_float | t2yj |
| nec_float | t2zj |
| nec_complex | exk |
| nec_complex | eyk |
| nec_complex | ezk |
| nec_complex | exs |
| nec_complex | eys |
| nec_complex | ezs |
| nec_complex | exc |
| nec_complex | eyc |
| nec_complex | ezc |
| int | nop |
| complex_array | symmetry_array |
| int | isnor |
| nec_float | xo |
| nec_float | yo |
| nec_float | zo |
| nec_float | sn |
| nec_float | xsn |
| nec_float | ysn |
| int | ija |
| nec_float | zpk |
| nec_float | rkb2 |
| nec_float | zpka |
| nec_float | rhks |
Container for an nec2++ simulation.
An nec_context object is the container for an nec2++ simulation. A c_geometry object is associated with the nec_context, and then after the simulation is done, the results can be requested from this object.
|
inline |
normal exit of nec2++ when all jobs complete ok ***
| void nec_context::arc | ( | int | tag_id, |
| int | segment_count, | ||
| nec_float | rada, | ||
| nec_float | ang1, | ||
| nec_float | ang2, | ||
| nec_float | rad | ||
| ) |
Add an arc to the geometry,
All co-ordinates are in meters.
| tag_id | The tag ID. |
| segment_count | The number of segments. |
| rada | The radius. |
| ang1 | The angle of the arc starting point. |
| ang2 | The angle of the arc end point. |
| rad | The wire radius. |
|
static |
Benchmark the libnecpp engine. A score of 100 is roughly an Athlon XP 1800.
Benchmark the libnecpp engine. A score of 1.0 is roughly an Athlon XP 1800.
References ex_card(), fr_card(), geometry_complete(), gn_card(), initialize(), ld_card(), pt_card(), rp_card(), c_geometry::wire(), and xq_card().
Referenced by nec_benchmark().
| void nec_context::cp_card | ( | int | itmp1, |
| int | itmp2, | ||
| int | itmp3, | ||
| int | itmp4 | ||
| ) |
"cp" card, maximum coupling between antennas
|
inline |
Specifies the excitation for the structure. The excitation can be voltage sources on the structure, an elementary current source, or a plane-wave incident on the structure.
All angles are in degrees.
| excitation_type | Determines the type of excitation which is used : excitation_type = O - voltage source (applied-E-field source). excitation_type = 1 - incident plane wave, linear polarization. excitation_type = 2 - incident plane wave, right-hand (thumb along the incident k vector) elliptic polarization. excitation_type = 3 - incident plane wave, left-hand elliptic polarization. excitation_type = 4 - elementary current source. excitation_type = 5 - voltage source (current-slope-discontinuity). |
| itmp2 | If excitation_type = 0 or 5 : the tag number of the source segment (if itmp1 = 0 absolute segment numbers will be used) ; else if excitation_type = 1, 2 or 3 : number of theta angles desired for the incident plane wave ; else zero. |
| itmp3 | If excitation_type = 0 or 5 : the rank (among the segments the tag number of which is itmp2) or absolute segment number of the source segment ; else if excitation_type = 1, 2 or 3 : number of phi angles desired for the incident plane wave ; else zero. |
| itmp4 | If itmp4 = 1 the maximum relative admittance matrix asymmetry for source segment (if excitation_type = 0 or 5) and network connections (whatever excitation_type may be) will be calculated and printed. |
| itmp5 | If excitation_type = 0 or 5 : tmp3 will be taken under account if itmp5 = 1 ; else zero. |
| tmp1 | If excitation_type = 0 or 5 : the real part of the voltage ; else if excitation_type = 1, 2 or 3 : the first value of theta ; else the x-coordinate of the current source. |
| tmp2 | If excitation_type = 0 or 5 : the imaginary part of the voltage ; else if excitation_type = 1, 2 or 3 : the first value of phi ; else if excitation_type = 4 : the y-coordinate of the current source. |
| tmp3 | If excitation_type = 0 or 5 : the normalization constant for the impedance printed in the optional impedance table (if tmp3 = 0 the impedance will be normalized to their maximum value) ; else if excitation_type = 1, 2 or 3 : eta in degrees. Eta is the polarization angle defined as the angle between the theta unit vector and the direction of the electric field for linear polarization or the major ellipse axis for elliptical polarization ; else if excitation_type = 4 : the z-coordinate of the current source. |
| tmp4 | If excitation_type = 0 or 5 : zero. else excitation_type = 1, 2 or 3 : theta angle stepping increment. else if excitation_type = 4 : the angle the current source makes with the XY plane. |
| tmp5 | If excitation_type = 0 or 5 : zero. else excitation_type = 1, 2 or 3 : phi angle stepping increment. else if excitation_type = 4 : the angle the projection of the current source on the XY plane makes with the X axis. |
| tmp6 | If excitation_type = 0 or 5 : zero. else excitation_type = 1, 2 or 3 : ratio of minor axis to major axis for elliptic polarization (major axis field strength - 1 V/m). else if excitation_type = 4 : "Current moment" of the source (in amp meter). |
References ex_card().
| void nec_context::ex_card | ( | enum excitation_type | itmp1, |
| int | itmp2, | ||
| int | itmp3, | ||
| int | itmp4, | ||
| nec_float | tmp1, | ||
| nec_float | tmp2, | ||
| nec_float | tmp3, | ||
| nec_float | tmp4, | ||
| nec_float | tmp5, | ||
| nec_float | tmp6 | ||
| ) |
"ex" card, excitation parameters
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
// NOT YET DONE... F7- (A) BLANK, (B) INCIDENT AMPLITUDE (Volts/m)
Referenced by benchmark(), ex_card(), nec_ex_card(), nec_excitation_current(), nec_excitation_planewave(), and nec_excitation_voltage().
| void nec_context::fr_card | ( | int | ifrq, |
| int | nfrq, | ||
| nec_float | freq_mhz, | ||
| nec_float | del_freq | ||
| ) |
"fr" card, frequency parameters
| ifrq | O= LINEAR STEP 1=MULTIPLICATIVE |
| nfrq | Number of steps, for a single frequency use nfrq=1 |
| freq_mhz | Frequency or Starting frequency (in MHz) |
| del_freq | Frequency increment, (ADD if ifrq=0, OR MULTIPLY if ifrq=1) |
Referenced by benchmark(), and nec_fr_card().
| void nec_context::gd_card | ( | nec_float | tmp1, |
| nec_float | tmp2, | ||
| nec_float | tmp3, | ||
| nec_float | tmp4 | ||
| ) |
"gd" card, ground representation
| void nec_context::geometry_complete | ( | int | gpflag | ) |
Signal the end of a geometry description.
This function prepares for a calculation by calling calc_prepare().
References calc_prepare().
Referenced by benchmark(), and nec_geometry_complete().
|
inline |
Get the maximum gain in dB.
This function requires a previous rp_card() method to have been called (with gain normalization requested)
References nec_radiation_pattern::get_power_gain(), and get_radiation_pattern().
Referenced by nec_gain().
|
inline |
Get Antenna Input Parameter Results.
| index | The zero-based index for the result (simulations can return more than one set of results). |
References nec_results::get_antenna_input(), and m_results.
Referenced by get_impedance_imag(), and get_impedance_real().
|
inline |
Get near field pattern results.
| index | The zero-based index for the result (simulations can return more than one set of results). |
References nec_results::get_near_field_pattern(), and m_results.
|
inline |
Get Normalized Receiving Pattern Results.
| index | The zero-based index for the result (simulations can return more than one set of results). |
References nec_results::get_norm_rx_pattern(), and m_results.
|
inline |
Get Radiation Pattern results.
| index | The zero-based index for the result (simulations can return more than one set of results). |
References nec_results::get_radiation_pattern(), and m_results.
Referenced by get_gain().
|
inline |
Get structure currents results.
| index | The zero-based index for the result (simulations can return more than one set of results). |
References nec_results::get_structure_currents(), and m_results.
|
inline |
Get structure excitation results.
| index | The zero-based index for the result (simulations can return more than one set of results). |
References nec_results::get_structure_excitation(), and m_results.
| void nec_context::gfld | ( | nec_float | rho, |
| nec_float | phi, | ||
| nec_float | rz, | ||
| nec_complex * | eth, | ||
| nec_complex * | epi, | ||
| nec_complex * | erd, | ||
| bool | space_only, | ||
| nec_float | in_wavelength | ||
| ) |
gfld computes the radiated field including ground wave.
| space_only | Compute only the space wave (was ksymp == 1) |
Referenced by nec_radiation_pattern::analyze().
| void nec_context::gn_card | ( | int | ground_type, |
| int | rad_wire_count, | ||
| nec_float | tmp1, | ||
| nec_float | tmp2, | ||
| nec_float | tmp3, | ||
| nec_float | tmp4, | ||
| nec_float | tmp5, | ||
| nec_float | tmp6 | ||
| ) |
Ground parameters under the antenna.
| ground_type | (was IPERF) Ground-type flag. The options are:
|
| rad_wire_count | (was NRADL) - Number of radial wires in the ground screen approximation; Set to zero implies no ground screen. |
| EPSE | (F1) - Relative dielectric constant for ground in the vicinity of the antenna. Set to zero in case of a perfect ground. |
| SIG | (F2) - Conductivity in mhos/meter of the ground in the vicinity of the antenna. Set to zero in the case of a perfect ground. If SIG is input as a negative number, the complex dielectric constant Ec = Er -j*sigma/(omega*epsilonzero) is set to EPSR - |SIG|. |
Options for Remaining Floating Point Fields (F3-F6):
Referenced by benchmark(), and nec_gn_card().
| void nec_context::helix | ( | int | tag_id, |
| int | segment_count, | ||
| nec_float | s, | ||
| nec_float | hl, | ||
| nec_float | a1, | ||
| nec_float | b1, | ||
| nec_float | a2, | ||
| nec_float | b2, | ||
| nec_float | rad | ||
| ) |
Add an helix to the geometry,.
All co-ordinates are in meters.
| tag_id | The tag ID. |
| segment_count | The number of segments. |
| s | The turn spacing. |
| h1 | The total length of the helix (negative for a left-handed helix). |
| a1 | x-start radius. |
| b1 | y-start radius. |
| a2 | x-end radius. |
| b2 | y-end radius. |
| rad | The wire radius. |
All co-ordinates are in meters.
| tag_id | The tag ID. |
| segment_count | The number of segments. |
| s | The turn spacing. |
| h1 | The total length of the helix (negative for a left-handed helix). |
| a1 | x-start radius. |
| b1 | y-start radius. |
| a2 | x-end radius. |
| b2 | y-end radius. |
| rad | The wire radius. |
| void nec_context::kh_card | ( | nec_float | tmp1 | ) |
"kh" card, matrix integration limit
| void nec_context::ld_card | ( | int | itmp1, |
| int | itmp2, | ||
| int | itmp3, | ||
| int | itmp4, | ||
| nec_float | tmp1, | ||
| nec_float | tmp2, | ||
| nec_float | tmp3 | ||
| ) |
"ld" card, loading parameters
LD LOADING
itmp1- -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)
itmp2- TAG# TO BE LOADED, BLANK/0= USE ABSOLUTE #s
itmp3- SEG# OF TAG # TO START LOADS, OR ABSOLUTE SEG#
itmp4- 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
References nload.
Referenced by benchmark(), and nec_ld_card().
|
inline |
Set the prameters of the medium (permittivity and permeability)
\param permittivity The electric permittivity of the medium (in farads per meter) \param permeability The magnetic permeability of the medium (in henries per meter) From these parameters a speed of light is chosen.
Referenced by nec_medium_parameters().
| void nec_context::ne_card | ( | int | itmp1, |
| int | itmp2, | ||
| int | itmp3, | ||
| int | itmp4, | ||
| nec_float | tmp1, | ||
| nec_float | tmp2, | ||
| nec_float | tmp3, | ||
| nec_float | tmp4, | ||
| nec_float | tmp5, | ||
| nec_float | tmp6 | ||
| ) |
Near field calculation parameters
| void nec_context::nh_card | ( | int | itmp1, |
| int | itmp2, | ||
| int | itmp3, | ||
| int | itmp4, | ||
| nec_float | tmp1, | ||
| nec_float | tmp2, | ||
| nec_float | tmp3, | ||
| nec_float | tmp4, | ||
| nec_float | tmp5, | ||
| nec_float | tmp6 | ||
| ) |
Near field calculation parameters
| void nec_context::nt_card | ( | int | itmp1, |
| int | itmp2, | ||
| int | itmp3, | ||
| int | itmp4, | ||
| nec_float | tmp1, | ||
| nec_float | tmp2, | ||
| nec_float | tmp3, | ||
| nec_float | tmp4, | ||
| nec_float | tmp5, | ||
| nec_float | tmp6 | ||
| ) |
4: "nt" card, network parameters
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)
| void nec_context::pl_card | ( | const char * | ploutput_filename, |
| int | itmp1, | ||
| int | itmp2, | ||
| int | itmp3, | ||
| int | itmp4 | ||
| ) |
"pl" card, plot flags
| int | Throws int on error. |
| void nec_context::pq_card | ( | int | itmp1, |
| int | itmp2, | ||
| int | itmp3, | ||
| int | itmp4 | ||
| ) |
"pq" card, print control for charge
References iptflq.
| void nec_context::pt_card | ( | int | itmp1, |
| int | itmp2, | ||
| int | itmp3, | ||
| int | itmp4 | ||
| ) |
"pt" card, print control for current
References iptflg.
Referenced by benchmark(), and nec_pt_card().
| void nec_context::rp_card | ( | int | calc_mode, |
| int | n_theta, | ||
| int | n_phi, | ||
| int | output_format, | ||
| int | normalization, | ||
| int | D, | ||
| int | A, | ||
| nec_float | theta0, | ||
| nec_float | phi0, | ||
| nec_float | delta_theta, | ||
| nec_float | delta_phi, | ||
| nec_float | radial_distance, | ||
| nec_float | gain_norm | ||
| ) |
Standard radiation pattern parameters.
| calc_mode | This integer selects the mode of calculation for the radiated field. Some values of (calc_mode) will affect the meaning of the remaining parameters on the card. Options available for calc_mode are:
|
| n_theta | The number of theta angles. |
| n_phi | The number of phi angles. |
| output_format | The output format:
|
| normalization | Controls the type of normalization of the radiation pattern
|
| D | Selects either power gain or directive gain for both standard printing and normalization. If the structure excitation is an incident plane wave, the quantities printed under the heading "gain" will actually be the scattering cross section (a/lambda 2 ) and will not be affected by the value of d. The column heading for the output will still read "power" or "directive gain," however.
|
| A | - Requests calculation of average power gain over the region covered by field points.
|
| theta0 | - Initial theta angle in degrees (initial z coordinate in meters if calc_mode = 1). |
| phi0 | - Initial phi angle in degrees. |
| delta_theta | - Increment for theta in degrees (increment for z in meters if calc_mode = 1). |
| delta_phi | - Increment for phi in degrees. |
| radial_distance | - Radial distance (R) of field point from the origin in meters. radial_distance is optional. If it is zero, the radiated electric field will have the factor exp(-jkR)/R omitted. If a value of R is specified, it should represent a point in the far-field region since near components of the field cannot be obtained with an RP card. (If calc_mode = 1, then radial_distance represents the cylindrical coordinate phi in meters and is not optional. It must be greater than about one wavelength.) |
| gain_norm | - Determines the gain normalization factor if normalization has been requested in the normalization parameter. If gain_norm is zero, the gain will be normalized to its maximum value. If gain_norm is not zero, the gain wi11 be normalized to the value of gain_norm. |
| calc_mode | |
| n_theta | |
| n_phi | |
| output_format | The output format (0 major axis, minor axis and total gain printed. 1 vertical, horizontal ant total gain printed.) |
| normalization | Controls the type of normalization of the radiation pattern N = 0 no normalized gain. = 1 major axis gain normalized. = 2 minor axis gain normalized. = 3 vertical axis gain normalized. = 4 horizontal axis gain normalized. = 5 total gain normalized. |
| D | Selects either power gain or directive gain for both standard printing and normalization. If the structure excitation is an incident plane wave, the quantities printed under the heading "gain" will actually be the scattering cross section (a/lambda 2 ) and will not be affected by the value of d. The column heading for the output will still read "power" or "directive gain," however.
|
| A | - Requests calculation of average power gain over the region covered by field points.
|
| theta0 | - Initial theta angle in degrees (initial z coordinate in meters if I1 = 1). |
| phi0 | - Initial phi angle in degrees. |
| delta_theta | - Increment for theta in degrees (increment for z in meters if I1 = 1). |
| delta_phi | - Increment for phi in degrees. |
| radial_distance | - Radial distance (R) of field point from the origin in meters. radial_distance is optional. If it is zero, the radiated electric field will have the factor exp(-jkR)/R omitted. If a value of R is specified, it should represent a point in the far-field region since near components of the field cannot be obtained with an RP card. (If I1 = 1, then radial_distance represents the cylindrical coordinate phi in meters and is not optional. It must be greater than about one wavelength.) |
| gain_norm | - Determines the gain normalization factor if normalization has been requested in the normalization parameter. If gain_norm is zero, the gain will be normalized to its maximum value. If gain_norm is not zero, the gain w111 be normalized to the value of gain_norm. |
References ifar, and simulate().
Referenced by benchmark(), and nec_rp_card().
| void nec_context::set_extended_thin_wire_kernel | ( | bool | ekflag | ) |
"ek" card, extended thin wire kernel option
Referenced by nec_ek_card().
| void nec_context::simulate | ( | bool | far_field_flag = false | ) |
Start a simulation.
This function will trigger a calculation. In the traditional NEC world, This signals the end of the main input section and the beginning of the frequency do loop.
| far_field_flag | is true if last card was XQ or RP |
| void nec_context::tl_card | ( | int | itmp1, |
| int | itmp2, | ||
| int | itmp3, | ||
| int | itmp4, | ||
| nec_float | tmp1, | ||
| nec_float | tmp2, | ||
| nec_float | tmp3, | ||
| nec_float | tmp4, | ||
| nec_float | tmp5, | ||
| nec_float | tmp6 | ||
| ) |
"tl" card, transmission line parameters
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
| void nec_context::wire | ( | int | tag_id, |
| int | segment_count, | ||
| nec_float | xw1, | ||
| nec_float | yw1, | ||
| nec_float | zw1, | ||
| nec_float | xw2, | ||
| nec_float | yw2, | ||
| nec_float | zw2, | ||
| nec_float | rad, | ||
| nec_float | rdel, | ||
| nec_float | rrad | ||
| ) |
Add a wire to the geometry,
All co-ordinates are in meters.
| tag_id | The tag ID. |
| segment_count | The number of segments. |
| xw1 | The x coordinate of the wire starting point. |
| yw1 | The y coordinate of the wire starting point. |
| zw1 | The z coordinate of the wire starting point. |
| xw2 | The x coordinate of the wire ending point. |
| yw2 | The y coordinate of the wire ending point. |
| zw2 | The z coordinate of the wire ending point. |
| rad | The wire radius (meters) |
| rdel | For tapered wires, the. Otherwise set to 1.0 |
| rrad | For tapered wires, the. Otherwise set to 1.0 |
Referenced by nec_wire().
| void nec_context::xq_card | ( | int | itmp1 | ) |
"xq" execute card - calc. including radiated fields
| itmp1 | 0 NO PATTERN, 1 XY PATTERN, 2 YZ PATTERN, 3 BOTH. (DO NOT USE FOR RADIAL GND SCREEN OR 2ND GND MEDIUM) |
References ifar, and simulate().
Referenced by benchmark(), and nec_xq_card().