yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #18438
[Question #676382]: Engine Error (JCFpmMat)
New question #676382 on Yade:
https://answers.launchpad.net/yade/+question/676382
Hi guys,
I tried to model the triaxial with JCFpmMat, but when I run it I faced the attached error. I know the problem comes from the engine but I modified it for thousand times but still is not working properly. Please help me to settle this issue.
Thanks
The error:
Number of elements: 75006
Box Volume: 4.01057204585e-312
Friction: 28.5 porosity: 1.0FATAL /build/yade-KKgSmd/yade-1.20.0/core/ThreadRunner.cpp:30 run: Exception occured:
Body #5006: Body::material type JCFpmMat doesn't correspond to Body::state type State (should be JCFpmState instead).
ERROR /build/yade-KKgSmd/yade-1.20.0/py/wrapper/yadeWrapper.cpp:608 wait: Simulation error encountered.
Traceback (most recent call last):
File "/usr/bin/yade", line 182, in runScript
execfile(script,globals())
File "j2triaxial-JCFPM.py", line 145, in <module>
O.run(5000,1)
RuntimeError: std::exception
[[ ^L clears screen, ^U kills line. F12 controller, F11 3d view (use h-key for showing help), F10 both, F9 generator, F8 plot. ]]
And part of my script:
# The following 5 lines will be used later for batch execution
nRead=readParamsFromTable(
num_spheres=5000,# number of spheres
compFricDegree =30, # contact friction during the confining phase
key='_Triax-J2_', # put you simulation's name here
unknownOk=True
)
from yade.params import table
num_spheres=table.num_spheres# number of spheres
key=table.key
targetPorosity = 0.48 #the porosity we want for the packing
frictionAngle = 30# contact friction during the deviatoric loading
finalFricDegree = 30
rate=-0.02 # loading rate (strain rate)
stabilityThreshold=0.01 # we test unbalancedForce against this value in different loops (see below)
iterper=1000
young=4.5e5# contact stiffness
poisson=0.25
cohesion=20e6
tensileStrength = 7e6
density = 1950
intRadius= 1
damp=0.1 # Newton damping
mn,mx=Vector3(0,0,0),Vector3(.1,.1,.1) # corners of the initial packing
## create materials for spheres and plates
id_Mat=O.materials.append(JCFpmMat(young=young, cohesion=cohesion, density=density, frictionAngle=radians(frictionAngle), tensileStrength=tensileStrength, poisson=poisson,label='JCFmat'))
Mat=O.materials[id_Mat]
#frictionless walls
O.materials.append(FrictMat(young=80e9,poisson=.45,frictionAngle=radians(frictionAngle),density=7000,label='walls'))
## create walls around the packing
walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)
## use a SpherePack object to generate a random loose particles packing
sp=pack.SpherePack()
sp.makeCloud(minCorner=mn,maxCorner=mx,rMean=.002,rRelFuzz=0.0,periodic=False,num=num_spheres)
O.bodies.append([sphere(c,r,material=Mat) for c,r in sp])
########################################
#Modified engine
##################################
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=intRadius),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intRadius),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys(),Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1, label='jcf')],
[Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(smoothJoint=True,label='interactionlaw', recordCracks=True),
Law2_ScGeom_FrictPhys_CundallStrack()]
),
GlobalStiffnessTimeStepper
(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.5),
triax,
VTKRecorder(iterPeriod=iterper,initRun=True,fileName='VTKFiles/'+'-',recorders=['spheres','intr','stress', 'bstresses','jcfpm','cracks']),
TriaxialStateRecorder(iterPeriod=100,file='J2_Triaxial,'+key),
NewtonIntegrator(damping=0.1)
]
--
You received this question notification because your team yade-users is
an answer contact for Yade.