92         return out << 
"scalar function, " 
   93                 << 
", reference position, " << 
X0 
   94                 << 
", reference orientation, " << 
R0 
   95                 << 
" # not implemented yet";
 
  113                 if (HP.
IsKeyWord(
"reference" "position")) {
 
  115                                 silent_cerr(
"ScalarFuncWindProfile: " 
  116                                         "reference position provided twice " 
  124                 } 
else if (HP.
IsKeyWord(
"reference" "orientation")) {
 
  126                                 silent_cerr(
"ScalarFuncWindProfile: " 
  127                                         "reference orientation provided twice " 
  141                 silent_cerr(
"ScalarFuncWindProfile: " 
  149                 silent_cerr(
"ScalarFuncWindProfile: " 
  150                         "unable to parse scalar function " 
  207                 << 
", reference position, " << 
X0 
  208                 << 
", reference orientation, " << 
R0 
  209                 << 
", reference elevation, " << 
dZRef 
  211                 << 
", exponent, " << 
dPower;
 
  232                 if (HP.
IsKeyWord(
"reference" "elevation")) {
 
  234                                 silent_cerr(
"PowerLawWindProfile: " 
  235                                         "reference elevation provided twice " 
  243                 } 
else if (HP.
IsKeyWord(
"reference" "velocity")) {
 
  245                                 silent_cerr(
"PowerLawWindProfile: " 
  246                                         "reference velocity provided twice " 
  256                                 silent_cerr(
"PowerLawWindProfile: " 
  257                                         "exponent provided twice " 
  265                 } 
else if (HP.
IsKeyWord(
"reference" "position")) {
 
  267                                 silent_cerr(
"PowerLawWindProfile: " 
  268                                         "reference position provided twice " 
  276                 } 
else if (HP.
IsKeyWord(
"reference" "orientation")) {
 
  278                                 silent_cerr(
"PowerLawWindProfile: " 
  279                                         "reference orientation provided twice " 
  293                 silent_cerr(
"PowerLawWindProfile: " 
  294                         "reference elevation missing " 
  301                 silent_cerr(
"PowerLawWindProfile: " 
  302                         "reference velocity missing " 
  309                 silent_cerr(
"PowerLawWindProfile: " 
  336 dSurfaceRoughnessLength(dSurfaceRoughnessLength),
 
  337 logZRefZ0(std::
log(dZRef/dSurfaceRoughnessLength))
 
  341         ASSERT(dSurfaceRoughnessLength > 0.);
 
  368                 << 
", reference position, " << 
X0 
  369                 << 
", reference orientation, " << 
R0 
  370                 << 
", reference elevation, " << 
dZRef 
  393                 if (HP.
IsKeyWord(
"reference" "elevation")) {
 
  395                                 silent_cerr(
"LogarithmicWindProfile: " 
  396                                         "reference elevation provided twice " 
  404                 } 
else if (HP.
IsKeyWord(
"reference" "velocity")) {
 
  406                                 silent_cerr(
"LogarithmicWindProfile: " 
  407                                         "reference velocity provided twice " 
  415                 } 
else if (HP.
IsKeyWord(
"surface" "roughness" "length")) {
 
  416                         if (dSurfaceRoughnessLength != -1.) {
 
  417                                 silent_cerr(
"LogarithmicWindProfile: " 
  418                                         "surface roughness length provided twice " 
  424                         dSurfaceRoughnessLength = HP.
GetReal();
 
  426                 } 
else if (HP.
IsKeyWord(
"reference" "position")) {
 
  428                                 silent_cerr(
"PowerLawWindProfile: " 
  429                                         "reference position provided twice " 
  437                 } 
else if (HP.
IsKeyWord(
"reference" "orientation")) {
 
  439                                 silent_cerr(
"PowerLawWindProfile: " 
  440                                         "reference orientation provided twice " 
  454                 silent_cerr(
"LogarithmicWindProfile: " 
  455                         "reference elevation missing " 
  462                 silent_cerr(
"LogarithmicWindProfile: " 
  463                         "reference velocity missing " 
  469         if (dSurfaceRoughnessLength == -1.) {
 
  470                 silent_cerr(
"LogarithmicWindProfile: " 
  471                         "surface roughness length missing " 
  480                         dZRef, pVRef, dSurfaceRoughnessLength));
 
virtual ~PowerLawWindProfile(void)
const Vec3 Zero3(0., 0., 0.)
virtual Gust * Read(const DataManager *pDM, MBDynParser &HP)
GradientExpression< BinaryExpr< FuncPow, LhsExpr, RhsExpr > > pow(const GradientExpression< LhsExpr > &u, const GradientExpression< RhsExpr > &v)
#define MBDYN_EXCEPT_ARGS
Mat3x3 GetRotAbs(const ReferenceFrame &rf)
virtual Gust * Read(const DataManager *pDM, MBDynParser &HP)
virtual bool GetVelocity(const Vec3 &X, Vec3 &V) const 
virtual std::ostream & Restart(std::ostream &out) const 
virtual Gust * Read(const DataManager *pDM, MBDynParser &HP)
const Mat3x3 Eye3(1., 0., 0., 0., 1., 0., 0., 0., 1.)
Vec3 GetVec(unsigned short int i) const 
virtual std::ostream & Restart(std::ostream &out) const =0
const doublereal logZRefZ0
virtual ~LogarithmicGR(void)
LogarithmicWindProfile(const Vec3 &X0, const Mat3x3 &R0, const doublereal dZRef, const DriveCaller *pVRef, const doublereal dSurfaceRoughnessLength)
const ReferenceFrame AbsRefFrame(0, Vec3(0., 0., 0), Mat3x3(1., 0., 0., 0., 1., 0., 0., 0., 1.), Vec3(0., 0., 0), Vec3(0., 0., 0), EULER_123)
GradientExpression< UnaryExpr< FuncLog, Expr > > log(const GradientExpression< Expr > &u)
virtual bool IsKeyWord(const char *sKeyWord)
ScalarFuncWindProfile(const Vec3 &X0, const Mat3x3 &R0, const BasicScalarFunction *sf)
virtual ~ScalarFuncGR(void)
virtual ~PowerLawGR(void)
WindProfile(const Vec3 &X0, const Mat3x3 &R0)
virtual ~ScalarFuncWindProfile(void)
#define ASSERT(expression)
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
DriveCaller * pGetDriveCaller(void) const 
virtual std::ostream & Restart(std::ostream &out) const 
Vec3 GetVecAbs(const ReferenceFrame &rf)
virtual ~WindProfile(void)
virtual bool GetVelocity(const Vec3 &X, Vec3 &V) const 
doublereal dGet(const doublereal &dVar) const 
virtual ~LogarithmicWindProfile(void)
DriveCaller * GetDriveCaller(bool bDeferred=false)
virtual std::ostream & Restart(std::ostream &out) const 
virtual bool GetVelocity(const Vec3 &X, Vec3 &V) const 
const doublereal dSurfaceRoughnessLength
virtual HighParser::ErrOut GetLineData(void) const 
const BasicScalarFunction *const ParseScalarFunction(MBDynParser &HP, DataManager *const pDM)
PowerLawWindProfile(const Vec3 &X0, const Mat3x3 &R0, const doublereal dZRef, const DriveCaller *pVRef, const doublereal dPower)
virtual doublereal GetReal(const doublereal &dDefval=0.0)