My Project  0.0.16
QUCS Mapping
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
c_microstrip.h
Go to the documentation of this file.
1 /*
2  * c_microstrip.h - coupled microstrip class definition
3  *
4  * Copyright (C) 2002 Claudio Girardi <in3otd@qsl.net>
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 _C_MICROSTRIP_H_
25 #define _C_MICROSTRIP_H_
26 
27 class c_microstrip : public transline {
28  public:
29  c_microstrip();
30  ~c_microstrip();
31 
32  private:
33  double er; /* dielectric constant */
34  double h; /* height of substrate */
35  double ht; /* height to the top of box */
36  double t; /* thickness of top metal */
37  double tand; /* Dielectric Loss Tangent */
38  double rough; /* Roughness of top metal */
39  double w; /* width of lines */
40  double w_t_e; /* even-mode thickness-corrected line width */
41  double w_t_o; /* odd-mode thickness-corrected line width */
42  double l; /* length of lines */
43  double s; /* spacing of lines */
44  double Z0_e_0; /* static even-mode impedance */
45  double Z0_o_0; /* static odd-mode impedance */
46  double Z0e; /* even-mode impedance */
47  double Z0o; /* odd-mode impedance */
48  double c_e; /* even-mode capacitance */
49  double c_o; /* odd-mode capacitance */
50  double ang_l_e; /* even-mode electrical length in angle */
51  double ang_l_o; /* odd-mode electrical length in angle */
52  double er_eff_e; /* even-mode effective dielectric constant */
53  double er_eff_o; /* odd-mode effective dielectric constant */
54  double er_eff_e_0; /* static even-mode effective dielectric constant */
55  double er_eff_o_0; /* static odd-mode effective dielectric constant */
56  double er_eff; /* FIXME: dummy */
57  double mur_eff; /* Effective mag. permeability */
58  double w_eff; /* Effective width of line */
59  double atten_dielectric_e; /* even-mode dielectric losses (dB) */
60  double atten_cond_e; /* even-mode conductors losses (dB) */
61  double atten_dielectric_o; /* odd-mode dielectric losses (dB) */
62  double atten_cond_o; /* odd-mode conductors losses (dB) */
63 
64  public:
65  void analyze ();
66  void synthesize ();
67 
68  private:
69  double delta_u_thickness_single(double, double);
70  void delta_u_thickness();
71  void compute_single_line();
72  double filling_factor_even(double, double, double);
73  double filling_factor_odd(double, double, double);
74  double delta_q_cover_even(double);
75  double delta_q_cover_odd(double);
76  void er_eff_static();
77  double delta_Z0_even_cover(double, double, double);
78  double delta_Z0_odd_cover(double, double, double);
79  void Z0_even_odd();
80  double calc_mur_eff();
81  void er_eff_freq();
82  void conductor_losses();
83  void dielectric_losses();
84  void attenuation();
85  void line_angle();
86  void syn_err_fun(double *, double *, double, double, double, double, double);
87  void synth_width();
88  void Z0_dispersion();
89  void calc();
90  void get_c_microstrip_sub();
91  void get_c_microstrip_comp();
92  void get_c_microstrip_elec();
93  void get_c_microstrip_phys();
94  void show_results();
95  void syn_fun(double *, double *, double, double, double, double);
96 
97 
98  private:
99  microstrip * aux_ms;
100 };
101 
102 #endif /* _C_MICROSTRIP_H_ */