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
201long nec_geometry_complete(nec_context* in_context, int gpflag);
202
204
205
210
214long nec_benchmark(void);
215
220const char* nec_error_message(void);
221
223
224
230
231
240long nec_medium_parameters(nec_context* in_context, double permittivity, double permeability);
241
242
264long nec_gn_card(nec_context* in_context, int iperf, int nradl, double epse, double sig, double tmp3, double tmp4, double tmp5, double tmp6);
265
274long nec_fr_card(nec_context* in_context, int in_ifrq, int in_nfrq, double in_freq_mhz, double in_del_freq);
275
282long nec_ek_card(nec_context* in_context, int itmp1);
283
284
303long nec_ld_card(nec_context* in_context, int ldtyp, int ldtag, int ldtagf, int ldtagt, double tmp1, double tmp2, double tmp3);
304
305
330 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);
331
349long nec_excitation_voltage(nec_context* in_context, int tag, int segment, double v_real, double v_imag);
350
365long nec_excitation_current(nec_context* in_context, double x, double y, double z, double a, double beta, double moment);
366
384long nec_excitation_planewave(nec_context* in_context, int n_theta, int n_phi,
385 double theta, double phi, double eta, double dtheta, double dphi, double pol_ratio);
386
387long 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);
388long 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);
389
406long nec_xq_card(nec_context* in_context, int itmp1);
407
408long nec_gd_card(nec_context* in_context, double tmp1, double tmp2, double tmp3, double tmp4);
409
411
412
413
419
483long nec_rp_card(nec_context* in_context,
484 int calc_mode, int n_theta, int n_phi,
485 int output_format, int normalization, int D, int A,
486 double theta0, double phi0, double delta_theta, double delta_phi,
487 double radial_distance, double gain_norm);
488
505long nec_pt_card(nec_context* in_context, int itmp1, int itmp2, int itmp3, int itmp4);
506
507long nec_pq_card(nec_context* in_context, int itmp1, int itmp2, int itmp3, int itmp4);
508
509long nec_kh_card(nec_context* in_context, double tmp1);
510long 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);
511long 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);
512
513
514long nec_cp_card(nec_context* in_context, int itmp1, int itmp2, int itmp3, int itmp4);
515long nec_pl_card(nec_context* in_context, char* ploutput_filename, int itmp1, int itmp2, int itmp3, int itmp4);
516
517
519
520
526
537double nec_gain(nec_context* in_context, int freq_index, int theta_index, int phi_index);
538
547double nec_gain_max(nec_context* in_context, int freq_index);
548
557double nec_gain_min(nec_context* in_context, int freq_index);
558
568double nec_gain_mean(nec_context* in_context, int freq_index);
569
579double nec_gain_sd(nec_context* in_context, int freq_index);
580
581double nec_gain_rhcp_max(nec_context* in_context, int freq_index);
582double nec_gain_rhcp_min(nec_context* in_context, int freq_index);
583double nec_gain_rhcp_mean(nec_context* in_context, int freq_index);
584double nec_gain_rhcp_sd(nec_context* in_context, int freq_index);
585
586double nec_gain_lhcp_max(nec_context* in_context, int freq_index);
587double nec_gain_lhcp_min(nec_context* in_context, int freq_index);
588double nec_gain_lhcp_mean(nec_context* in_context, int freq_index);
589double nec_gain_lhcp_sd(nec_context* in_context, int freq_index);
590
593double nec_impedance_real(nec_context* in_context, int freq_index);
594
597double nec_impedance_imag(nec_context* in_context, int freq_index);
598
600
601#ifdef __cplusplus
602}
603#endif
604
Container for an nec2++ simulation.
Definition nec_context.h:80
A class to handle properties of wires.
Definition nec_wire.h:28
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:175
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:188
double nec_gain_mean(nec_context *in_context, int freq_index)
Get the mean gain from a radiation pattern.
Definition libNEC.cpp:103
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:90
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:159
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:204
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:107
long nec_medium_parameters(nec_context *in_context, double permittivity, double permeability)
Set the prameters of the medium (permittivity and permeability)
Definition libNEC.cpp:154
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:86
double nec_impedance_imag(nec_context *in_context, int freq_index)
Impedance: Imaginary Part.
Definition libNEC.cpp:150
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:215
double nec_gain_min(nec_context *in_context, int freq_index)
Get the minimum gain from a radiation pattern.
Definition libNEC.cpp:99
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:180
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:95
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:170
double nec_impedance_real(nec_context *in_context, int freq_index)
Impedance: Real Part.
Definition libNEC.cpp:147
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:228
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:164
long nec_excitation_voltage(nec_context *in_context, int tag, int segment, double v_real, double v_imag)
Voltage Source Excitation.
Definition libNEC.cpp:184
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
long nec_ek_card(nec_context *in_context, int itmp1)
To control use of the extended thin-wire kernel approximation.
Definition libNEC.cpp:255