61 DRollMoment(pDRollMoment),
62 DPitchMoment(pDPitchMoment),
67 dC(8.*(dP*dP - 1.)/dGamma),
111 DEBUGCOUT(
"Entering RotorTrimBase::AssJac()" << std::endl);
123 d[0] =
dTau0 + dCoef;
124 d[1] =
dTau1 + dCoef;
125 d[2] =
dTau1 + dCoef;
128 for (
int iIdx = 0; iIdx < 3; iIdx++ ) {
131 WM.
PutItem(iIdx + 1, iRowIndex, iColIndex, d[iIdx]);
144 DEBUGCOUT(
"Entering RotorTrimBase::AssRes()" << std::endl);
175 GetData(dThrust, dRollMoment, dPitchMoment, dRho, dOmega, dMu);
187 Mat3x3 m((1. + 3./2.*dMu2)/6.,
191 -f/16.*(
dC*(1. + 3./2.*dMu2) - 2./9.*dMu2*
dGamma/
dP2),
195 -f*
dC/16.*(1. + 1./2.*dMu2));
211 connectedNodes.resize(3);
212 for (
int i = 0; i < 3; i++) {
213 connectedNodes[i] =
pvNodes[i];
240 pDThrust, pDRollMoment, pDPitchMoment,
241 dG, dp, dT0, dT1, dK0, dK1, pTrigger, fOut),
265 return out <<
" /* rotor trim not implemented yet */ ";
288 int NumNodes = connectedNodes.size();
289 connectedNodes.resize(NumNodes + 3);
290 for (
int i = 0; i < 3; i++) {
291 connectedNodes[NumNodes + i] =
pvNodes[i];
321 pDThrust, pDRollMoment, pDPitchMoment,
322 dG, dp, dT0, dT1, dK0, dK1, pTrigger, fOut),
325 RollMoment(pRollMoment),
326 PitchMoment(pPitchMoment),
343 return out <<
" /* rotor trim not implemented yet */ ";
virtual doublereal dGetAirDensity(const Vec3 &X) const
virtual std::ostream & Restart(std::ostream &out) const
const Vec3 Zero3(0., 0., 0.)
GradientExpression< BinaryExpr< FuncPow, LhsExpr, RhsExpr > > pow(const GradientExpression< LhsExpr > &u, const GradientExpression< RhsExpr > &v)
virtual const doublereal & dGetXPrime(void) const
virtual ~RotorTrimBase(void)
virtual unsigned int iGetNumDof(void) const
virtual unsigned int iGetPrivDataIdx(const char *s) const
RotorTrimBase(unsigned int uL, const DofOwner *pDO, const ScalarDifferentialNode *pNode1, const ScalarDifferentialNode *pNode2, const ScalarDifferentialNode *pNode3, const DriveCaller *pDThrust, const DriveCaller *pDRollMoment, const DriveCaller *pDPitchMoment, const doublereal &dG, const doublereal &dp, const doublereal &dT0, const doublereal &dT1, const doublereal &dK0, const doublereal &dK1, const DriveCaller *pTrigger, flag fOut)
virtual ~RotorTrimGeneric(void)
virtual void GetData(doublereal &dThrust, doublereal &dRollMoment, doublereal &dPitchMoment, doublereal &dRho, doublereal &dOmega, doublereal &dMu) const =0
void Resize(integer iNewRow, integer iNewCol)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &, const VectorHandler &)
virtual doublereal dGetMu(void) const
virtual void PutRowIndex(integer iSubRow, integer iRow)=0
virtual std::ostream & Restart(std::ostream &out) const
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
virtual void GetData(doublereal &dThrust, doublereal &dRollMoment, doublereal &dPitchMoment, doublereal &dRho, doublereal &dOmega, doublereal &dMu) const
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
void PutItem(integer iSubIt, integer iRow, integer iCol, const doublereal &dCoef)
virtual doublereal dGetRadius(void) const
virtual const Vec3 & GetXCurr(void) const
RotorTrimGeneric(unsigned int uL, const DofOwner *pDO, const StructNode *pStrNode, const DriveCaller *pThrust, const DriveCaller *pRollMoment, const DriveCaller *pPitchMoment, const AirProperties *pAP, doublereal dRadius, const DriveCaller *pOmega, const DriveCaller *pMu, const ScalarDifferentialNode *pNode1, const ScalarDifferentialNode *pNode2, const ScalarDifferentialNode *pNode3, const DriveCaller *pDThrust, const DriveCaller *pDRollMoment, const DriveCaller *pDPitchMoment, const doublereal &dG, const doublereal &dp, const doublereal &dT0, const doublereal &dT1, const doublereal &dK0, const doublereal &dK1, const DriveCaller *pTrigger, flag fOut)
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &, const VectorHandler &)
virtual integer iGetFirstRowIndex(void) const
virtual void GetData(doublereal &dThrust, doublereal &dRollMoment, doublereal &dPitchMoment, doublereal &dRho, doublereal &dOmega, doublereal &dMu) const
Vec3 Solve(const Vec3 &v) const
#define ASSERT(expression)
virtual doublereal dGetOmega(void) const
virtual void PutCoef(integer iRow, const doublereal &dCoef)=0
virtual const Vec3 & GetXCurr(void) const
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
virtual doublereal dGetPrivData(unsigned int i) const
doublereal dGet(const doublereal &dVar) const
virtual doublereal dGetAirDensity(const Vec3 &) const =0
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
const StructNode * pStrNode
SparseSubMatrixHandler & SetSparse(void)
RotorTrim(unsigned int uL, const DofOwner *pDO, const Rotor *pRot, const ScalarDifferentialNode *pNode1, const ScalarDifferentialNode *pNode2, const ScalarDifferentialNode *pNode3, const DriveCaller *pDThrust, const DriveCaller *pDRollMoment, const DriveCaller *pDPitchMoment, const doublereal &dG, const doublereal &dp, const doublereal &dT0, const doublereal &dT1, const doublereal &dK0, const doublereal &dK1, const DriveCaller *pTrigger, flag fOut)
const AirProperties * pAP
virtual void Resize(integer iNewSize)=0
virtual const doublereal & dGetX(void) const
const ScalarDifferentialNode * pvNodes[3]
virtual integer iGetFirstColIndex(void) const