MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
UniformRotor Class Reference

#include <rotor.h>

Inheritance diagram for UniformRotor:
Collaboration diagram for UniformRotor:

Public Member Functions

 UniformRotor (unsigned int uLabel, const DofOwner *pDO)
 
 UniformRotor (unsigned int uLabel, const DofOwner *pDO, const StructNode *pCraft, const Mat3x3 &rrot, const StructNode *pRotor, const StructNode *pGround, ResForceSet **ppres, const doublereal &dOR, const doublereal &dR, DriveCaller *pdW, unsigned int iMaxIt, const doublereal &dTol, const doublereal &dE, const doublereal &dCH, const doublereal &dCFF, flag fOut)
 
virtual ~UniformRotor (void)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual std::ostream & Restart (std::ostream &out) const
 
InducedVelocity::Type GetInducedVelocityType (void) const
 
virtual void AddForce (const Elem *pEl, const StructNode *pNode, const Vec3 &F, const Vec3 &M, const Vec3 &X)
 
virtual Vec3 GetInducedVelocity (Elem::Type type, unsigned uLabel, unsigned uPnt, const Vec3 &X) const
 
- Public Member Functions inherited from Elem
 Elem (unsigned int uL, flag fOut)
 
virtual ~Elem (void)
 
virtual std::ostream & DescribeDof (std::ostream &out, const char *prefix="", bool bInitial=false) const
 
