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

I have been using the open source "Periodic Simple Shear" file 
(https://gitlab.com/yade-dev/trunk/-/blob/master/doc/sphinx/tutorial/04-periodic-simple-shear.py)
 to help me create a 2D shear simulation in Yade.

I have started writing my own script using the "Periodic Simple Shear" as 
inspiration. My model differs because I only want to shear the representative 
volume element, as opposed to tri-axially compressing, and then shearing, as 
seen in the link above. However, I  am finding myself confused whether or not 
if I am appropriating the following lines of code to simulate periodic boundary 
conditions:

> O.Periodic=True?
>O.cell.hSize=Matrix3(0.03,0,0, 0,1,0, 0,0,1)
>O.bodies.append(geom.facetBox((0,0,0),(0.03,1,1),wallMask=31))
>sp=pack.SpherePack()
>sp.makeCloud((0,-1,-1),(0.03,1,1),rMean=.03,rRelFuzz=0,periodic=True)

Without considering periodic conditions, I am able to simulate a box (nearly 
flat, but allowing a mono-layer particle pack) with a free top and can create 
loose packing inside of the box. 

I want to create a randomly simulated particle packing which is why I am 
favoring this method, as too:

>pack.regularHexa(pack.inAlignedBox((0,0,0),(2,0.3,2)),radius=.1,gap=0,color=(0,0,1))

as seen in "Periodic Simple Shear".

Any advice on how to simulate PBCs for the loose packing inside of the flat 
box? The documentation I have found has been limited on Yade-DEM.org. 

My full script can be seen here:

# gravity deposition, continuing with oedometric test after stabilization
# shows also how to run parametric studies with yade-batch

# The components of the batch are:
# 1. table with parameters, one set of parameters per line (ccc.table)
# 2. readParamsFromTable which reads respective line from the parameter file
# 3. the simulation muse be run using yade-batch, not yade
#
# $ yade-batch --job-threads=1 03-oedometric-test.table 03-oedometric-test.py
#

# load parameters from file if run in batch
# default values are used if not run from batch
#readParamsFromTable(rMean=.03,rRelFuzz=0,maxLoad=1.5e4,minLoad=1e4) 
# make rMean, rRelFuzz, maxLoad accessible directly as variables later


O.periodic=True # Is this neccessary?
O.cell.hSize=Matrix3(0.03,0,0, 0,1,0, 0,0,1) # Is this neccessary?

# create box with free top, and ceate loose packing inside the box
from yade import pack, plot
O.bodies.append(geom.facetBox((0,0,0),(0.03,1,1),wallMask=31))
sp=pack.SpherePack()
sp.makeCloud((0,-1,-1),(0.03,1,1),rMean=.03,rRelFuzz=0,periodic=True) #Do I 
need periodic=True, or has this been established above?
sp.toSimulation()

O.engines=[
        ForceResetter(),
        # sphere, facet, wall
        
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb(),Bo1_Wall_Aabb()]),
        InteractionLoop(
                # the loading plate is a wall, we need to handle sphere+sphere, 
sphere+facet, sphere+wall
                
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom(),Ig2_Wall_Sphere_ScGeom()],
                [Ip2_FrictMat_FrictMat_FrictPhys()],
                [Law2_ScGeom_FrictPhys_CundallStrack()]
        ),
        NewtonIntegrator(gravity=(0,0,-9.81),damping=0.5),
        # the label creates an automatic variable referring to this engine
        # we use it below to change its attributes from the functions called
        PyRunner(command='checkUnbalanced()',realPeriod=2,label='checker'),
]
O.dt=.5*PWaveTimeStep()







-- 
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