52 pStrNode(pS), pAbsNode(pA),
53 Dir(TmpDir), dOmega(dO), dTau(dT), dCsi(dC), dKappa(dK)
71 "reference, node, ",
Dir.
Write(out,
", ") <<
", "
88 DEBUGCOUT(
"Entering Accelerometer::AssJac()" << std::endl);
131 WM.
PutItem(1, iFirstIndex + 1, iFirstIndex + 1, dCoef);
132 WM.
PutItem(2, iAbstractIndex + 1, iFirstIndex + 1,
134 WM.
PutItem(3, iFirstIndex + 2, iFirstIndex + 2, 1.);
135 WM.
PutItem(4, iAbstractIndex + 1, iFirstIndex + 2, -dCoef);
136 WM.
PutItem(5, iFirstIndex + 2, iFirstIndex + 3,
137 dCoef*dOmega*dOmega/
dTau);
138 WM.
PutItem(6, iFirstIndex + 3, iFirstIndex + 3,
139 1. + dCoef*(2.*
dCsi*dOmega + 1./
dTau));
140 WM.
PutItem(7, iAbstractIndex + 1, iFirstIndex + 3,
141 dCoef*dOmega*(dOmega + 2.*
dCsi/
dTau));
142 WM.
PutItem(8, iFirstIndex + 3, iAbstractIndex + 1, -dCoef);
143 WM.
PutItem(9, iAbstractIndex + 1, iAbstractIndex + 1, 1.);
147 for (
int iCnt = 1; iCnt <= 3; iCnt++) {
148 WM.
PutItem(9 + iCnt, iFirstIndex + 1,
149 iFirstPositionIndex + iCnt,
150 - TmpDir.
dGet(iCnt));
154 TmpDir = -TmpDir.
Cross(XP);
155 for (
int iCnt = 1; iCnt <= 3; iCnt++) {
156 WM.
PutItem(12 + iCnt, iFirstIndex + 1,
157 iFirstPositionIndex + 3 + iCnt,
158 dCoef*TmpDir.dGet(iCnt));
171 DEBUGCOUT(
"Entering Accelerometer::AssRes()" << std::endl);
207 doublereal zp = XPrimeCurr(iAbstractIndex + 1);
268 pStrNode(pS), pAbsNode(pA),
290 "reference, node, ",
Dir.
Write(out,
", ") <<
", "
291 "reference, node, ",
f.
Write(out,
", ") <<
';'
303 DEBUGCOUT(
"Entering TranslAccel::AssJac()" << std::endl);
314 WM.
PutItem(1, iAbstractIndex, iAbstractIndex, dCoef);
315 WM.
PutItem(2, iAbstractIndex, iFirstIndex, -1.);
316 WM.
PutItem(3, iFirstIndex, iFirstIndex, dCoef);
321 WM.
PutItem(4, iFirstIndex, iFirstColIndex + 1, -tmpd.
dGet(1));
322 WM.
PutItem(5, iFirstIndex, iFirstColIndex + 2, -tmpd.
dGet(2));
323 WM.
PutItem(6, iFirstIndex, iFirstColIndex + 3, -tmpd.
dGet(3));
326 WM.
PutItem(7, iFirstIndex, iFirstColIndex + 4, tmp.
dGet(1));
327 WM.
PutItem(8, iFirstIndex, iFirstColIndex + 5, tmp.
dGet(2));
328 WM.
PutItem(9, iFirstIndex, iFirstColIndex + 6, tmp.
dGet(3));
340 DEBUGCOUT(
"Entering TranslAccel::AssRes()" << std::endl);
416 pStrNode(pS), pAbsNode(pA),
438 "reference, node, ",
Dir.
Write(out,
", ") <<
';'
450 DEBUGCOUT(
"Entering RotAccel::AssJac()" << std::endl);
461 WM.
PutItem(1, iAbstractIndex, iAbstractIndex, dCoef);
462 WM.
PutItem(2, iAbstractIndex, iFirstIndex, -1.);
463 WM.
PutItem(3, iFirstIndex, iFirstIndex, dCoef);
466 WM.
PutItem(4, iFirstIndex, iFirstColIndex+4, tmp.
dGet(1));
467 WM.
PutItem(5, iFirstIndex, iFirstColIndex+5, tmp.
dGet(2));
468 WM.
PutItem(6, iFirstIndex, iFirstColIndex+6, tmp.
dGet(3));
480 DEBUGCOUT(
"Entering RotAccel::AssRes()" << std::endl);
virtual unsigned int iGetNumDof(void) const
const ScalarDifferentialNode * pAbsNode
virtual unsigned int iGetNumDof(void) const
Vec3 Cross(const Vec3 &v) const
std::ostream & Write(std::ostream &out, const char *sFill=" ") const
virtual const Mat3x3 & GetRRef(void) const
virtual void ResizeReset(integer)
virtual const Mat3x3 & GetRCurr(void) const
virtual Node::Type GetNodeType(void) const
doublereal Dot(const Vec3 &v) const
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
const StructNode * pStrNode
VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual void SetInitialValue(VectorHandler &)
virtual void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &, SimulationEntity::Hints *ph=0)
virtual void SetInitialValue(VectorHandler &)
void ResizeReset(integer iNewRow, integer iNewCol)
virtual void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &, SimulationEntity::Hints *ph=0)
VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
std::vector< Hint * > Hints
const StructNode * pStrNode
virtual void PutRowIndex(integer iSubRow, integer iRow)=0
void PutItem(integer iSubIt, integer iRow, integer iCol, const doublereal &dCoef)
virtual void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &, SimulationEntity::Hints *ph=0)
virtual void SetInitialValue(VectorHandler &)
virtual DofOrder::Order GetDofType(unsigned int i) const
SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
const doublereal & dGet(unsigned short int iRow) const
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
virtual integer iGetFirstPositionIndex(void) const
virtual const Vec3 & GetWCurr(void) const
DotTraits< VectorExprLhs, VectorExprRhs, N_rows, N_rows >::ExpressionType Dot(const VectorExpression< VectorExprLhs, N_rows > &u, const VectorExpression< VectorExprRhs, N_rows > &v)
TranslAccel(unsigned int uL, const DofOwner *pD, const StructNode *pS, const ScalarDifferentialNode *pA, const Vec3 &TmpDir, const Vec3 &Tmpf, flag fOut)
#define ASSERT(expression)
virtual DofOrder::Order GetDofType(unsigned int i) const
const ScalarDifferentialNode * pAbsNode
virtual void PutCoef(integer iRow, const doublereal &dCoef)=0
virtual std::ostream & Restart(std::ostream &out) const
RotAccel(unsigned int uL, const DofOwner *pD, const StructNode *pS, const ScalarDifferentialNode *pA, const Vec3 &TmpDir, flag fOut)
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
virtual std::ostream & Restart(std::ostream &out) const
virtual const Vec3 & GetVCurr(void) const
static const doublereal a
SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
const StructNode * pStrNode
const ScalarDifferentialNode * pAbsNode
SparseSubMatrixHandler & SetSparse(void)
virtual integer iGetFirstIndex(void) const
virtual Node::Type GetNodeType(void) const
virtual std::ostream & Restart(std::ostream &out) const
unsigned int GetLabel(void) const
Accelerometer(unsigned int uL, const DofOwner *pD, const StructNode *pS, const ScalarDifferentialNode *pA, const Vec3 &TmpDir, doublereal dO, doublereal dT, doublereal dC, doublereal dK, flag fOut)
virtual std::ostream & Restart(std::ostream &out) const
SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual unsigned int iGetNumDof(void) const
virtual void Resize(integer iNewSize)=0
virtual const doublereal & dGetX(void) const
virtual DofOrder::Order GetDofType(unsigned int i) const
virtual integer iGetFirstColIndex(void) const