nec2++  1.7.0
c_ggrid.h
1 /*
2  Copyright (C) 2004-2006 Timothy C.A. Molteno
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18 #ifndef __c_ggrid__
19 #define __c_ggrid__
20 
21 #include "math_util.h"
22 #include "common.h"
23 #include "misc.h"
24 #include "c_evlcom.h"
25 
26 using namespace std;
27 
28 
34 class c_ggrid
35 {
36 public:
37  static int m_nxa[3], m_nya[3];
38  static nec_float m_dxa[3], m_dya[3];
39  static nec_float m_xsa[3], m_ysa[3];
40 
41  nec_complex m_epscf;
42  complex_array m_ar1, m_ar2, m_ar3;
43 
44  c_evlcom m_evlcom;
45 
46  void initialize()
47  {
48  m_ar1.resize(11*10*4);
49  m_ar2.resize(17*5*4);
50  m_ar3.resize(9*8*4);
51  }
52 
53  void interpolate( nec_float x, nec_float y,
54  nec_complex *f1, nec_complex *f2,
55  nec_complex *f3, nec_complex *f4 );
56 
57  void sommerfeld( nec_float epr, nec_float sig, nec_float freq_mhz );
58 
59 };
60 
62 {
63 public:
64  /* common /gwav/ */
65  nec_float r1, r2, zmh, zph;
66  nec_complex u, u2, xx1, xx2;
67 
68  void set_u(nec_complex in_u)
69  {
70  u = in_u;
71  u2 = u * u;
72  }
73 };
74 
75 void gwave( nec_complex& erv, nec_complex& ezv,
76  nec_complex& erh, nec_complex& ezh, nec_complex& eph,
77  c_ground_wave& ground_wave);
78 
79 
80 #endif
Definition: c_ggrid.h:34
Definition: c_ggrid.h:61
Definition: c_evlcom.h:26