Wall disappearing

Asked by mohsen

In the name of God
Hi every one!
I encountered an strange problem. when i add some spheres bonded to each other using CohFrictMat in a triaxial box, by the first step the walls disappeared. what is wrong?
the second strange thing is that although the walls are added to simulation before the definition of material labeled as 'cube', however when the script is run, their material type is shown as 'cube'. here is the MWE:

from yade import pack
############################################
### DEFINING VARIABLES AND MATERIALS ###
############################################

# The following 5 lines will be used later for batch execution

ConPre=-100000
ConPre1=-5000
key='t_20%_25_100' # put you simulation's name here
targetPorosity = 0.38#the porosity we want for the packing
compFricDegree = 30 # initial contact friction during the confining phase (will be decreased during the REFD compaction process)
finalFricDegree = 30 # contact friction during the deviatoric loading

young=1e9 # contact stiffness
mn,mx=Vector3(0,0,0),Vector3(.3,.3,.3) # corners of the initial packing
O.materials.append(CohFrictMat(young=1e9,poisson=0.2,density=1500,isCohesive=False,frictionAngle=0,label='walls'))

## create walls around the packing
walls=aabbWalls([mn,mx],thickness=0)
wallIds=O.bodies.append(walls)

## create materials for spheres and plates
O.materials.append(CohFrictMat(young=1e6,poisson=0.48,density=1500,label='cube',frictionAngle=radians(compFricDegree),
    isCohesive=True,
    normalCohesion=50000000,
    shearCohesion=50000000,
    momentRotationLaw=True
))

sp=pack.SpherePack()
sp.makeCloud((0,0,0),(.3,.3,.3),rMean=.05,distributeMass=False,seed=1)

#############################
### DEFINING ENGINES ###
############################

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

newton=NewtonIntegrator(damping=.1)

O.engines=[
    ForceResetter(),
    InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
    InteractionLoop(
        [Ig2_Sphere_Sphere_ScGeom6D(interactionDetectionFactor=1.12),Ig2_Box_Sphere_ScGeom6D()],
        [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(
            setCohesionNow=True,
            setCohesionOnNewContacts=False,
            )],
        [Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),Law2_ScGeom_FrictPhys_CundallStrack()]
    ),
    triax,
    newton,
]

triax.goal1=triax.goal2=ConPre1
triax.goal3=ConPre1
O.dt=0
yade.qt.Controller()

for x in [.1,.2]:
    for y in [.1,.2]:
        for z in [.1,.2]:
            s = utils.sphere((x,y,z),.08,material='cube')
            O.bodies.append(s)
########################################################
#######By adding the following lines to the terminal, the walls disppeared####
########################################################
#O.step()

Question information

Language:
English Edit question
Status:
Expired
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
mohsen (agha-mohsena) said :
#1

Another thing that happen and may help to solve the problem, is that if the stressMask changed, for example to 4 (loading along z axis), just the walls with the normal vector parallel to z (bodies 4 and 5) disappear.

Revision history for this message
Jan Stránský (honzik) said :
#2

Hello,

If I set non-zero O.dt, the walls remain.

> although the walls are added to simulation before the definition of material labeled as 'cube', however when the script is run, their material type is shown as 'cube'. here is the MWE:

The MWE shows nothing about materials..
If I check in console or the script
for b in O.bodies: print(b.mat.label)
I get 6x "wall" and 8x "cube"

> the second strange thing

please open separate problem for separate question ([1], point 5)

Cheers
Jan

[1] https://www.yade-dem.org/wiki/Howtoask

Revision history for this message
mohsen (agha-mohsena) said :
#3

Hi Jan
That works for me too! but would you please let me know what happen if dt set non-zero?

Revision history for this message
Jan Stránský (honzik) said :
#4

I have no idea myself.
I suspect the triax engine to do some division by O.dt for stress controlled walls.
You / somebody else can dig into source code if you want or somebody with the knowledge can answer.
Cheers
Jan

Revision history for this message
Launchpad Janitor (janitor) said :
#5

This question was expired because it remained in the 'Open' state without activity for the last 15 days.