MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
swashpl.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/elec/swashpl.h,v 1.27 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 piatto oscillante */
33 
34 #ifndef SWASHPL_H
35 #define SWASHPL_H
36 
37 #include "genel.h"
38 #include "drive.h"
39 #include "elecnode.h"
40 
41 /* SwashPlate - begin */
42 
43 class SwashPlate : virtual public Elem, public Genel {
44 protected:
46  // DriveOwner Collective;
48  // DriveOwner Longitudinal;
50  // DriveOwner Lateral;
51 
55 
59 
63 
67 
71 
72 public:
73  SwashPlate(unsigned int uL, const DofOwner* pDO,
74  const ScalarDifferentialNode* pCollIn, // const DriveCaller* pColl,
75  const ScalarDifferentialNode* pLongIn, // const DriveCaller* pLong,
76  const ScalarDifferentialNode* pLatIn, // const DriveCaller* pLat,
77  const ScalarDifferentialNode* pN1,
78  const ScalarDifferentialNode* pN2,
79  const ScalarDifferentialNode* pN3,
80  doublereal dDynCoef,
81  doublereal dCyclFact,
82  doublereal dCollFact,
83  flag fCL,
84  doublereal dCMin,
85  doublereal dCMax,
86  flag fFL,
87  doublereal dFMin,
88  doublereal dFMax,
89  flag fLL,
90  doublereal dLMin,
91  doublereal dLMax,
92  flag fOut);
93 
94  virtual ~SwashPlate(void);
95 
96  /* Scrive il contributo dell'elemento al file di restart */
97  virtual std::ostream& Restart(std::ostream& out) const;
98 
99  /* Tipo di Genel */
100  virtual Genel::Type GetGenelType(void) const {
101  return Genel::SWASHPLATE;
102  };
103 
104  /* Dimensioni del workspace */
105  virtual void WorkSpaceDim(integer* piNumRows, integer* piNumCols) const {
106  *piNumRows = 6;
107  *piNumCols = 6;
108  };
109 
110  /* assemblaggio jacobiano */
111  virtual VariableSubMatrixHandler&
113  doublereal dCoef,
114  const VectorHandler& XCurr,
115  const VectorHandler& XPrimeCurr);
116 
117  /* assemblaggio residuo */
118  virtual SubVectorHandler&
119  AssRes(SubVectorHandler& WorkVec,
120  doublereal dCoef,
121  const VectorHandler& XCurr,
122  const VectorHandler& XPrimeCurr);
123 
124  virtual void SetInitialValue(VectorHandler& X);
125 
126  /* *******PER IL SOLUTORE PARALLELO******** */
127  /* Fornisce il tipo e la label dei nodi che sono connessi all'elemento
128  * utile per l'assemblaggio della matrice di connessione fra i dofs */
129  virtual void GetConnectedNodes(std::vector<const Node *>& connectedNodes) const {
130  connectedNodes.resize(6);
131  connectedNodes[0] = pCollectiveIn;
132  connectedNodes[1] = pLongitudinalIn;
133  connectedNodes[2] = pLateralIn;
134  connectedNodes[3] = pNode1;
135  connectedNodes[4] = pNode2;
136  connectedNodes[5] = pNode3;
137  };
138  /* ************************************************ */
139 };
140 
141 /* SwashPlate - end */
142 
143 #endif /* SWASHPL_H */
144 
doublereal dLatMax
Definition: swashpl.h:69
doublereal dDynamicCoef
Definition: swashpl.h:56
long int flag
Definition: mbdyn.h:43
virtual ~SwashPlate(void)
Definition: swashpl.cc:96
virtual Genel::Type GetGenelType(void) const
Definition: swashpl.h:100
doublereal dCollMin
Definition: swashpl.h:62
flag fCollLimits
Definition: swashpl.h:60
doublereal dCollMax
Definition: swashpl.h:61
const ScalarDifferentialNode * pLateralIn
Definition: swashpl.h:49
doublereal dForeAftMax
Definition: swashpl.h:65
const ScalarDifferentialNode * pNode3
Definition: swashpl.h:54
virtual std::ostream & Restart(std::ostream &out) const
Definition: swashpl.cc:104
Type
Definition: genel.h:48
const ScalarDifferentialNode * pCollectiveIn
Definition: swashpl.h:45
flag fForeAftLimits
Definition: swashpl.h:64
doublereal dCyclicFactor
Definition: swashpl.h:57
doublereal dForeAftMin
Definition: swashpl.h:66
doublereal dCollectiveFactor
Definition: swashpl.h:58
const ScalarDifferentialNode * pNode2
Definition: swashpl.h:53
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: swashpl.cc:133
doublereal dLatMin
Definition: swashpl.h:70
SwashPlate(unsigned int uL, const DofOwner *pDO, const ScalarDifferentialNode *pCollIn, const ScalarDifferentialNode *pLongIn, const ScalarDifferentialNode *pLatIn, const ScalarDifferentialNode *pN1, const ScalarDifferentialNode *pN2, const ScalarDifferentialNode *pN3, doublereal dDynCoef, doublereal dCyclFact, doublereal dCollFact, flag fCL, doublereal dCMin, doublereal dCMax, flag fFL, doublereal dFMin, doublereal dFMax, flag fLL, doublereal dLMin, doublereal dLMax, flag fOut)
Definition: swashpl.cc:43
Definition: genel.h:45
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: swashpl.h:129
flag fLatLimits
Definition: swashpl.h:68
Definition: elem.h:75
const ScalarDifferentialNode * pNode1
Definition: swashpl.h:52
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: swashpl.cc:188
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
const ScalarDifferentialNode * pLongitudinalIn
Definition: swashpl.h:47
virtual void SetInitialValue(VectorHandler &X)
Definition: swashpl.cc:258
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: swashpl.h:105