Branch data Line data Source code
1 : : /*
2 : : * cpwline.h - coplanar waveguide line class definitions
3 : : *
4 : : * Copyright (C) 2004, 2005 Vincent Habchi, F5RCS <10.50@free.fr>
5 : : * Copyright (C) 2004, 2005, 2006, 2008 Stefan Jahn <stefan@lkcc.org>
6 : : *
7 : : * This is free software; you can redistribute it and/or modify
8 : : * it under the terms of the GNU General Public License as published by
9 : : * the Free Software Foundation; either version 2, or (at your option)
10 : : * any later version.
11 : : *
12 : : * This software 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 : : * $Id$
23 : : *
24 : : */
25 : :
26 : : #ifndef __CPWLINE_H__
27 : : #define __CPWLINE_H__
28 : :
29 [ # # ]: 0 : class cpwline : public qucs::circuit
30 : : {
31 : : public:
32 [ # # ]: 208 : CREATOR (cpwline);
33 : : void initSP (void);
34 : : void calcSP (nr_double_t);
35 : : void calcNoiseSP (nr_double_t);
36 : : void initDC (void);
37 : : void initTR (void);
38 : : void initAC (void);
39 : : void calcAC (nr_double_t);
40 : : void calcNoiseAC (nr_double_t);
41 : : void saveCharacteristics (nr_double_t);
42 : :
43 : : static void ellipke (nr_double_t, nr_double_t &, nr_double_t &);
44 : : static nr_double_t ellipk (nr_double_t);
45 : : static nr_double_t ellipa (nr_double_t);
46 : :
47 : : static void analyseQuasiStatic (nr_double_t, nr_double_t, nr_double_t,
48 : : nr_double_t, nr_double_t, int,
49 : : nr_double_t&, nr_double_t&);
50 : : static void analyseDispersion (nr_double_t, nr_double_t, nr_double_t,
51 : : nr_double_t, nr_double_t,
52 : : nr_double_t, nr_double_t,
53 : : nr_double_t&, nr_double_t&);
54 : :
55 : : private:
56 : : void calcAB (nr_double_t, nr_double_t&, nr_double_t&, nr_double_t&);
57 : : void initPropagation (void);
58 : :
59 : : nr_double_t sr_er;
60 : : nr_double_t sr_er0;
61 : : nr_double_t zl_factor;
62 : : nr_double_t ac_factor;
63 : : nr_double_t ad_factor;
64 : : nr_double_t bt_factor;
65 : : nr_double_t fte, G;
66 : : nr_double_t len, tand, rho;
67 : : nr_double_t Zl, Er;
68 : : };
69 : :
70 : : #endif /* __CPWLINE_H__ */
|