nec2++ 2.1.1
libnecpp.h
Go to the documentation of this file.
1/***************************************************************************
2 * Copyright (C) 2004-2008,2015 by Tim Molteno *
3 * tim@molteno.net *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
29#pragma once
30
32#ifdef __cplusplus
33class nec_context;
34#else
35struct nec_context;
36typedef struct nec_context nec_context;
37#endif
38
39
40#ifdef __cplusplus
41extern "C" {
42#endif
43
55
61
65long nec_delete(nec_context* in_context);
66
68
69
75
94long nec_wire(nec_context* in_context, int tag_id, int segment_count,
95 double xw1, double yw1, double zw1,
96 double xw2, double yw2, double zw2,
97 double rad, double rdel, double rrad);
98
99
116long nec_sp_card(nec_context* in_context, int ns,
117 double x1, double y1, double z1,
118 double x2, double y2, double z2);
119
132long nec_sc_card(nec_context* in_context, int i2,
133 double x3, double y3, double z3,
134 double x4, double y4, double z4);
135
154long nec_gm_card(nec_context* in_context, int itsi, int nrpt,
155 double rox, double roy, double roz, double xs,
156 double ys, double zs, int its );
157
190long nec_gx_card(nec_context* in_context, int i1, int i2);
191
192
210
222long nec_geometry_complete(nec_context* in_context, int gpflag);
223
225
226
231
235long nec_benchmark(void);
236
241const char* nec_error_message(void);
242
244
245
251
252
261long nec_medium_parameters(nec_context* in_context, double permittivity, double permeability);
262
263
285long nec_gn_card(nec_context* in_context, int iperf, int nradl, double epse, double sig, double tmp3, double tmp4, double tmp5, double tmp6);
286
295long nec_fr_card(nec_context* in_context, int in_ifrq, int in_nfrq, double in_freq_mhz, double in_del_freq);
296
303long nec_ek_card(nec_context* in_context, int itmp1);
304
305
324long nec_ld_card(nec_context* in_context, int ldtyp, int ldtag, int ldtagf, int ldtagt, double tmp1, double tmp2, double tmp3);
325
326
351 long nec_ex_card(nec_context* in_context, int extype, int i2, int i3, int i4, double tmp1, double tmp2, double tmp3, double tmp4, double tmp5, double tmp6);
352
370long nec_excitation_voltage(nec_context* in_context, int tag, int segment, double v_real, double v_imag);
371
386long nec_excitation_current(nec_context* in_context, double x, double y, double z, double a, double beta, double moment);
387
405long nec_excitation_planewave(nec_context* in_context, int n_theta, int n_phi,
406 double theta, double phi, double eta, double dtheta, double dphi, double pol_ratio);
407
408long nec_tl_card(nec_context* in_context, int itmp1, int itmp2, int itmp3, int itmp4, double tmp1, double tmp2, double tmp3, double tmp4, double tmp5, double tmp6);
409long nec_nt_card(nec_context* in_context, int itmp1, int itmp2, int itmp3, int itmp4, double tmp1, double tmp2, double tmp3, double tmp4, double tmp5, double tmp6);
410
427long nec_xq_card(nec_context* in_context, int itmp1);
428
429long nec_gd_card(nec_context* in_context, double tmp1, double tmp2, double tmp3, double tmp4);
430
432
433
434
440
504long nec_rp_card(nec_context* in_context,
505 int calc_mode, int n_theta, int n_phi,
506 int output_format, int normalization, int D, int A,
507 double theta0, double phi0, double delta_theta, double delta_phi,
508 double radial_distance, double gain_norm);
509
526long nec_pt_card(nec_context* in_context, int itmp1, int itmp2, int itmp3, int itmp4);
527
528long nec_pq_card(nec_context* in_context, int itmp1, int itmp2, int itmp3, int itmp4);
529
530long nec_kh_card(nec_context* in_context, double tmp1);
531long nec_ne_card(nec_context* in_context, int itmp1, int itmp2, int itmp3, int itmp4, double tmp1, double tmp2, double tmp3, double tmp4, double tmp5, double tmp6);
532long nec_nh_card(nec_context* in_context, int itmp1, int itmp2, int itmp3, int itmp4, double tmp1, double tmp2, double tmp3, double tmp4, double tmp5, double tmp6);
533
534
535long nec_cp_card(nec_context* in_context, int itmp1, int itmp2, int itmp3, int itmp4);
536long nec_pl_card(nec_context* in_context, char* ploutput_filename, int itmp1, int itmp2, int itmp3, int itmp4);
537
538
540
541
547
558double nec_gain(nec_context* in_context, int freq_index, int theta_index, int phi_index);
559
568double nec_gain_max(nec_context* in_context, int freq_index);
569
578double nec_gain_min(nec_context* in_context, int freq_index);
579
589double nec_gain_mean(nec_context* in_context, int freq_index);
590
600double nec_gain_sd(nec_context* in_context, int freq_index);
601
602double nec_gain_rhcp_max(nec_context* in_context, int freq_index);
603double nec_gain_rhcp_min(nec_context* in_context, int freq_index);
604double nec_gain_rhcp_mean(nec_context* in_context, int freq_index);
605double nec_gain_rhcp_sd(nec_context* in_context, int freq_index);
606
607double nec_gain_lhcp_max(nec_context* in_context, int freq_index);
608double nec_gain_lhcp_min(nec_context* in_context, int freq_index);
609double nec_gain_lhcp_mean(nec_context* in_context, int freq_index);
610double nec_gain_lhcp_sd(nec_context* in_context, int freq_index);
611
614double nec_impedance_real(nec_context* in_context, int freq_index);
615
618double nec_impedance_imag(nec_context* in_context, int freq_index);
619
623double nec_impedance_real_indexed(nec_context* in_context, int freq_index, int feed_index);
624
627double nec_impedance_imag_indexed(nec_context* in_context, int freq_index, int feed_index);
628
630
631#ifdef __cplusplus
632}
633#endif
634
Container for an nec2++ simulation.
Definition nec_context.h:80
A class to handle properties of wires.
Definition nec_wire.h:29
Definition CurrentInput.h:26
nec_context * nec_create(void)
Create an nec_context and initialize it.
Definition libNEC.cpp:33
long nec_ex_card(nec_context *in_context, int extype, int i2, int i3, int i4, double tmp1, double tmp2, double tmp3, double tmp4, double tmp5, double tmp6)
EX card (Excitation)
Definition libNEC.cpp:186
long nec_excitation_planewave(nec_context *in_context, int n_theta, int n_phi, double theta, double phi, double eta, double dtheta, double dphi, double pol_ratio)
Planewave Excitation (Linear Polarization)
Definition libNEC.cpp:199
double nec_gain_mean(nec_context *in_context, int freq_index)
Get the mean gain from a radiation pattern.
Definition libNEC.cpp:107
double nec_gain(nec_context *in_context, int freq_index, int theta_index, int phi_index)
Get the gain from a radiation pattern.
Definition libNEC.cpp:94
long nec_fr_card(nec_context *in_context, int in_ifrq, int in_nfrq, double in_freq_mhz, double in_del_freq)
FR card.
Definition libNEC.cpp:170
long nec_sc_card(nec_context *in_context, int i2, double x3, double y3, double z3, double x4, double y4, double z4)
Surface Patch Continuation (SC Card)
Definition libNEC.cpp:60
long nec_xq_card(nec_context *in_context, int itmp1)
XQ Card (Execute)
Definition libNEC.cpp:215
long nec_benchmark(void)
Benchmark the libnecpp engine. A score of 1 is roughly an Athlon XP 1800.
Definition libNEC.cpp:44
double nec_gain_sd(nec_context *in_context, int freq_index)
Get the standard deviation of the gain from a radiation pattern.
Definition libNEC.cpp:111
long nec_medium_parameters(nec_context *in_context, double permittivity, double permeability)
Set the prameters of the medium (permittivity and permeability)
Definition libNEC.cpp:165
const char * nec_error_message(void)
Get the last error message All functions return a long. If this is != 0. Then an error has occurred....
Definition libNEC.cpp:90
double nec_impedance_imag(nec_context *in_context, int freq_index)
Impedance: Imaginary Part.
Definition libNEC.cpp:154
long nec_sp_card(nec_context *in_context, int ns, double x1, double y1, double z1, double x2, double y2, double z2)
Surface Patch (SP Card)
Definition libNEC.cpp:54
long nec_rp_card(nec_context *in_context, int calc_mode, int n_theta, int n_phi, int output_format, int normalization, int D, int A, double theta0, double phi0, double delta_theta, double delta_phi, double radial_distance, double gain_norm)
Standard radiation pattern parameters.
Definition libNEC.cpp:226
double nec_gain_min(nec_context *in_context, int freq_index)
Get the minimum gain from a radiation pattern.
Definition libNEC.cpp:103
long nec_excitation_current(nec_context *in_context, double x, double y, double z, double a, double beta, double moment)
Current Source Excitation.
Definition libNEC.cpp:191
long nec_geometry_complete(nec_context *in_context, int gpflag)
Indicate that the geometry is complete (GE card)
Definition libNEC.cpp:81
double nec_gain_max(nec_context *in_context, int freq_index)
Get the maximum gain from a radiation pattern.
Definition libNEC.cpp:99
nec_ground_connection
Ground connection modes accepted by nec_geometry_complete() (GE card I1).
Definition libnecpp.h:205
@ NEC_GROUND_CONNECTION_IMAGE
Definition libnecpp.h:207
@ NEC_GROUND_CONNECTION_NONE
Definition libnecpp.h:206
@ NEC_GROUND_CONNECTION_ZERO_CURRENT
Definition libnecpp.h:208
long nec_gn_card(nec_context *in_context, int iperf, int nradl, double epse, double sig, double tmp3, double tmp4, double tmp5, double tmp6)
Ground Card Examples:
Definition libNEC.cpp:181
double nec_impedance_real(nec_context *in_context, int freq_index)
Impedance: Real Part.
Definition libNEC.cpp:151
long nec_gx_card(nec_context *in_context, int i1, int i2)
Reflection in Coordinate Planes.
Definition libNEC.cpp:76
long nec_pt_card(nec_context *in_context, int itmp1, int itmp2, int itmp3, int itmp4)
Print Flag (Printing of Currents.
Definition libNEC.cpp:239
long nec_delete(nec_context *in_context)
Delete an nec_context object.
Definition libNEC.cpp:40
long nec_ld_card(nec_context *in_context, int ldtyp, int ldtag, int ldtagf, int ldtagt, double tmp1, double tmp2, double tmp3)
LD card (Loading)
Definition libNEC.cpp:175
double nec_impedance_imag_indexed(nec_context *in_context, int freq_index, int feed_index)
Impedance: Imaginary Part for a specific feed.
Definition libNEC.cpp:161
long nec_excitation_voltage(nec_context *in_context, int tag, int segment, double v_real, double v_imag)
Voltage Source Excitation.
Definition libNEC.cpp:195
long nec_gm_card(nec_context *in_context, int itsi, int nrpt, double rox, double roy, double roz, double xs, double ys, double zs, int its)
Coordinate Transformation.
Definition libNEC.cpp:66
double nec_impedance_real_indexed(nec_context *in_context, int freq_index, int feed_index)
Impedance: Real Part for a specific feed.
Definition libNEC.cpp:158
long nec_ek_card(nec_context *in_context, int itmp1)
To control use of the extended thin-wire kernel approximation.
Definition libNEC.cpp:266