yade-users team mailing list archive
Mailing list archive
[Question #683787]: Using ForceEngine to break a single JCFpm bond
New question #683787 on Yade:
I'm a new user to YADE and I'm in the process of learning about the JCFpm model. I'm currently trying to break a bond between two particles using the ForceEngine. As described in the code bit below, I'm trying to apply and increasing force until a break occurs between the two particles. The bottom particle is fixed.
If I got the documentation right, the force when the breakage should happen is:
FnMax = tensileStrength * pi*Rmin^2 , -> FnMax = 1e6 * np.pi * pow(0.005,2) = 78.539 N
First question -
For the first trials, I tried using addF manually, using the code below (after running the script). I found that the bond breaks around O.forces.addF(1,(0,0,700)). (I first assumed that addF uses Newtons, but now I'm not so sure...). So, did I calculated FnMax correctly or not?
Second question -
After that, I tried using the ForceEngine (same code, just uncomment #ForceEngine & #PyRunner), increasing the force on the particle, but I can't get it to break. Am I using the engine correctly?
Third question -
I also looked at the InterpolatingDirectedForceEngine , where there is a magnitude for the force, but what is the difference between force and magnitudes in the engine (Again, I tried playing with it, with increasing magnitudes, but I still couldn't get it to break)
I would like your help. Sorry if this is too long or if my understanding of vector physics is a bit lacking :)
### Forces Test 1, YADE ###
from yade import pack, plot
import numpy as np
# Define geometry
r = 0.005
intR = 1.0
# Define material
idRockTest = O.materials.append(JCFpmMat(type=1,
# add spheres
sphere((0,0,0),r,material='Rock',color=(0.019, 0.529, 1),fixed=True),
sphere((0,0,2*r),r,material='Rock',color=(1, 0, 0))
# Simulation loop
# Apply gravity force to particles.
# Apply force on top particle
# Define time step
#O.dt = 0.5*utils.PWaveTimeStep()
#### manage interaction detection factor during the first timestep and then set default interaction range
### initializes the interaction detection factor
# Define time step
O.dt = 0.5*utils.PWaveTimeStep()
You received this question notification because your team yade-users is
an answer contact for Yade.