MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
genfilt.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/elec/genfilt.h,v 1.33 2017/01/12 14:46:22 masarati Exp $ */
2 /*
3  * MBDyn (C) is a multibody analysis code.
4  * http://www.mbdyn.org
5  *
6  * Copyright (C) 1996-2017
7  *
8  * Pierangelo Masarati <masarati@aero.polimi.it>
9  * Paolo Mantegazza <mantegazza@aero.polimi.it>
10  *
11  * Dipartimento di Ingegneria Aerospaziale - Politecnico di Milano
12  * via La Masa, 34 - 20156 Milano, Italy
13  * http://www.aero.polimi.it
14  *
15  * Changing this copyright notice is forbidden.
16  *
17  * This program is free software; you can redistribute it and/or modify
18  * it under the terms of the GNU General Public License as published by
19  * the Free Software Foundation (version 2 of the License).
20  *
21  *
22  * This program is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25  * GNU General Public License for more details.
26  *
27  * You should have received a copy of the GNU General Public License
28  * along with this program; if not, write to the Free Software
29  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30  */
31 
32 /* GENEL filtro scalare analogico */
33 
34 #ifndef GENFILT_H
35 #define GENFILT_H
36 
37 #include "genel.h"
38 #include "scalarvalue.h"
39 
40 /* GenelStateSpaceSISO - begin */
41 
42 class GenelStateSpaceSISO : public Genel {
43 protected:
44  ScalarDof SD_y; /* uscita */
45  ScalarValue *SV_u; /* ingresso */
46 
47  unsigned int iNumDofs;
48 
54 
57 
58 public:
59  GenelStateSpaceSISO(unsigned int uLabel, const DofOwner* pDO,
60  const ScalarDof& y, ScalarValue* u,
61  unsigned int Order,
62  doublereal *pE,
63  doublereal* pA, doublereal* pB,
64  doublereal* pC, doublereal D,
65  bool bBalance,
66  doublereal *pdX0,
67  doublereal *pdXP0,
68  flag fOutput);
69 
70  virtual ~GenelStateSpaceSISO(void);
71 
72  virtual unsigned int iGetNumDof(void) const;
73 
74  /* esegue operazioni sui dof di proprieta' dell'elemento */
75  virtual DofOrder::Order GetDofType(unsigned int i) const;
76 
77  /* Scrive il contributo dell'elemento al file di restart */
78  virtual std::ostream& Restart(std::ostream& out) const;
79 
80  /* Tipo di Genel */
81  virtual Genel::Type GetGenelType(void) const {
82  return Genel::STATESPACESISO;
83  };
84 
85  /* Dimensioni del workspace */
86  virtual void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
87 
88  /* assemblaggio jacobiano */
91  doublereal dCoef,
92  const VectorHandler& /* XCurr */ ,
93  const VectorHandler& /* XPrimeCurr */ );
94 
95  /* assemblaggio residuo */
96  virtual SubVectorHandler&
97  AssRes(SubVectorHandler& WorkVec,
98  doublereal /* dCoef */,
99  const VectorHandler& XCurr,
100  const VectorHandler& XPrimeCurr);
101 
102  void SetValue(DataManager *pDM,
104  SimulationEntity::Hints *ph = 0);
105 
106  /* output; si assume che ogni tipo di elemento sappia, attraverso
107  * l'OutputHandler, dove scrivere il proprio output */
108  virtual void Output(OutputHandler& OH) const;
109 
110  /* *******PER IL SOLUTORE PARALLELO******** */
111  /* Fornisce il tipo e la label dei nodi che sono connessi all'elemento
112  * utile per l'assemblaggio della matrice di connessione fra i dofs */
113  virtual void
114  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const;
115  /* ************************************************ */
116 };
117 
118 /* GenelStateSpaceSISO - end */
119 
120 
121 /* GenelStateSpaceMIMO - begin */
122 
123 class GenelStateSpaceMIMO : public Genel {
124 protected:
125  unsigned int iNumOutputs;
126  unsigned int iNumInputs;
127  ScalarDof* pvSD_y; /* uscite */
128  std::vector<ScalarValue *> SV_u; /* ingressi */
129 
130  unsigned int iNumDofs;
131 
137 
140 
141 public:
142  GenelStateSpaceMIMO(unsigned int uLabel, const DofOwner* pDO,
143  unsigned int iNumOut, const ScalarDof* y,
144  std::vector<ScalarValue *>& u,
145  unsigned int Order,
146  doublereal* pE,
147  doublereal* pA, doublereal* pB,
148  doublereal* pC, doublereal* pD,
149  bool bBalance,
150  doublereal *pdX0,
151  doublereal *pdXP0,
152  flag fOutput);
153 
154  virtual ~GenelStateSpaceMIMO(void);
155 
156  virtual unsigned int iGetNumDof(void) const;
157 
158  /* esegue operazioni sui dof di proprieta' dell'elemento */
159  virtual DofOrder::Order GetDofType(unsigned int i) const;
160 
161  /* Scrive il contributo dell'elemento al file di restart */
162  virtual std::ostream& Restart(std::ostream& out) const;
163 
164  /* Tipo di Genel */
165  virtual Genel::Type GetGenelType(void) const {
166  return Genel::STATESPACEMIMO;
167  };
168 
169  /* Dimensioni del workspace */
170  virtual void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
171 
172  /* assemblaggio jacobiano */
173  virtual VariableSubMatrixHandler&
175  doublereal dCoef,
176  const VectorHandler& /* XCurr */ ,
177  const VectorHandler& /* XPrimeCurr */ );
178 
179  /* assemblaggio residuo */
180  virtual SubVectorHandler&
181  AssRes(SubVectorHandler& WorkVec,
182  doublereal /* dCoef */,
183  const VectorHandler& XCurr,
184  const VectorHandler& XPrimeCurr);
185 
186  void SetValue(DataManager *pDM,
188  SimulationEntity::Hints *ph = 0);
189 
190  /* output; si assume che ogni tipo di elemento sappia, attraverso
191  * l'OutputHandler, dove scrivere il proprio output */
192  virtual void Output(OutputHandler& OH) const;
193 
194  /* *******PER IL SOLUTORE PARALLELO******** */
195  /* Fornisce il tipo e la label dei nodi che sono connessi all'elemento
196  * utile per l'assemblaggio della matrice di connessione fra i dofs */
197  virtual void
198  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const;
199  /* ************************************************ */
200 };
201 
202 /* GenelStateSpaceMIMO - end */
203 
204 #endif // GENFILT_H
ScalarValue * SV_u
Definition: genfilt.h:45
GenelStateSpaceMIMO(unsigned int uLabel, const DofOwner *pDO, unsigned int iNumOut, const ScalarDof *y, std::vector< ScalarValue * > &u, unsigned int Order, doublereal *pE, doublereal *pA, doublereal *pB, doublereal *pC, doublereal *pD, bool bBalance, doublereal *pdX0, doublereal *pdXP0, flag fOutput)
Definition: genfilt.cc:416
doublereal * pdX
Definition: genfilt.h:55
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: genfilt.cc:693
long int flag
Definition: mbdyn.h:43
doublereal * pdD
Definition: genfilt.h:136
doublereal * pdB
Definition: genfilt.h:134
flag fOutput
Definition: output.h:658
doublereal * pdA
Definition: genfilt.h:133
void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
Definition: genfilt.cc:787
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &, const VectorHandler &)
Definition: genfilt.cc:599
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &, const VectorHandler &)
Definition: genfilt.cc:204
virtual ~GenelStateSpaceSISO(void)
Definition: genfilt.cc:141
virtual Genel::Type GetGenelType(void) const
Definition: genfilt.h:81
unsigned int iNumOutputs
Definition: genfilt.h:125
Type
Definition: genel.h:48
std::vector< Hint * > Hints
Definition: simentity.h:89
virtual DofOrder::Order GetDofType(unsigned int i) const
Definition: genfilt.cc:570
virtual std::ostream & Restart(std::ostream &out) const
Definition: genfilt.cc:577
ScalarDof * pvSD_y
Definition: genfilt.h:127
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: genfilt.cc:191
doublereal * pdX
Definition: genfilt.h:138
doublereal * pdC
Definition: genfilt.h:135
doublereal dD
Definition: genfilt.h:53
virtual void Output(OutputHandler &OH) const
Definition: genfilt.cc:382
doublereal * pdA
Definition: genfilt.h:50
unsigned int iNumDofs
Definition: genfilt.h:47
Definition: genel.h:45
doublereal * pdXP
Definition: genfilt.h:56
unsigned int uLabel
Definition: withlab.h:44
Order
Definition: shapefnc.h:42
ScalarDof SD_y
Definition: genfilt.h:44
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: genfilt.cc:833
virtual Genel::Type GetGenelType(void) const
Definition: genfilt.h:165
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: genfilt.cc:398
virtual unsigned int iGetNumDof(void) const
Definition: genfilt.cc:564
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: genfilt.cc:583
virtual void Output(OutputHandler &OH) const
Definition: genfilt.cc:817
virtual ~GenelStateSpaceMIMO(void)
Definition: genfilt.cc:527
std::vector< ScalarValue * > SV_u
Definition: genfilt.h:128
doublereal * pdC
Definition: genfilt.h:52
doublereal * pdXP
Definition: genfilt.h:139
doublereal * pdE
Definition: genfilt.h:132
virtual DofOrder::Order GetDofType(unsigned int i) const
Definition: genfilt.cc:176
unsigned int iNumInputs
Definition: genfilt.h:126
virtual unsigned int iGetNumDof(void) const
Definition: genfilt.cc:169
double doublereal
Definition: colamd.c:52
unsigned int iNumDofs
Definition: genfilt.h:130
long int integer
Definition: colamd.c:51
doublereal * pdE
Definition: genfilt.h:49
void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
Definition: genfilt.cc:351
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: genfilt.cc:287
GenelStateSpaceSISO(unsigned int uLabel, const DofOwner *pDO, const ScalarDof &y, ScalarValue *u, unsigned int Order, doublereal *pE, doublereal *pA, doublereal *pB, doublereal *pC, doublereal D, bool bBalance, doublereal *pdX0, doublereal *pdXP0, flag fOutput)
Definition: genfilt.cc:49
virtual std::ostream & Restart(std::ostream &out) const
Definition: genfilt.cc:184
doublereal * pdB
Definition: genfilt.h:51