Unreal results when internal compaction is true
hi all,
I'm working on triax example. I changed contact law to mindlin and tried to run the simulation again but in radius expansion(internal compaction) phase, UNREAL results appear which are not acceptable and don't make sense. When I change the law to cundallStrack everything gets back to normal. what is happening here? would be thankful if you help me with that.
here is my script:
from yade import pack,plot
import matplotlib; matplotlib.
import pylab
#######
### DEFINING VARIABLES AND MATERIALS ###
#######
key='_Kenney_'
num_spheres=48710
psdSizes,
#targetPorosity = 0.387 #the porosity we want for the packing
compFricDegree = 26.5 # initial contact friction during the confining phase (will be decreased during the REFD compaction process)
finalFricDegree = 26.5 # contact friction during the deviatoric loading
rate=0.001 # loading rate (strain rate)
damp=0.2 # damping coefficient!
stabilityThresh
young=540e6 # contact stiffness
#mn,mx=
## create materials for spheres and plates
O.materials.
O.materials.
# create walls around the packing
#walls=
#wallIds=
## use a SpherePack object to generate a random loose particles packing
sp=pack.
sp.particleSD2(
O.bodies.
walls=aabbWalls
wallIds=
#or alternatively (higher level function doing exactly the same):
#sp.toSimulatio
#######
### DEFINING ENGINES ###
#######
triax=TriaxialS
## ThreeDTriaxialE
## this control of boundary conditions was used for instance in http://
maxMultiplier=
finalMaxMultip
thickness = 0,
## switch stress/strain control using a bitmask. What is a bitmask, huh?!
## Say x=1 if stess is controlled on x, else x=0. Same for for y and z, which are 1 or 0.
## Then an integer uniquely defining the combination of all these tests is: mask = x*1 + y*2 + z*4
## to put it differently, the mask is the integer whose binary representation is xyz, i.e.
## "100" (1) means "x", "110" (3) means "x and y", "111" (7) means "x and y and z", etc.
stressMask = 7,
internalCompac
)
newton=
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
## We will use the global stiffness of each body to determine an optimal timestep (see https:/
GlobalStiffnes
triax,
TriaxialStateR
newton
]
#######
#### APPLYING CONFINING PRESSURE ###
#######
#the value of (isotropic) confining stress defines the target stress to be applied in all three directions
triax.goal1=
while 1:
O.run(1000, True)
#the global unbalanced force on dynamic bodies, thus excluding boundaries, which are not at equilibrium
unb=unbalance
print 'unbalanced force:',unb,' mean stress: ',triax.meanStress
if unb<stabilityTh
break
O.save(
print "### Isotropic state saved ###"
print 'ACN=',
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Sina Jafari
- Solved:
- Last query:
- Last reply: