yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #21871
[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.