← Back to team overview

yade-users team mailing list archive

[Question #688345]: Precrack

 

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

Hi,

I want to put a precrack in my model. Currently, my model consists of 5 by 6 particles in the xy plane. Each particle is linked with its neighbouring particle. I want to zero out the bonds (a precrack) between particle 11 and 16, 12 and 17, and 13 and 18. How do I do this? 

Thanks!

MY CODE:
#MATERIAL PROPERTIES 
intR =   1.00 #connectivity parameter 
DENS = 2500.00 #Density (kg/mm^3) 
YOUNG = 1800.00 #Young's modulus (N/mm^2) 
FRICT =   7.00 #Friction angle (degrees) 
ALPHA =   0.10 #Poisson's ratio 
TENS = 100.00 #Tensile strength (N/mm^2) 
COH = 100.00 #Shear strength (N/mm^2) 
iterMax =   1.00 #Max Itteration 
rate =   0.00 #pull rate 

O.materials.append(JCFpmMat(type=1,density=DENS,young=YOUNG,poisson=ALPHA,frictionAngle=radians(FRICT),tensileStrength=TENS,cohesion=COH,label='mat1'))

# PARTICLES 
O.bodies.append([ 
sphere(center=(  1.00,  1.00,0),radius=  0.50,material='mat1'),
sphere(center=(  2.00,  1.00,0),radius=  0.50,material='mat1'),
sphere(center=(  3.00,  1.00,0),radius=  0.50,material='mat1'),
sphere(center=(  4.00,  1.00,0),radius=  0.50,material='mat1'),
sphere(center=(  5.00,  1.00,0),radius=  0.50,material='mat1'),
sphere(center=(  1.00,  2.00,0),radius=  0.50,material='mat1'),
sphere(center=(  2.00,  2.00,0),radius=  0.50,material='mat1'),
sphere(center=(  3.00,  2.00,0),radius=  0.50,material='mat1'),
sphere(center=(  4.00,  2.00,0),radius=  0.50,material='mat1'),
sphere(center=(  5.00,  2.00,0),radius=  0.50,material='mat1'),
sphere(center=(  1.00,  3.00,0),radius=  0.50,material='mat1'),
sphere(center=(  2.00,  3.00,0),radius=  0.50,material='mat1'),
sphere(center=(  3.00,  3.00,0),radius=  0.50,material='mat1'),
sphere(center=(  4.00,  3.00,0),radius=  0.50,material='mat1'),
sphere(center=(  5.00,  3.00,0),radius=  0.50,material='mat1'),
sphere(center=(  1.00,  4.00,0),radius=  0.50,material='mat1'),
sphere(center=(  2.00,  4.00,0),radius=  0.50,material='mat1'),
sphere(center=(  3.00,  4.00,0),radius=  0.50,material='mat1'),
sphere(center=(  4.00,  4.00,0),radius=  0.50,material='mat1'),
sphere(center=(  5.00,  4.00,0),radius=  0.50,material='mat1'),
sphere(center=(  1.00,  5.00,0),radius=  0.50,material='mat1'),
sphere(center=(  2.00,  5.00,0),radius=  0.50,material='mat1'),
sphere(center=(  3.00,  5.00,0),radius=  0.50,material='mat1'),
sphere(center=(  4.00,  5.00,0),radius=  0.50,material='mat1'),
sphere(center=(  5.00,  5.00,0),radius=  0.50,material='mat1'),
sphere(center=(  1.00,  6.00,0),radius=  0.50,material='mat1'),
sphere(center=(  2.00,  6.00,0),radius=  0.50,material='mat1'),
sphere(center=(  3.00,  6.00,0),radius=  0.50,material='mat1'),
sphere(center=(  4.00,  6.00,0),radius=  0.50,material='mat1'),
sphere(center=(  5.00,  6.00,0),radius=  0.50,material='mat1'),
])
nbSpheres =  30.00

# BOUNDARY CONDITIONS 
O.bodies[0].state.blockedDOFs = "xyzXYZ"
O.bodies[0].state.vel = (0,-0.000010,0)
O.bodies[0].state.angVel = (0,0,0)
O.bodies[1].state.blockedDOFs = "xyzXYZ"
O.bodies[1].state.vel = (0,-0.000010,0)
O.bodies[1].state.angVel = (0,0,0)
O.bodies[2].state.blockedDOFs = "xyzXYZ"
O.bodies[2].state.vel = (0,-0.000010,0)
O.bodies[2].state.angVel = (0,0,0)
O.bodies[3].state.blockedDOFs = "xyzXYZ"
O.bodies[3].state.vel = (0,-0.000010,0)
O.bodies[3].state.angVel = (0,0,0)
O.bodies[4].state.blockedDOFs = "xyzXYZ"
O.bodies[4].state.vel = (0,-0.000010,0)
O.bodies[4].state.angVel = (0,0,0)
O.bodies[25].state.blockedDOFs = "xyzXYZ"
O.bodies[25].state.vel = (0,0.000010,0)
O.bodies[25].state.angVel = (0,0,0)
O.bodies[26].state.blockedDOFs = "xyzXYZ"
O.bodies[26].state.vel = (0,0.000010,0)
O.bodies[26].state.angVel = (0,0,0)
O.bodies[27].state.blockedDOFs = "xyzXYZ"
O.bodies[27].state.vel = (0,0.000010,0)
O.bodies[27].state.angVel = (0,0,0)
O.bodies[28].state.blockedDOFs = "xyzXYZ"
O.bodies[28].state.vel = (0,0.000010,0)
O.bodies[28].state.angVel = (0,0,0)
O.bodies[29].state.blockedDOFs = "xyzXYZ"
O.bodies[29].state.vel = (0,0.000010,0)
O.bodies[29].state.angVel = (0,0,0)

# FUNCTIONAL COMPONENTS 
def addPlotData1(): 
	plot.addData(t=O.time,DX1 = O.bodies[25].state.pos[0], DY1 = O.bodies[25].state.pos[1], DZ1 = O.bodies[25].state.pos[2], FX1 = O.forces.f(25)[0], FY1 = O.forces.f(25)[1], FZ1 = O.forces.f(25)[2], DX2 = O.bodies[26].state.pos[0], DY2 = O.bodies[26].state.pos[1], DZ2 = O.bodies[26].state.pos[2], FX2 = O.forces.f(26)[0], FY2 = O.forces.f(26)[1], FZ2 = O.forces.f(26)[2], DX3 = O.bodies[27].state.pos[0], DY3 = O.bodies[27].state.pos[1], DZ3 = O.bodies[27].state.pos[2], FX3 = O.forces.f(27)[0], FY3 = O.forces.f(27)[1], FZ3 = O.forces.f(27)[2], DX4 = O.bodies[28].state.pos[0], DY4 = O.bodies[28].state.pos[1], DZ4 = O.bodies[28].state.pos[2], FX4 = O.forces.f(28)[0], FY4 = O.forces.f(28)[1], FZ4 = O.forces.f(28)[2], DX5 = O.bodies[29].state.pos[0], DY5 = O.bodies[29].state.pos[1], DZ5 = O.bodies[29].state.pos[2], FX5 = O.forces.f(29)[0], FY5 = O.forces.f(29)[1], FZ5 = O.forces.f(29)[2], ) 

# PRINTING 
from yade import plot 
from pprint import pprint 

# SIMULATION LOOP 
O.engines=[ 
PyRunner(command='addPlotData1()',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.10), 
]

#TIME STEP 
O.dt=0.5e-4*PWaveTimeStep() 

#PLOTTING 
plot.plots={'DY1':('FY1')} 
plot.plot() 


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