New question #642046 on Yade:
https://answers.launchpad.net/yade/+question/642046

Dear all,
       Thanks for your kind attention. I am making a densest sample for 
triaxial tests by using the vibration compaction method. So I plan to use the  
HarmonicMotionEngine to let the bottom wall of the aabbWalls vibrate and to use 
the TriaxialSterssController to keep the stress of the top wall 14KPa. But that 
is not useful, because when the HarmonicMotionEngine runs, all walls of the 
aabbWalls vibrate. What should I do to solve this problem? 
        Here is my python script below:
from yade import pack, qt
import math #import mathematical formulae
Gl1_Sphere.stripes=1
qt.Controller(), qt.View() #open the controlling and visualization interfaces

#################################################
#####   DEFINING VARIABLES AND MATERIALS   ######
#################################################

nRead=utils.readParamsFromTable(
        num_spheres=5000,# number of spheres
        key='_D10', #put you simulation's name here
        unknownOk=True
)
from yade.params import table#the above five lines will be used later for batch 
execution

num_spheres = table.num_spheres #number of spheres
finalFricDegree = atan(0.25) #contact friction during the deviatoric loading
damp = 0.008 #the non-viscous damping coefficient
key = table.key # put you simulation's name here
young1 = 1e10 #the spheres' Young's moduolus
young2 = 1e12 #the walls' Young's moduolus
mn,mx = Vector3(0.0,0.0,0.0),Vector3(0.110,0.06,0.110) #corners of the initial 
packing
thick = 0 #the thickness of the walls
#the following lines represent the grain size distribution
dia = [0.003, 0.0031, 0.005, 0.006, 0.007, 0.008, 0.009, 0.01]
phi = [0.0, 0.231, 0.301, 0.460, 0.600, 0.737, 0.870, 1.0]
#create materials for spheres and walls
O.materials.append(FrictMat(young=young1,poisson=0.7,frictionAngle=finalFricDegree,density=7930,label='spheres'))
O.materials.append(FrictMat(young=young2,poisson=0.7,frictionAngle=0,density=0,label='walls'))

##############################
####  GENERATING BODIES  #####
##############################

#create walls around the packing
walls=utils.aabbWalls([mn,mx],thickness=thick,oversizeFactor=1.5,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,num=num_spheres,periodic=False,psdSizes=dia,psdCumm=phi,distributeMass=True,seed=1)
 #"seed" make the "random" generation always the same
O.bodies.append([sphere(center,rad,material='spheres',color=(0,0,1)) for 
center,rad in sp])

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

#set triaxial engine
triax=TriaxialStressController(
        thickness = thick, #thickness of boxes
        stressMask = 2, #the vertical direction of wall is controlled by rate 
of strain
        #fix the walls except the top one
        wall_left_activated=False,
        wall_right_activated=False,
        wall_bottom_activated=False,
        wall_back_activated=False,
        wall_front_activated=False,
        internalCompaction = False, #compacting through moving the walls
        stressDamping = 0, #wallDamping=0 
        max_vel = 0.1 #the maximum walls velocity
)

newton=NewtonIntegrator(damping=damp) #set non-viscous damping

swing = HarmonicMotionEngine(
        A = (0,0.002,0),
        f = (0,50,0),
        fi = (0,-0.5*math.pi,0),
        ids = wallIds
        )

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()]
        ),
        
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
        triax,
        swing,
        newton
]

triax.goal2 = -14000
triax.goal1 = triax.goal3 =0

Sincerely
hjz

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

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to