← Back to team overview

yade-users team mailing list archive

Re: [Question #659526]: Triaxial test on dry granular material

 

Question #659526 on Yade changed:
https://answers.launchpad.net/yade/+question/659526

Swapnil posted a new comment:
Thanks all.


@Amiya & Robert : sorry, the stressMask=7 was a typo. I have read about it in detail but just missed it there ;)

@Jan & Robert: I read the code in [1] and tried to rectify my script.
triax is used there in a similar way as here. The problem still
persists. Moreover, the simulation now goes blank after some time. The
error obtained is "cannot convert float NaN to integer".

Any ideas to correct this now?

Here is the modified script.


from yade import pack,plot
import math

num_spheres=10000   # number of spheres
young=3e9
compFricDegree = 30 # initial contact friction during the confining phase
finalFricDegree = 30 # contact friction during the deviatoric loading
mn,mx=Vector3(0,0,0),Vector3(0.1,0.1,0.1) # corners of the initial packing

O.materials.append(FrictMat(young=young,poisson=0.3,frictionAngle=radians(compFricDegree),density=2600,label='spheres'))
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='walls'))
walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)

sp=pack.SpherePack()
sp.makeCloud(mn,mx,-1,0.5,num_spheres,False, 0.65,seed=1) #"seed" make the "random" generation always the same
sp.toSimulation(material='spheres')

triax=TriaxialStressController(
 maxMultiplier=1.+2e4/young, # spheres growing factor (fast growth)
 finalMaxMultiplier=1.+2e3/young, # spheres growing factor (slow growth)
 thickness = 0,
 stressMask = 0,
 max_vel = 0.005,
 internalCompaction=True, # If true the confining pressure is generated by growing particles
)

newton=NewtonIntegrator(gravity=(0,0,-9.81),damping=0.3)

O.engines=[
 ForceResetter(),
 InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
 InteractionLoop(
  [Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
  [Ip2_FrictMat_FrictMat_FrictPhys()],
  [Law2_ScGeom_FrictPhys_CundallStrack()],label="iloop"
 ),
 
 GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),PyRunner(iterPeriod=100,command="addPlotData()"),
 triax,
 newton
]

#loading only along Z-direction (1D consolidation test)
strain_rate=-0.0005
triax.goal1=triax.goal2=triax.goal3=strain_rate #---> Is this correct

O.dt=0.5*PWaveTimeStep()
def addPlotData():
  plot.addData(Sz=-triax.stress[triax.wall_right_id][0], Dz=-triax.strain[0])
  
plot.plots= {'Dz':('Sz')}
plot.plot()


[1] https://github.com/yade/trunk/blob/master/examples/triax-tutorial
/script-session1.py

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