You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
INTEGER(IntKi), PARAMETER:: MaxMemJnt =20! Maximum number of members at one joint
27
27
INTEGER(IntKi), PARAMETER:: MaxOutChs =2000! Max number of Output Channels to be read in
28
-
INTEGER(IntKi), PARAMETER:: nDOFL_TP =6!TODO rename me ! 6 degrees of freedom (length of u subarray [UTP])
28
+
INTEGER(IntKi), PARAMETER:: nDOFL_TP =6!TODO rename me ! 6 degrees of freedom (length of u subarray [UTP]), current used for output only. Need to update this to reflect multiple transition pieces.
29
29
30
30
! values of these parameters are ordered by their place in SubDyn input file:
31
31
INTEGER(IntKi), PARAMETER:: JointsCol =9! Number of columns in Joints (JointID, JointXss, JointYss, JointZss, JointType, JointDirX JointDirY JointDirZ JointStiff)
iNode = p%DOFred2Nodes(iDOF,1) ! First column is node
265
266
nDOFPerNode = p%DOFred2Nodes(iDOF,2) ! Second column is number of DOF per node
266
267
iiDOF = p%DOFred2Nodes(iDOF,3) ! Third column is dof index for this joint (1-6 for cantilever)
268
+
if (nTP==1) then
269
+
iTP =1
270
+
else
271
+
iTP = p%TPIdx(FINDLOCI(p%Nodes_I(:,1),iNode))
272
+
endif
267
273
268
274
if ((iiDOF<1) .or. (iiDOF>6)) then
269
275
ErrMsg ='RigidTrnsf, node DOF number is not valid. DOF:'//trim(Num2LStr(iDOF))//' Node:'//trim(Num2LStr(iNode))//' iiDOF:'//trim(Num2LStr(iiDOF)); ErrStat = ErrID_Fatal
if ( (TPIdxInput(I)<=0) .or. (TPIdxInput(I)>p%nNodes_I) ) then
1404
+
ErrStat = ErrID_Fatal
1405
+
ErrMsg ='Transition-piece index must be sequential starting from 0 (floating with multiple transition pieces) or 1 (all other cases), check interface node:'//trim(Num2LStr(iNode))
1406
+
return
1407
+
else
1408
+
if (TPIdxInput(I)>p%nTP) p%nTP = TPIdxInput(I)
1409
+
TPExist(TPIdxInput(I)) =.TRUE.
1410
+
p%TPIdx(I) = TPIdxInput(I)
1411
+
endif
1412
+
ENDDO
1413
+
1414
+
DO I =1,p%nTP
1415
+
if (.not.TPExist(I)) then
1416
+
ErrStat = ErrID_Fatal
1417
+
ErrMsg ='Transition-piece index must be sequential starting from 0 (floating with multiple transition pieces) or 1 (all other cases), missing reference to transition piece '//trim(Num2LStr(I-TPIDOffset))
1418
+
return
1419
+
end if
1420
+
ENDDO
1421
+
1422
+
p%nDOFRB =0
1423
+
if (p%Floating .and. (p%nTP>1)) then
1424
+
p%TP1IsRBRefPt =.true.
1425
+
p%nDOFRB =6
1426
+
if (TPIDOffset == 0) then
1427
+
ErrStat = ErrID_Fatal
1428
+
ErrMsg ='For a floating structure with more than one transition pieces, must have one and only one interface joint assigned to the dummy transition piece (TPID=0) used to represent rigid-body motion. '
1429
+
return
1430
+
end if
1431
+
else
1432
+
p%TP1IsRBRefPt =.false.
1433
+
end if
1434
+
1435
+
TP1NodeFound =.false.
1436
+
if (p%TP1IsRBRefPt) then
1437
+
do I =1, p%nNodes_I
1438
+
if (p%TPIdx(I) == 1) then
1439
+
if (.not.TP1NodeFound) then
1440
+
TP1NodeFound =.true.
1441
+
RB_RefJoint = p%Nodes_I(I,1)
1442
+
else
1443
+
ErrStat = ErrID_Fatal
1444
+
ErrMsg =' Only one joint can be assigned to the dummy transition piece (TPID=0) serving as the rigid-body reference point for the floating structure. '
0 commit comments