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

