yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #24127
Re: [Question #693413]: about cohFrictMat model
Question #693413 on Yade changed:
https://answers.launchpad.net/yade/+question/693413
Status: Answered => Open
libby is still having a problem:
Thanks Jerome!
1. That's true. After I decrease the strain rate, the model seems to behave normally
2. thanks for pointing out the mistake. I used 'initial bond - current bond' to count the number of cracks instead and it seems working!
############
for i in O.interactions:
initialBond+=1
print('number of initial bond=',initialBond)
currentBond=0
for i in O.interactions:
if i.phys.cohesionBroken==False:
currentBond+=1
print('crack number=',initialBond-currentBond)
#################
is that an appropriate way to track the history of interactions breakage?
3. I prepare a simple script to see the effect of how fragile works, but then error occur:' ValueError: shape mismatch: objects cannot be broadcast to a single shape'. I can't figure out why, can you help me with this ?
###########
from yade import pack,qt,plot
normalCohesion=1e9
shearCohesion=1e9
RollingStiffness=1
idConcrete=O.materials.append(CohFrictMat(young=23.1e9,poisson=0.4,frictionAngle=atan(0.5),density=2036,normalCohesion=normalCohesion,shearCohesion=shearCohesion,fragile=False))
O.bodies.append([sphere((0,0,0),.5,fixed=True,material=idConcrete),sphere((0,0,-1),.5,material=idConcrete)])
### define constant variables
factor=1.5
damping=.4
strainRateTension=5
bb=uniaxialTestFeatures() ## extract the information for the uniaxial test
negIds,posIds,axis,crossSectionArea=bb['negIds'],bb['posIds'],bb['axis'],bb['area']
O.dt=0.00005*PWaveTimeStep() ## set critical time step
O.engines=[
ForceResetter(),
InsertionSortCollider([
Bo1_Sphere_Aabb(aabbEnlargeFactor=factor,label='bo1s'),]), ## expand the collision detection to creat initial interactions
##
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom6D(interactionDetectionFactor=factor,label='ig2ss'), ## create collision geometry
],
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False)], ## creat collision phys
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm=True,always_use_moment_law=False)],
),
UniaxialStrainer(strainRate=strainRateTension,axis=axis,asymmetry=0,posIds=posIds,negIds=negIds,crossSectionArea=crossSectionArea,blockDisplacements=False,blockRotations=False,setSpeeds=True,label='strainer'),
PyRunner(iterPeriod=10,command='addPlotData()'),
NewtonIntegrator(gravity=(0.,0.,-1000)),
]
O.step() ## go one step to creat interactions
bo1s.aabbEnlargeFactor=1 ## reset the interaction radius
ig2ss.interactionDetectionFactor=1
O.interactions[0,1].phys.unpMax=-1
def addPlotData():
plot.addData({'i':O.iter,'d':O.bodies[0].state.pos[2]-O.bodies[1].state.pos[2]-1,'f':O.interactions[0,1].phys.normalForce[2],'e':O.interactions[0,1].phys.unp})
plot.plots={'i':('f'),'i ':('e'),' i':('d')}
plot.plot()
O.saveTmp()
###############################
--
You received this question notification because your team yade-users is
an answer contact for Yade.