74 std::vector<const Gust *>& g,
84 for (std::vector<const Gust *>::iterator i =
gust.begin();
93 for (std::vector<const Gust *>::iterator i =
gust.begin();
104 const_cast<Gust *
>(pG)->SetAirProperties(
this);
113 for (std::vector<const Gust *>::const_iterator i =
gust.begin();
114 i !=
gust.end(); ++i)
116 out <<
", ", (*i)->Restart(out);
119 return out <<
';' << std::endl;
192 return AssRes(WorkVec, 1, XCurr, XCurr);
232 for (std::vector<const Gust *>::const_iterator i =
gust.begin();
233 i !=
gust.end(); ++i)
236 if ((*i)->GetVelocity(Xabs, VV)) {
272 if (strcasecmp(s,
"vxinf") == 0) {
275 }
else if (strcasecmp(s,
"vyinf") == 0) {
278 }
else if (strcasecmp(s,
"vzinf") == 0) {
281 }
else if (strcasecmp(s,
"vinf") == 0) {
301 silent_cerr(
"AirProperties(" <<
GetLabel() <<
"): "
302 "illegal property " << i << std::endl);
332 out <<
" air properties: ",
414 out <<
" air properties: std, "
424 out <<
"reference altitude, " <<
z0 <<
", ";
478 silent_cerr(
"StdAirProperties: illegal reference density "
479 << rhoRef << std::endl);
487 rho = rhoRef *
pow(T /
TRef, -(
g0 / (
a * R) + 1));
499 c =
sqrt(1.4 *
R * T);
565 silent_cerr(
"illegal reference "
577 silent_cerr(
"illegal reference "
578 "temperature " << TRef
587 silent_cerr(
"illegal temperature gradient "
595 silent_cerr(
"illegal gas constant " << R
603 silent_cerr(
"illegal reference "
604 "gravity acceleration " << g0
612 silent_cerr(
"illegal troposphere altitude "
621 silent_cerr(
"illegal stratosphere altitude "
630 if (HP.
IsKeyWord(
"temperature" "deviation")) {
633 if (TRef + T <= 0.) {
634 silent_cerr(
"illegal "
635 "temperature deviation " << T
649 rhoRef *= TRef / (TRef + T);
657 if (HP.
IsKeyWord(
"reference" "altitude")) {
663 std::vector<const Gust *> gust;
670 PRef, RhoRef, TRef, a, R, g0, z0, z1, z2,
681 silent_cerr(
"illegal null or negative sound speed "
689 std::vector<const Gust *> gust;
706 : pAirProperties(NULL)
flag fReadOutput(MBDynParser &HP, const T &t) const
GradientExpression< UnaryExpr< FuncExp, Expr > > exp(const GradientExpression< Expr > &u)
virtual doublereal dGetAirDensity(const Vec3 &X) const
virtual std::ostream & Restart(std::ostream &out) const
virtual ~BasicAirProperties(void)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal, const VectorHandler &, const VectorHandler &)
virtual ~AerodynamicElem(void)
virtual std::ostream & Restart(std::ostream &out) const
const Vec3 Zero3(0., 0., 0.)
Vec3 Cross(const Vec3 &v) const
virtual bool GetAirProps(const Vec3 &X, doublereal &rho, doublereal &c, doublereal &p, doublereal &T) const
virtual bool bToBeOutput(void) const
GradientExpression< BinaryExpr< FuncPow, LhsExpr, RhsExpr > > pow(const GradientExpression< LhsExpr > &u, const GradientExpression< RhsExpr > &v)
std::vector< const Gust * > gust
#define MBDYN_EXCEPT_ARGS
virtual Vec3 GetVelocity(const Vec3 &) const
AirProperties(const TplDriveCaller< Vec3 > *pDC, std::vector< const Gust * > &pg, const RigidBodyKinematics *pRBK, flag fOut)
virtual unsigned int iGetNumPrivData(void) const
AerodynamicElem(unsigned int uL, const DofOwner *pDO, flag fOut)
doublereal Norm(void) const
BasicAirProperties(const TplDriveCaller< Vec3 > *pDC, const DriveCaller *pRho, doublereal dSS, std::vector< const Gust * > &g, const RigidBodyKinematics *pRBK, flag fOut)
virtual doublereal dGetAirPressure(const Vec3 &X) const
virtual doublereal dGetAirDensity(const Vec3 &) const
virtual void PutAirProperties(const AirProperties *pAP)
virtual unsigned int iGetInitialNumDof(void) const
virtual bool GetAirProps(const Vec3 &X, doublereal &rho, doublereal &c, doublereal &p, doublereal &T) const
virtual ~AirPropOwner(void)
Gust * ReadGustData(const DataManager *pDM, MBDynParser &HP)
virtual ~AirProperties(void)
virtual ~StdAirProperties(void)
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &)
virtual const Vec3 & GetV(void) const =0
virtual doublereal dGetAirTemperature(const Vec3 &) const
virtual doublereal dGetAirPressure(const Vec3 &) const
virtual std::ostream & Restart(std::ostream &out) const =0
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
const DriveCaller * RhoRef
Elem * ReadAirProperties(DataManager *pDM, MBDynParser &HP)
virtual doublereal dGetSoundSpeed(const Vec3 &) const =0
Vec3 MulTV(const Vec3 &v) const
virtual const Vec3 & GetX(void) const =0
TplDriveCaller< Vec3 > * ReadDC3D(const DataManager *pDM, MBDynParser &HP)
virtual doublereal dGetAirTemperature(const Vec3 &) const
TplDriveCaller< Vec3 > * pGetDriveCaller(void) const
virtual const InducedVelocity * pGetInducedVelocity(void) const
static void ReadAirstreamData(DataManager *pDM, MBDynParser &HP, TplDriveCaller< Vec3 > *&pDC, std::vector< const Gust * > &gust)
virtual bool IsKeyWord(const char *sKeyWord)
virtual doublereal dGetAirPressure(const Vec3 &) const
virtual bool NeedsAirProperties(void) const
virtual bool GetAirProps(const Vec3 &X, doublereal &rho, doublereal &c, doublereal &p, doublereal &T) const =0
const doublereal & dGet(unsigned short int iRow) const
virtual doublereal dGetSoundSpeed(const Vec3 &) const
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal, const VectorHandler &, const VectorHandler &)
virtual doublereal dGetAirPressure(const Vec3 &) const =0
virtual doublereal dGetSoundSpeed(const Vec3 &X) const
virtual unsigned int iGetPrivDataIdx(const char *s) const
const AirProperties * pAirProperties
virtual doublereal dGetAirTemperature(const Vec3 &X) const
virtual std::ostream & Restart(std::ostream &out) const =0
#define ASSERT(expression)
GradientExpression< UnaryExpr< FuncSqrt, Expr > > sqrt(const GradientExpression< Expr > &u)
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
std::ostream & AirProps(void) const
DriveCaller * pGetDriveCaller(void) const
virtual doublereal dGet(const doublereal &dVar) const =0
static std::stack< cleanup * > c
virtual void AddGust(const Gust *pG)
const RigidBodyKinematics * pGetRBK(void) const
const RigidBodyKinematics * pRBK
virtual const Vec3 & GetW(void) const =0
virtual std::ostream & Restart(std::ostream &out) const
doublereal dGet(const doublereal &dVar) const
virtual bool GetAirProps(const Vec3 &X, doublereal &rho, doublereal &c, doublereal &p, doublereal &T) const
virtual doublereal dGetPrivData(unsigned int i) const
virtual doublereal dGetAirTemperature(const Vec3 &) const =0
void SetAirProperties(const AirProperties *pap)
virtual doublereal dGetAirDensity(const Vec3 &) const =0
virtual flag fGetAirVelocity(Vec3 &Velocity, const Vec3 &X) const
DriveCaller * GetDriveCaller(bool bDeferred=false)
static const doublereal a
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
virtual HighParser::ErrOut GetLineData(void) const
unsigned int GetLabel(void) const
virtual void Output(OutputHandler &) const
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
#define DEBUGLCOUT(level, msg)
virtual void Resize(integer iNewSize)=0
virtual doublereal dGetSoundSpeed(const Vec3 &) const
virtual const Mat3x3 & GetR(void) const =0
virtual doublereal dGetAirDensity(const Vec3 &) const
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)
virtual doublereal GetReal(const doublereal &dDefval=0.0)