How to obtain obvious fragments in a single particles simulation with bonded subparticles
Hello, all
Thank you for your help all the time. Now, I want to simulate the single particle breakage, and the particles are made of bonds sub-particles with JCF materials, and is loaded by 2 clump sphere.
The problem is that I want to get obvious fragment with compression test so that I can track the failure surface. In my simulation, the bonds will break and the peak force also will suddenly drop, but the particle can not break into 2 or 3 obvious fragments, they still keep connection. Even if I did a sufficiently long simulation, the particle can not break into fragments and the failure of particles become very strange, the particle had collapsed but will not split.
I try many way to improve the simulation, change the material properties, use other Coh materials, but nothing works.
I hope to obtain some advises, Thanks for any help.
The code is as following,
#######
from __future__ import print_function
import sys
import math
import os
import itertools
from os.path import expanduser
import numpy as np
from yade import plot, pack, utils
# generate paremters,
Magnification=
frictionAngle0 = radians(30)
frictionAngle1 = radians(30)
damping=0.8
# paramters for JCFpmMat
young_JCF=6e9
tensileStrength_JCF = 2.605e6 #2.85e6
cohesion_JCF = tensileStrength_JCF
poisson_JCF=0.4
ratio=1
# Sphere model setting
intRadius = 1.3
dtSafety = .8
strainRate = 1
specimenLength = .15
specimenRadius = 5e-3 #1.91e-3
sphereRadius = 0.23e-3 #0.07e-3 0.09e-3 0.12e-3 for #2.5m 0.23e-3 for 5mm
# material
plate_material = JCFpmMat(
sphere_material = JCFpmMat(
O.materials.
O.materials.
# spheres
pred = pack.inSphere(
sp = pack.randomDens
sample_
print("the num of particles: ", len(O.bodies))
global dis0
# loading part
zMin, zMax = [pt[2] for pt in aabbExtrema()]
top_loading_plate_1 = []
top_loading_plate_2 = []
top_loading_plate_3 = []
top_loading_
top_loading_
LoadID_1, LoadIDs_1 = O.bodies.
LoadID_2, LoadIDs_2 = O.bodies.
LoadIDs=
InterID_
f_dict = dict(zip(
O.bodies[
O.bodies[
v = strainRate * 2 * specimenRadius
print("v: ", Magnification *v)
O.bodies[
O.bodies[
#######
# engines
O.engines = [
ForceResett
InsertionSo
# InsertionSortCo
Interaction
),
GlobalStiff
#VTKRecorde
NewtonInteg
]
O.dt = 0.
O.step() # to create initial contacts
# now reset the interaction radius and go ahead
ss2sc.interacti
is2aabb.
# time step
O.dt = dtSafety * PWaveTimeStep()
# run simulation
#O.run()
Question information
- Language:
- English Edit question
- Status:
- Expired
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply: