Question #683787 on Yade changed: https://answers.launchpad.net/yade/+question/683787
Status: Answered => Open Yaniv Fogel is still having a problem: Hi Jan and Jérôme, Thanks for the remarks. I understand what you mean about the dynamic state of the system. I tried investigating how the forceEngine and interaction forces are related. I would expect that as the forceEngine force increases, the interaction force will decrease (as they are opposite), but like before, there is no reaction between the forceEngine and interaction forces between the particles... As you will see while you run the script provided below ( I tried to see how I can minimize it anymore, but I think this is the most minimal way...), the force acting on top particle (F1) is increasing gradually, while the force acting on the bottom particle (F0) is the gravity force, and is logically equal to the interaction force between the particles. The engineForce has no effect on the system... :/ (There are some "steps" sometimes in the plot of F1 between interactions 0 and 0.2e7, when the force reaches around 70-120, which does correlates to a certain degree with the FnMax value I calculated ... but again, other than that, there is no effect...) #### Updated forceEngine Code #### from yade import pack, plot import numpy as np yade.qt.Controller() # Define geometry r = 0.005 intR = 1.0 # Define material idRockTest = O.materials.append(JCFpmMat(type=1, young=30e9, density=2500.0, poisson=0.1, frictionAngle=np.radians(18.0), tensileStrength=1e6, cohesion=1e6, label='Rock')) # add spheres O.bodies.append([ sphere((0,0,0),r,material='Rock',color=(0.019, 0.529, 1),fixed=True), sphere((0,2*r,0),r,material='Rock',color=(1, 0, 0)) ]) # Simulation loop O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=intR,label='Saabb')]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR,label='SSgeom')], [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1,label='interactionPhys')], [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(label='interactionLaw')] ), # Apply gravity force to particles. NewtonIntegrator( gravity=(0,-9.81,0), damping=0.2), # Apply force on top particle ForceEngine(ids=[1],force=Vector3(0,0,0),label='fEngine'), PyRunner(command='fEngine.force[1]+=10',realPeriod=1,initRun=True), # apply gradual increasing force on top particle PyRunner(command='recorder()',realPeriod=1,initRun=True), ] # plot forces and position def recorder(): plot.addData({ 'i':O.iter, 'F1':O.forces.f(1).norm(), # force acting on top particle 'Pos[z]':O.bodies[1].state.pos[1], # position (y) of top particle 'F0':O.forces.f(0).norm(), # force acting on bottom particle 'nInter[0,1]':O.interactions[0,1].phys.normalForce[1]}) # normal interaction force between particles plot.plots={'i':('F1'),'i ':('F0'),'i ':('Pos[z]'),'i ':('nInter[0,1]')} plot.plot() O.dt=0. #### manage interaction detection factor during the first timestep and then set default interaction range O.step(); ### initializes the interaction detection factor SSgeom.interactionDetectionFactor=-1. Saabb.aabbEnlargeFactor=-1. # Define time step O.dt = 0.5*utils.PWaveTimeStep() O.run() -- You received this question notification because your team yade-users is an answer contact for Yade. _______________________________________________ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp