My Project  0.0.16
QUCS Mapping
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
spsolver.h
Go to the documentation of this file.
1 /*
2  * spsolver.h - S-parameter solver class definitions
3  *
4  * Copyright (C) 2003, 2004, 2006, 2007, 2008 Stefan Jahn <stefan@lkcc.org>
5  *
6  * This is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2, or (at your option)
9  * any later version.
10  *
11  * This software is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this package; see the file COPYING. If not, write to
18  * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
19  * Boston, MA 02110-1301, USA.
20  *
21  * $Id: spsolver.h 1825 2011-03-11 20:42:14Z ela $
22  *
23  */
24 
25 #ifndef __SPSOLVER_H__
26 #define __SPSOLVER_H__
27 
28 class analysis;
29 class circuit;
30 class node;
31 class vector;
32 class sweep;
33 class nodelist;
34 
35 class spsolver : public analysis
36 {
37  public:
39  spsolver (char *);
40  spsolver (spsolver &);
41  ~spsolver ();
42  void calc (nr_double_t);
43  void init (void);
44  void reduce (void);
45  int solve (void);
46  void insertConnections (void);
47  void insertDifferentialPorts (void);
48  void insertTee (node **, char *);
49  void insertCross (node **, char *);
50  void insertConnectors (node *);
51  void insertOpen (node *);
52  void insertGround (node *);
54  circuit * connectedJoin (node *, node *);
55  void noiseConnect (circuit *, node *, node *);
56  void noiseInterconnect (circuit *, node *, node *);
57  void saveResults (nr_double_t);
59  nr_double_t, vector *);
60  char * createSP (int, int);
61  char * createCV (char *, char *);
62  void saveCharacteristics (nr_double_t);
63  void dropTee (circuit *);
64  void dropCross (circuit *);
65  void dropOpen (circuit *);
66  void dropGround (circuit *);
68  void dropConnections (void);
69 
70  private:
71  int tees, crosses, grounds, opens;
72  int noise;
73  int saveCVs;
74  sweep * swp;
75  nodelist * nlist;
76  circuit * gnd;
77 };
78 
79 #endif /* __SPSOLVER_H__ */