virtual void DescribeDof (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const
 
virtual std::ostream & DescribeEq (std::ostream &out, const char *prefix="", bool bInitial=false) const
 
virtual void DescribeEq (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const
 
virtual void AssMats (VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual bool bInverseDynamics (void) const
 
void SetInverseDynamicsFlags (unsigned uIDF)
 
unsigned GetInverseDynamicsFlags (void) const
 
bool bIsErgonomy (void) const
 
bool bIsRightHandSide (void) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr, const VectorHandler &XPrimePrimeCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
 
virtual int GetNumConnectedNodes (void) const
 
- Public Member Functions inherited from WithLabel
 WithLabel (unsigned int uL=0, const std::string &sN="")
 
virtual ~WithLabel (void)
 
void PutLabel (unsigned int uL)
 
void PutName (const std::string &sN)
 
unsigned int GetLabel (void) const
 
const std::string & GetName (void) const
 
- Public Member Functions inherited from SimulationEntity
 SimulationEntity (void)
 
virtual ~SimulationEntity (void)
 
virtual bool bIsValidIndex (unsigned int i) const
 
virtual DofOrder::Order GetEqType (unsigned int i) const
 
virtual HintParseHint (DataManager *pDM, const char *s) const
 
virtual void BeforePredict (VectorHandler &, VectorHandler &, VectorHandler &, VectorHandler &) const
 
virtual void AfterPredict (VectorHandler &X, VectorHandler &XP)
 
virtual void Update (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void DerivativesUpdate (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void Update (const VectorHandler &XCurr, InverseDynamics::Order iOrder)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP, const VectorHandler &XPP)
 
virtual std::ostream & OutputAppend (std::ostream &out) const
 
virtual void ReadInitialState (MBDynParser &HP)
 
- Public Member Functions inherited from ToBeOutput
 ToBeOutput (flag fOut=fDefaultOut)
 
virtual ~ToBeOutput (void)
 
virtual void OutputPrepare (OutputHandler &OH)
 
virtual void Output (OutputHandler &OH, const VectorHandler &X, const VectorHandler &XP) const
 
virtual flag fToBeOutput (void) const
 
virtual bool bToBeOutput (void) const
 
virtual void SetOutputFlag (flag f=flag(1))
 
- Public Member Functions inherited from Rotor
 Rotor (unsigned int uL, const DofOwner *pDO)
 
 Rotor (unsigned int uL, const DofOwner *pDO, const StructNode *pC, const Mat3x3 &rrot, const StructNode *pR, const StructNode *pG, ResForceSet **ppres, const doublereal &dR, unsigned int iMaxIt, const doublereal &dTol, const doublereal &dE, flag fOut)
 
virtual ~Rotor (void)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual void Output (OutputHandler &OH) const
 
virtual void SetInitialValue (VectorHandler &)
 
virtual const Vec3GetXCurr (void) const
 
virtual doublereal dGetOmega (void) const
 
virtual doublereal dGetRadius (void) const
 
virtual doublereal dGetMu (void) const
 
virtual const Vec3GetForces (void) const
 
virtual const Vec3GetMoments (void) const
 
virtual void GetConnectedNodes (std::vector< const Node * > &connectedNodes) const
 
- Public Member Functions inherited from InducedVelocityElem
 InducedVelocityElem (unsigned int uL, const DofOwner *pDO, const StructNode *pCraft, ResForceSet **ppres, flag fOut)
 
virtual ~InducedVelocityElem (void)
 
virtual Elem::Type GetElemType (void) const
 
virtual AerodynamicElem::Type GetAerodynamicElemType (void) const
 
virtual DofOrder::Order GetDofType (unsigned int i) const
 
- Public Member Functions inherited from AerodynamicElem
 AerodynamicElem (unsigned int uL, const DofOwner *pDO, flag fOut)
 
virtual ~AerodynamicElem (void)
 
virtual bool NeedsAirProperties (void) const
 
virtual const InducedVelocitypGetInducedVelocity (void) const
 
- Public Member Functions inherited from ElemWithDofs
 ElemWithDofs (unsigned int uL, const DofOwner *pDO, flag fOut)
 
virtual ~ElemWithDofs (void)
 
- Public Member Functions inherited from DofOwnerOwner
 DofOwnerOwner (const DofOwner *pDO)
 
virtual ~DofOwnerOwner ()
 
virtual const DofOwnerpGetDofOwner (void) const
 
virtual integer iGetFirstIndex (void) const
 
- Public Member Functions inherited from AirPropOwner
 AirPropOwner (void)
 
virtual ~AirPropOwner (void)
 
virtual void PutAirProperties (const AirProperties *pAP)
 
virtual flag fGetAirVelocity (Vec3 &Velocity, const Vec3 &X) const
 
virtual doublereal dGetAirDensity (const Vec3 &X) const
 
virtual doublereal dGetAirPressure (const Vec3 &X) const
 
virtual doublereal dGetAirTemperature (const Vec3 &X) const
 
virtual doublereal dGetSoundSpeed (const Vec3 &X) const
 
virtual bool GetAirProps (const Vec3 &X, doublereal &rho, doublereal &c, doublereal &p, doublereal &T) const
 
- Public Member Functions inherited from InducedVelocity
 InducedVelocity (unsigned int uL, const StructNode *pCraft, ResForceSet **ppres, flag fOut)
 
virtual ~InducedVelocity (void)
 
virtual unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual doublereal dGetPrivData (unsigned int i) const
 
virtual bool bSectionalForces (void) const
 
virtual unsigned int iGetNumDof (void) const
 
virtual void AddSectionalForce (Elem::Type type, const Elem *pEl, unsigned uPnt, const Vec3 &F, const Vec3 &M, doublereal dW, const Vec3 &X, const Mat3x3 &R, const Vec3 &V, const Vec3 &W)
 
virtual void ResetForce (void)
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void SetValue (DataManager *pDM, VectorHandler &, VectorHandler &, SimulationEntity::Hints *ph=0)
 

Protected Member Functions

virtual void Init (const StructNode *pCraft, const Mat3x3 &rrot, const StructNode *pRotor, const StructNode *pGround, ResForceSet **ppres, const doublereal &dOR, const doublereal &dR, DriveCaller *pdW, unsigned int iMaxIt, const doublereal &dTol, const doublereal &dE, const doublereal &dCH, const doublereal &dCFF, flag fOut)
 
- Protected Member Functions inherited from Rotor
virtual doublereal dGetPsi (const Vec3 &X) const
 
virtual doublereal dGetPos (const Vec3 &X) const
 
virtual void GetPos (const Vec3 &X, doublereal &dr, doublereal &dp) const
 
virtual void InitParam (bool bComputeMeanInducedVelocity=true)
 
virtual void Init (const StructNode *pC, const Mat3x3 &rrot, const StructNode *pR, const StructNode *pG, ResForceSet **ppres, const doublereal &dR, unsigned int iMaxIt, const doublereal &dTol, const doublereal &dE, flag fOut)
 

Additional Inherited Members

- Public Types inherited from Elem
enum  Type {
  UNKNOWN = -1, AIRPROPERTIES = 0, INDUCEDVELOCITY, AUTOMATICSTRUCTURAL,
  GRAVITY, BODY, JOINT, JOINT_REGULARIZATION,
  BEAM, PLATE, FORCE, INERTIA,
  ELECTRICBULK, ELECTRIC, THERMAL, HYDRAULIC,
  BULK, LOADABLE, DRIVEN, EXTERNAL,
  AEROMODAL, AERODYNAMIC, GENEL, SOCKETSTREAM_OUTPUT,
  RTAI_OUTPUT = SOCKETSTREAM_OUTPUT, LASTELEMTYPE
}
 
- Public Types inherited from SimulationEntity
typedef std::vector< Hint * > Hints
 
- Public Types inherited from ToBeOutput
enum  { OUTPUT = 0x1U, OUTPUT_MASK = 0xFU, OUTPUT_PRIVATE = 0x10U, OUTPUT_PRIVATE_MASK = ~OUTPUT_MASK }
 
- Public Types inherited from AerodynamicElem
enum  Type {
  UNKNOWN = -1, INDUCEDVELOCITY = 0, AEROMODAL, AERODYNAMICBODY,
  AERODYNAMICBEAM, AERODYNAMICEXTERNAL, AERODYNAMICEXTERNALMODAL, AERODYNAMICLOADABLE,
  AIRCRAFTINSTRUMENTS, GENERICFORCE, LASTAEROTYPE
}
 
- Public Types inherited from InducedVelocity
enum  Type {
  UNKNOWN = -1, USER_DEFINED = 0x01000000U, ROTOR = 0x10000000U, NO = (0U | ROTOR),
  UNIFORM = (1U | ROTOR), GLAUERT = (2U | ROTOR), MANGLER = (3U | ROTOR), DYNAMICINFLOW = (4U | ROTOR),
  PETERS_HE = (5U | ROTOR), CYCLOCOPTER = (11U | ROTOR), LASTROTORTYPE
}
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from Rotor
const StructNodepRotor
 
const StructNodepGround
 
doublereal dOmegaRef
 
doublereal dRadius
 
doublereal dVTipRef
 
doublereal dArea
 
doublereal dUMean
 
doublereal dUMeanRef
 
doublereal dUMeanPrev
 
unsigned int iMaxIter
 
unsigned int iCurrIter
 
doublereal dTolerance
 
doublereal dEta
 
bool bUMeanRefConverged
 
DriveOwner Weight
 
doublereal dWeight
 
doublereal dHoverCorrection
 
doublereal dForwardFlightCorrection
 
Mat3x3 RRotTranspose
 
Mat3x3 RRot
 
Vec3 RRot3
 
Vec3 VCraft
 
doublereal dPsi0
 
doublereal dSinAlphad
 
doublereal dCosAlphad
 
doublereal dMu
 
doublereal dLambda
 
doublereal dChi
 
doublereal dVelocity
 
doublereal dOmega
 
int iNumSteps
 
- Protected Attributes inherited from AirPropOwner
const AirPropertiespAirProperties
 
- Protected Attributes inherited from InducedVelocity
const StructNodepCraft
 
ExternResForces Res
 
ResForceSet ** ppRes
 

Detailed Description

Definition at line 259 of file rotor.h.

Constructor & Destructor Documentation

UniformRotor::UniformRotor ( unsigned int  uLabel,
const DofOwner pDO 
)

Definition at line 694 of file rotor.cc.

References NO_OP.

695 : Elem(uLabel, flag(0)),
696 Rotor(uLabel, pDO)
697 {
698  NO_OP;
699 }
long int flag
Definition: mbdyn.h:43
#define NO_OP
Definition: myassert.h:74
Rotor(unsigned int uL, const DofOwner *pDO)
Definition: rotor.cc:59
unsigned int uLabel
Definition: withlab.h:44
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41
UniformRotor::UniformRotor ( unsigned int  uLabel,
const DofOwner pDO,
const StructNode pCraft,
const Mat3x3 rrot,
const StructNode pRotor,
const StructNode pGround,
ResForceSet **  ppres,
const doublereal dOR,
const doublereal dR,
DriveCaller pdW,
unsigned int  iMaxIt,
const doublereal dTol,
const doublereal dE,
const doublereal dCH,
const doublereal dCFF,
flag  fOut 
)

Definition at line 701 of file rotor.cc.

References Init().

717 : Elem(uLabel, flag(0)),
718 Rotor(uLabel, pDO)
719 {
720  Init(pCraft, rrot, pRotor, pGround, ppres, dOR, dR,
721  pdW, iMaxIt, dTol, dE, dCH, dCFF, fOut);
722 }
long int flag
Definition: mbdyn.h:43
Rotor(unsigned int uL, const DofOwner *pDO)
Definition: rotor.cc:59
virtual void Init(const StructNode *pCraft, const Mat3x3 &rrot, const StructNode *pRotor, const StructNode *pGround, ResForceSet **ppres, const doublereal &dOR, const doublereal &dR, DriveCaller *pdW, unsigned int iMaxIt, const doublereal &dTol, const doublereal &dE, const doublereal &dCH, const doublereal &dCFF, flag fOut)
Definition: rotor.cc:725
unsigned int uLabel
Definition: withlab.h:44
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41

Here is the call graph for this function:

UniformRotor::~UniformRotor ( void  )
virtual

Definition at line 774 of file rotor.cc.

References SAFEDELETE, and SAFEDELETEARR.

775 {
776 #ifdef USE_MPI
777  SAFEDELETEARR(pBlockLenght);
778  SAFEDELETEARR(pDispl);
779  SAFEDELETE(pIndVelDataType);
780 #endif /* USE_MPI */
781 }
#define SAFEDELETEARR(pnt)
Definition: mynewmem.h:713
#define SAFEDELETE(pnt)
Definition: mynewmem.h:710

Member Function Documentation

void UniformRotor::AddForce ( const Elem pEl,
const StructNode pNode,
const Vec3 F,
const Vec3 M,
const Vec3 X 
)
virtual

Reimplemented from InducedVelocity.

Definition at line 852 of file rotor.cc.

References ResForces::AddForce(), InducedVelocity::AddForce(), ResForces::AddForces(), ToBeOutput::bToBeOutput(), MYSLEEP, and InducedVelocity::Res.

854 {
855 #ifdef USE_MPI
856  if (ReqV != MPI::REQUEST_NULL) {
857  while (!ReqV.Test()) {
858  MYSLEEP(mysleeptime);
859  }
860  }
861 #endif /* USE_MPI */
862 
863 #if defined(USE_MULTITHREAD) && defined(MBDYN_X_MT_ASSRES)
864  pthread_mutex_lock(&forces_mutex);
865  Wait();
866 #endif // USE_MULTITHREAD && MBDYN_X_MT_ASSRES
867 
868  /* Solo se deve fare l'output calcola anche il momento */
869  if (bToBeOutput()) {
870  Res.AddForces(F, M, X);
871  InducedVelocity::AddForce(pEl, pNode, F, M, X);
872  } else {
873  Res.AddForce(F);
874  }
875 
876 #if defined(USE_MULTITHREAD) && defined(MBDYN_X_MT_ASSRES)
877  pthread_mutex_unlock(&forces_mutex);
878 #endif /* USE_MULTITHREAD && MBDYN_X_MT_ASSRES */
879 }
ExternResForces Res
Definition: indvel.h:114
virtual bool bToBeOutput(void) const
Definition: output.cc:890
#define MYSLEEP(t)
Definition: mysleep.h:49
virtual void AddForce(const Elem *pEl, const StructNode *pNode, const Vec3 &F, const Vec3 &M, const Vec3 &X)
Definition: indvel.cc:252
void AddForces(const Vec3 &f, const Vec3 &c, const Vec3 &x)
Definition: resforces.cc:77
void AddForce(const Vec3 &f)
Definition: resforces.cc:58

Here is the call graph for this function:

SubVectorHandler & UniformRotor::AssRes ( SubVectorHandler WorkVec,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 785 of file rotor.cc.

References Rotor::dCosAlphad, DEBUGCOUT, Rotor::dGetPos(), Rotor::dGetPsi(), Rotor::dLambda, Rotor::dMu, Rotor::dOmega, Rotor::dPsi0, Rotor::dRadius, Rotor::dSinAlphad, Rotor::dUMean, Rotor::dVelocity, ToBeOutput::fToBeOutput(), StructDispNode::GetXCurr(), Rotor::InitParam(), Rotor::pRotor, InducedVelocity::ResetForce(), VectorHandler::Resize(), and Rotor::VCraft.

789 {
790  DEBUGCOUT("Entering UniformRotor::AssRes()" << std::endl);
791 
792 #ifdef USE_MPI
793  ExchangeLoads(fToBeOutput());
794  if (!is_parallel || IndVelComm.Get_rank() == 0)
795 #endif /* USE_MPI */
796  {
797  /* Calcola parametri vari */
799 
800 #ifdef DEBUG
801  // Prova:
802 #if 0
803  Vec3 XTmp(2.,2.,0.);
804  doublereal dPsiTmp = dGetPsi(XTmp);
805  doublereal dXTmp = dGetPos(XTmp);
806  std::cout
807  << "X rotore: " << pRotor->GetXCurr() << std::endl
808  << "V rotore: " << VCraft << std::endl
809  << "X punto: " << XTmp << std::endl
810  << "Omega: " << dOmega << std::endl
811  << "Velocita': " << dVelocity << std::endl
812  << "Psi0: " << dPsi0 << std::endl
813  << "Psi punto: " << dPsiTmp << std::endl
814  << "Raggio: " << dRadius << std::endl
815  << "r punto: " << dXTmp << std::endl
816  << "mu: " << dMu << std::endl
817  << "lambda: " << dLambda << std::endl
818  << "cos(ad): " << dCosAlphad << std::endl
819  << "sin(ad): " << dSinAlphad << std::endl
820  << "UMean: " << dUMean << std::endl;
821 #endif
822 #endif /* DEBUG */
823  }
824 
825 #ifdef USE_MPI
826  ExchangeVelocity();
827 #endif /* USE_MPI */
828 
829  ResetForce();
830 
831  /* Non tocca il residuo */
832  WorkVec.Resize(0);
833 
834 #if defined(USE_MULTITHREAD) && defined(MBDYN_X_MT_ASSRES)
835  Done();
836 #endif // USE_MULTITHREAD && MBDYN_X_MT_ASSRES
837 
838  return WorkVec;
839 }
doublereal dVelocity
Definition: rotor.h:86
virtual void ResetForce(void)
Definition: indvel.cc:276
virtual doublereal dGetPsi(const Vec3 &X) const
Definition: rotor.cc:286
doublereal dCosAlphad
Definition: rotor.h:81
Definition: matvec3.h:98
doublereal dSinAlphad
Definition: rotor.h:80
doublereal dOmega
Definition: rotor.h:87
doublereal dPsi0
Definition: rotor.h:79
Vec3 VCraft
Definition: rotor.h:78
#define DEBUGCOUT(msg)
Definition: myassert.h:232
doublereal dMu
Definition: rotor.h:82
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
virtual doublereal dGetPos(const Vec3 &X) const
Definition: rotor.cc:296
virtual flag fToBeOutput(void) const
Definition: output.cc:884
virtual void InitParam(bool bComputeMeanInducedVelocity=true)
Definition: rotor.cc:323
doublereal dLambda
Definition: rotor.h:83
doublereal dRadius
Definition: rotor.h:51
const StructNode * pRotor
Definition: rotor.h:46
double doublereal
Definition: colamd.c:52
doublereal dUMean
Definition: rotor.h:54
virtual void Resize(integer iNewSize)=0

Here is the call graph for this function:

Vec3 UniformRotor::GetInducedVelocity ( Elem::Type  type,
unsigned  uLabel,
unsigned  uPnt,
const Vec3 X 
) const
virtual

Implements InducedVelocity.

Definition at line 884 of file rotor.cc.

References Rotor::dUMeanPrev, and Rotor::RRot3.

886 {
887 #if defined(USE_MULTITHREAD) && defined(MBDYN_X_MT_ASSRES)
888  Wait();
889 #endif /* USE_MULTITHREAD && MBDYN_X_MT_ASSRES */
890 
891  return RRot3*dUMeanPrev;
892 };
Vec3 RRot3
Definition: rotor.h:77
doublereal dUMeanPrev
Definition: rotor.h:56
InducedVelocity::Type UniformRotor::GetInducedVelocityType ( void  ) const
inlinevirtual

Implements InducedVelocity.

Definition at line 306 of file rotor.h.

References InducedVelocity::UNIFORM.

306  {
308  };
void UniformRotor::Init ( const StructNode pCraft,
const Mat3x3 rrot,
const StructNode pRotor,
const StructNode pGround,
ResForceSet **  ppres,
const doublereal dOR,
const doublereal dR,
DriveCaller pdW,
unsigned int  iMaxIt,
const doublereal dTol,
const doublereal dE,
const doublereal dCH,
const doublereal dCFF,
flag  fOut 
)
protectedvirtual

Definition at line 725 of file rotor.cc.

References ASSERT, Rotor::dArea, Rotor::dForwardFlightCorrection, Rotor::dHoverCorrection, Rotor::dOmegaRef, Rotor::dRadius, Rotor::dUMeanPrev, Rotor::dVTipRef, Rotor::Init(), M_PI, Vec3::pGetVec(), ExternResForces::Pole(), InducedVelocity::Res, Rotor::RRot3, SAFENEWARR, SAFENEWWITHCONSTRUCTOR, DriveOwner::Set(), and Rotor::Weight.

Referenced by UniformRotor().

739 {
740  ASSERT(dOR > 0.);
741  ASSERT(dR > 0.);
742  ASSERT(pdW != 0);
743 
744  Rotor::Init(pCraft, rrot, pRotor, pGround, ppres, dR, iMaxIt, dTol, dE, fOut);
745 
746  dOmegaRef = dOR;
748  dArea = M_PI*dRadius*dRadius;
749  Weight.Set(pdW);
750  dHoverCorrection = dCH;
752 
753 #ifdef USE_MPI
754  if (is_parallel) {
755  SAFENEWARR(pBlockLenght, int, 7);
756  SAFENEWARR(pDispl, MPI::Aint, 7);
757  for (int i = 0; i < 7; i++) {
758  pBlockLenght[i] = 1;
759  }
760  for (int i = 0; i < 3; i++) {
761  pDispl[i] = MPI::Get_address(&(RRot3.pGetVec()[i]));
762  }
763  pDispl[3] = MPI::Get_address(&dUMeanPrev);
764  for (int i = 4; i <= 6; i++) {
765  pDispl[i] = MPI::Get_address(&(Res.Pole().pGetVec()[i-4]));
766  }
767  SAFENEWWITHCONSTRUCTOR(pIndVelDataType, MPI::Datatype,
768  MPI::Datatype(MPI::DOUBLE.Create_hindexed(7, pBlockLenght, pDispl)));
769  pIndVelDataType->Commit();
770  }
771 #endif /* USE_MPI */
772 }
ExternResForces Res
Definition: indvel.h:114
doublereal dHoverCorrection
Definition: rotor.h:70
#define M_PI
Definition: gradienttest.cc:67
doublereal dArea
Definition: rotor.h:53
doublereal dForwardFlightCorrection
Definition: rotor.h:72
Vec3 RRot3
Definition: rotor.h:77
const Vec3 & Pole(void) const
Definition: resforces.cc:145
virtual void Init(const StructNode *pC, const Mat3x3 &rrot, const StructNode *pR, const StructNode *pG, ResForceSet **ppres, const doublereal &dR, unsigned int iMaxIt, const doublereal &dTol, const doublereal &dE, flag fOut)
Definition: rotor.cc:112
DriveOwner Weight
Definition: rotor.h:65
doublereal dUMeanPrev
Definition: rotor.h:56
#define ASSERT(expression)
Definition: colamd.c:977
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
Definition: mynewmem.h:698
doublereal dVTipRef
Definition: rotor.h:52
doublereal dOmegaRef
Definition: rotor.h:49
const doublereal * pGetVec(void) const
Definition: matvec3.h:192
void Set(const DriveCaller *pDC)
Definition: drive.cc:647
doublereal dRadius
Definition: rotor.h:51
#define SAFENEWARR(pnt, item, sz)
Definition: mynewmem.h:701

Here is the call graph for this function:

std::ostream & UniformRotor::Restart ( std::ostream &  out) const
virtual

Reimplemented from Rotor.

Definition at line 842 of file rotor.cc.

References Rotor::dForwardFlightCorrection, Rotor::dHoverCorrection, Rotor::dRadius, DriveOwner::pGetDriveCaller(), Rotor::Restart(), DriveCaller::Restart(), and Rotor::Weight.

843 {
844  return Rotor::Restart(out) << "uniform, " << dRadius << ", ",
846  << ", correction, " << dHoverCorrection
847  << ", " << dForwardFlightCorrection << ';' << std::endl;
848 }
doublereal dHoverCorrection
Definition: rotor.h:70
virtual std::ostream & Restart(std::ostream &out) const
Definition: rotor.cc:535
doublereal dForwardFlightCorrection
Definition: rotor.h:72
DriveOwner Weight
Definition: rotor.h:65
virtual std::ostream & Restart(std::ostream &out) const =0
DriveCaller * pGetDriveCaller(void) const
Definition: drive.cc:658
doublereal dRadius
Definition: rotor.h:51

Here is the call graph for this function:


The documentation for this class was generated from the following files: