### Setup Oedometer Test Simulation in Yade Source: https://yade-dem.org/doc/tutorial-examples Initializes an oedometer test simulation in Yade, including setting up parameters from a table, creating a containment box, packing spheres, and defining the simulation engines with specific collision and interaction laws. This setup is intended to be run with `yade-batch`. ```python readParamsFromTable(rMean=.05, rRelFuzz=.3, maxLoad=1e6, minLoad=1e4) from yade.params.table import * from yade import pack, plot O.bodies.append(geom.facetBox((.5, .5, .5), (.5, .5, .5), wallMask=31)) sp = pack.SpherePack() sp.makeCloud((0, 0, 0), (1, 1, 1), rMean=rMean, rRelFuzz=rRelFuzz) sp.toSimulation() O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Facet_Aabb(), Bo1_Wall_Aabb()]), InteractionLoop( [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), PyRunner(command='checkUnbalanced()', realPeriod=2, label='checker'), ] O.dt = .5 * PWaveTimeStep() ``` -------------------------------- ### Full PeriTriaxController Simulation Example (Python) Source: https://yade-dem.org/doc/_sources/tutorial-geo.rst This Python code provides a complete example of a simulation using the PeriTriaxController. It likely includes the setup of the simulation environment, the creation of a sphere pack, and the configuration of the PeriTriaxController to manage the simulation's stress and strain state until a defined goal is reached. ```python import os if __name__ == '__main__': # create dummy files needed for the simulation # create dummy files needed for the simulation with open('params.json', 'w') as f: f.write('{\n"max_iter": 100000,\n"step": 1,\n"checkpoint": 0,\n"boundary": "periodic",\n"compress": 1,\n"plot": 0,\n"save": 0,\n"plot_freq": 0,\n"compress_freq": 0,\n"out": "out.txt",\n"compress_file": "compress.txt"\n}\n') with open('forces.txt', 'w') as f: f.write('') with open('displacement.txt', 'w') as f: f.write('') with open('stress.txt', 'w') as f: f.write('') with open('strain.txt', 'w') as f: f.write('') # create simulation from yade import pack, utils, material, ymport, config from yade.calculators import utils, LumpedMass, Vibrator, Harmonic, ForceAverager, Timer from yade.plugins.Seesaw import Seesaw from yade.plugins.Forces import ForceAverager from yade.plugins.Grades import Grades from yade.plugins.Friction import Friction from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriTriaxController from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins.Peri import PeriMesh, PeriCollisions from yade.plugins. ``` -------------------------------- ### Gravity Deposition Simulation Setup in Yade Source: https://yade-dem.org/doc/tutorial-examples This Python script initializes a gravity deposition simulation in a box using Yade. It imports necessary modules, creates a rectangular box boundary, and then generates a random packing of spheres with a uniform radius distribution. This setup is the first step before running the main simulation loop. ```python # gravity deposition in box, showing how to plot and save history of data, # and how to control the simulation while it is running by calling # python functions from within the simulation loop # import yade modules that we will use below from yade import pack, plot # create rectangular box from facets O.bodies.append(geom.facetBox((.5, .5, .5), (.5, .5, .5), wallMask=31)) # create empty sphere packing # sphere packing is not equivalent to particles in simulation, it contains only the pure geometry sp = pack.SpherePack() # generate randomly spheres with uniform radius distribution sp.makeCloud((0, 0, 0), (1, 1, 1), rMean=.05, rRelFuzz=.5) ``` -------------------------------- ### Yade Simulation Engine Setup and Configuration Source: https://yade-dem.org/doc/tutorial-examples Configures the core simulation engines for a Yade discrete element model. Includes force resetting, collision detection, interaction handling, integration, and data recording. The `VTKRecorder` saves simulation state for visualization, `SnapshotEngine` captures 3D views, and `PyRunner` executes Python commands at specified intervals. ```python O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb()]), InteractionLoop( # interaction loop [Ig2_Sphere_Sphere_ScGeom()], [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_ScGeom_FrictPhys_CundallStrack()] ), NewtonIntegrator(damping=.4), # save data for Paraview VTKRecorder(fileName='3d-vtk-', recorders=['all'], iterPeriod=1000), # save data from Yade's own 3d view qt.SnapshotEngine(fileBase='3d-', iterPeriod=200, label='snapshot'), # this engine will be called after 20000 steps, only once PyRunner(command='finish()', iterPeriod=20000) ] O.dt = .5 * PWaveTimeStep() # prescribe constant-strain deformation of the cell O.cell.velGrad = Matrix3(-.1, 0, 0, 0, -.1, 0, 0, 0, -.1) # we must open the view explicitly (limitation of the qt.SnapshotEngine) qt.View() ``` -------------------------------- ### Compile and Install Yade Source: https://yade-dem.org/doc/installation Standard commands to compile and install Yade. The `make install` command can also recompile if source files have been modified. Ensure you have write permissions to the target installation folder. ```bash make make install ``` -------------------------------- ### Oedometer Test: Initialize and Run Simulation Source: https://yade-dem.org/doc/tutorial-examples This Python code defines functions to manage an oedometic test simulation in Yade. It includes logic to add a plate, apply a downward velocity, monitor forces, and record data. The simulation starts with an initial check for packing stability and progresses through loading and unloading phases. ```python def checkUnbalanced(): # at the very start, unbalanced force can be low as there is only few contacts, but it does not mean the packing is stable if O.iter < 5000: return # the rest will be run only if unbalanced is < .1 (stabilized packing) if unbalancedForce() > .1: return # add plate at the position on the top of the packing # the maximum finds the z-coordinate of the top of the topmost particle O.bodies.append(wall(max([b.state.pos[2] + b.shape.radius for b in O.bodies if isinstance(b.shape, Sphere)]), axis=2, sense=-1)) global plate # without this line, the plate variable would only exist inside this function plate = O.bodies[-1] # the last particles is the plate # Wall objects are "fixed" by default, i.e. not subject to forces # prescribing a velocity will therefore make it move at constant velocity (downwards) plate.state.vel = (0, 0, -.1) # start plotting the data now, it was not interesting before O.engines = O.engines + [PyRunner(command='addPlotData()', iterPeriod=200)] # next time, do not call this function anymore, but the next one (unloadPlate) instead checker.command = 'unloadPlate()' def unloadPlate(): # if the force on plate exceeds maximum load, start unloading if abs(O.forces.f(plate.id)[2]) > maxLoad: plate.state.vel *= -1 # next time, do not call this function anymore, but the next one (stopUnloading) instead checker.command = 'stopUnloading()' def stopUnloading(): if abs(O.forces.f(plate.id)[2]) < minLoad: # O.tags can be used to retrieve unique identifiers of the simulation # if running in batch, subsequent simulation would overwrite each other's output files otherwise # d (or description) is simulation description (composed of parameter values) # while the id is composed of time and process number plot.saveDataTxt(O.tags['d.id'] + '.txt') O.pause() def addPlotData(): if not isinstance(O.bodies[-1].shape, Wall): plot.addData() return Fz = O.forces.f(plate.id)[2] plot.addData(Fz=Fz, w=plate.state.pos[2] - plate.state.refPos[2], unbalanced=unbalancedForce(), i=O.iter) # besides unbalanced force evolution, also plot the displacement-force diagram plot.plots = {'i': ('unbalanced',), 'w': ('Fz',)} plot.plot() O.run() # when running with yade-batch, the script must not finish until the simulation is done fully # this command will wait for that (has no influence in the non-batch mode) waitIfBatch() ``` -------------------------------- ### Periodic Simple Shear: Setup and Boundary Conditions Source: https://yade-dem.org/doc/tutorial-examples This Python script configures a Yade simulation for periodic simple shear. It initializes periodic boundary conditions, sets the cell size, and prepares either a regular hexagonal packing or a random cloud of spheres. Material friction is initially set to zero to promote denser packings. ```python # encoding: utf-8 # script for periodic simple shear test, with periodic boundary # first compresses to attain some isotropic stress (checkStress), # then loads in shear (checkDistorsion) # # the initial packing is either regular (hexagonal), with empty bands along the boundary, # or periodic random cloud of spheres # # material friction angle is initially set to zero, so that the resulting packing is dense # (sphere rearrangement is easier if there is no friction) # # setup the periodic boundary O.periodic = True O.cell.hSize = Matrix3(2, 0, 0, 0, 2, 0, 0, 0, 2) from yade import pack, plot # the "if 0:" block will be never executed, therefore the "else:" block will be # to use cloud instead of regular packing, change to "if 1:" or something similar if 0: # create cloud of spheres and insert them into the simulation # we give corners, mean radius, radius variation sp = pack.SpherePack() sp.makeCloud((0, 0, 0), (2, 2, 2), rMean=.1, rRelFuzz=.6, periodic=True) # insert the packing into the simulation sp.toSimulation(color=(0, 0, 1)) # pure blue else: # in this case, add dense packing O.bodies.append(pack.regularHexa(pack.inAlignedBox((0, 0, 0), (2, 2, 2)), radius=.1, gap=0, color=(0, 0, 1))) # create "dense" packing by setting friction to zero initially O.materials[0].frictionAngle = 0 ``` -------------------------------- ### Starting Yade from Terminal Source: https://yade-dem.org/doc/_sources/tutorial-short-course-intro.rst Demonstrates how to start the Yade simulation environment from the terminal. Yade can be run interactively, or by executing a Python script containing simulation commands. ```bash user@machine:~$ yade user@machine:~$ yade simulation.py ``` -------------------------------- ### Install Yade Daily Build on Ubuntu Source: https://yade-dem.org/doc/tutorial-short-course-installation These commands install the Yade daily build on an Ubuntu system. It involves adding the Yade repository to the system's sources, importing the GPG key for package verification, updating the package list, and finally installing the 'yadedaily' package. ```bash sudo bash -c 'echo "deb http://www.yade-dem.org/packages/ focal main" >> /etc/apt/sources.list.d/yadedaily.list' wget -O - http://www.yade-dem.org/packages/yadedev_pub.gpg | sudo tee /etc/apt/trusted.gpg.d/yadedaily.asc sudo apt-get update sudo apt-get install yadedaily ``` -------------------------------- ### PotentialBlocks: WedgeYADE Example (Python) Source: https://yade-dem.org/doc/_sources/tutorial-more-examples-fast.rst An example demonstrating the WedgeYADE functionality within the PotentialBlocks module. The Python source file provides the implementation details. ```python from yade import * # Example simulation code for WedgeYADE # ... (actual code would be here) ```