I am trying to simulate rockbolt element connected to a faceplate in UDEC. The faceplate is constructed with the liner elements. I am trying to connect the rockbolt last node with the center node of the liner element using the connect keyword. However, when I am running the model, the connection is separated. Is there any way I can fix it? Please see the attached image and code for that.
If you have properly connected the rockbolt to the structural liner, they cannot separate.
The begin coordinate should correspond with the location of one of the liner nodes.
After defining the rockbolt with the connect keyword, you should use block struct rock list node.
One of the nodes of the rockbolt should have the id of one of the liner nodes.
The coordinates should match within the corner-round-length tolerance.
That’s what I am doing. I computed the center coordinates of the liner element and assigned them as the starting and ending coordinates of the rockbolts. Still, the one end didn’t connect. Could you please check the attached text file if I am doing something wrong?
The coordinates of the begin end of the rockbolt should coincide with the coordinates of one of the liner nodes, not the center. It is only the lumped mass nodes that are shared.
I don’t believe you can connect two ends. The logic is not set up to do this. The second connection could be done by inserting the node INDEX (not id) of the beam element node into the rockbolt element data structure.
Thank you for your help. I am computing the coordinate of the center node of the liner element.
Could you please provide an example to insert the node index of the liner into the rockbolt element data structure to connect the faceplate on both ends?
model new
block tol corner-round-length .001
block cr test
block cut crack 0 6 10 6
block zone gen edge 1
block struc beam property mat 1 young 200E9 poisson 0.3 thickness 0.006 dens 7800 yield-compression 30 yield-tension 3 …
coupling-cohesion 0 coup-tens 0 coupling-friction 20.0 coupli-stiff-normal 5E13 cou-sti-sh 5E13 width 0.1 shape-factor 0.8333
block struct liner create by-end-points begin 0,0 end 10,0 mat-beam 1
block struct rockbolt create begin 0 5.625 end 10 5.635 segment 10 mat 1 connect
;locate liner node at 10,5.625
block struct liner list
; node id = 34, index = 42855
;
; locate rockbolt element index at right end
block struct rockbolt list
; rockbolt element id = 50, index = 45704
program call “str.fin”
fish define replace
node_index = index(42855)
rockbolt_index = index(45704)
imem(rockbolt_index+$SELN2) = node_index
end @replace
block struct rockbolt list element
With this, I connected the last node of the rockbolt to the node of the liner. When I printed the element list, I could see the change in the node number between the last element of the rockbolt, so I guess it’s connected. However, I got an error when I ran my model (see the image below). I still have node 122 which I connected to the liner node.
I have defined the properties of both structural elements (rockbolt and liner) that I am using. When I am not connecting the last end of the rockbolt to a liner node using the data structure, my model is running without any warnings. However after the connection, the node ID of the last element of the rockbolt changes to the beam node. However, the initial last node of the rockbolt before joining it to the beam node is still present when I printed the bolt node ID and this node has not been assigned any properties, even though I defined the properties for both rockbolt and liner. I tried the data structure to assign the properties for this node (ID-122) but didn’t work. Is there any way I can assign a stiffness property for a rockbolt node?
The way to address this is to remove the orphan node from the list. However in this case the orphaned node is the last node (but the first node in the linked list). FISH will not allow to to change block.struct.node.head. This is a global FISH function and is read only.
So, we need a hack here:
; create a dummy rockbolt to move the orphaned node off the end of the linked list
block struct rockbolt create begin 1 1 end 2 1 segment 1 mat 1
;now jump the linked list over the orphaned node
fish define remove_orphan
previous_node = index(47534)
node_index = index(47210)
xmem(previous_node+$SNDNEXT) = node_index
end @remove_orphan
;
; now remove the dummy rockbolt
block struct rockbolt delete range pos-x 0 10 pos-y 0 2
I was able to remove the orphan node using the dummy rockbolt. However, I am getting an overlap error (see the image) in the post-peak region of the stress-strain curve when I am modeling both face plate (red) and wire-mesh (green) using the liner element. I created the wire-mesh first on the sides of the model using liner element and then created the face plate using liner element in the center on both sides. After that, I connected my rockbolt to the face plates on both sides.
My model was running fine without any issues until the residual state when I didn’t create the wire mesh and face plate on the edges. Since I already calibrated my model without any support, I do not want to change the contact stiffness properties. Is there any way I can get rid of this error and run my model until the residual state?
Also, I do not have any problem when I am just creating either wire mesh or face plate on sides. Only getting error when I am creating both face plate and wire mesh together.
It’s difficult to tell from the image where the problem is originating. If its a numerical stability issue, you can try reducing the timestep. If it is blocks that are extruding through the structures, you may have to delete the blocks. If you are using a strain softening material model, you may need to make those particular blocks non softening, or even elastic.
If you still have problems, you should send your files to UDECsupport@itascacg.com. Also include your UDEC license number (i.e. 216-xxx-xxxx-xxxxx)