MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
aerodyn_.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/aero/aerodyn_.h,v 1.23 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 /* Elementi aerodinamici
33  *
34  * - Proprieta' dell'aria:
35  * elemento unico, contiene:
36  * - direzione e modulo del vento relativo. Il modulo e' associato
37  * ad un driver che ne consente la variazione, per consentire la
38  * simulazione di un transitorio di galleria.
39  * Verra' aggiunta una variazione della direzione per simulare la raffica.
40  * - densita' dell'aria
41  * - celerita' del suono
42  * - ...
43  *
44  * - Elemento di rotore:
45  * classe virtuale che possiede alcuni dati topologici e geometrici di rotore
46  * ed i metodi per calcolare grandezze utili agli elementi aerodinamici che
47  * fanno parte di un rotore
48  *
49  * - Elemento aerodinamico:
50  * stazionario o quasi-stazionario, con metodo p-k di ordine 0, 1 o 2,
51  * associato ad un corpo rigido, basato sulla strip theory.
52  *
53  * - Elemento aerodinamico:
54  * analogo al precedente, ma associato alla trave a Volumi Finiti a tre nodi
55  *
56  * - Elemento aerodinamico instazionario:
57  * in fase di sviluppo, modella dinamicamente alcuni stati a dare
58  * il comportamento instazionario di una superficie aerodinamica
59  * modellata con la strip theory
60  *
61  * - Elemento Aerodinamico modale:
62  * in fase di sviluppo, contiene una rappresentazione agli stati delle forze
63  * aerodinamiche generalizzate associate ai modi di vibrare e alle raffiche
64  * deve essere associato ad un elemento modale su cui il modello si appoggia.
65  *
66  * -Elemento aerodinamico external:
67  * in fase di sviluppo, elemento che permette di svolgere simulazioni
68  * integrate di interazioni fluido-struttura interfacciando MBDyn con
69  * codici aerodynamici esterni. L'elemento manda all'esterno le informazioni
70  * riguardo alla posizione dei nodi associati e ottiene i carichi che il codice
71  * aerodinamico esterno genera
72  *
73  *
74  */
75 
76 #ifndef AERODYN__H
77 #define AERODYN__H
78 
79 #include "aerodyn.h"
80 
81 /* BasicAirProperties - begin */
82 
84 : virtual public Elem, public AirProperties {
85 protected:
88 
89 public:
91  const DriveCaller *pRho, doublereal dSS, std::vector<const Gust *>& g,
93  flag fOut);
94 
95  virtual ~BasicAirProperties(void);
96 
97  /* Scrive il contributo dell'elemento al file di restart */
98  virtual std::ostream& Restart(std::ostream& out) const;
99 
100  /*
101  * Deprecated; use GetAirProps instead
102  */
103  virtual doublereal dGetAirDensity(const Vec3& /* X */ ) const;
104 
105  virtual doublereal dGetAirPressure(const Vec3& /* X */ ) const;
106 
107  virtual doublereal dGetAirTemperature(const Vec3& /* X */ ) const;
108 
109  virtual doublereal dGetSoundSpeed(const Vec3& /* X */ ) const;
110 
111  /*
112  * End of deprecated; use GetAirProps instead
113  */
114 
115  virtual bool GetAirProps(const Vec3& X, doublereal& rho,
116  doublereal& c, doublereal& p, doublereal& T) const;
117 };
118 
119 /* BasicAirProperties - end */
120 
121 
122 /* StdAirProperties - begin */
123 
125 : virtual public Elem, public AirProperties {
126 protected:
135  // NOTE: z2 unused right now
137 
138 public:
143  std::vector<const Gust *>& g,
144  const RigidBodyKinematics *pRBK,
145  flag fOut);
146 
147  virtual ~StdAirProperties(void);
148 
149  /* Scrive il contributo dell'elemento al file di restart */
150  virtual std::ostream& Restart(std::ostream& out) const;
151 
152  /*
153  * Deprecated; use GetAirProps instead
154  */
155  virtual doublereal dGetAirDensity(const Vec3& /* X */ ) const;
156 
157  virtual doublereal dGetAirPressure(const Vec3& /* X */ ) const;
158 
159  virtual doublereal dGetAirTemperature(const Vec3& /* X */ ) const;
160 
161  virtual doublereal dGetSoundSpeed(const Vec3& /* X */ ) const;
162 
163  /*
164  * End of deprecated; use GetAirProps instead
165  */
166 
167  virtual bool GetAirProps(const Vec3& X, doublereal& rho,
168  doublereal& c, doublereal& p, doublereal& T) const;
169 };
170 
171 /* StdAirProperties - end */
172 
173 #endif /* AERODYN__H */
174 
virtual std::ostream & Restart(std::ostream &out) const
Definition: aerodyn.cc:412
virtual ~BasicAirProperties(void)
Definition: aerodyn.cc:323
virtual std::ostream & Restart(std::ostream &out) const
Definition: aerodyn.cc:330
long int flag
Definition: mbdyn.h:43
Definition: matvec3.h:98
BasicAirProperties(const TplDriveCaller< Vec3 > *pDC, const DriveCaller *pRho, doublereal dSS, std::vector< const Gust * > &g, const RigidBodyKinematics *pRBK, flag fOut)
Definition: aerodyn.cc:312
doublereal TRef
Definition: aerodyn_.h:129
virtual doublereal dGetAirDensity(const Vec3 &) const
Definition: aerodyn.cc:338
virtual bool GetAirProps(const Vec3 &X, doublereal &rho, doublereal &c, doublereal &p, doublereal &T) const
Definition: aerodyn.cc:470
DriveOwner AirDensity
Definition: aerodyn_.h:86
virtual ~StdAirProperties(void)
Definition: aerodyn.cc:405
doublereal a
Definition: aerodyn_.h:130
virtual doublereal dGetAirTemperature(const Vec3 &) const
Definition: aerodyn.cc:350
virtual doublereal dGetAirPressure(const Vec3 &) const
Definition: aerodyn.cc:440
doublereal PRef
Definition: aerodyn_.h:127
const DriveCaller * RhoRef
Definition: aerodyn_.h:128
doublereal g0
Definition: aerodyn_.h:132
virtual doublereal dGetAirTemperature(const Vec3 &) const
Definition: aerodyn.cc:450
virtual doublereal dGetAirPressure(const Vec3 &) const
Definition: aerodyn.cc:344
virtual doublereal dGetSoundSpeed(const Vec3 &) const
Definition: aerodyn.cc:356
static std::stack< cleanup * > c
Definition: cleanup.cc:59
doublereal z2
Definition: aerodyn_.h:136
Definition: elem.h:75
doublereal z1
Definition: aerodyn_.h:134
const RigidBodyKinematics * pRBK
Definition: aerodyn.h:95
doublereal z0
Definition: aerodyn_.h:133
virtual bool GetAirProps(const Vec3 &X, doublereal &rho, doublereal &c, doublereal &p, doublereal &T) const
Definition: aerodyn.cc:362
doublereal R
Definition: aerodyn_.h:131
double doublereal
Definition: colamd.c:52
virtual doublereal dGetSoundSpeed(const Vec3 &) const
Definition: aerodyn.cc:460
virtual doublereal dGetAirDensity(const Vec3 &) const
Definition: aerodyn.cc:430
StdAirProperties(const TplDriveCaller< Vec3 > *pDC, doublereal PRef, const DriveCaller *RhoRef, doublereal TRef, doublereal a, doublereal R, doublereal g0, doublereal z0, doublereal z1, doublereal z2, std::vector< const Gust * > &g, const RigidBodyKinematics *pRBK, flag fOut)
Definition: aerodyn.cc:379
doublereal dSoundSpeed
Definition: aerodyn_.h:87