Qucs-core  0.0.18
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups 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$
22  *
23  */
24 
25 #ifndef __SPSOLVER_H__
26 #define __SPSOLVER_H__
27 
28 namespace qucs {
29 
30 class analysis;
31 class circuit;
32 class node;
33 class vector;
34 class sweep;
35 class nodelist;
36 
37 class spsolver : public analysis
38 {
39  public:
41  spsolver (char *);
42  spsolver (spsolver &);
43  ~spsolver ();
44  void calc (nr_double_t);
45  void init (void);
46  void reduce (void);
47  int solve (void);
48  void insertConnections (void);
49  void insertDifferentialPorts (void);
50  void insertTee (node **, char *);
51  void insertCross (node **, char *);
52  void insertConnectors (node *);
53  void insertOpen (node *);
54  void insertGround (node *);
55  circuit * interconnectJoin (node *, node *);
56  circuit * connectedJoin (node *, node *);
57  void noiseConnect (circuit *, node *, node *);
58  void noiseInterconnect (circuit *, node *, node *);
59  void saveResults (nr_double_t);
61  nr_double_t, vector *);
62  char * createSP (int, int);
63  char * createCV (char *, char *);
64  void saveCharacteristics (nr_double_t);
65  void dropTee (circuit *);
66  void dropCross (circuit *);
67  void dropOpen (circuit *);
68  void dropGround (circuit *);
69  void dropDifferentialPort (circuit *);
70  void dropConnections (void);
71 
72  private:
74  int noise;
75  int saveCVs;
79 };
80 
81 } // namespace qucs
82 
83 #endif /* __SPSOLVER_H__ */
void dropConnections(void)
Definition: spsolver.cpp:873
std::complex< nr_double_t > nr_complex_t
Definition: complex.h:31
void saveResults(nr_double_t)
Definition: spsolver.cpp:970
void insertConnectors(node *)
Definition: spsolver.cpp:635
nodelist * nlist
Definition: spsolver.h:77
sweep * swp
Definition: spsolver.h:76
void insertGround(node *)
Definition: spsolver.cpp:792
void dropCross(circuit *)
Definition: spsolver.cpp:756
void insertCross(node **, char *)
Definition: spsolver.cpp:713
void noiseInterconnect(circuit *, node *, node *)
Definition: spsolver.cpp:277
void insertDifferentialPorts(void)
Definition: spsolver.cpp:919
void saveCharacteristics(nr_double_t)
Definition: spsolver.cpp:1090
spsolver(char *)
Definition: spsolver.cpp:78
base class for qucs circuit elements.
Definition: circuit.h:92
void noiseConnect(circuit *, node *, node *)
Definition: spsolver.cpp:344
void reduce(void)
Definition: spsolver.cpp:460
ACREATOR(spsolver)
void insertConnections(void)
Definition: spsolver.cpp:820
void dropTee(circuit *)
Definition: spsolver.cpp:743
circuit * gnd
Definition: spsolver.h:78
int solve(void)
placehoder for solution function
Definition: spsolver.cpp:567
char * createSP(int, int)
Definition: spsolver.cpp:1075
void insertOpen(node *)
Definition: spsolver.cpp:770
void dropDifferentialPort(circuit *)
Definition: spsolver.cpp:955
circuit * connectedJoin(node *, node *)
Definition: spsolver.cpp:172
void insertTee(node **, char *)
Definition: spsolver.cpp:686
char * createCV(char *, char *)
Definition: spsolver.cpp:1081
node
void saveNoiseResults(nr_complex_t[4], nr_complex_t[4], nr_double_t, vector *)
Definition: spsolver.cpp:1038
circuit * interconnectJoin(node *, node *)
Definition: spsolver.cpp:110
void dropGround(circuit *)
Definition: spsolver.cpp:808
void init(void)
Definition: spsolver.cpp:556
void dropOpen(circuit *)
Definition: spsolver.cpp:783
void calc(nr_double_t)
Definition: spsolver.cpp:449