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

#include <pzbeam.h>

Inheritance diagram for PiezoActuatorBeam:
Collaboration diagram for PiezoActuatorBeam:

Public Member Functions

 PiezoActuatorBeam (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 ~PiezoActuatorBeam (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 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 void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP, const VectorHandler &XPP)
 
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 doublereal dGetPrivData (unsigned int i) const
 
virtual const StructNodepGetNode (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 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 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 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 WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from GravityOwner
GravitypGravity
 

Private Member Functions

 PiezoActuatorBeam (const PiezoActuatorBeam &)
 
const PiezoActuatorBeamoperator= (const PiezoActuatorBeam &)
 

Additional Inherited Members

- 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 }
 
- 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 }
 
- 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 40 of file pzbeam.h.

Constructor & Destructor Documentation

PiezoActuatorBeam::PiezoActuatorBeam ( const PiezoActuatorBeam )
private
PiezoActuatorBeam::PiezoActuatorBeam ( 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 111 of file pzbeam.cc.

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

131  : Elem(uL, fOut),
132 Beam(uL, pN1, pN2, pN3, F1, F2, F3, R1, R2, R3, r_I, rII, pD_I, pDII, ood, fOut),
133 iNumElec(iEl), pvElecDofs(pEDof), V(iEl)
134 {
135 #ifdef DEBUG
136  ASSERT(iNumElec > 0);
137  ASSERT(pvElecDofs != NULL);
138  for (int i = iNumElec; i-- > 0; ) {
139  ASSERT(pvElecDofs[i] != NULL);
140  }
141 #endif // DEBUG
142 
143  PiezoMat[STRAIN][S_I].Copy(T_Ie);
144  PiezoMat[STRAIN][SII].Copy(TIIe);
145  PiezoMat[CURVAT][S_I].Copy(T_Ik);
146  PiezoMat[CURVAT][SII].Copy(TIIk);
147 }
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)
Definition: beam.cc:64
#define ASSERT(expression)
Definition: colamd.c:977
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:48
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:50

Here is the call graph for this function:

PiezoActuatorBeam::~PiezoActuatorBeam ( void  )
virtual

Definition at line 151 of file pzbeam.cc.

References pvElecDofs, and SAFEDELETEARR.

152 {
154 }
#define SAFEDELETEARR(pnt)
Definition: mynewmem.h:713
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:48

Member Function Documentation

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

Reimplemented from Beam.

Definition at line 104 of file pzbeam.cc.

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

105 {
106  AzLoc += Vec6(PiezoMat[STRAIN][iSez]*V, PiezoMat[CURVAT][iSez]*V);
107 }
Definition: matvec6.h:37
Mat3xN PiezoMat[NUMDEFORM][NUMSEZ]
Definition: pzbeam.h:50
void PiezoActuatorBeam::AfterPredict ( VectorHandler X,
VectorHandler XP 
)
virtual

Reimplemented from Beam.

Definition at line 190 of file pzbeam.cc.

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

192 {
193  // Calcola le deformazioni, aggiorna il legame costitutivo e crea la FDE
194 
195  for (integer iCnt = 1; iCnt <= iNumElec; iCnt++) {
196  V.Put(iCnt, pvElecDofs[iCnt-1]->dGetX());
197  }
198 
199  Beam::AfterPredict(X, XP);
200 }
virtual void AfterPredict(VectorHandler &, VectorHandler &)
Definition: beam.cc:988
void Put(integer i, const doublereal &d)
Definition: matvec3n.h:159
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:48
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

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

Reimplemented from Beam.

Definition at line 205 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().

209 {
210  DEBUGCOUT("Entering PiezoActuatorBeam::AssJac(); will result in call to AssStiffnessMat()" << std::endl);
211 
212  integer iNode1FirstMomIndex = pNode[NODE1]->iGetFirstMomentumIndex();
213  integer iNode1FirstPosIndex = pNode[NODE1]->iGetFirstPositionIndex();
214  integer iNode2FirstMomIndex = pNode[NODE2]->iGetFirstMomentumIndex();
215  integer iNode2FirstPosIndex = pNode[NODE2]->iGetFirstPositionIndex();
216  integer iNode3FirstMomIndex = pNode[NODE3]->iGetFirstMomentumIndex();
217  integer iNode3FirstPosIndex = pNode[NODE3]->iGetFirstPositionIndex();
218 
219  FullSubMatrixHandler& WM = WorkMat.SetFull();
220 
221  /* Dimensiona la matrice, la azzera e pone gli indici corretti */
222  if(bConsistentInertia) {
223  WM.ResizeReset(36, 18+iNumElec);
224  } else {
225  WM.ResizeReset(18, 18+iNumElec);
226  }
227 
228  for (int iCnt = 1; iCnt <= 6; iCnt++) {
229  WM.PutRowIndex(iCnt, iNode1FirstMomIndex+iCnt);
230  WM.PutColIndex(iCnt, iNode1FirstPosIndex+iCnt);
231  WM.PutRowIndex(6+iCnt, iNode2FirstMomIndex+iCnt);
232  WM.PutColIndex(6+iCnt, iNode2FirstPosIndex+iCnt);
233  WM.PutRowIndex(12+iCnt, iNode3FirstMomIndex+iCnt);
234  WM.PutColIndex(12+iCnt, iNode3FirstPosIndex+iCnt);
235  }
236 
237  for (int iCnt = 1; iCnt <= iNumElec; iCnt++) {
238  WM.PutColIndex(18+iCnt, pvElecDofs[iCnt-1]->iGetFirstColIndex()+1);
239  }
240 
241  AssStiffnessMat(WM, WM, dCoef, XCurr, XPrimeCurr);
242 
243  if (bConsistentInertia) {
244  for (int iCnt = 1; iCnt <= 6; iCnt++) {
245  WM.PutRowIndex(18+iCnt, iNode1FirstPosIndex+iCnt);
246  WM.PutRowIndex(24+iCnt, iNode2FirstPosIndex+iCnt);
247  WM.PutRowIndex(30+iCnt, iNode3FirstPosIndex+iCnt);
248  }
249  Beam::AssInertiaMat(WM, WM, dCoef, XCurr, XPrimeCurr);
250  }
251 
252  return WorkMat;
253 }
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
virtual void AssStiffnessMat(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: pzbeam.cc:40
#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
void PutRowIndex(integer iSubRow, integer iRow)
Definition: submat.h:311
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:48
const bool bConsistentInertia
Definition: beam.h:162
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

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

Reimplemented from Beam.

Definition at line 40 of file pzbeam.cc.

References FullSubMatrixHandler::Add(), Beam::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().

45 {
46  DEBUGCOUT("Entering PiezoActuatorBeam::AssStiffnessMat()" << std::endl);
47 
48  Beam::AssStiffnessMat(WMA, WMB, dCoef, XCurr, XPrimeCurr);
49 
50  Mat3xN tmp1(iNumElec);
51  Mat3xN tmp2(iNumElec);
52 
53  tmp1.LeftMult(R[S_I]*dCoef, PiezoMat[STRAIN][S_I]);
54  WMA.Sub(1, 19, tmp1);
55  WMA.Add(7, 19, tmp1);
56  tmp2.LeftMult(Mat3x3(MatCross, p[S_I] - pNode[NODE1]->GetXCurr()), tmp1);
57  WMA.Add(4, 19, tmp2);
58  tmp2.LeftMult(Mat3x3(MatCross, p[S_I] - pNode[NODE2]->GetXCurr()), tmp1);
59  WMA.Sub(10, 19, tmp2);
60 
61  tmp1.LeftMult(R[S_I]*dCoef, PiezoMat[CURVAT][S_I]);
62  WMA.Sub(4, 19, tmp1);
63  WMA.Add(10, 19, tmp1);
64 
65  tmp1.LeftMult(R[SII]*dCoef, PiezoMat[STRAIN][SII]);
66  WMA.Sub(7, 19, tmp1);
67  WMA.Add(13, 19, tmp1);
68  tmp2.LeftMult(Mat3x3(MatCross, p[SII] - pNode[NODE2]->GetXCurr()), tmp1);
69  WMA.Add(10, 19, tmp2);
70  tmp2.LeftMult(Mat3x3(MatCross, p[SII] - pNode[NODE3]->GetXCurr()), tmp1);
71  WMA.Sub(16, 19, tmp2);
72 
73  tmp1.LeftMult(R[SII]*dCoef, PiezoMat[CURVAT][SII]);
74  WMA.Sub(10, 19, tmp1);
75  WMA.Add(16, 19, tmp1);
76 }
const MatCross_Manip MatCross
Definition: matvec3.cc:639
void Add(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:209
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:50
virtual void AssStiffnessMat(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: beam.cc:613
Vec3 p[NUMSEZ]
Definition: beam.h:187

Here is the call graph for this function:

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

Reimplemented from Beam.

Definition at line 79 of file pzbeam.cc.

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

83 {
84  DEBUGCOUT("Entering PiezoActuatorBeam::AssStiffnessVec()" << std::endl);
85 
86  /* Riceve il vettore gia' dimensionato e con gli indici a posto
87  * per scrivere il residuo delle equazioni di equilibrio dei tre nodi */
88 
89  /* Per la trattazione teorica, il riferimento e' il file ul-travi.tex
90  * (ora e' superato) */
91 
92  if (bFirstRes) {
93  /* fFirstRes = flag(0); AfterPredict ha gia' calcolato tutto */
94  } else {
95  for (integer iCnt = 1; iCnt <= iNumElec; iCnt++) {
96  V.Put(iCnt, pvElecDofs[iCnt-1]->dGetX());
97  }
98  }
99 
100  Beam::AssStiffnessVec(WorkVec, dCoef, XCurr, XPrimeCurr);
101 }
virtual void AssStiffnessVec(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Definition: beam.cc:697
void Put(integer i, const doublereal &d)
Definition: matvec3n.h:159
#define DEBUGCOUT(msg)
Definition: myassert.h:232
bool bFirstRes
Definition: beam.h:197
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:48
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

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

Reimplemented from Beam.

Definition at line 85 of file pzbeam.h.

References Beam::PIEZOELECTRICELASTIC.

85  {
87  };
virtual void PiezoActuatorBeam::GetConnectedNodes ( std::vector< const Node * > &  connectedNodes) const
inlinevirtual

Reimplemented from Beam.

Definition at line 134 of file pzbeam.h.

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

134  {
135  Beam::GetConnectedNodes(connectedNodes);
136  int NumNodes = connectedNodes.size();
137  connectedNodes.resize(NumNodes + iNumElec);
138  for (int i = 0; i < iNumElec; i++) {
139  connectedNodes[NumNodes + i] = pvElecDofs[i];
140  }
141  };
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
Definition: beam.h:434
const ScalarDifferentialNode ** pvElecDofs
Definition: pzbeam.h:48

Here is the call graph for this function:

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

Reimplemented from Beam.

Definition at line 258 of file pzbeam.cc.

References Beam::InitialAssJac().

260 {
261  return Beam::InitialAssJac(WorkMat, XCurr);
262 }
virtual VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
Definition: beam.cc:1236

Here is the call graph for this function:

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

Reimplemented from Beam.

Definition at line 267 of file pzbeam.cc.

References Beam::InitialAssRes().

269 {
270  return Beam::InitialAssRes(WorkVec, XCurr);
271 }
virtual SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
Definition: beam.cc:1265

Here is the call graph for this function:

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

Reimplemented from Beam.

Definition at line 159 of file pzbeam.cc.

References Beam::Restart_().

160 {
161  Restart_(out);
162  return out << "/* piezoelectric actuator NOT IMPLEMENTED YET */ ;" << std::endl;
163 }
virtual std::ostream & Restart_(std::ostream &out) const
Definition: beam.cc:576

Here is the call graph for this function:

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

Reimplemented from Beam.

Definition at line 180 of file pzbeam.cc.

References Beam::SetValue().

183 {
184  /* se proprio non serve, si puo' eliminare */
185  Beam::SetValue(pDM, X, XP, ph);
186 }
void SetValue(DataManager *pDM, VectorHandler &, VectorHandler &, SimulationEntity::Hints *ph=0)
Definition: beam.cc:966

Here is the call graph for this function:

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

Reimplemented from Beam.

Definition at line 169 of file pzbeam.cc.

References Beam::bConsistentInertia, and iNumElec.

169  {
170  if (bConsistentInertia) {
171  *piNumRows = 36;
172  } else {
173  *piNumRows = 18;
174  }
175  *piNumCols = 18+iNumElec;
176 }
const bool bConsistentInertia
Definition: beam.h:162

Member Data Documentation

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

Definition at line 50 of file pzbeam.h.

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

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

Definition at line 49 of file pzbeam.h.

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


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