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

#include <pzbeam.h>

Inheritance diagram for PiezoActuatorVEBeam:
Collaboration diagram for PiezoActuatorVEBeam:

Public Member Functions

 PiezoActuatorVEBeam (unsigned int uL, const StructNode *pN1, const StructNode *pN2, const StructNode *pN3, const Vec3 &F1, const Vec3 &F2, const Vec3 &F3, const Mat3x3 &R1, const Mat3x3 &R2, const Mat3x3 &R3, const Mat3x3 &r_I, const Mat3x3 &rII, const ConstitutiveLaw6D *pD_I, const ConstitutiveLaw6D *pDII, int iEl, const ScalarDifferentialNode **pEDof, const Mat3xN &T_Ie, const Mat3xN &T_Ik, const Mat3xN &TIIe, const Mat3xN &TIIk, OrientationDescription ood, flag fOut)
 
virtual ~PiezoActuatorVEBeam (void)
 
virtual Beam::Type GetBeamType (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
void SetValue (DataManager *pDM, VectorHandler &, VectorHandler &, SimulationEntity::Hints *ph=0)
 
virtual void AfterPredict (VectorHandler &, VectorHandler &)
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual VariableSubMatrixHandlerInitialAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
virtual SubVectorHandlerInitialAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr)
 
virtual void GetConnectedNodes (std::vector< const Node * > &connectedNodes) const
 
- Public Member Functions inherited from ViscoElasticBeam
 ViscoElasticBeam (unsigned int uL, const StructNode *pN1, const StructNode *pN2, const StructNode *pN3, const Vec3 &F1, const Vec3 &F2, const Vec3 &F3, const Mat3x3 &R1, const Mat3x3 &R2, const Mat3x3 &R3, const Mat3x3 &r_I, const Mat3x3 &rII, const ConstitutiveLaw6D *pD_I, const ConstitutiveLaw6D *pDII, OrientationDescription ood, flag fOut)
 
 ViscoElasticBeam (unsigned int uL, const StructNode *pN1, const StructNode *pN2, const StructNode *pN3, const Vec3 &F1, const Vec3 &F2, const Vec3 &F3, const Mat3x3 &R1, const Mat3x3 &R2, const Mat3x3 &R3, const Mat3x3 &r_I, const Mat3x3 &rII, const ConstitutiveLaw6D *pD_I, const ConstitutiveLaw6D *pDII, doublereal dM_I, const Vec3 &s0_I, const Mat3x3 &j0_I, doublereal dMII, const Vec3 &s0II, const Mat3x3 &j0II, OrientationDescription ood, flag fOut)
 
virtual ~ViscoElasticBeam (void)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP, const VectorHandler &XPP)
 
virtual doublereal dGetPrivData (unsigned int i) const
 
- Public Member Functions inherited from Elem
 Elem (unsigned int uL, flag fOut)
 
virtual ~Elem (void)
 
virtual unsigned int iGetNumDof (void) const
 
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 DofOrder::Order GetDofType (unsigned int) 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 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 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 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 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 Beam
 Beam (unsigned int uL, const StructNode *pN1, const StructNode *pN2, const StructNode *pN3, const Vec3 &F1, const Vec3 &F2, const Vec3 &F3, const Mat3x3 &R1, const Mat3x3 &R2, const Mat3x3 &R3, const Mat3x3 &r_I, const Mat3x3 &rII, const ConstitutiveLaw6D *pD_I, const ConstitutiveLaw6D *pDII, OrientationDescription ood, flag fOut)
 
 Beam (unsigned int uL, const StructNode *pN1, const StructNode *pN2, const StructNode *pN3, const Vec3 &F1, const Vec3 &F2, const Vec3 &F3, const Mat3x3 &R1, const Mat3x3 &R2, const Mat3x3 &R3, const Mat3x3 &r_I, const Mat3x3 &rII, const ConstitutiveLaw6D *pD_I, const ConstitutiveLaw6D *pDII, doublereal dM_I, const Vec3 &s0_I, const Mat3x3 &j0_I, doublereal dMII, const Vec3 &s0II, const Mat3x3 &j0II, OrientationDescription ood, flag fOut)
 
virtual ~Beam (void)
 
virtual Elem::Type GetElemType (void) const
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr, const VectorHandler &XPrimePrimeCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
 
