37 #include "ac/pthread.h" 
   49 : 
virtual public Elem {
 
   84         MPI::Intracomm IndVelComm;
 
   97         MPI::Datatype* pIndVelDataType;
 
  100 #if defined(USE_MULTITHREAD) && defined(MBDYN_X_MT_ASSRES) 
  101         mutable pthread_mutex_t forces_mutex;
 
  103         mutable pthread_mutex_t induced_velocity_mutex;
 
  104         mutable pthread_cond_t induced_velocity_cond;
 
  107         void Wait(
void) 
const;
 
  108         void Done(
void) 
const;
 
  109 #endif // USE_MULTITHREAD && MBDYN_X_MT_ASSRES 
  164 #if defined(USE_MULTITHREAD) && defined(MBDYN_X_MT_ASSRES) 
  166 #endif // USE_MULTITHREAD && MBDYN_X_MT_ASSRES 
  171 #if defined(USE_MULTITHREAD) && defined(MBDYN_X_MT_ASSRES) 
  173 #endif // USE_MULTITHREAD && MBDYN_X_MT_ASSRES 
  194                 const Elem *pEl, 
unsigned uPnt,
 
  204                 unsigned uLabel, 
unsigned uPnt, 
const Vec3& X) 
const = 0;
 
  243                 connectedNodes.resize(1);
 
  244                 connectedNodes[0] = 
pCraft;
 
  249         void ExchangeLoads(
flag fWhat); 
 
  250         void InitializeIndVelComm(MPI::Intracomm* 
Rot); 
 
  251         void ExchangeVelocity(
void);
 
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const 
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
virtual void ResetForce(void)
virtual ~InducedVelocity(void)
virtual doublereal dGetPrivData(unsigned int i) const 
#define MBDYN_EXCEPT_ARGS_PASSTHRU
virtual const Vec3 & Force(void) const 
#define MBDYN_EXCEPT_ARGS_DECL
virtual Elem::Type GetElemType(void) const =0
std::vector< Hint * > Hints
virtual const Vec3 & Moment(void) const 
virtual const Vec3 & GetXCurr(void) const 
virtual DofOrder::Order GetDofType(unsigned int i) const 
virtual unsigned int iGetNumPrivData(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 bool bSectionalForces(void) const 
virtual void AddForce(const Elem *pEl, const StructNode *pNode, const Vec3 &F, const Vec3 &M, const Vec3 &X)
virtual InducedVelocity::Type GetInducedVelocityType(void) const =0
InducedVelocity(unsigned int uL, const StructNode *pCraft, ResForceSet **ppres, flag fOut)
virtual Vec3 GetInducedVelocity(Elem::Type type, unsigned uLabel, unsigned uPnt, const Vec3 &X) const =0
virtual void SetInitialValue(VectorHandler &)
Mat3x3 Rot(const Vec3 &phi)
#define ASSERT(expression)
virtual const Vec3 & GetXCurr(void) const 
virtual unsigned int iGetNumDof(void) const 
virtual void SetValue(DataManager *pDM, VectorHandler &, VectorHandler &, SimulationEntity::Hints *ph=0)
ErrInfiniteMeanInducedVelocity(MBDYN_EXCEPT_ARGS_DECL)
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const 
virtual const Vec3 & GetMoments(void) const 
virtual unsigned int iGetPrivDataIdx(const char *s) const 
virtual const Vec3 & GetForces(void) const 
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
const StructNode * pCraft