All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
modelling_classes.h
1 #ifndef _MODELING_CLASSES_H
2 #define _MODELING_CLASSES_H
3 
4 #include "mbsim/element.h"
5 #include "mbsim/modelling_interface.h"
6 #include <string>
7 #include <vector>
8 
9 namespace MBSim {
10  class Object;
11  class Link;
12 }
13 
14 namespace MBSimElectronics {
15 
16  class ElectronicComponent;
17  class Branch;
18 
19  class Terminal : public MBSim::Element {
20  std::vector<Terminal*> connectedTerminal;
21  std::vector<Branch*> connectedBranch;
22  int flag;
23  ElectronicComponent* parent;
24  public:
25  Terminal(const std::string &name) : Element(name), flag(0), parent(0) {}
26  void addConnectedTerminal(Terminal* terminal);
27  void addConnectedBranch(Branch* branch);
28  void setFlag(int f) { flag = f; }
29  int getFlag() const { return flag; }
30  //void setParent(ElectronicComponent* p) { parent = p; }
31  //ElectronicComponent* getParent() const { return parent; }
32  int getNumberOfConnectedTerminals() const {return connectedTerminal.size();}
33  int getNumberOfConnectedBranches() const {return connectedBranch.size();}
34  Branch* getBranch(int i) {return connectedBranch[i];}
35  std::vector<Branch*> buildBranches(Branch* branch);
36  void findEndOfBranch(Terminal* callingTerminal, Branch* currentBranch);
37  };
38 
39  void connectTerminal(Terminal *terminal1, Terminal *terminal2);
40  void connectBranch(Branch *branch1, Branch *branch2);
41 
43  protected:
44  std::vector<Terminal*> terminal;
45  Branch* branch;
46  double vz;
47  double Q,I;
48  public:
51  void addTerminal(Terminal *terminal);
52  void addTerminal(const std::string &str);
53  Terminal* getTerminal(const std::string &name, bool check=true);
54  void buildListOfTerminals(std::vector<Terminal*> &terminal);
55  void connect(Branch *branch_,double vz=0);
56  Branch* getBranch() {return branch;}
57  void processModellList(std::vector<ModellingInterface*> &modellList, std::vector<MBSim::Object*> &objectList, std::vector<MBSim::Link*> &linkList);
58  double getvz() const { return vz;}
59  };
60 
61 }
62 
63 #endif
64 
Definition: simulation_classes.h:41
Definition: modelling_classes.h:42
Definition: modelling_classes.h:19

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML