← Back to team overview

yade-users team mailing list archive

[Question #688885]: Finding where a bond broke

 

New question #688885 on Yade:
https://answers.launchpad.net/yade/+question/688885

Hi,

In my model, I have 3D spheres aligned in the x-y plane (100 by 100). Each sphere is bonded with its neighboring spheres. There is a precrack in the model and I am applying a force field within the precrack. Once the model runs, the crack opens up and starts to propagate. Within the simulation I want to do the following:

If a new bond breaks:
        El1 = #element#1;
        El2 = #element#2;
        O.forces.setPermF(El1,(0,0.01000*O.time,0))
        O.forces.setPermF(El2,(0,-0.01000*O.time,0))

I hope you understand. Basically, once a bond breaks, I want to apply a force on the 2 element that the bond broke between. I know that I have to write a function script. If you can just tell me how to get the if condition activated once a new bond breaks and how to get the element numbers, that would be off great help.


Thanks!


# SIMULATION LOOP 
O.engines=[ 
    PyRunner(command='addPlotData1()',iterPeriod=1), 
    PyRunner(command='saveData1()',iterPeriod=1000), 
    PyRunner(command='saveData2()',iterPeriod=1000), 
    PyRunner(command='ForceBC1()',iterPeriod=1), 
    PyRunner(command='ForceBC2()',iterPeriod=1), 
    ForceResetter(), 
    InsertionSortCollider([Bo1_Sphere_Aabb()]), 
    InteractionLoop( 
        [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR)], 
        [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1)], 
        [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM()] 
    ), 
    GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.5, defaultDt=utils.PWaveTimeStep()), 
    NewtonIntegrator(damping=  0.80), 
]



-- 
You received this question notification because your team yade-users is
an answer contact for Yade.