12#ifndef P6DOFAEROCOREOBJECT_H
13#define P6DOFAEROCOREOBJECT_H
15#include "p6dof_export.h"
19#include "UtCloneablePtr.hpp"
21#include "UtVec3dX.hpp"
50 const std::list<UtCloneablePtr<P6DofAeroCoreObject>>*
GetSubModesList()
const;
62 const UtVec3dX& aAngularRates_rps,
63 UtVec3dX& aMoment_ftlbs,
66 double& aSideForce_lbs,
67 double aRadiusSizeFactor = 1.0);
73 double aRadiusSizeFactor = 1.0);
83 double aRadiusSizeFactor = 1.0);
100 double Cd_BetaMach(
double aMach,
double aBeta_rad);
104 double CY_BetaMach(
double aMach,
double aBeta_rad);
117 double Cn_BetaMach(
double aMach,
double aBeta_rad);
124 double Cl_BetaMach(
double aMach,
double aBeta_rad);
152 static bool ProcessCommonInput(UtInput& aInput,
const std::string& aCommand,
P6DofAeroCoreObject* aObject);
Definition P6DofAeroCoreObject.hpp:32
UtCloneablePtr< UtTable::Curve > mCn_BetaDotMachCurvePtr
Definition P6DofAeroCoreObject.hpp:206
bool mUseReducedFrequencySet
Definition P6DofAeroCoreObject.hpp:177
double Cd_AlphaMach(double aMach, double aAlpha_rad)
Definition P6DofAeroCoreObject.cpp:682
double Cl_AlphaDotMach(double aMach)
Definition P6DofAeroCoreObject.cpp:926
double mWingSpan_ft
Definition P6DofAeroCoreObject.hpp:161
UtCloneablePtr< UtTable::Curve > mCl_AlphaDotMachCurvePtr
Definition P6DofAeroCoreObject.hpp:214
double Cn_BetaMach(double aMach, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:832
double mWingArea_sqft
Definition P6DofAeroCoreObject.hpp:162
std::string GetModeName() const
Definition P6DofAeroCoreObject.cpp:599
UtCloneablePtr< UtTable::Table > mCY_BetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:191
UtCloneablePtr< UtTable::Table > mCm_AlphaMachTablePtr
Definition P6DofAeroCoreObject.hpp:197
double Cmp_Mach(double aMach)
Definition P6DofAeroCoreObject.cpp:812
UtCloneablePtr< UtTable::Table > mCl_BetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:211
UtCloneablePtr< UtTable::Curve > mCmp_MachCurvePtr
Definition P6DofAeroCoreObject.hpp:200
std::list< UtCloneablePtr< P6DofAeroCoreObject > > mSubModesList
Definition P6DofAeroCoreObject.hpp:158
double CYr_BetaMach(double aMach, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:749
UtCloneablePtr< UtTable::Curve > mClq_MachCurvePtr
Definition P6DofAeroCoreObject.hpp:217
const std::list< UtCloneablePtr< P6DofAeroCoreObject > > * GetSubModesList() const
Definition P6DofAeroCoreObject.cpp:609
UtCloneablePtr< UtTable::Table > mCn_AlphaBetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:205
double Cm_AlphaMach(double aMach, double aAlpha_rad)
Definition P6DofAeroCoreObject.cpp:775
double CnBetaDotMach(double aMach)
Definition P6DofAeroCoreObject.cpp:859
bool Initialize()
Definition P6DofAeroCoreObject.cpp:580
double Clr_Mach(double aMach)
Definition P6DofAeroCoreObject.cpp:946
UtVec3dX mAeroCenter_ft
Definition P6DofAeroCoreObject.hpp:169
UtCloneablePtr< UtTable::Curve > mClp_MachCurvePtr
Definition P6DofAeroCoreObject.hpp:213
double Cmq_Mach(double aMach)
Definition P6DofAeroCoreObject.cpp:802
UtCloneablePtr< UtTable::Curve > mCnr_MachCurvePtr
Definition P6DofAeroCoreObject.hpp:207
UtCloneablePtr< UtTable::Curve > mCm_AlphaDotMachCurvePtr
Definition P6DofAeroCoreObject.hpp:201
UtCloneablePtr< UtTable::Table > mCm_AlphaBetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:198
double GetWingChord_ft() const
Definition P6DofAeroCoreObject.cpp:1052
~P6DofAeroCoreObject()=default
double Cl_AlphaBetaMach(double aMach, double aAlpha_rad, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:902
UtCloneablePtr< UtTable::Table > mCY_AlphaBetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:192
double CalculateAeroCdArea(double aMach, double aAlpha_rad)
Definition P6DofAeroCoreObject.cpp:1020
UtCloneablePtr< UtTable::Table > mCd_BetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:187
std::string mModeName
Definition P6DofAeroCoreObject.hpp:156
double Cnp_Mach(double aMach)
Definition P6DofAeroCoreObject.cpp:879
bool ProcessInput(UtInput &aInput)
Definition P6DofAeroCoreObject.cpp:33
double mRefLength_ft
Definition P6DofAeroCoreObject.hpp:164
UtCloneablePtr< UtTable::Table > mCd_AlphaBetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:188
UtCloneablePtr< UtTable::Table > mCd_AlphaMachTablePtr
Definition P6DofAeroCoreObject.hpp:186
void SetModeName(const std::string &aName)
Definition P6DofAeroCoreObject.cpp:604
UtCloneablePtr< UtTable::Curve > mCnp_MachCurvePtr
Definition P6DofAeroCoreObject.hpp:208
P6DofAeroCoreObject()
Definition P6DofAeroCoreObject.cpp:23
bool mUseRefArea
Definition P6DofAeroCoreObject.hpp:167
P6DofAeroCoreObject * Clone() const
Definition P6DofAeroCoreObject.cpp:28
bool mUseReducedFrequency
Definition P6DofAeroCoreObject.hpp:176
P6DofAeroCoreObject & operator=(const P6DofAeroCoreObject &other)=delete
double GetWingSpan_ft() const
Definition P6DofAeroCoreObject.cpp:1057
UtCloneablePtr< UtTable::Table > mCn_BetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:204
bool mUseLegacySet
Definition P6DofAeroCoreObject.hpp:173
UtCloneablePtr< UtTable::Curve > mClr_MachCurvePtr
Definition P6DofAeroCoreObject.hpp:216
bool UsesRefArea() const
Definition P6DofAeroCoreObject.hpp:145
UtCloneablePtr< UtTable::Curve > mCmq_MachCurvePtr
Definition P6DofAeroCoreObject.hpp:199
double CalculateAeroCmArea(double aMach, double aAlpha_rad)
Definition P6DofAeroCoreObject.cpp:966
P6DofAeroCoreObject(const P6DofAeroCoreObject &aSrc)=default
UtCloneablePtr< UtTable::Curve > mCl_BetaDotMachCurvePtr
Definition P6DofAeroCoreObject.hpp:215
double CalculateAeroCLArea(double aMach, double aAlpha_rad)
Definition P6DofAeroCoreObject.cpp:993
double Cd_BetaMach(double aMach, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:695
double mWingChord_ft
Definition P6DofAeroCoreObject.hpp:160
UtCloneablePtr< UtTable::Table > mCLq_AlphaMachTablePtr
Definition P6DofAeroCoreObject.hpp:182
double GetRefArea_sqft() const
Definition P6DofAeroCoreObject.cpp:1067
UtVec3dX GetAeroCenter_ft() const
Definition P6DofAeroCoreObject.cpp:1047
double Clp_Mach(double aMach)
Definition P6DofAeroCoreObject.cpp:916
double Cnr_Mach(double aMach)
Definition P6DofAeroCoreObject.cpp:869
double Cd_AlphaBetaMach(double aMach, double aAlpha_rad, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:708
bool mUseLegacy
Definition P6DofAeroCoreObject.hpp:172
P6DofAeroCoreObject * GetSubModeByName(const std::string &aName) const
Definition P6DofAeroCoreObject.cpp:614
double CalculateLiftAtSpecifiedAlpha_lbs(double aDynPress_lbsqft, double aMach, double aAlpha_deg, double aRadiusSizeFactor=1.0)
Definition P6DofAeroCoreObject.cpp:1395
double CY_BetaMach(double aMach, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:722
double GetWingArea_sqft() const
Definition P6DofAeroCoreObject.cpp:1062
void CalculateAeroCoefficientVectors(double aMach, double aAlpha_rad, double &aCLArea, double &aCdArea, double &aCmArea, double aRadiusSizeFactor=1.0)
Definition P6DofAeroCoreObject.cpp:1353
double CL_AlphaMach(double aMach, double aAlpha_rad)
Definition P6DofAeroCoreObject.cpp:628
double Cl_BetaMach(double aMach, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:889
double CL_AlphaDotAlphaMach(double aMach, double aAlpha_rad)
Definition P6DofAeroCoreObject.cpp:669
UtCloneablePtr< UtTable::Table > mCL_AlphaBetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:181
double Cm_AlphaBetaMach(double aMach, double aAlpha_rad, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:788
double CL_AlphaBetaMach(double aMach, double aAlpha_rad, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:641
double Cl_BetaDotMach(double aMach)
Definition P6DofAeroCoreObject.cpp:936
UtCloneablePtr< UtTable::Table > mCL_AlphaMachTablePtr
Definition P6DofAeroCoreObject.hpp:180
bool UseLegacyAero() const
Definition P6DofAeroCoreObject.hpp:149
double CY_AlphaBetaMach(double aMach, double aAlpha_rad, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:735
double Clq_Mach(double aMach)
Definition P6DofAeroCoreObject.cpp:956
double Cn_AlphaBetaMach(double aMach, double aAlpha_rad, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:845
UtCloneablePtr< UtTable::Table > mCYr_BetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:193
double CY_BetaDotBetaMach(double aMach, double aBeta_rad)
Definition P6DofAeroCoreObject.cpp:762
UtCloneablePtr< UtTable::Table > mCL_AlphaDotAlphaMachTablePtr
Definition P6DofAeroCoreObject.hpp:183
double CLq_AlphaMach(double aMach, double aAlpha_rad)
Definition P6DofAeroCoreObject.cpp:655
double CmAlphaDotMach(double aMach)
Definition P6DofAeroCoreObject.cpp:822
UtCloneablePtr< UtTable::Table > mCY_BetaDotBetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:194
UtCloneablePtr< UtTable::Table > mCl_AlphaBetaMachTablePtr
Definition P6DofAeroCoreObject.hpp:212
void CalculateCoreAeroFM(double aDynPress_lbsqft, double aMach, double aSpeed_fps, double aAlpha_rad, double aBeta_rad, double aAlphaDot_rps, double aBetaDot_rps, const UtVec3dX &aAngularRates_rps, UtVec3dX &aMoment_ftlbs, double &aLift_lbs, double &aDrag_lbs, double &aSideForce_lbs, double aRadiusSizeFactor=1.0)
Definition P6DofAeroCoreObject.cpp:1072
double mRefArea_sqft
Definition P6DofAeroCoreObject.hpp:163