MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
windprof.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/aero/windprof.h,v 1.11 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 /*
33  * Wind profiles from
34  * TurbSim User's Guide, Revised February 1, 2007 for Version 1.21
35  * B.J. Jonkman and M.L. Buhl, Jr.
36  * Technical Report NREL/TP-500-41136 April 2007
37  */
38 
39 #ifndef WINDPROF_H
40 #define WINDPROF_H
41 
42 #include "aerodyn.h"
43 #include "ScalarFunctions.h"
44 
45 /* WindProfile - begin */
46 
47 class WindProfile : public Gust {
48 protected:
49  const Vec3 X0;
50  const Mat3x3 R0;
51 
52 public:
53  WindProfile(const Vec3& X0, const Mat3x3& R0);
54  virtual ~WindProfile(void);
55 };
56 
57 /* WindProfile - end */
58 
59 /* ScalarFuncWindProfile - begin */
60 
62 protected:
64 
65 public:
66  ScalarFuncWindProfile(const Vec3& X0, const Mat3x3& R0,
67  const BasicScalarFunction *sf);
68  virtual ~ScalarFuncWindProfile(void);
69  virtual bool GetVelocity(const Vec3& X, Vec3& V) const;
70  virtual std::ostream& Restart(std::ostream& out) const;
71 };
72 
73 struct ScalarFuncGR : public GustRead {
74 public:
75  virtual ~ScalarFuncGR(void);
76  virtual Gust *
77  Read(const DataManager* pDM, MBDynParser& HP);
78 };
79 
80 /* ScalarFuncWindProfile - end */
81 
82 /* PowerLawWindProfile - begin */
83 
85 protected:
89 
90 public:
91  PowerLawWindProfile(const Vec3& X0, const Mat3x3& R0,
92  const doublereal dZRef, const DriveCaller *pVRef,
93  const doublereal dPower);
94  virtual ~PowerLawWindProfile(void);
95  virtual bool GetVelocity(const Vec3& X, Vec3& V) const;
96  virtual std::ostream& Restart(std::ostream& out) const;
97 };
98 
99 struct PowerLawGR : public GustRead {
100 public:
101  virtual ~PowerLawGR(void);
102  virtual Gust *
103  Read(const DataManager* pDM, MBDynParser& HP);
104 };
105 
106 /* PowerLawWindProfile - end */
107 
108 /* LogarithmicWindProfile - begin */
109 
111 protected:
115 
117  // TODO: stability function
118 
119 public:
120  LogarithmicWindProfile(const Vec3& X0, const Mat3x3& R0,
121  const doublereal dZRef, const DriveCaller *pVRef,
123  virtual ~LogarithmicWindProfile(void);
124  virtual bool GetVelocity(const Vec3& X, Vec3& V) const;
125  virtual std::ostream& Restart(std::ostream& out) const;
126 };
127 
128 struct LogarithmicGR : public GustRead {
129 public:
130  virtual ~LogarithmicGR(void);
131  virtual Gust *
132  Read(const DataManager* pDM, MBDynParser& HP);
133 };
134 
135 /* LogarithmicWindProfile - end */
136 
137 #endif // WINDPROF_H
138 
virtual ~PowerLawWindProfile(void)
Definition: windprof.cc:183
virtual Gust * Read(const DataManager *pDM, MBDynParser &HP)
Definition: windprof.cc:382
Definition: matvec3.h:98
DriveOwner VRef
Definition: windprof.h:87
virtual Gust * Read(const DataManager *pDM, MBDynParser &HP)
Definition: windprof.cc:221
const doublereal dZRef
Definition: windprof.h:86
virtual bool GetVelocity(const Vec3 &X, Vec3 &V) const
Definition: windprof.cc:350
virtual std::ostream & Restart(std::ostream &out) const
Definition: windprof.cc:90
virtual Gust * Read(const DataManager *pDM, MBDynParser &HP)
Definition: windprof.cc:104
Definition: gust.h:57
const doublereal logZRefZ0
Definition: windprof.h:116
const doublereal dPower
Definition: windprof.h:88
virtual ~LogarithmicGR(void)
Definition: windprof.cc:376
LogarithmicWindProfile(const Vec3 &X0, const Mat3x3 &R0, const doublereal dZRef, const DriveCaller *pVRef, const doublereal dSurfaceRoughnessLength)
Definition: windprof.cc:327
ScalarFuncWindProfile(const Vec3 &X0, const Mat3x3 &R0, const BasicScalarFunction *sf)
Definition: windprof.cc:62
Definition: gust.h:44
virtual ~ScalarFuncGR(void)
Definition: windprof.cc:98
virtual ~PowerLawGR(void)
Definition: windprof.cc:215
WindProfile(const Vec3 &X0, const Mat3x3 &R0)
Definition: windprof.cc:45
virtual ~ScalarFuncWindProfile(void)
Definition: windprof.cc:72
const Mat3x3 R0
Definition: windprof.h:50
virtual std::ostream & Restart(std::ostream &out) const
Definition: windprof.cc:204
virtual ~WindProfile(void)
Definition: windprof.cc:53
virtual bool GetVelocity(const Vec3 &X, Vec3 &V) const
Definition: windprof.cc:189
const BasicScalarFunction * sf
Definition: windprof.h:63
virtual ~LogarithmicWindProfile(void)
Definition: windprof.cc:344
virtual std::ostream & Restart(std::ostream &out) const
Definition: windprof.cc:365
virtual bool GetVelocity(const Vec3 &X, Vec3 &V) const
Definition: windprof.cc:78
double doublereal
Definition: colamd.c:52
const doublereal dSurfaceRoughnessLength
Definition: windprof.h:114
const doublereal dZRef
Definition: windprof.h:112
PowerLawWindProfile(const Vec3 &X0, const Mat3x3 &R0, const doublereal dZRef, const DriveCaller *pVRef, const doublereal dPower)
Definition: windprof.cc:166
const Vec3 X0
Definition: windprof.h:49