core dumped after replacing boundary walls
Hi,
I'd like to ask that if is it possible to replace (or enlarge) the boundary walls after the sample is made?
The reason why I want to replace or enlarge the boundary walls is that, I simulated triaxial compression tests before, in this case the boundary walls work well. Now I want to simulate triaxial extension tests on the same samples, and I found that the size of the wall is not enough when the axial strain reaches to a certain value, please see one example at [1].
The problem in [1] I think is that the size of walls are small because I didn't adjust oversizeFactors in [2]. The way I came up with is to erase the old walls and add new walls into it at the begining of deviatoric loading. But then I had the core dumped problem when I started the deviatoric loading after replacing the walls.
The MWE below can show this problem. Please click run to start the deviatoric loading and the core domped will occur.
from yade import pack
nRead=readParam
num_spheres=1000,# number of spheres
compFricDegree = 30, # contact friction during the confining phase
key='_
unknownOk=True
)
from yade.params import table
num_spheres=
key=table.key
targetPorosity = 0.43 #the porosity we want for the packing
compFricDegree = table.compFricD
finalFricDegree = 30 # contact friction during the deviatoric loading
rate=-0.1 # loading rate (strain rate)
damp=0.2 # damping coefficient
stabilityThresh
young=5e6 # contact stiffness
mn,mx=Vector3(
O.materials.
O.materials.
walls=aabbWalls
wallIds=
sp=pack.
sp.makeCloud(
O.bodies.
triax=TriaxialS
maxMultiplier=
finalMaxMultip
thickness = 0,
stressMask = 7,
internalCompac
)
newton=
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
GlobalStiffnes
triax,
TriaxialStateR
newton,
]
Gl1_Sphere.
if nRead==0: yade.qt.
triax.goal1=
while 1:
O.run(1000, True)
unb=unbalance
print 'unbalanced force:',unb,' mean stress: ',triax.meanStress
if unb<stabilityTh
break
print "### Isotropic state saved ###"
import sys #this is only for the flush() below
while triax.porosity>
# we decrease friction value and apply it to all the bodies and contacts
compFricDegree = 0.95*compFricDegree
setContactFric
print "\r Friction: ",compFricDegree," porosity:
sys.stdout.flush()
O.run(500,1)
O.save(
print "### Compacted state saved ###"
triax.internalC
setContactFrict
triax.stressMask = 5
triax.goal2=rate
triax.goal1=-100000
triax.goal3=-100000
newton.damping=0.1
print "click run to start deviatoric loading"
#######
print "Here I'd like to enlarge the size of the boundary walls"
newWalls=
newWalls=
for i in range(6):
O.bodies.erase(i)
#######
def stop():
if -triax.
O.pause()
print "deviatoric loading finished"
O.engines=
If it is not possible to replace the walls, do you have any other idea to enlarge the walls? As my target is to simulate the triaxial extension test to a large strain level.
Thanks
Leonard
[1]https:/
[2]https:/
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Leonard
- Solved:
- Last query:
- Last reply: