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

#include <jointreg.h>

Inheritance diagram for DynamicRegularization:
Collaboration diagram for DynamicRegularization:

Public Member Functions

 DynamicRegularization (unsigned int uL, const Joint *j, const std::vector< doublereal > &c, flag fOut)
 
virtual ~DynamicRegularization (void)
 
virtual JointRegularization::Type GetJointRegularizationType (void) const
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void InitialWorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual VariableSubMatrixHandlerInitialAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
virtual SubVectorHandlerInitialAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr)
 
- 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
 
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
 
virtual void GetConnectedNodes (std::vector< const Node * > &connectedNodes) 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 void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *h=0)
 
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 unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual doublereal dGetPrivData (unsigned int i) const
 
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
 
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 JointRegularization
 JointRegularization (unsigned int uL, const Joint *j, flag fOut)
 
virtual ~JointRegularization (void)
 
virtual Elem::Type GetElemType (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual unsigned int iGetInitialNumDof (void) 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 Attributes

std::vector< doublerealdC
 
std::vector< doublerealdLambda
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from JointRegularization
const JointpJ
 

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 JointRegularization
enum  Type {
  UNKNOWN = -1, TIKHONOV_REGULARIZATION = 0, DYNAMIC_REGULARIZATION, JACOBIAN_REGULARIZATION,
  LASTJOINTREGTYPE
}
 

Detailed Description

Definition at line 144 of file jointreg.h.

Constructor & Destructor Documentation

DynamicRegularization::DynamicRegularization ( unsigned int  uL,
const Joint j,
const std::vector< doublereal > &  c,
flag  fOut 
)

Definition at line 224 of file jointreg.cc.

References NO_OP.

228 : Elem(uL, fOut),
229 JointRegularization(uL, j, fOut),
230 dC(c),
231 dLambda(c.size())
232 {
233  NO_OP;
234 }
std::vector< doublereal > dLambda
Definition: jointreg.h:149
#define NO_OP
Definition: myassert.h:74
JointRegularization(unsigned int uL, const Joint *j, flag fOut)
Definition: jointreg.cc:42
static std::stack< cleanup * > c
Definition: cleanup.cc:59
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41
std::vector< doublereal > dC
Definition: jointreg.h:148
DynamicRegularization::~DynamicRegularization ( void  )
virtual

Definition at line 236 of file jointreg.cc.

References NO_OP.

237 {
238  NO_OP;
239 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

void DynamicRegularization::AfterConvergence ( const VectorHandler X,
const VectorHandler XP 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 255 of file jointreg.cc.

References dLambda.

257 {
258  for (std::vector<doublereal>::iterator i = dLambda.begin();
259  i != dLambda.end(); ++i )
260  {
261  *i = 0.;
262  }
263 }
std::vector< doublereal > dLambda
Definition: jointreg.h:149
VariableSubMatrixHandler & DynamicRegularization::AssJac ( VariableSubMatrixHandler WorkMat,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 289 of file jointreg.cc.

References dC, DofOwnerOwner::iGetFirstIndex(), Elem::iGetNumDof(), JointRegularization::pJ, SparseSubMatrixHandler::PutItem(), SparseSubMatrixHandler::ResizeReset(), and VariableSubMatrixHandler::SetSparse().

293 {
294  SparseSubMatrixHandler& WM = WorkMat.SetSparse();
295 
296  integer iFirstIndex = pJ->iGetFirstIndex();
297  unsigned iNumDofs = pJ->iGetNumDof();
298 
299  WM.ResizeReset(iNumDofs, 0);
300  for (unsigned iCnt = 1; iCnt <= iNumDofs; iCnt++) {
301  WM.PutItem(iCnt, iFirstIndex + iCnt, iFirstIndex + iCnt,
302  - dC[iCnt - 1]/dCoef);
303  }
304 
305  return WorkMat;
306 }
void ResizeReset(integer iNewRow, integer iNewCol)
Definition: submat.cc:1084
void PutItem(integer iSubIt, integer iRow, integer iCol, const doublereal &dCoef)
Definition: submat.h:997
const Joint * pJ
Definition: jointreg.h:47
virtual unsigned int iGetNumDof(void) const
Definition: elem.cc:118
SparseSubMatrixHandler & SetSparse(void)
Definition: submat.h:1178
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
long int integer
Definition: colamd.c:51
std::vector< doublereal > dC
Definition: jointreg.h:148

Here is the call graph for this function:

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

Implements Elem.

Definition at line 267 of file jointreg.cc.

References dC, dLambda, DofOwnerOwner::iGetFirstIndex(), Elem::iGetNumDof(), JointRegularization::pJ, SubVectorHandler::PutItem(), and VectorHandler::ResizeReset().

271 {
272  integer iFirstIndex = pJ->iGetFirstIndex();
273  unsigned iNumDofs = pJ->iGetNumDof();
274 
275  WorkVec.ResizeReset(iNumDofs);
276 
277  for (unsigned iCnt = 1; iCnt <= iNumDofs; iCnt++) {
278  unsigned iCntm1 = iCnt - 1;
279  WorkVec.PutItem(iCnt, iFirstIndex + iCnt,
280  dC[iCntm1]*dLambda[iCntm1]/dCoef);
281  dLambda[iCntm1] = XCurr(iFirstIndex + iCnt);
282  }
283 
284  return WorkVec;
285 }
virtual void ResizeReset(integer)
Definition: vh.cc:55
std::vector< doublereal > dLambda
Definition: jointreg.h:149
virtual void PutItem(integer iSubRow, integer iRow, const doublereal &dCoef)
Definition: submat.h:1445
const Joint * pJ
Definition: jointreg.h:47
virtual unsigned int iGetNumDof(void) const
Definition: elem.cc:118
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
long int integer
Definition: colamd.c:51
std::vector< doublereal > dC
Definition: jointreg.h:148

Here is the call graph for this function:

JointRegularization::Type DynamicRegularization::GetJointRegularizationType ( void  ) const
virtual
VariableSubMatrixHandler & DynamicRegularization::InitialAssJac ( VariableSubMatrixHandler WorkMat,
const VectorHandler XCurr 
)
virtual

Implements SubjectToInitialAssembly.

Definition at line 317 of file jointreg.cc.

References dC, DofOwnerOwner::iGetFirstIndex(), SubjectToInitialAssembly::iGetInitialNumDof(), JointRegularization::pJ, SparseSubMatrixHandler::PutItem(), SparseSubMatrixHandler::ResizeReset(), and VariableSubMatrixHandler::SetSparse().

319 {
320  SparseSubMatrixHandler& WM = WorkMat.SetSparse();
321 
322  integer iFirstIndex = pJ->iGetFirstIndex();
323  unsigned iNumDofs = pJ->iGetInitialNumDof();
324 
325  WM.ResizeReset(iNumDofs, 0);
326 
327  unsigned tmp1 = 0;
328  unsigned tmp2 = 0;
329 
330  for (unsigned iCnt = 1; iCnt <= iNumDofs; iCnt++) {
331  WM.PutItem(iCnt, iFirstIndex + iCnt, iFirstIndex + iCnt,
332  - dC[tmp2]);
333  if(tmp1 == 1) {
334  tmp1 = 0;
335  tmp2++;
336  } else {
337  tmp1++;
338  }
339  }
340 
341  return WorkMat;
342 }
virtual unsigned int iGetInitialNumDof(void) const =0
void ResizeReset(integer iNewRow, integer iNewCol)
Definition: submat.cc:1084
void PutItem(integer iSubIt, integer iRow, integer iCol, const doublereal &dCoef)
Definition: submat.h:997
const Joint * pJ
Definition: jointreg.h:47
SparseSubMatrixHandler & SetSparse(void)
Definition: submat.h:1178
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
long int integer
Definition: colamd.c:51
std::vector< doublereal > dC
Definition: jointreg.h:148

Here is the call graph for this function:

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

Implements SubjectToInitialAssembly.

Definition at line 345 of file jointreg.cc.

References dC, DofOwnerOwner::iGetFirstIndex(), SubjectToInitialAssembly::iGetInitialNumDof(), JointRegularization::pJ, SubVectorHandler::PutItem(), and VectorHandler::ResizeReset().

347 {
348  integer iFirstIndex = pJ->iGetFirstIndex();
349  unsigned iNumDofs = pJ->iGetInitialNumDof();
350 
351  WorkVec.ResizeReset(iNumDofs);
352 
353  std::vector<doublereal> dInitialLambda(iNumDofs);
354 
355  for (std::vector<doublereal>::iterator i = dInitialLambda.begin();
356  i != dInitialLambda.end(); ++i )
357  {
358  *i = 0.;
359  }
360 
361  unsigned tmp1 = 0;
362  unsigned tmp2 = 0;
363 
364  for (unsigned iCnt = 1; iCnt <= iNumDofs; iCnt++) {
365  unsigned iCntm1 = iCnt - 1;
366  WorkVec.PutItem(iCnt, iFirstIndex + iCnt,
367  dC[tmp2]*dInitialLambda[iCntm1]);
368  if(tmp1 == 1) {
369  tmp1 = 0;
370  tmp2++;
371  } else {
372  tmp1++;
373  }
374 
375  dInitialLambda[iCntm1] = XCurr(iFirstIndex + iCnt);
376  }
377 
378 
379  return WorkVec;
380 }
virtual unsigned int iGetInitialNumDof(void) const =0
virtual void ResizeReset(integer)
Definition: vh.cc:55
virtual void PutItem(integer iSubRow, integer iRow, const doublereal &dCoef)
Definition: submat.h:1445
const Joint * pJ
Definition: jointreg.h:47
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
long int integer
Definition: colamd.c:51
std::vector< doublereal > dC
Definition: jointreg.h:148

Here is the call graph for this function:

void DynamicRegularization::InitialWorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
virtual

Implements SubjectToInitialAssembly.

Definition at line 310 of file jointreg.cc.

References SubjectToInitialAssembly::iGetInitialNumDof(), and JointRegularization::pJ.

312 {
313  *piNumRows = *piNumCols = pJ->iGetInitialNumDof();
314 }
virtual unsigned int iGetInitialNumDof(void) const =0
const Joint * pJ
Definition: jointreg.h:47

Here is the call graph for this function:

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

Implements Elem.

Definition at line 248 of file jointreg.cc.

References Elem::iGetNumDof(), and JointRegularization::pJ.

250 {
251  *piNumRows = *piNumCols = pJ->iGetNumDof();
252 }
const Joint * pJ
Definition: jointreg.h:47
virtual unsigned int iGetNumDof(void) const
Definition: elem.cc:118

Here is the call graph for this function:

Member Data Documentation

std::vector<doublereal> DynamicRegularization::dC
protected

Definition at line 148 of file jointreg.h.

Referenced by AssJac(), AssRes(), InitialAssJac(), and InitialAssRes().

std::vector<doublereal> DynamicRegularization::dLambda
protected

Definition at line 149 of file jointreg.h.

Referenced by AfterConvergence(), and AssRes().


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