KiCad PCB EDA Suite
rectwaveguide.h
Go to the documentation of this file.
1 /*
2  * rectwaveguide.h - rectangular waveguide class definition
3  *
4  * Copyright (C) 2001 Gopal Narayanan <gopal@astro.umass.edu>
5  * Copyright (C) 2005 Stefan Jahn <stefan@lkcc.org>
6  * Modified for Kicad: 2015 jean-pierre.charras
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (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 package; see the file COPYING. If not, write to
20  * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
21  * Boston, MA 02110-1301, USA.
22  */
23 
24 
25 #ifndef __RECTWAVEGUIDE_H
26 #define __RECTWAVEGUIDE_H
27 
28 #include <transline.h>
29 
30 #define PHYS_A_PRM PHYS_WIDTH_PRM
31 #define PHYS_B_PRM PHYS_S_PRM
32 
33 class RECTWAVEGUIDE : public TRANSLINE
34 {
35 public:
36  RECTWAVEGUIDE();
37 
38 
39 private:
40  double mur; // magnetic permeability of substrate
41  double a; // width of waveguide
42  double b; // height of waveguide
43  double l; // length of waveguide
44  double Z0; // characteristic impedance
45  double Z0EH; // characteristic impedance of field quantities*/
46  double ang_l; // Electrical length in angle
47  double er_eff; // Effective dielectric constant
48  double mur_eff; // Effective mag. permeability
49  double atten_dielectric; // Loss in dielectric (dB)
50  double atten_cond; // Loss in conductors (dB)
51  double fc10; // Cutoff frequency for TE10 mode
52 
53 public:
54 private:
55  double kval_square();
56  double kc_square( int, int );
57  double fc( int, int );
58  double alphac();
59  double alphac_cutoff();
60  double alphad();
61  void get_rectwaveguide_sub();
65  void show_results() override;
66  void calcAnalyze() override;
67  void calcSynthesize() override;
68  void showAnalyze() override;
69  void showSynthesize() override;
70 };
71 
72 #endif // __RECTWAVEGUIDE_H
double atten_cond
Definition: rectwaveguide.h:50
double kval_square()
void showSynthesize() override
Shows analysis results and checks for errors / warnings.
void get_rectwaveguide_comp()
void calcSynthesize() override
Computation for synthesis.
void get_rectwaveguide_sub()
void show_results() override
Shows results.
void get_rectwaveguide_elec()
double alphac_cutoff()
void get_rectwaveguide_phys()
void showAnalyze() override
Shows synthesis results and checks for errors / warnings.
void calcAnalyze() override
Computation for analysis.
double fc(int, int)
double atten_dielectric
Definition: rectwaveguide.h:49
double kc_square(int, int)