My Project  0.0.16
QUCS Mapping
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
microstrip.h
Go to the documentation of this file.
1 /*
2  * microstrip.h - microstrip class definition
3  *
4  * Copyright (C) 2001 Gopal Narayanan <gopal@astro.umass.edu>
5  * Copyright (C) 2005 Stefan Jahn <stefan@lkcc.org>
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this package; see the file COPYING. If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
20  * Boston, MA 02110-1301, USA.
21  *
22  */
23 
24 #ifndef __MICROSTRIP_H
25 #define __MICROSTRIP_H
26 
27 class microstrip : public transline {
28  public:
29  microstrip();
30  ~microstrip();
31 
32  friend class c_microstrip;
33 
34  private:
35  double er; /* dielectric constant */
36  double h; /* height of substrate */
37  double ht; /* height to the top of box */
38  double t; /* thickness of top metal */
39  double tand; /* Dielectric Loss Tangent */
40  double rough; /* Roughness of top metal */
41  double w; /* width of line */
42  double l; /* length of line */
43  double Z0_0; /* static characteristic impedance */
44  double Z0; /* characteristic impedance */
45  double ang_l; /* Electrical length in angle */
46  double er_eff_0; /* Static effective dielectric constant */
47  double er_eff; /* Effective dielectric constant */
48  double mur_eff; /* Effective mag. permeability */
49  double w_eff; /* Effective width of line */
50  double atten_dielectric; /* Loss in dielectric (dB) */
51  double atten_cond; /* Loss in conductors (dB) */
52 
53  /* private params */
54  double Z0_h_1; /* homogeneous stripline impedance */
55 
56  public:
57  void analyze();
58  void synthesize();
59 
60  private:
61  double er_eff_freq();
62  double alpha_c();
63  double alpha_c_roughness();
64  double alpha_dielectric();
65  double char_impedance_ht();
66  double synth_width();
67  double ereff_dispersion();
68  double Z0_dispersion();
69  double Z0_homogeneous(double);
70  double delta_Z0_cover(double, double);
71  double filling_factor(double, double);
72  double delta_q_cover(double);
73  double delta_q_thickness(double, double);
74  double e_r_effective(double, double);
75  double delta_u_thickness(double, double, double);
76  double e_r_dispersion(double, double, double);
77  double Z0_dispersion(double, double, double, double, double);
78  double conductor_losses();
79  double dielectric_losses();
80  void microstrip_Z0();
81  void dispersion();
82  void attenuation();
83  void mur_eff_ms();
84  void line_angle();
85  void calc();
86  void get_microstrip_sub();
87  void get_microstrip_comp();
88  void get_microstrip_elec();
89  void get_microstrip_phys();
90  void show_results();
91 };
92 
93 #endif /* __MICROSTRIP_H */