57 Joint(uL, pDO, fOut), pNode1(pN1), pSup(pNs), SupDirection(SDir)
80 return out <<
" not implemented yet: " << std::endl;
110 for (
int iCnt = 1; iCnt <=3; iCnt++) {
111 WorkVec.
PutRowIndex(iCnt, iNodePFirstMomIndex + iCnt);
112 WorkVec.
PutRowIndex(iCnt+3, iNodeSupFirstMomIndex + iCnt);
113 WorkVec.
PutRowIndex(iCnt+6, iNodeSupFirstMomIndex + iCnt+3);
167 DEBUGCOUT(
"Entering PointSurfaceContact::AssJac()" << std::endl);
186 for (
int iCnt = 1; iCnt <= 3; iCnt++) {
189 WM.
PutRowIndex(3 + iCnt, iSupFirstMomIndex + iCnt);
190 WM.
PutColIndex(3 + iCnt, iSupFirstPosIndex + iCnt);
191 WM.
PutRowIndex(6 + iCnt, iSupFirstMomIndex + iCnt + 3);
192 WM.
PutColIndex(6 + iCnt, iSupFirstPosIndex + iCnt + 3);
211 WM.
Sub(1, 3 + 1, MTmp);
212 WM.
Sub(3 + 1, 1, MTmp);
213 WM.
Add(3 + 1, 3 + 1, MTmp);
215 Vec3 dFnode1_1 = -
n*ElasticStiffness*
n[0];
216 Vec3 dFnode1_2 = -n*ElasticStiffness*n[1];
217 Vec3 dFnode1_3 = -n*ElasticStiffness*n[2];
220 WM.
Add(1,1,dFnode1_1);
221 WM.
Add(1,2,dFnode1_2);
222 WM.
Add(1,3,dFnode1_3);
224 WM.
Sub(1,4,dFnode1_1);
225 WM.
Sub(1,5,dFnode1_2);
226 WM.
Sub(1,6,dFnode1_3);
229 WM.
Sub(3+1,1,dFnode1_1);
230 WM.
Sub(3+1,2,dFnode1_2);
231 WM.
Sub(3+1,3,dFnode1_3);
233 WM.
Add(3+1,4,dFnode1_1);
234 WM.
Add(3+1,5,dFnode1_2);
235 WM.
Add(3+1,6,dFnode1_3);
259 DEBUGCOUT(
"Entering PointSurfaceContact::InitialAssRes()" << std::endl);
272 for (
int iCnt = 1; iCnt <=3; iCnt++) {
273 WorkVec.
PutRowIndex(iCnt, iNodePFirstMomIndex + iCnt);
274 WorkVec.
PutRowIndex(iCnt+3, iNodeSupFirstMomIndex + iCnt);
275 WorkVec.
PutRowIndex(iCnt+6, iNodeSupFirstMomIndex + iCnt+3);
289 DEBUGCOUT(
"Entering PointSurfaceContact::Initial AssJac()" << std::endl);
308 for (
int iCnt = 1; iCnt <= 3; iCnt++) {
311 WM.
PutRowIndex(3 + iCnt, iSupFirstMomIndex + iCnt);
312 WM.
PutColIndex(3 + iCnt, iSupFirstPosIndex + iCnt);
313 WM.
PutRowIndex(6 + iCnt, iSupFirstMomIndex + iCnt + 3);
314 WM.
PutColIndex(6 + iCnt, iSupFirstPosIndex + iCnt + 3);
void PutColIndex(integer iSubCol, integer iCol)
Vec3 Cross(const Vec3 &v) const
virtual void ResizeReset(integer)
FullSubMatrixHandler & SetFull(void)
virtual const Mat3x3 & GetRCurr(void) const
virtual Node::Type GetNodeType(void) const
doublereal Dot(const Vec3 &v) const
void Add(integer iRow, integer iCol, const Vec3 &v)
virtual void PutRowIndex(integer iSubRow, integer iRow)=0
virtual integer iGetFirstMomentumIndex(void) const =0
virtual integer iGetFirstPositionIndex(void) const
#define ASSERT(expression)
Mat3x3 Tens(const Vec3 &v) const
virtual const Vec3 & GetXCurr(void) const
virtual void Add(integer iRow, const Vec3 &v)
virtual void ResizeReset(integer, integer)
void PutRowIndex(integer iSubRow, integer iRow)
void Sub(integer iRow, integer iCol, const Vec3 &v)