nec2++  1.7.0
nec_context.h
Go to the documentation of this file.
1 #ifndef __nec_context__
2 #define __nec_context__
3 
4 /*
5  Copyright (C) 2004-2008,2015 Timothy C.A. Molteno
6  tim@molteno.net
7 
8  This program is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 2 of the License, or
11  (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with this program; if not, write to the Free Software
20  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */
22 
23 #include "common.h"
24 #include "c_ggrid.h"
25 #include "math_util.h"
26 #include "matrix_algebra.h"
27 #include "electromag.h"
28 #include "nec_radiation_pattern.h"
29 #include "nec_results.h"
30 #include "nec_structure_currents.h"
31 #include "nec_output.h"
32 #include "nec_ground.h"
33 #include "c_plot_card.h"
34 
35 class c_geometry;
36 
37 enum excitation_return
38 {
39  FREQ_PRINT_NORMALIZATION = 0,
40  FREQ_LOOP_CONTINUE = 1,
41  FREQ_LOOP_CARD_CONTINUE = 2
42 };
43 
61 {
62 public:
63  nec_context();
64  virtual ~nec_context();
65 
66  // Called after construction...
67  void initialize();
68 
69 
70  void calc_prepare();
71 
72  inline c_geometry* get_geometry() {
73  return m_geometry;
74  }
75 
82  double get_gain(int freq_index, int theta_index, int phi_index) {
84  if (NULL == rp) return -999.0;
85  return rp->get_power_gain(theta_index, phi_index);
86  }
87 
88  double get_gain_max(int freq_index = 0) {
90  if (NULL == rp) return -999.0;
91  return rp->get_gain_max();
92  }
93 
94  double get_gain_min(int freq_index = 0) {
96  if (NULL == rp) return -999.0;
97  return rp->get_gain_min();
98  }
99 
100  double get_gain_mean(int freq_index = 0) {
102  if (NULL == rp) return -999.0;
103  return rp->get_gain_mean();
104  }
105 
106  double get_gain_sd(int freq_index = 0) {
108  if (NULL == rp) return -999.0;
109  return rp->get_gain_sd();
110  }
111 
112  /********************** RHCP ********************************/
113  double get_gain_rhcp_max(int freq_index = 0) {
115  if (NULL == rp) return -999.0;
116  return rp->get_gain_rhcp_max();
117  }
118 
119  double get_gain_rhcp_min(int freq_index = 0) {
121  if (NULL == rp) return -999.0;
122  return rp->get_gain_rhcp_min();
123  }
124 
125  double get_gain_rhcp_mean(int freq_index = 0) {
127  if (NULL == rp) return -999.0;
128  return rp->get_gain_rhcp_mean();
129  }
130 
131  double get_gain_rhcp_sd(int freq_index = 0) {
133  if (NULL == rp) return -999.0;
134  return rp->get_gain_rhcp_sd();
135  }
136 
137  /********************** LHCP ********************************/
138  double get_gain_lhcp_max(int freq_index = 0) {
140  if (NULL == rp) return -999.0;
141  return rp->get_gain_lhcp_max();
142  }
143 
144  double get_gain_lhcp_min(int freq_index = 0) {
146  if (NULL == rp) return -999.0;
147  return rp->get_gain_lhcp_min();
148  }
149 
150  double get_gain_lhcp_mean(int freq_index = 0) {
152  if (NULL == rp) return -999.0;
153  return rp->get_gain_lhcp_mean();
154  }
155 
156  double get_gain_lhcp_sd(int freq_index = 0) {
158  if (NULL == rp) return -999.0;
159  return rp->get_gain_lhcp_sd();
160  }
161 
162  /****************** IMPEDANCE CHARACTERISTICS *********************/
163 
165  double get_impedance_real(int freq_index = 0) {
166  nec_antenna_input* ipt = get_input_parameters(freq_index);
167  if (NULL == ipt) return -999.0;
168  vector<nec_complex>& imp(ipt->get_impedance());
169  return imp.back().real();
170  }
172  double get_impedance_imag(int freq_index = 0) {
173  nec_antenna_input* ipt = get_input_parameters(freq_index);
174  if (NULL == ipt) return -999.0;
175  vector<nec_complex>& imp(ipt->get_impedance());
176  return imp.back().imag();
177  }
178 
185  return m_results.get_antenna_input(index);
186  }
187 
194  return m_results.get_norm_rx_pattern(index);
195  }
196 
203  return m_results.get_radiation_pattern(index);
204  }
205 
212  return m_results.get_structure_excitation(index);
213  }
214 
221  return m_results.get_near_field_pattern(index);
222  }
223 
230  return m_results.get_structure_currents(index);
231  }
232 
233  /* added for the python wrapping : some access functions */
234 
235  void set_isave(int in_isave)
236  {
237  isave = in_isave;
238  }
239 
240  int get_inc()
241  {
242  return inc;
243  }
244 
245  nec_float get_xpr1()
246  {
247  return xpr1;
248  }
249 
250  nec_float get_xpr2()
251  {
252  return xpr2;
253  }
254 
255  /* end of functions added for the python wrapping */
256 
257  inline void set_output(nec_output_file in_output, nec_output_flags in_output_flags)
258  {
259  m_output = in_output;
260  m_output_flags = in_output_flags;
261 
262  m_output_fp = m_output.get_fp();
263  }
264 
265  inline void set_results_format(enum RESULT_FORMAT result_format)
266  {
267  m_results.m_result_format = result_format;
268  }
269 
270  inline void set_gain_only(bool flag)
271  {
272  m_output_flags.set_gain_only(flag);
273  }
274 
275 
277  static nec_float benchmark();
278 
283  void geometry_complete(int gpflag);
284 
285 
293  void medium_parameters(nec_float permittivity, nec_float permeability) {
294  em::constants::permittivity = permittivity;
295  em::constants::permeability = permeability;
296  }
297 
298 
315  void wire(int tag_id, int segment_count,
316  nec_float xw1, nec_float yw1, nec_float zw1,
317  nec_float xw2, nec_float yw2, nec_float zw2,
318  nec_float rad, nec_float rdel, nec_float rrad);
319 
320  void sp_card(int ns,
321  nec_float x1, nec_float y1, nec_float z1,
322  nec_float x2, nec_float y2, nec_float z2);
323 
324  void sc_card( int i2,
325  nec_float x3, nec_float y3, nec_float z3,
326  nec_float x4, nec_float y4, nec_float z4);
327 
328  void gx_card(int i1, int i2);
329 
330  void move( nec_float rox, nec_float roy, nec_float roz, nec_float xs,
331  nec_float ys, nec_float zs, int its, int nrpt, int itgi );
332 
344  void arc( int tag_id, int segment_count, nec_float rada,
345  nec_float ang1, nec_float ang2, nec_float rad );
346 
347 
364  void helix(int tag_id, int segment_count, nec_float s, nec_float hl, nec_float a1, nec_float b1,
365  nec_float a2, nec_float b2, nec_float rad);
366 
367 
377  void fr_card(int in_ifrq, int in_nfrq, nec_float in_freq_mhz, nec_float in_del_freq);
378 
397  void ld_card(int itmp1, int itmp2, int itmp3, int itmp4, nec_float tmp1, nec_float tmp2, nec_float tmp3);
398 
421  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);
422 
423 
441  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);
442 
443 
444 
464  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);
465 
481  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);
482 
498  void xq_card(int itmp1);
499 
501  void gd_card(nec_float tmp1, nec_float tmp2, nec_float tmp3, nec_float tmp4);
502 
569  void rp_card(int calc_mode,
570  int n_theta, int n_phi,
571  int output_format, int normalization, int D, int A,
572  nec_float theta0, nec_float phi0, nec_float delta_theta, nec_float delta_phi,
573  nec_float radial_distance, nec_float gain_norm);
574 
576  void pt_card(int itmp1, int itmp2, int itmp3, int itmp4);
577 
578 
580  void pq_card(int itmp1, int itmp2, int itmp3, int itmp4);
581 
582 
583 
585  void kh_card(nec_float tmp1);
586 
587 
593  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);
594 
600  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);
601 
603  void set_extended_thin_wire_kernel(bool ekflag);
604 
605 
607  void cp_card(int itmp1, int itmp2, int itmp3, int itmp4);
608 
609 
613  void pl_card(const char* ploutput_filename, int itmp1, int itmp2, int itmp3, int itmp4);
614 
615 
616  /*!****************************************************
617  *** normal exit of nec2++ when all jobs complete ok ***
618  ******************************************************/
620  {
621  }
622 
623  void write_results(ostream& os)
624  {
625  m_results.write(os);
626  }
627 
628 
629 
641  void simulate(bool far_field_flag = false);
642 
645  nec_ground ground;
646  c_geometry* m_geometry;
647  c_plot_card plot_card;
648 
649  c_ggrid ggrid;
650  c_ground_wave ground_wave;
651 
652 
654  int iptflq;
655  int iptaq, iptaqf, iptaqt;
656 
657 
659  int iptflg;
660  int iptag, iptagf, iptagt;
661 
662 
663  int iflow;
664  int ifrq, nfrq;
665  nec_float delfrq;
666 
667  // strcture loading
668  int_array ldtyp, ldtag, ldtagf, ldtagt;
669  real_array zlr, zli, zlc;
670 
671  // normalized receiving pattern
672  real_matrix fnorm;
673 
674  int nthi, nphi;
675  nec_float thetis, phiss;
676 
677 
681 
682 
685 
686 
687  nec_float wavelength;
688 
689  /* common /cmb/ */
690  complex_array cm; // primary interaction matrix
691 
692  /* common /matpar/ */
693  int icase, npblk, nlast;
694  int nbbx, npbx, nlbx, nbbl, npbl, nlbl;
695 
696  /* common /save/ */
697  int_array ip;
698  nec_float freq_mhz;
699 
700  /* common /crnt/ */
701  real_array air, aii;
705 
706  int ifar;
707 
708  /* common /zload/ */
709  int nload;
710  complex_array zarray;
711 
712  /* common /yparm/ */
713  int ncoup, icoup;
714  int_array nctag, ncseg;
715  complex_array y11a, y12a;
716 
717  /* common /vsorc/ */
718  int_array ivqd, source_segment_array, iqds;
719  int nvqd, voltage_source_count, nqds;
720  complex_array vqd, vqds, source_voltage_array;
721 
722  /* common /netcx/ */
723  int masym, neq, npeq, neq2, network_count, ntsol, nprint;
724  int_array iseg1, iseg2, ntyp;
725  real_array x11r, x11i, x12r;
726  real_array x12i, x22r, x22i;
727  nec_float input_power, network_power_loss;
728  nec_complex zped;
729 
730  /* common /fpat/ */
731  enum excitation_type m_excitation_type;
732 
733  int m_rp_output_format;
734  int m_rp_normalization;
735 
736  int m_near, nfeh, nrx, nry, nrz, nth, nph, ipd, iavp;
737  nec_float thets, phis, dth, dph, rfld, gnor;
738  nec_float xpr6, structure_power_loss, xnr, ynr, znr, dxnr, dynr, dznr;
739 
740 
741  /* common /dataj/ */
742  int ind1, indd1, ind2, indd2;
743  bool m_use_exk; /* Was iexk */
744 
745  nec_float m_s, m_b, xj, yj, zj, cabj, sabj, salpj;
746  nec_float rkh; /* matrix integration limit */
747  nec_float t1xj, t1yj, t1zj, t2xj, t2yj, t2zj;
748  nec_complex exk, eyk, ezk, exs, eys, ezs, exc, eyc, ezc;
749 
750  /* common /smat/ */
751  int nop; /* My addition */
752  complex_array symmetry_array;
753 
754  /* common /incom/ */
755  int isnor;
756  nec_float xo, yo, zo, sn, xsn, ysn;
757 
758  /* common /tmi/ */
759  int ija; /* changed to ija to avoid conflict */
760  nec_float zpk, rkb2;
761 
762  /*common /tmh/ */
763  nec_float zpka, rhks;
764 
765 
766  // some auxiliary functions to be made private once
767  // the radiation pattern calculation is done entirely
768  // inside this class...
769  void gfld(nec_float rho, nec_float phi, nec_float rz,
770  nec_complex *eth, nec_complex *epi,
771  nec_complex *erd, bool space_only, nec_float _wavelength );
772 
773  void ffld(nec_float thet, nec_float phi,
774  nec_complex *eth, nec_complex *eph, nec_float _wavelength );
775 
776 
777 private:
778 
781  void ne_nh_card(int in_nfeh, 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);
782 
783 
784  void print_freq_int_krnl(
785  nec_float f,
786  nec_float lambda,
787  nec_float int_dist,
788  bool using_extended_kernel);
789 
790  void antenna_env(void);
791 
792  /*no more used */
793  void print_structure_currents(char *pattype, int iptflg, int iptflq, int iptag, int iptagf, int iptagt, int iptaq,
794  int iptaqf, int iptaqt);
795 
798  void calculate_network_data(void);
799  void print_network_data(void);
800  void print_norm_rx_pattern();
801  void print_input_impedance();
802  void print_power_budget(void);
803  void structure_segment_loading();
804 
805 
806  enum excitation_return
807  excitation_loop(int in_freq_loop_state, int mhz);
808 
809  void setup_excitation();
810 
811  /* pointers to output files */
812  FILE *m_output_fp;
813 
814  int inc, processing_state, isave;
815  int nthic, nphic;
816  int iped;
817 
818  nec_float impedance_norm_factor; // was zpnorm
819 
820  nec_float xpr1, xpr2, xpr3, xpr4, xpr5, xpr7;
821 
822  nec_structure_currents* structure_currents;
823 
824  void load();
825 
826  void cmset(int64_t nrow, complex_array& in_cm, nec_float rkhx);
827  void compute_matrix_ss(int j1, int j2, int im1, int im2,
828  complex_array& in_cm, int64_t nrow, int itrp);
829  void cmsw(int j1, int j2, int i1, int i2, complex_array& in_cm,
830  complex_array& cw, int64_t ncw, int64_t nrow, int itrp);
831  void cmws( int j, int i1, int i2, complex_array& in_cm,
832  int64_t nr, complex_array& cw, int64_t nw, int itrp );
833 
834  void cmww(int j, int i1, int i2, complex_array& in_cm, int64_t nr,
835  complex_array& cw, int64_t nw, int itrp);
836  void couple(complex_array& cur, nec_float wlam);
837 
838  void efld(nec_float xi, nec_float yi, nec_float zi, nec_float ai, bool on_source_segment);
839  void eksc(nec_float s, nec_float z, nec_float rh, nec_float xk, int ij,
840  nec_complex *ezs, nec_complex *ers, nec_complex *ezc,
841  nec_complex *erc, nec_complex *ezk, nec_complex *erk);
842  void ekscx(nec_float bx, nec_float s, nec_float z, nec_float rhx, nec_float xk,
843  int ij, int inx1, int inx2, nec_complex *ezs,
844  nec_complex *ers, nec_complex *ezc, nec_complex *erc,
845  nec_complex *ezk, nec_complex *erk);
846  void etmns(nec_float p1, nec_float p2, nec_float p3, nec_float p4, nec_float p5,
847  nec_float p6, nec_float incident_amplitude, enum excitation_type excite_type, complex_array& e);
848 
849  void fblock( int nrow, int ncol, int imax, int ipsym );
850 
851  void gf(nec_float zk, nec_float *co, nec_float *si);
852  void gh(nec_float zk, nec_float *hr, nec_float *hi);
853  void gx(nec_float zz, nec_float rh, nec_float xk,
854  nec_complex *gz, nec_complex *gzp);
855  void gxx(nec_float zz, nec_float rh, nec_float a, nec_float a2, nec_float xk,
856  int ira, nec_complex *g1, nec_complex *g1p, nec_complex *g2,
857  nec_complex *g2p, nec_complex *g3, nec_complex *gzp);
858  void hfk(nec_float el1, nec_float el2, nec_float rhk,
859  nec_float zpkx, nec_float *sgr, nec_float *sgi);
860  void hintg(nec_float xi, nec_float yi, nec_float zi);
861  void hsfld(nec_float xi, nec_float yi, nec_float zi, nec_float ai);
862  void hsflx(nec_float s, nec_float rh, nec_float zpx, nec_complex *hpk,
863  nec_complex *hps, nec_complex *hpc);
864 
865  void intx(nec_float el1, nec_float el2, nec_float b, int ij,
866  nec_float *sgr, nec_float *sgi);
867 
868  void nefld(nec_float xob, nec_float yob, nec_float zob, nec_complex *ex,
869  nec_complex *ey, nec_complex *ez);
870  void netwk(complex_array& in_cm, int_array& in_ip, complex_array& einc);
871  void nfpat(void);
872  void nhfld(nec_float xob, nec_float yob, nec_float zob, nec_complex *hx,
873  nec_complex *hy, nec_complex *hz);
874  void pcint(nec_float xi, nec_float yi, nec_float zi, nec_float cabi,
875  nec_float sabi, nec_float salpi, complex_array& e);
876  void impedance_print(int in1, int in2, int in3, nec_float fl1, nec_float fl2,
877  nec_float fl3, nec_float fl4, nec_float fl5, nec_float fl6, const char *ia);
878  void qdsrc(int is, nec_complex v, complex_array& e);
879 
880 
881  void rom2(nec_float a, nec_float b, complex_array& sum, nec_float dmin);
882  void sflds(const nec_float t, complex_array& e);
883  void solgf(nec_complex *a, nec_complex *b, nec_complex *c,
884  nec_complex *d, nec_complex *xy, int *ip, int np, int n1,
885  int n, int mp, int m1, int m, int n1c, int n2c, int n2cz);
886  void unere(nec_float xob, nec_float yob, nec_float zob, bool ground_reflection);
887  nec_complex zint(nec_float sigl, nec_float rolam);
888 
889  void init_voltage_sources();
890 
891 }; /* nec_context */
892 
893 #endif /* __nec_context__ */
894 
nec_output_file m_output
an object to pipe output through...
Definition: nec_context.h:644
nec_near_field_pattern * get_near_field_pattern(const long index)
Get near field pattern results.
Definition: nec_results.h:900
nec_antenna_input * get_input_parameters(int index)
Get Antenna Input Parameter Results.
Definition: nec_context.h:184
static nec_float benchmark()
Benchmark the libnecpp engine. A score of 100 is roughly an Athlon XP 1800.
Definition: nec_context.cpp:140
Definition: c_ggrid.h:34
nec_radiation_pattern * get_radiation_pattern(const long index)
Get radiation pattern results.
Definition: nec_results.h:870
void simulate(bool far_field_flag=false)
Start a simulation.
Definition: nec_context.cpp:990
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)
Definition: nec_context.cpp:891
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.
Definition: nec_context.cpp:805
void xq_card(int itmp1)
Definition: nec_context.cpp:714
void gd_card(nec_float tmp1, nec_float tmp2, nec_float tmp3, nec_float tmp4)
Definition: nec_context.cpp:758
nec_structure_excitation * get_structure_excitation(const long index)
Get structure excitation results.
Definition: nec_results.h:890
void all_jobs_completed()
Definition: nec_context.h:619
Definition: c_ggrid.h:61
void calc_prepare()
After the geometry has been specified, this function prepares for calculations.
Definition: nec_context.cpp:95
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,.
Definition: nec_context.cpp:354
nec_norm_rx_pattern * get_norm_rx_pattern(const long index)
Get normalized receiving pattern results.
Definition: nec_results.h:860
void pq_card(int itmp1, int itmp2, int itmp3, int itmp4)
Definition: nec_context.cpp:864
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)
Definition: nec_context.cpp:284
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 _wavelength)
gfld computes the radiated field including ground wave.
Definition: nec_context.cpp:6887
real_array cir
coefficients of the sine terms in the current interpolation functions
Definition: nec_context.h:703
double get_impedance_imag(int freq_index=0)
Impedance: Imaginary Part.
Definition: nec_context.h:172
Definition: nec_structure_currents.h:30
nec_float get_power_gain(int theta_index, int phi_index) const
Get a total power gain from the radiation pattern.
Definition: nec_radiation_pattern.h:366
Definition: nec_output.h:56
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.
Definition: nec_context.cpp:454
double get_gain(int freq_index, int theta_index, int phi_index)
Get the maximum gain in dB.
Definition: nec_context.h:82
nec_structure_currents * get_structure_currents(const long index)
Get structure currents results.
Definition: nec_results.h:910
void medium_parameters(nec_float permittivity, nec_float permeability)
Definition: nec_context.h:293
nec_structure_excitation * get_structure_excitation(int index)
Get structure excitation results.
Definition: nec_context.h:211
nec_structure_currents * get_structure_currents(int index)
Get structure currents results.
Definition: nec_context.h:229
void pt_card(int itmp1, int itmp2, int itmp3, int itmp4)
Definition: nec_context.cpp:848
void fr_card(int in_ifrq, int in_nfrq, nec_float in_freq_mhz, nec_float in_del_freq)
Definition: nec_context.cpp:369
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)
Definition: nec_context.cpp:483
void pl_card(const char *ploutput_filename, int itmp1, int itmp2, int itmp3, int itmp4)
Definition: nec_context.cpp:972
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)
Definition: nec_context.cpp:886
Definition: nec_results.h:797
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)
Definition: nec_context.cpp:598
nec_antenna_input * get_antenna_input(const long index)
Get antenna input parameter results.
Definition: nec_results.h:880
Definition: nec_results.h:671
void ld_card(int itmp1, int itmp2, int itmp3, int itmp4, nec_float tmp1, nec_float tmp2, nec_float tmp3)
Definition: nec_context.cpp:387
int iptflg
pt card flags...
Definition: nec_context.h:659
Definition: c_plot_card.h:44
complex_array current_vector
coefficients of the cosine terms in the current interpolation functions
Definition: nec_context.h:704
void arc(int tag_id, int segment_count, nec_float rada, nec_float ang1, nec_float ang2, nec_float rad)
Definition: nec_context.cpp:332
void set_extended_thin_wire_kernel(bool ekflag)
Definition: nec_context.cpp:927
Definition: nec_results.h:274
Definition: c_geometry.h:51
Definition: nec_radiation_pattern.h:49
nec_near_field_pattern * get_near_field_pattern(int index)
Get near field pattern results.
Definition: nec_context.h:220
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)
Definition: nec_context.cpp:661
int nload
input integer flag (from RP card) specifies type of field computation, or type of ground system for f...
Definition: nec_context.h:709
void initialize()
Initialize everything, called after construction so that we can tell the geometry object what nec_con...
Definition: nec_context.cpp:58
Holds structure excitation data at network connection points.
Definition: nec_results.h:474
void kh_card(nec_float tmp1)
Definition: nec_context.cpp:879
real_array bir
coefficients of the constant terms in the current interpolation functions for the current vector ...
Definition: nec_context.h:702
nec_results m_results
The results object that holds all the specific results.
Definition: nec_context.h:680
void cp_card(int itmp1, int itmp2, int itmp3, int itmp4)
Definition: nec_context.cpp:937
int iptflq
pq card flags
Definition: nec_context.h:654
Definition: nec_output.h:26
Container for an nec2++ simulation.
Definition: nec_context.h:60
void geometry_complete(int gpflag)
Signal the end of a geometry description.
Definition: nec_context.cpp:262
double get_impedance_real(int freq_index=0)
Impedance: Real Part.
Definition: nec_context.h:165
Definition: nec_results.h:588
nec_radiation_pattern * get_radiation_pattern(int index)
Get Radiation Pattern results.
Definition: nec_context.h:202
nec_output_flags m_output_flags
an object to pipe output through...
Definition: nec_context.h:684
nec_norm_rx_pattern * get_norm_rx_pattern(int index)
Get Normalized Receiving Pattern Results.
Definition: nec_context.h:193
int ifar
the current vector
Definition: nec_context.h:706
Definition: nec_ground.h:59