I am trying to simulate bit-rock interactions, like cutting a rock sample with a blade. the bit rotates and hits the rock from the top part and cuts it. I have two main questions that would be very great if you can help me to resolve them:
1- I want to have viscous damping once the bit hits the rock, how can I add it?
2- When the bit hits the rock, some of the balls enter into the bit boundary. Normally that should not happen but I do not know why it is happening. I tried wall resolution and wall attribute cutoff-angle commands, but they were not helpful (see the attached photo).
Thank you so much for your help.
Thank you so much for your reply.
I have already applied the dashpot damping parameters, I was wondering if there are other types of adjustments or if I am on the right track.
For the second one, that is perfect, I will try adjusting these parameters to see their impacts.
I have one question regarding the problem that I am trying to simulate.
After the cutting process, I want to count the number of balls that they have lost their bonds.
I am using “ball.isbonded” command, but I am not sure if it is considering the whole balls or just the balls with active contact, how I can fix it, etc.
I really appreciate your valuable help.
ball.isbonded FISH function will check all active contacts on the ball provided to the function. As described here in the documentation. If any of the active contacts are bonded the function will return true.
Thanks for your quick reply, Derrick.
So, is there any way to be able to count all balls that are single with no bond? Is there a function for that? Can I use the ball.isbonded function for that?
Thanks indeed for your time and help.
There is not a built-in function to find the number of unbonded balls. You can define a FISH function, something similar to this:
> fish define CountUnbondedBalls
> local count_ = 0
> loop foreach local ball ball.list()
> if (ball.isbonded(ball) == false)
> count_ += 1
> CountUnbondedBalls = count_
or a more efficient way could be accomplished with splitting and list filtering:
> [UnbondedBallList = list(ball.list)(ball.isbonded(::ball.list) # true)]
> [NumUnbondedBalls = list.size(UnbondedBallList)
Thank you so much, Derrick, I really appreciate it.
Your help was really valuable.
Thanks again for your time,