virtual bool bInverseDynamics (void) const
 
void AssMats (VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void OutputPrepare (OutputHandler &OH)
 
virtual void Output (OutputHandler &OH) const
 
virtual unsigned int iGetInitialNumDof (void) const
 
virtual void InitialWorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual void SetInitialValue (VectorHandler &)
 
virtual unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual const StructNodepGetNode (unsigned int i) const
 
- Public Member Functions inherited from ElemGravityOwner
 ElemGravityOwner (unsigned int uL, flag fOut)
 
virtual ~ElemGravityOwner (void)
 
virtual doublereal dGetM (void) const
 
Vec3 GetS (void) const
 
Mat3x3 GetJ (void) const
 
Vec3 GetB (void) const
 
Vec3 GetG (void) const
 
- Public Member Functions inherited from GravityOwner
 GravityOwner (void)
 
virtual ~GravityOwner (void)
 
void PutGravity (const Gravity *pG)
 
virtual bool bGetGravity (const Vec3 &X, Vec3 &Acc) const
 
- Public Member Functions inherited from InitialAssemblyElem
 InitialAssemblyElem (unsigned int uL, flag fOut)
 
virtual ~InitialAssemblyElem (void)
 
- Public Member Functions inherited from SubjectToInitialAssembly
 SubjectToInitialAssembly (void)
 
virtual ~SubjectToInitialAssembly (void)
 

Protected Member Functions

virtual void AssStiffnessMat (FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void AssStiffnessVec (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void AddInternalForces (Vec6 &AzLoc, unsigned int iSez)
 
- Protected Member Functions inherited from ViscoElasticBeam
void Init (void)
 
- Protected Member Functions inherited from Beam
Vec3 InterpDeriv (const Vec3 &v1, const Vec3 &v2, const Vec3 &v3, enum Section Sec)
 
virtual void AssInertiaMat (FullSubMatrixHandler &, FullSubMatrixHandler &, doublereal, const VectorHandler &, const VectorHandler &)
 
virtual void AssInertiaVec (SubVectorHandler &, doublereal, const VectorHandler &, const VectorHandler &)
 
virtual void DsDxi (void)
 
virtual void Omega0 (void)
 
virtual std::ostream & Restart_ (std::ostream &out) const
 
void Init (void)
 
- Protected Member Functions inherited from ElemGravityOwner
virtual Vec3 GetS_int (void) const
 
virtual Mat3x3 GetJ_int (void) const
 
virtual Vec3 GetB_int (void) const
 
virtual Vec3 GetG_int (void) const
 

Protected Attributes

int iNumElec
 
const ScalarDifferentialNode ** pvElecDofs
 
VecN V
 
Mat3xN PiezoMat [NUMDEFORM][NUMSEZ]
 
- Protected Attributes inherited from ViscoElasticBeam
Vec3 LPrime [NUMSEZ]
 
Vec3 gPrime [NUMSEZ]
 
Vec3 LPrimeRef [NUMSEZ]
 
Vec6 DefPrimeLocRef [NUMSEZ]
 
Mat6x6 ERef [NUMSEZ]
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from Beam
OrientationDescription od
 
const StructNodepNode [NUMNODES]
 
const Vec3 f [NUMNODES]
 
Vec3 fRef [NUMNODES]
 
const Mat3x3 RNode [NUMNODES]
 
Mat3x3 R [NUMSEZ]
 
Mat3x3 RRef [NUMSEZ]
 
Mat3x3 RPrev [NUMSEZ]
 
ConstitutiveLaw6DOwnerpD [NUMSEZ]
 
Mat6x6 DRef [NUMSEZ]
 
const bool bConsistentInertia
 
const doublereal dMass_I
 
const Vec3 S0_I
 
const Mat3x3 J0_I
 
const doublereal dMassII
 
const Vec3 S0II
 
const Mat3x3 J0II
 
Vec3 Omega [NUMSEZ]
 
Vec3 OmegaRef [NUMSEZ]
 
Vec6 Az [NUMSEZ]
 
Vec6 AzRef [NUMSEZ]
 
Vec6 AzLoc [NUMSEZ]
 
Vec6 DefLoc [NUMSEZ]
 
Vec6 DefLocRef [NUMSEZ]
 
Vec6 DefLocPrev [NUMSEZ]
 
Vec6 DefPrimeLoc [NUMSEZ]
 
Vec3 p [NUMSEZ]
 
Vec3 g [NUMSEZ]
 
Vec3 L0 [NUMSEZ]
 
Vec3 L [NUMSEZ]
 
Vec3 LRef [NUMSEZ]
 
doublereal dsdxi [NUMSEZ]
 
bool bFirstRes
 
- Protected Attributes inherited from GravityOwner
GravitypGravity
 

Private Member Functions

 PiezoActuatorVEBeam (const PiezoActuatorVEBeam &)
 
const PiezoActuatorVEBeamoperator= (const PiezoActuatorVEBeam &)
 

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 Beam
enum  Type {
  UNKNOWN = -1, ELASTIC = 0, VISCOELASTIC, PIEZOELECTRICELASTIC,
  PIEZOELECTRICVISCOELASTIC, LASTBEAMTYPE
}
 
enum  {
  OUTPUT_NONE = 0x000U, OUTPUT_EP_X = (ToBeOutput::OUTPUT_PRIVATE << 0), OUTPUT_EP_R = (ToBeOutput::OUTPUT_PRIVATE << 1), OUTPUT_EP_CONFIGURATION = (OUTPUT_EP_X | OUTPUT_EP_R),
  OUTPUT_EP_F = (ToBeOutput::OUTPUT_PRIVATE << 2), OUTPUT_EP_M = (ToBeOutput::OUTPUT_PRIVATE << 3), OUTPUT_EP_FORCES = (OUTPUT_EP_F | OUTPUT_EP_M ), OUTPUT_EP_NU = (ToBeOutput::OUTPUT_PRIVATE << 4),
  OUTPUT_EP_K = (ToBeOutput::OUTPUT_PRIVATE << 5), OUTPUT_EP_STRAINS = (OUTPUT_EP_NU | OUTPUT_EP_K), OUTPUT_EP_NUP = (ToBeOutput::OUTPUT_PRIVATE << 6), OUTPUT_EP_KP = (ToBeOutput::OUTPUT_PRIVATE << 7),
  OUTPUT_EP_STRAIN_RATES = (OUTPUT_EP_NUP | OUTPUT_EP_KP), OUTPUT_DEFAULT = (OUTPUT_EP_F | OUTPUT_EP_M), OUTPUT_EP_ALL = (ToBeOutput::OUTPUT_PRIVATE_MASK)
}
 
enum  Section { S_I = 0, SII = 1, NUMSEZ = 2 }
 
enum  NodeName { NODE1 = 0, NODE2 = 1, NODE3 = 2, NUMNODES = 3 }
 
enum  Deformations { STRAIN = 0, CURVAT = 1, NUMDEFORM = 2 }
 
- Static Protected Member Functions inherited from Beam
static unsigned int iGetPrivDataIdx_int (const char *s, ConstLawType::Type type)
 
static Vec3 InterpState (const Vec3 &v1, const Vec3 &v2, const Vec3 &v3, enum Section Sec)
 
- Static Protected Attributes inherited from Beam
static const unsigned int iNumPrivData
 

Detailed Description

Definition at line 150 of file pzbeam.h.

Constructor & Destructor Documentation

PiezoActuatorVEBeam::PiezoActuatorVEBeam ( const PiezoActuatorVEBeam )
private
PiezoActuatorVEBeam::PiezoActuatorVEBeam ( unsigned int  uL,
const StructNode pN1,
const StructNode pN2,
const StructNode pN3,
const Vec3 F1,
const Vec3 F2,
const Vec3 F3,
const Mat3x3 R1,
const Mat3x3 R2,
const Mat3x3 R3,
const Mat3x3 r_I,
const Mat3x3 rII,
const ConstitutiveLaw6D pD_I,
const ConstitutiveLaw6D pDII,
int  iEl,
const ScalarDifferentialNode **  pEDof,
const Mat3xN T_Ie,
const Mat3xN T_Ik,
const Mat3xN TIIe,
const Mat3xN TIIk,
OrientationDescription  ood,
flag  fOut 
)

Definition at line 350 of file pzbeam.cc.

References ASSERT, Mat3xN::Copy(), Beam::CURVAT, iNumElec, PiezoMat, pvElecDofs, Beam::S_I, Beam::SII, and Beam::STRAIN.

373  : Elem(uL, fOut),
374 ViscoElasticBeam(uL, pN1, pN2, pN3, F1, F2, F3, R1, R2, R3,
375  r_I, rII, pD_I, pDII, ood, fOut),
376 iNumElec(iEl), pvElecDofs(pEDof), V(iEl)
377 {
378 #ifdef DEBUG
379  ASSERT(iNumElec > 0);
380  ASSERT(pvElecDofs != NULL);
381  for (int i = iNumElec; i-- > 0; ) {
382  ASSERT(pvElecDofs[i] != NULL);
383  }
384 #endif /* DEBUG */
385 
386  PiezoMat[STRAIN][S_I].Copy(T_Ie);
387  PiezoMat[STRAIN][SII].Copy(TIIe);
388  PiezoMat[CURVAT][S_I].Copy(T_Ik);
389  PiezoMat[CURVAT][SII].Copy(TIIk);
390 }
ViscoElasticBeam(unsigned int uL, const StructNode *pN1, const StructNode *pN2, const StructNode *pN3, const Vec3 &F1, const Vec3 &F2, const Vec3 &F3, const Mat3x3 &R1, const Mat3x3 &R2, const Mat3x3 &R3, const Mat3x3 &r_I, const Mat3x3 &rII, const ConstitutiveLaw6D *pD_I, const ConstitutiveLaw6D *pDII, OrientationDescription ood, flag fOut)
Definition: beam.cc:1310
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:158
#define ASSERT(expression)
Definition: colamd.c:977
const Mat3xN & Copy(const Mat3xN &m)
Definition: matvec3n.cc:407
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41
Mat3xN PiezoMat[NUMDEFORM][NUMSEZ]
Definition: pzbeam.h:160

Here is the call graph for this function:

PiezoActuatorVEBeam::~PiezoActuatorVEBeam ( void  )
virtual

Definition at line 394 of file pzbeam.cc.

References pvElecDofs, and SAFEDELETEARR.

395 {
397 }
#define SAFEDELETEARR(pnt)
Definition: mynewmem.h:713
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:158

Member Function Documentation

void PiezoActuatorVEBeam::AddInternalForces ( Vec6 AzLoc,
unsigned int  iSez 
)
protectedvirtual

Reimplemented from Beam.

Definition at line 343 of file pzbeam.cc.

References Beam::CURVAT, PiezoMat, Beam::STRAIN, and V.

344 {
345  AzLoc += Vec6(PiezoMat[STRAIN][iSez]*V, PiezoMat[CURVAT][iSez]*V);
346 }
Definition: matvec6.h:37
Mat3xN PiezoMat[NUMDEFORM][NUMSEZ]
Definition: pzbeam.h:160
void PiezoActuatorVEBeam::AfterPredict ( VectorHandler X,
VectorHandler XP 
)
virtual

Reimplemented from ViscoElasticBeam.

Definition at line 434 of file pzbeam.cc.

References ViscoElasticBeam::AfterPredict(), iNumElec, VecN::Put(), pvElecDofs, and V.

436 {
437  // Calcola le deformazioni, aggiorna il legame costitutivo e crea la FDE
438 
439  for (integer iCnt = 1; iCnt <= iNumElec; iCnt++) {
440  V.Put(iCnt, pvElecDofs[iCnt-1]->dGetX());
441  }
442 
444 }
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:158
void Put(integer i, const doublereal &d)
Definition: matvec3n.h:159
virtual void AfterPredict(VectorHandler &, VectorHandler &)
Definition: beam.cc:1657
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

VariableSubMatrixHandler & PiezoActuatorVEBeam::AssJac ( VariableSubMatrixHandler WorkMat,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 449 of file pzbeam.cc.

References Beam::AssInertiaMat(), AssStiffnessMat(), Beam::bConsistentInertia, DEBUGCOUT, StructDispNode::iGetFirstMomentumIndex(), StructDispNode::iGetFirstPositionIndex(), iNumElec, Beam::NODE1, Beam::NODE2, Beam::NODE3, Beam::pNode, FullSubMatrixHandler::PutColIndex(), FullSubMatrixHandler::PutRowIndex(), pvElecDofs, FullSubMatrixHandler::ResizeReset(), and VariableSubMatrixHandler::SetFull().

453 {
454  DEBUGCOUT("Entering PiezoActuatorVEBeam::AssJac(); will result in call to AssStiffnessMat()" << std::endl);
455 
456  integer iNode1FirstMomIndex = pNode[NODE1]->iGetFirstMomentumIndex();
457  integer iNode1FirstPosIndex = pNode[NODE1]->iGetFirstPositionIndex();
458  integer iNode2FirstMomIndex = pNode[NODE2]->iGetFirstMomentumIndex();
459  integer iNode2FirstPosIndex = pNode[NODE2]->iGetFirstPositionIndex();
460  integer iNode3FirstMomIndex = pNode[NODE3]->iGetFirstMomentumIndex();
461  integer iNode3FirstPosIndex = pNode[NODE3]->iGetFirstPositionIndex();
462 
463  FullSubMatrixHandler& WM = WorkMat.SetFull();
464 
465  /* Dimensiona la matrice, la azzera e pone gli indici corretti */
466  if(bConsistentInertia) {
467  WM.ResizeReset(36, 18+iNumElec);
468  } else {
469  WM.ResizeReset(18, 18+iNumElec);
470  }
471 
472  for (int iCnt = 1; iCnt <= 6; iCnt++) {
473  WM.PutRowIndex(iCnt, iNode1FirstMomIndex+iCnt);
474  WM.PutColIndex(iCnt, iNode1FirstPosIndex+iCnt);
475  WM.PutRowIndex(6+iCnt, iNode2FirstMomIndex+iCnt);
476  WM.PutColIndex(6+iCnt, iNode2FirstPosIndex+iCnt);
477  WM.PutRowIndex(12+iCnt, iNode3FirstMomIndex+iCnt);
478  WM.PutColIndex(12+iCnt, iNode3FirstPosIndex+iCnt);
479  }
480 
481  for (int iCnt = 1; iCnt <= iNumElec; iCnt++) {
482  WM.PutColIndex(18+iCnt, pvElecDofs[iCnt-1]->iGetFirstColIndex()+1);
483  }
484 
485  AssStiffnessMat(WM, WM, dCoef, XCurr, XPrimeCurr);
486 
487  if (bConsistentInertia) {
488  for (int iCnt = 1; iCnt <= 6; iCnt++) {
489  WM.PutRowIndex(18+iCnt, iNode1FirstPosIndex+iCnt);
490  WM.PutRowIndex(24+iCnt, iNode2FirstPosIndex+iCnt);
491  WM.PutRowIndex(30+iCnt, iNode3FirstPosIndex+iCnt);
492  }
493  ViscoElasticBeam::AssInertiaMat(WM, WM, dCoef, XCurr, XPrimeCurr);
494  }
495 
496  return WorkMat;
497 }
void PutColIndex(integer iSubCol, integer iCol)
Definition: submat.h:325
virtual void AssInertiaMat(FullSubMatrixHandler &, FullSubMatrixHandler &, doublereal, const VectorHandler &, const VectorHandler &)
Definition: beam.h:232
FullSubMatrixHandler & SetFull(void)
Definition: submat.h:1168
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:158
#define DEBUGCOUT(msg)
Definition: myassert.h:232
virtual integer iGetFirstMomentumIndex(void) const =0
virtual integer iGetFirstPositionIndex(void) const
Definition: strnode.h:452
const StructNode * pNode[NUMNODES]
Definition: beam.h:142
virtual void ResizeReset(integer, integer)
Definition: submat.cc:182
virtual void AssStiffnessMat(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: pzbeam.cc:279
void PutRowIndex(integer iSubRow, integer iRow)
Definition: submat.h:311
const bool bConsistentInertia
Definition: beam.h:162
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

void PiezoActuatorVEBeam::AssStiffnessMat ( FullSubMatrixHandler WMA,
FullSubMatrixHandler WMB,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
protectedvirtual

Reimplemented from ViscoElasticBeam.

Definition at line 279 of file pzbeam.cc.

References FullSubMatrixHandler::Add(), ViscoElasticBeam::AssStiffnessMat(), Beam::CURVAT, DEBUGCOUT, iNumElec, Mat3xN::LeftMult(), MatCross, Beam::NODE1, Beam::NODE2, Beam::NODE3, Beam::p, PiezoMat, Beam::pNode, Beam::R, Beam::S_I, Beam::SII, Beam::STRAIN, and FullSubMatrixHandler::Sub().

Referenced by AssJac().

284 {
285  DEBUGCOUT("Entering PiezoActuatorVEBeam::AssStiffnessMat()" << std::endl);
286 
287  ViscoElasticBeam::AssStiffnessMat(WMA, WMB, dCoef, XCurr, XPrimeCurr);
288 
289  Mat3xN tmp1(iNumElec);
290  Mat3xN tmp2(iNumElec);
291 
292  tmp1.LeftMult(R[S_I]*dCoef, PiezoMat[STRAIN][S_I]);
293  WMA.Sub(1, 19, tmp1);
294  WMA.Add(7, 19, tmp1);
295  tmp2.LeftMult(Mat3x3(MatCross, p[S_I] - pNode[NODE1]->GetXCurr()), tmp1);
296  WMA.Add(4, 19, tmp2);
297  tmp2.LeftMult(Mat3x3(MatCross, p[S_I] - pNode[NODE2]->GetXCurr()), tmp1);
298  WMA.Sub(10, 19, tmp2);
299 
300  tmp1.LeftMult(R[S_I]*dCoef, PiezoMat[CURVAT][S_I]);
301  WMA.Sub(4, 19, tmp1);
302  WMA.Add(10, 19, tmp1);
303 
304  tmp1.LeftMult(R[SII]*dCoef, PiezoMat[STRAIN][SII]);
305  WMA.Sub(7, 19, tmp1);
306  WMA.Add(13, 19, tmp1);
307  tmp2.LeftMult(Mat3x3(MatCross, p[SII] - pNode[NODE2]->GetXCurr()), tmp1);
308  WMA.Add(10, 19, tmp2);
309  tmp2.LeftMult(Mat3x3(MatCross, p[SII] - pNode[NODE3]->GetXCurr()), tmp1);
310  WMA.Sub(16, 19, tmp2);
311 
312  tmp1.LeftMult(R[SII]*dCoef, PiezoMat[CURVAT][SII]);
313  WMA.Sub(10, 19, tmp1);
314  WMA.Add(16, 19, tmp1);
315 }
const MatCross_Manip MatCross
Definition: matvec3.cc:639
void Add(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:209
virtual void AssStiffnessMat(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: beam.cc:1404
Mat3x3 R[NUMSEZ]
Definition: beam.h:151
#define DEBUGCOUT(msg)
Definition: myassert.h:232
const StructNode * pNode[NUMNODES]
Definition: beam.h:142
void Sub(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:215
Mat3xN PiezoMat[NUMDEFORM][NUMSEZ]
Definition: pzbeam.h:160
Vec3 p[NUMSEZ]
Definition: beam.h:187

Here is the call graph for this function:

void PiezoActuatorVEBeam::AssStiffnessVec ( SubVectorHandler WorkVec,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
protectedvirtual

Reimplemented from ViscoElasticBeam.

Definition at line 318 of file pzbeam.cc.

References ViscoElasticBeam::AssStiffnessVec(), Beam::bFirstRes, DEBUGCOUT, iNumElec, VecN::Put(), pvElecDofs, and V.

322 {
323  DEBUGCOUT("Entering PiezoActuatorVEBeam::AssStiffnessVec()" << std::endl);
324 
325  /* Riceve il vettore gia' dimensionato e con gli indici a posto
326  * per scrivere il residuo delle equazioni di equilibrio dei tre nodi */
327 
328  /* Per la trattazione teorica, il riferimento e' il file ul-travi.tex
329  * (ora e' superato) */
330 
331  if (bFirstRes) {
332  /* fFirstRes = flag(0); AfterPredict ha gia' calcolato tutto */
333  } else {
334  for (integer iCnt = 1; iCnt <= iNumElec; iCnt++) {
335  V.Put(iCnt, pvElecDofs[iCnt-1]->dGetX());
336  }
337  }
338 
339  ViscoElasticBeam::AssStiffnessVec(WorkVec, dCoef, XCurr, XPrimeCurr);
340 }
virtual void AssStiffnessVec(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: beam.cc:1522
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:158
void Put(integer i, const doublereal &d)
Definition: matvec3n.h:159
#define DEBUGCOUT(msg)
Definition: myassert.h:232
bool bFirstRes
Definition: beam.h:197
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

virtual Beam::Type PiezoActuatorVEBeam::GetBeamType ( void  ) const
inlinevirtual

Reimplemented from ViscoElasticBeam.

Definition at line 195 of file pzbeam.h.

References Beam::PIEZOELECTRICVISCOELASTIC.

virtual void PiezoActuatorVEBeam::GetConnectedNodes ( std::vector< const Node * > &  connectedNodes) const
inlinevirtual

Reimplemented from Elem.

Definition at line 244 of file pzbeam.h.

References Elem::GetConnectedNodes(), iNumElec, and pvElecDofs.

244  {
245  ViscoElasticBeam::GetConnectedNodes(connectedNodes);
246  int NumNodes = connectedNodes.size();
247  connectedNodes.resize(NumNodes + iNumElec);
248  for (int i = 0; i < iNumElec; i++) {
249  connectedNodes[NumNodes + i] = pvElecDofs[i];
250  }
251  };
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:158
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: elem.h:243

Here is the call graph for this function:

VariableSubMatrixHandler & PiezoActuatorVEBeam::InitialAssJac ( VariableSubMatrixHandler WorkMat,
const VectorHandler XCurr 
)
virtual

Reimplemented from Beam.

Definition at line 502 of file pzbeam.cc.

References Beam::InitialAssJac().

504 {
505  return ViscoElasticBeam::InitialAssJac(WorkMat, XCurr);
506 }
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: beam.cc:1236

Here is the call graph for this function:

SubVectorHandler & PiezoActuatorVEBeam::InitialAssRes ( SubVectorHandler WorkVec,
const VectorHandler XCurr 
)
virtual

Reimplemented from Beam.

Definition at line 511 of file pzbeam.cc.

References Beam::InitialAssRes().

513 {
514  return ViscoElasticBeam::InitialAssRes(WorkVec, XCurr);
515 }
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: beam.cc:1265

Here is the call graph for this function:

const PiezoActuatorVEBeam& PiezoActuatorVEBeam::operator= ( const PiezoActuatorVEBeam )
private
std::ostream & PiezoActuatorVEBeam::Restart ( std::ostream &  out) const
virtual

Implements Elem.

Definition at line 402 of file pzbeam.cc.

References Beam::Restart_().

403 {
404  Restart_(out);
405  return out << "/* piezoelectric actuator NOT IMPLEMENTED YET */ ;" << std::endl;
406 }
virtual std::ostream & Restart_(std::ostream &out) const
Definition: beam.cc:576

Here is the call graph for this function:

void PiezoActuatorVEBeam::SetValue ( DataManager pDM,
VectorHandler X,
VectorHandler XP,
SimulationEntity::Hints ph = 0 
)
virtual

Reimplemented from ViscoElasticBeam.

Definition at line 424 of file pzbeam.cc.

References ViscoElasticBeam::SetValue().

427 {
428  /* se proprio non serve, si puo' eliminare */
429  ViscoElasticBeam::SetValue(pDM, X, XP, ph);
430 }
void SetValue(DataManager *pDM, VectorHandler &, VectorHandler &, SimulationEntity::Hints *ph=0)
Definition: beam.cc:1635

Here is the call graph for this function:

void PiezoActuatorVEBeam::WorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
virtual

Implements Elem.

Definition at line 413 of file pzbeam.cc.

References Beam::bConsistentInertia, and iNumElec.

413  {
414  if (bConsistentInertia) {
415  *piNumRows = 36;
416  } else {
417  *piNumRows = 18;
418  }
419  *piNumCols = 18+iNumElec;
420 }
const bool bConsistentInertia
Definition: beam.h:162

Member Data Documentation

int PiezoActuatorVEBeam::iNumElec
protected
Mat3xN PiezoActuatorVEBeam::PiezoMat[NUMDEFORM][NUMSEZ]
protected

Definition at line 160 of file pzbeam.h.

Referenced by AddInternalForces(), AssStiffnessMat(), and PiezoActuatorVEBeam().

const ScalarDifferentialNode** PiezoActuatorVEBeam::pvElecDofs
protected
VecN PiezoActuatorVEBeam::V
protected

Definition at line 159 of file pzbeam.h.

Referenced by AddInternalForces(), AfterPredict(), and AssStiffnessVec().


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