MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
aeroelem.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/aero/aeroelem.h,v 1.51 2017/01/12 14:45:58 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 #ifndef AEROELEM_H
33 #define AEROELEM_H
34 
35 /* Elementi aerodinamici bidimensionali */
36 
37 #include "aerodyn.h"
38 #include "rotor.h"
39 #include "beam.h"
40 #include "beam2.h"
41 #include "aerodata.h"
42 
43 #include "gauss.h"
44 #include "aerod2.h"
45 #include "shape.h"
46 
48 public:
49  enum eOutput {
51 
55 
57  };
58 
59  // output mask
60  enum {
61  OUTPUT_NONE = 0x0U,
62 
68 
71 
73 
75 
77  };
78 
79 protected:
81 
82  // output flags
84 
85 #ifdef USE_NETCDF
86  // common to all AEROD_OUT_*, specific for NetCDF output
87  typedef struct {
88  Vec3 X;
89  Mat3x3 R;
90  Vec3 V;
91  Vec3 W;
92  Vec3 F;
93  Vec3 M;
94  NcVar *Var_X, *Var_Phi, *Var_V, *Var_W, *Var_F, *Var_M;
95  } AeroNetCDFOutput;
96 
97  std::vector<AeroNetCDFOutput> NetCDFOutputData;
98  std::vector<AeroNetCDFOutput>::iterator NetCDFOutputIter;
99 #endif /* USE_NETCDF */
100 
101  // specific for AEROD_OUT_PGAUSS
102  typedef struct {
105  } Aero_output;
106 
107  std::vector<Aero_output> OutputData;
108  std::vector<Aero_output>::iterator OutputIter;
109 
110 public:
111  AerodynamicOutput(flag f, int iNP,
113  ~AerodynamicOutput(void);
114 
115  void SetOutputFlag(flag f, int iNP);
116  void ResetIterator(void);
117  void SetData(const Vec3& v, const doublereal* pd,
118  const Vec3& X, const Mat3x3& R, const Vec3& V, const Vec3& W,
119  const Vec3& F, const Vec3& M);
120 
122  bool IsOutput(void) const;
123  bool IsSTD(void) const;
124  bool IsPGAUSS(void) const;
125  bool IsNODE(void) const;
126 };
127 
128 /* AerodynamicBody - begin */
129 
130 /* Elemento aerodinamico associato ad un nodo.
131  * Fisicamente corrisponde ad un rettangoloide, associato ad un nodo fisico,
132  * dal quale riceve il movimento ed al quale trasmette le forze.
133  * Inoltre puo' essere associato ad un elemento di rotore che gli modifica
134  * la velocita' in funzione di qualche modello di velocita' indotta
135  * ed al quale fornisce le forze generate per il calcolo della trazione totale
136  * ecc.
137  */
138 
139 /* Lo modifico in modo che possieda un driver relativo allo svergolamento,
140  * che consenta di inserire un contributo di svergolamento costante su
141  * tutta l'apertura dell'elemento in modo da consentire la modellazione di
142  * una superficie mobile equivalente */
143 
144 template <unsigned iNN>
146  virtual public Elem,
147  public AerodynamicElem,
148  public InitialAssemblyElem,
149  public DriveOwner,
150  public AerodynamicOutput
151 {
152 protected:
156 
157  const ShapeOwner Chord; /* corda */
158  const ShapeOwner ForcePoint; /* punto di app. della forza (1/4) */
159  const ShapeOwner VelocityPoint; /* punto di app. b.c. (3/4) */
160  const ShapeOwner Twist; /* svergolamento */
161  const ShapeOwner TipLoss; /* tip loss model */
162 
163  GaussDataIterator GDI; /* Iteratore sui punti di Gauss */
164  std::vector<outa_t> OUTA;
165 
166  // used for Jacobian with internal states
167  Mat3xN vx, wx, fq, cq;
168 
169  bool bJacobian; /* Compute Jacobian matrix contribution */
170 
171  /*
172  * overload della funzione di ToBeOutput();
173  * serve per allocare il vettore dei dati di output se il flag
174  * viene settato dopo la costruzione
175  */
176  virtual void SetOutputFlag(flag f = flag(1));
177  void Output_int(OutputHandler& OH) const;
178  void AddForce_int(const StructNode *pN, const Vec3& F, const Vec3& M, const Vec3& X) const;
179  void AddSectionalForce_int(unsigned uPnt,
180  const Vec3& F, const Vec3& M, doublereal dW,
181  const Vec3& X, const Mat3x3& R,
182  const Vec3& V, const Vec3& W) const;
183 
184 public:
185  Aerodynamic2DElem(unsigned int uLabel,
186  const DofOwner *pDO,
187  InducedVelocity* pR, bool bPassive,
188  const Shape* pC, const Shape* pF,
189  const Shape* pV, const Shape* pT,
190  const Shape* pTL,
191  integer iN, AeroData* a,
192  const DriveCaller* pDC,
193  bool bUseJacobian,
195  flag fOut);
196  virtual ~Aerodynamic2DElem(void);
197 
198  /* Tipo dell'elemento (usato per debug ecc.) */
199  virtual Elem::Type GetElemType(void) const {
200  return Elem::AERODYNAMIC;
201  };
202 
203  /* inherited from SimulationEntity */
204  virtual unsigned int iGetNumDof(void) const;
205  virtual std::ostream& DescribeDof(std::ostream& out,
206  const char *prefix = "", bool bInitial = false) const;
207  virtual void DescribeDof(std::vector<std::string>& desc,
208  bool bInitial = false, int i = -1) const;
209  virtual std::ostream& DescribeEq(std::ostream& out,
210  const char *prefix = "", bool bInitial = false) const;
211  virtual void DescribeEq(std::vector<std::string>& desc,
212  bool bInitial = false, int i = -1) const;
213  virtual DofOrder::Order GetDofType(unsigned int) const;
214 
215  virtual void OutputPrepare(OutputHandler &OH);
216 
217  virtual void SetValue(DataManager *pDM,
219  SimulationEntity::Hints* h = 0);
220 
221  virtual void AfterConvergence(const VectorHandler& X,
222  const VectorHandler& XP);
223 
224  /* Dimensioni del workspace */
225  virtual void
226  WorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
227 
228  /* Numero di GDL iniziali */
229  virtual unsigned int iGetInitialNumDof(void) const {
230  return 0;
231  };
232 
233  /* Dimensioni del workspace */
234  virtual void
235  InitialWorkSpaceDim(integer* piNumRows, integer* piNumCols) const;
236 
237  /* assemblaggio jacobiano */
238  virtual VariableSubMatrixHandler&
239  InitialAssJac(VariableSubMatrixHandler& WorkMat,
240  const VectorHandler& /* XCurr */);
241 
242  virtual const InducedVelocity *pGetInducedVelocity(void) const {
243  return pIndVel;
244  };
245  /* ************************************************ */
246 };
247 
248 /* Aerodynamic2DElem - end */
249 
250 
251 /* AerodynamicBody - begin */
252 
254  virtual public Elem,
255  public Aerodynamic2DElem<1>
256 {
257 protected:
259 
260  const Vec3 f; /* Offset del punto di riferimento */
261  doublereal dHalfSpan; /* Semiapertura del rettangoloide */
262  const Mat3x3 Ra; /* Rotaz. del sistema aerodinamico al nodo */
263  const Vec3 Ra3; /* Terza colonna della matrice Ra */
264 
265  Vec3 F; /* Forza */
266  Vec3 M; /* Momento */
267 
268  /* Assemblaggio residuo */
269  void AssVec(SubVectorHandler& WorkVec,
270  doublereal dCoef,
271  const VectorHandler& XCurr,
272  const VectorHandler& XPrimeCurr);
273 
274 public:
275  AerodynamicBody(unsigned int uLabel,
276  const DofOwner *pDO,
277  const StructNode* pN, InducedVelocity* pR, bool bPassive,
278  const Vec3& fTmp, doublereal dS,
279  const Mat3x3& RaTmp,
280  const Shape* pC, const Shape* pF,
281  const Shape* pV, const Shape* pT,
282  const Shape* pTL,
283  integer iN, AeroData* a,
284  const DriveCaller* pDC,
285  bool bUseJacobian,
287  flag fOut);
288  virtual ~AerodynamicBody(void);
289 
290  /* Scrive il contributo dell'elemento al file di restart */
291  virtual std::ostream& Restart(std::ostream& out) const;
292 
293  /* assemblaggio jacobiano */
294  virtual VariableSubMatrixHandler&
295  AssJac(VariableSubMatrixHandler& WorkMat,
296  doublereal dCoef,
297  const VectorHandler& /* XCurr */ ,
298  const VectorHandler& /* XPrimeCurr */ );
299 
300  /* assemblaggio residuo */
301  virtual SubVectorHandler&
302  AssRes(SubVectorHandler& WorkVec,
303  doublereal dCoef,
304  const VectorHandler& XCurr,
305  const VectorHandler& XPrimeCurr);
306 
307  /*
308  * output; si assume che ogni tipo di elemento sappia, attraverso
309  * l'OutputHandler, dove scrivere il proprio output
310  */
311  virtual void Output(OutputHandler& OH) const;
312 
313  /* assemblaggio residuo */
314  virtual SubVectorHandler&
315  InitialAssRes(SubVectorHandler& WorkVec,
316  const VectorHandler& XCurr);
317 
318  /* Tipo di elemento aerodinamico */
321  };
322 
323  /* *******PER IL SOLUTORE PARALLELO******** */
324  /*
325  * Fornisce il tipo e la label dei nodi che sono connessi all'elemento
326  * utile per l'assemblaggio della matrice di connessione fra i dofs
327  */
328  virtual void
329  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const {
330  connectedNodes.resize(1);
331  connectedNodes[0] = pNode;
332  };
333  /* ************************************************ */
334 };
335 
336 /* AerodynamicBody - end */
337 
338 
339 /* AerodynamicBeam - begin */
340 
342  virtual public Elem,
343  public Aerodynamic2DElem<3>
344 {
345 protected:
346  enum { NODE1 = 0, NODE2, NODE3, LASTNODE };
347  enum { DELTAx1 = 0, DELTAg1, DELTAx2, DELTAg2, DELTAx3, DELTAg3 };
348 
349  const Beam* pBeam;
350  const StructNode* pNode[3];
351 
352  const Vec3 f1; /* Offset del punto di riferimento */
353  const Vec3 f2; /* Offset del punto di riferimento */
354  const Vec3 f3; /* Offset del punto di riferimento */
355  const Mat3x3 Ra1; /* Rotaz. del sistema aerodinamico al nodo */
356  const Mat3x3 Ra2; /* Rotaz. del sistema aerodinamico al nodo */
357  const Mat3x3 Ra3; /* Rotaz. del sistema aerodinamico al nodo */
358  const Vec3 Ra1_3; /* Terza colonna della matrice Ra */
359  const Vec3 Ra2_3; /* Terza colonna della matrice Ra */
360  const Vec3 Ra3_3; /* Terza colonna della matrice Ra */
361 
362  /*
363  * Nota: li lascio distinti perche' cosi' eventualmente ne posso fare
364  * l'output in modo agevole
365  */
366  Vec3 F[LASTNODE]; /* Forza */
367  Vec3 M[LASTNODE]; /* Momento */
368 
369  /* Assemblaggio residuo */
370  void AssVec(SubVectorHandler& WorkVec,
371  doublereal dCoef,
372  const VectorHandler& XCurr,
373  const VectorHandler& XPrimeCurr);
374 
375 public:
376  AerodynamicBeam(unsigned int uLabel,
377  const DofOwner *pDO,
378  const Beam* pB, InducedVelocity* pR, bool bPassive,
379  const Vec3& fTmp1,
380  const Vec3& fTmp2,
381  const Vec3& fTmp3,
382  const Mat3x3& Ra1Tmp,
383  const Mat3x3& Ra2Tmp,
384  const Mat3x3& Ra3Tmp,
385  const Shape* pC, const Shape* pF,
386  const Shape* pV, const Shape* pT,
387  const Shape* pTL,
388  integer iN, AeroData* a,
389  const DriveCaller* pDC,
390  bool bUseJacobian,
392  flag fOut);
393  virtual ~AerodynamicBeam(void);
394 
395  /* Scrive il contributo dell'elemento al file di restart */
396  virtual std::ostream& Restart(std::ostream& out) const;
397 
398  /* assemblaggio jacobiano */
399  virtual VariableSubMatrixHandler&
400  AssJac(VariableSubMatrixHandler& WorkMat,
401  doublereal dCoef ,
402  const VectorHandler& /* XCurr */ ,
403  const VectorHandler& /* XPrimeCurr */ );
404 
405  /* assemblaggio residuo */
406  virtual SubVectorHandler&
407  AssRes(SubVectorHandler& WorkVec,
408  doublereal dCoef,
409  const VectorHandler& XCurr,
410  const VectorHandler& XPrimeCurr);
411 
412  /* assemblaggio residuo */
413  virtual SubVectorHandler&
414  InitialAssRes(SubVectorHandler& WorkVec,
415  const VectorHandler& XCurr);
416 
417  /*
418  * output; si assume che ogni tipo di elemento sappia, attraverso
419  * l'OutputHandler, dove scrivere il proprio output
420  */
421  virtual void Output(OutputHandler& OH) const;
422 
423  /* Tipo di elemento aerodinamico */
426  };
427 
428  /*
429  *******PER IL SOLUTORE PARALLELO********
430  * Fornisce il tipo e la label dei nodi che sono connessi all'elemento
431  * utile per l'assemblaggio della matrice di connessione fra i dofs
432  */
433  virtual void
434  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const {
435  connectedNodes.resize(3);
436  connectedNodes[0] = pNode[NODE1];
437  connectedNodes[1] = pNode[NODE2];
438  connectedNodes[2] = pNode[NODE3];
439  };
440  /* ************************************************ */
441 };
442 
443 /* AerodynamicBeam - end */
444 
445 /* AerodynamicBeam2 - begin */
446 
448  virtual public Elem,
449  public Aerodynamic2DElem<2>
450 {
451 protected:
452  enum { NODE1 = 0, NODE2, LASTNODE };
453  enum { DELTAx1 = 0, DELTAg1, DELTAx2, DELTAg2 };
454 
455  const Beam2* pBeam;
456  const StructNode* pNode[2];
457 
458  const Vec3 f1; /* Offset del punto di riferimento */
459  const Vec3 f2; /* Offset del punto di riferimento */
460  const Mat3x3 Ra1; /* Rotaz. del sistema aerodinamico al nodo */
461  const Mat3x3 Ra2; /* Rotaz. del sistema aerodinamico al nodo */
462  const Vec3 Ra1_3; /* Terza colonna della matrice Ra */
463  const Vec3 Ra2_3; /* Terza colonna della matrice Ra */
464 
465  /*
466  * Nota: li lascio distinti perche' cosi' eventualmente ne posso fare
467  * l'output in modo agevole
468  */
469  Vec3 F[LASTNODE]; /* Forza */
470  Vec3 M[LASTNODE]; /* Momento */
471 
472  /* Assemblaggio residuo */
473  void AssVec(SubVectorHandler& WorkVec,
474  doublereal dCoef,
475  const VectorHandler& XCurr,
476  const VectorHandler& XPrimeCurr);
477 
478 public:
479  AerodynamicBeam2(unsigned int uLabel,
480  const DofOwner *pDO,
481  const Beam2* pB, InducedVelocity* pR, bool bPassive,
482  const Vec3& fTmp1,
483  const Vec3& fTmp2,
484  const Mat3x3& Ra1Tmp,
485  const Mat3x3& Ra2Tmp,
486  const Shape* pC, const Shape* pF,
487  const Shape* pV, const Shape* pT,
488  const Shape* pTL,
489  integer iN, AeroData* a,
490  const DriveCaller* pDC,
491  bool bUseJacobian,
493  flag fOut);
494  virtual ~AerodynamicBeam2(void);
495 
496  /* Scrive il contributo dell'elemento al file di restart */
497  virtual std::ostream& Restart(std::ostream& out) const;
498 
499  /* assemblaggio jacobiano */
500  virtual VariableSubMatrixHandler&
501  AssJac(VariableSubMatrixHandler& WorkMat,
502  doublereal /* dCoef */ ,
503  const VectorHandler& /* XCurr */ ,
504  const VectorHandler& /* XPrimeCurr */ );
505 
506  /* assemblaggio residuo */
507  virtual SubVectorHandler&
508  AssRes(SubVectorHandler& WorkVec,
509  doublereal dCoef,
510  const VectorHandler& XCurr,
511  const VectorHandler& XPrimeCurr);
512 
513  /* assemblaggio residuo */
514  virtual SubVectorHandler&
515  InitialAssRes(SubVectorHandler& WorkVec,
516  const VectorHandler& XCurr);
517 
518  /*
519  * output; si assume che ogni tipo di elemento sappia, attraverso
520  * l'OutputHandler, dove scrivere il proprio output
521  */
522  virtual void Output(OutputHandler& OH) const;
523 
524  /* Tipo di elemento aerodinamico */
527  };
528 
529  /*
530  *******PER IL SOLUTORE PARALLELO********
531  * Fornisce il tipo e la label dei nodi che sono connessi all'elemento
532  * utile per l'assemblaggio della matrice di connessione fra i dofs
533  */
534  virtual void
535  GetConnectedNodes(std::vector<const Node *>& connectedNodes) const {
536  connectedNodes.resize(2);
537  connectedNodes[0] = pNode[NODE1];
538  connectedNodes[1] = pNode[NODE2];
539  };
540  /* ************************************************ */
541 };
542 
543 /* AerodynamicBeam - end */
544 
545 class DataManager;
546 class MBDynParser;
547 
548 extern void
549 ReadAerodynamicCustomOutput(DataManager* pDM, MBDynParser& HP, unsigned int uLabel,
550  unsigned& uFlags, OrientationDescription& od);
551 
552 extern void
554  unsigned& uFlags, OrientationDescription& od);
555 
556 extern Elem *
558  const DofOwner *pDO, unsigned int uLabel);
559 extern Elem *
561  const DofOwner *pDO, unsigned int uLabel);
562 extern Elem *
564  const DofOwner *pDO, unsigned int uLabel);
565 
566 #endif /* AEROELEM_H */
567 
void ResetIterator(void)
Definition: aeroelem.cc:77
~AerodynamicOutput(void)
Definition: aeroelem.cc:58
const Mat3x3 Ra1
Definition: aeroelem.h:355
long int flag
Definition: mbdyn.h:43
virtual AerodynamicElem::Type GetAerodynamicElemType(void) const
Definition: aeroelem.h:424
Definition: matvec3.h:98
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: aeroelem.h:434
AerodynamicOutput::eOutput GetOutput(void) const
Definition: aeroelem.cc:125
void SetOutputFlag(flag f, int iNP)
Definition: aeroelem.cc:64
Definition: beam2.h:50
bool IsNODE(void) const
Definition: aeroelem.cc:149
std::vector< outa_t > OUTA
Definition: aeroelem.h:164
OrientationDescription
Definition: matvec3.h:1597
const Vec3 Ra3_3
Definition: aeroelem.h:360
const ShapeOwner Chord
Definition: aeroelem.h:157
InducedVelocity * pIndVel
Definition: aeroelem.h:154
bool bPassiveInducedVelocity
Definition: aeroelem.h:155
std::vector< Hint * > Hints
Definition: simentity.h:89
const Mat3x3 Ra2
Definition: aeroelem.h:356
const Vec3 f
Definition: aeroelem.h:260
const Beam * pBeam
Definition: aeroelem.h:349
const ShapeOwner Twist
Definition: aeroelem.h:160
AeroData * aerodata
Definition: aeroelem.h:153
const Vec3 Ra3
Definition: aeroelem.h:263
const ShapeOwner TipLoss
Definition: aeroelem.h:161
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: aeroelem.h:329
OrientationDescription od
Definition: aeroelem.h:83
const Mat3x3 Ra1
Definition: aeroelem.h:460
Elem * ReadAerodynamicBeam(DataManager *pDM, MBDynParser &HP, const DofOwner *pDO, unsigned int uLabel)
Definition: aeroelem.cc:2268
virtual unsigned int iGetInitialNumDof(void) const
Definition: aeroelem.h:229
DataManager * pDM
Definition: mbpar.h:252
const ShapeOwner ForcePoint
Definition: aeroelem.h:158
AerodynamicOutput(flag f, int iNP, OrientationDescription ood)
Definition: aeroelem.cc:50
Definition: beam.h:56
virtual AerodynamicElem::Type GetAerodynamicElemType(void) const
Definition: aeroelem.h:525
const StructNode * pNode
Definition: aeroelem.h:258
virtual Elem::Type GetElemType(void) const
Definition: aeroelem.h:199
GaussDataIterator GDI
Definition: aeroelem.h:163
bool IsOutput(void) const
Definition: aeroelem.cc:131
const Vec3 f2
Definition: aeroelem.h:353
const Vec3 f1
Definition: aeroelem.h:352
Elem * ReadAerodynamicBeam2(DataManager *pDM, MBDynParser &HP, const DofOwner *pDO, unsigned int uLabel)
Definition: aeroelem.cc:3167
const Vec3 Ra1_3
Definition: aeroelem.h:358
const ShapeOwner VelocityPoint
Definition: aeroelem.h:159
const Vec3 Ra2_3
Definition: aeroelem.h:463
bool IsPGAUSS(void) const
Definition: aeroelem.cc:143
std::vector< Aero_output > OutputData
Definition: aeroelem.h:107
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: aeroelem.h:535
void SetData(const Vec3 &v, const doublereal *pd, const Vec3 &X, const Mat3x3 &R, const Vec3 &V, const Vec3 &W, const Vec3 &F, const Vec3 &M)
Definition: aeroelem.cc:92
const doublereal dS
Definition: beamslider.cc:71
void ReadOptionalAerodynamicCustomOutput(DataManager *pDM, MBDynParser &HP, unsigned int uLabel, unsigned &uFlags, OrientationDescription &od)
Definition: aeroelem.cc:1351
Definition: elem.h:75
Type
Definition: elem.h:91
virtual const InducedVelocity * pGetInducedVelocity(void) const
Definition: aeroelem.h:242
const Vec3 f3
Definition: aeroelem.h:354
bool IsSTD(void) const
Definition: aeroelem.cc:137
const Vec3 f2
Definition: aeroelem.h:459
const Mat3x3 Ra
Definition: aeroelem.h:262
static const doublereal a
Definition: hfluid_.h:289
const Vec3 f1
Definition: aeroelem.h:458
const Mat3x3 Ra2
Definition: aeroelem.h:461
const Beam2 * pBeam
Definition: aeroelem.h:455
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
const Vec3 Ra2_3
Definition: aeroelem.h:359
doublereal dHalfSpan
Definition: aeroelem.h:261
std::vector< Aero_output >::iterator OutputIter
Definition: aeroelem.h:108
virtual AerodynamicElem::Type GetAerodynamicElemType(void) const
Definition: aeroelem.h:319
const Mat3x3 Ra3
Definition: aeroelem.h:357
Elem * ReadAerodynamicBody(DataManager *pDM, MBDynParser &HP, const DofOwner *pDO, unsigned int uLabel)
Definition: aeroelem.cc:1361
Mat3x3 R
const Vec3 Ra1_3
Definition: aeroelem.h:462
Definition: shape.h:50
void ReadAerodynamicCustomOutput(DataManager *pDM, MBDynParser &HP, unsigned int uLabel, unsigned &uFlags, OrientationDescription &od)
Definition: aeroelem.cc:1295