------------------------------------------------------------ revno: 4002 committer: bchareyre <bruno.chare...@grenoble-inp.fr> timestamp: Tue 2017-02-07 17:46:13 +0100 message: cleaning examples removed: examples/periodic-compress.py examples/periodic-grow.py examples/periodicSandPile.py examples/test/peri3dController_example1.py examples/test/peri3dController_shear.py examples/test/peri3dController_triaxialCompression.py examples/test/periodic-shear.py examples/test/periodic-simple-shear.py examples/test/periodic-simple.py examples/test/periodic-triax-settingHsize.py examples/test/periodic-triax.py
-- lp:yade https://code.launchpad.net/~yade-pkg/yade/git-trunk Your team Yade developers is subscribed to branch lp:yade. To unsubscribe from this branch go to https://code.launchpad.net/~yade-pkg/yade/git-trunk/+edit-subscription
=== removed file 'examples/periodic-compress.py' --- examples/periodic-compress.py 2013-03-28 10:53:06 +0000 +++ examples/periodic-compress.py 1970-01-01 00:00:00 +0000 @@ -1,48 +0,0 @@ -''' -This example shows compression of a packing with a periodic cell. -''' - -O.periodic=True -O.cell.setBox(20,20,10) - -from yade import pack,timing - -O.materials.append(FrictMat(young=30e9,density=2400)) -p=pack.SpherePack() -p.makeCloud(Vector3(0,0,0),Vector3(20,20,10),1,.5,700,True) -for sph in p: - O.bodies.append(sphere(sph[0],sph[1])) - - -O.timingEnabled=True -O.engines=[ - ForceResetter(), - InsertionSortCollider([Bo1_Sphere_Aabb()],allowBiggerThanPeriod=True), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom()], - [Ip2_FrictMat_FrictMat_FrictPhys()], - [Law2_ScGeom_FrictPhys_CundallStrack()], - ), - PeriIsoCompressor(charLen=.5,stresses=[-50e9,-1e8],doneHook="print 'FINISHED'; O.pause() ",keepProportions=True), - NewtonIntegrator(damping=.4) -] -O.dt=PWaveTimeStep() -O.saveTmp() -#print O.cell.refSize -from yade import qt; qt.Controller(); qt.View() -O.run() -O.wait() -timing.stats() -#while True: -# O.step() - - -# now take that packing and pad some larger volume with it -#sp=pack.SpherePack() -#sp.fromSimulation() # take spheres from simulation; cellSize is set as well -#O.reset() -#print sp.cellSize -#sp.cellFill((30,30,30)) -#print sp.cellSize -#for s in sp: -# O.bodies.append(sphere(s[0],s[1])) === removed file 'examples/periodic-grow.py' --- examples/periodic-grow.py 2013-03-28 10:53:06 +0000 +++ examples/periodic-grow.py 1970-01-01 00:00:00 +0000 @@ -1,39 +0,0 @@ -"""Script that shrinks the periodic cell progressively. -It prints strain and average stress (computed from total volume force) -once in a while.""" - -from yade import timing -O.engines=[ - ForceResetter(), - InsertionSortCollider([Bo1_Sphere_Aabb()],allowBiggerThanPeriod=True), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom()], - [Ip2_FrictMat_FrictMat_FrictPhys()], - [Law2_ScGeom_FrictPhys_CundallStrack()], - ), - NewtonIntegrator(damping=.6) -] -import random -for i in xrange(250): - O.bodies.append(sphere(Vector3(10*random.random(),10*random.random(),10*random.random()),.5+random.random())) -cubeSize=20 -# absolute positioning of the cell is not important -O.periodic=True -O.cell.setBox(cubeSize,cubeSize,cubeSize) -O.dt=PWaveTimeStep() -O.saveTmp() -from yade import qt -qt.Controller(); qt.View() -O.run(200,True) -rate=-1e-3*cubeSize/(O.dt*200)*Matrix3.Identity -O.cell.velGrad=rate - -print 'Please be patient...' - -for i in range(0,25): - O.run(2000,True) - F,stiff=totalForceInVolume() - dim=O.cell.refSize; A=Vector3(dim[1]*dim[2],dim[0]*dim[2],dim[0]*dim[1]) - avgStress=sum([F[i]/A[i] for i in 0,1,2])/3. - print 'strain',(cubeSize-dim[0])/cubeSize,'avg. stress ',avgStress,'unbalanced ',unbalancedForce() -#O.timingEnabled=True; timing.reset(); O.run(200000,True); timing.stats() === removed file 'examples/periodicSandPile.py' --- examples/periodicSandPile.py 2013-08-01 05:04:49 +0000 +++ examples/periodicSandPile.py 1970-01-01 00:00:00 +0000 @@ -1,54 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# © 2012 Bruno Chareyre <bruno.chare...@hmg.inpg.fr> -"""Script showing how large bodies can be combined with periodic boundary conditions using InsertioSortCollider::allowBiggerThanPeriod=True (1).""" - -from yade import pack -from pylab import rand -from yade import qt - -O.periodic=True -length=0.4 -height=0.6 -width=0.2 -thickness=0.01 - -O.cell.hSize=Matrix3(length, 0, 0, - 0 ,3.*height, 0, - 0, 0, width) - -O.materials.append(FrictMat(density=1,young=1e5,poisson=0.3,frictionAngle=radians(30),label='boxMat')) -lowBox = box( center=(length/2.0,height-thickness/2.0,width/2.0), extents=(length*1000.0,thickness/2.0,width*1000.0) ,fixed=True,wire=False) -O.bodies.append(lowBox) - -radius=0.01 -O.materials.append(FrictMat(density=1000,young=1e4,poisson=0.3,frictionAngle=radians(30),label='sphereMat')) -sp=pack.SpherePack() -sp.makeCloud((0.*length,height+1.2*radius,0.25*width),(0.5*length,2*height-1.2*radius,0.75*width),-1,.2,2000,periodic=True) -O.bodies.append([sphere(s[0],s[1],color=(0.6+0.15*rand(),0.5+0.15*rand(),0.15+0.15*rand())) for s in sp]) - -O.dt=0.2*PWaveTimeStep() -O.usesTimeStepper=True -newton=NewtonIntegrator(damping=0.6,gravity=(0,-10,0)) - -O.engines=[ - ForceResetter(), - #(1) This is where we all big bodies, else it would crash due to the very large bottom box: - InsertionSortCollider([Bo1_Box_Aabb(),Bo1_Sphere_Aabb()],allowBiggerThanPeriod=True), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()], - [Ip2_FrictMat_FrictMat_FrictPhys()], - [Law2_ScGeom_FrictPhys_CundallStrack()] - ), - GlobalStiffnessTimeStepper(timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8,defaultDt=O.dt), - newton -] - -Gl1_Sphere.stripes=1 - -from yade import qt -qt.View() -print('Press PLAY button') - - - === removed file 'examples/test/peri3dController_example1.py' --- examples/test/peri3dController_example1.py 2013-03-28 11:13:12 +0000 +++ examples/test/peri3dController_example1.py 1970-01-01 00:00:00 +0000 @@ -1,67 +0,0 @@ -# peri3dController_example1.py -# script, that explains funcionality and input parameters of Peri3dController - -from yade import pack, plot - -# create some material -O.materials.append(CpmMat(neverDamage=True,young=25e9,frictionAngle=.7,poisson=.2,sigmaT=3e6,epsCrackOnset=1e-4,relDuctility=30)) - -# create periodic assembly of particles -initSize=1.2 -sp=pack.randomPeriPack(radius=.05,initSize=Vector3(initSize,initSize,initSize),memoizeDb='/tmp/packDb.sqlite') -sp.toSimulation() - -# plotting -#plot.live=False -plot.plots={'progress':('sx','sy','sz','syz','szx','sxy',),'progress_':('ex','ey','ez','eyz','ezx','exy',)} -def plotAddData(): - plot.addData( - progress=p3d.progress,progress_=p3d.progress, - sx=p3d.stress[0],sy=p3d.stress[1],sz=p3d.stress[2], - syz=p3d.stress[3],szx=p3d.stress[4],sxy=p3d.stress[5], - ex=p3d.strain[0],ey=p3d.strain[1],ez=p3d.strain[2], - eyz=p3d.strain[3],ezx=p3d.strain[4],exy=p3d.strain[5], - ) - -# in how many time steps should be the goal state reached -nSteps=4000 - -O.dt=PWaveTimeStep()/2 -EnlargeFactor=1.5 -EnlargeFactor=1.0 -O.engines=[ - ForceResetter(), - InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=EnlargeFactor,label='bo1s')]), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=EnlargeFactor,label='ig2ss')], - [Ip2_CpmMat_CpmMat_CpmPhys()],[Law2_ScGeom_CpmPhys_Cpm()]), - NewtonIntegrator(), - Peri3dController( - goal=(20e-4,-6e-4,0, -2e6,3e-4,2e6), # Vector6 of prescribed final values (xx,yy,zz, yz,zx,xy) - stressMask=0b101100, # prescribed ex,ey,sz,syz,ezx,sxy; e..strain; s..stress - nSteps=nSteps, # how many time steps the simulation will last - # after reaching nSteps do doneHook action - doneHook='print "Simulation with Peri3dController finished."; O.pause()', - - # the prescribed path (step,value of stress/strain) can be defined in absolute values - xxPath=[(465,5e-4),(934,-5e-4),(1134,10e-4)], - # or in relative values - yyPath=[(2,4),(7,-2),(11,0),(14,4)], - # if the goal value is 0, the absolute stress/strain values are always considered (step values remain relative) - zzPath=[(5,-1e7),(10,0)], - # if ##Path is not explicitly defined, it is considered as linear function between (0,0) and (nSteps,goal) - # as in yzPath and xyPath - # the relative values are really relative (zxPath gives the same - except of the sign from goal value - result as yyPath) - zxPath=[(4,2),(14,-1),(22,0),(28,2)], - xyPath=[(1,1),(2,-1),(3,1),(4,-1),(5,1)], - # variables used in the first step - label='p3d' - ), - PyRunner(command='plotAddData()',iterPeriod=1), -] - -O.step() -bo1s.aabbEnlargeFactor=ig2ss.interactionDetectionFactor=1. - -O.run(); #O.wait() -plot.plot(subPlots=False) === removed file 'examples/test/peri3dController_shear.py' --- examples/test/peri3dController_shear.py 2013-04-24 19:49:00 +0000 +++ examples/test/peri3dController_shear.py 1970-01-01 00:00:00 +0000 @@ -1,61 +0,0 @@ -# peri3dController_shear.py -# script, that explains funcionality and input parameters of Peri3dController on the example of -# shear test with rotated periodic cell (that enables strain localization). -# The simulation is run on rotated cell to enable localization and strain softening -# (you can also try simulation with different angles of rotation to pbtain different results. - - -from yade import pack,plot,qt - -# define material -O.materials.append(CpmMat(young=25e9,poisson=.2,sigmaT=3e6,epsCrackOnset=1e-4,relDuctility=1e-6)) - -# create periodic assembly of particles -initSize=1.2 -sp=pack.randomPeriPack(radius=.05,initSize=Vector3(initSize,initSize,initSize),memoizeDb='/tmp/packDb.sqlite') -angle=0. -#angle=pi/4 -rot=Matrix3(cos(angle),-sin(angle),0, sin(angle),cos(angle),0, 0,0,1) -sp.toSimulation(rot=rot) - -# plotting -plot.live=False -plot.plots={'iter':('sx','sy','sz','syz','szx','sxy',),'iter_':('ex','ey','ez','eyz','ezx','exy',),'exy':('sxy',)} -def plotAddData(): - plot.addData( - iter=O.iter,iter_=O.iter, - sx=p3d.stress[0],sy=p3d.stress[1],sz=p3d.stress[2], - syz=p3d.stress[3],szx=p3d.stress[4],sxy=p3d.stress[5], - ex=p3d.strain[0],ey=p3d.strain[1],ez=p3d.strain[2], - eyz=p3d.strain[3],ezx=p3d.strain[4],exy=p3d.strain[5], - ) - -O.dt=PWaveTimeStep()/2 - -# define the first part of simulation, hydrostatic compression -enlargeFactor=1.5 -O.engines=[ - ForceResetter(), - InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=enlargeFactor,label='bo1s')]), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=enlargeFactor,label='ig2ss')], - [Ip2_CpmMat_CpmMat_CpmPhys()],[Law2_ScGeom_CpmPhys_Cpm()]), - NewtonIntegrator(), - Peri3dController( goal=(0,0,0, 0,0,5e-3), # Vector6 of prescribed final values - stressMask=0b011111, - nSteps=2000, - doneHook='print "Simulation with Peri3dController finished."; O.pause()', - maxStrain=.5, - label='p3d' - ), - PyRunner(command='plotAddData()',iterPeriod=1), -] -O.step() -bo1s.aabbEnlargeFactor=ig2ss.interactionDetectionFactor=1.0 - -renderer=qt.Renderer() -renderer.intrPhys,renderer.shape=True,False -Gl1_CpmPhys.dmgLabel=False -qt.View() -O.run() -#plot.plot() === removed file 'examples/test/peri3dController_triaxialCompression.py' --- examples/test/peri3dController_triaxialCompression.py 2013-04-24 19:49:00 +0000 +++ examples/test/peri3dController_triaxialCompression.py 1970-01-01 00:00:00 +0000 @@ -1,79 +0,0 @@ -# peri3dController_triaxialCompression.py -# script, that explains funcionality and input parameters of Peri3dController on the example of -# triaxial compression. -# Firstly, a hydrostatic preassure is applied, then a strain along z axis is increasing -# while x- and y- stress is constant -# The simulation is run on rotated cell to enable localization and strain softening -# (you can also try simulation with command sp.toSimulation() with no rotation, -# in this case there is almost no difference, but in script peri3dController_shear, -# the cell rotation has significant effect) - -from yade import pack,plot,qt - -# define material -O.materials.append(FrictMat()) - -# create periodic assembly of particles -initSize=1.2 -sp=pack.randomPeriPack(radius=.05,initSize=Vector3(initSize,initSize,initSize),memoizeDb='/tmp/packDb.sqlite') -angle=0 -rot=Matrix3(cos(angle),0,-sin(angle), 0,1,0, sin(angle),0,cos(angle)) -sp.toSimulation(rot=rot) - -# plotting -plot.live=False -plot.plots={'iter':('sx','sy','sz','syz','szx','sxy',),'iter_':('ex','ey','ez','eyz','ezx','exy',),'ez':('sz',)} -def plotAddData(): - plot.addData( - iter=O.iter,iter_=O.iter, - sx=p3d.stress[0],sy=p3d.stress[1],sz=p3d.stress[2], - syz=p3d.stress[3],szx=p3d.stress[4],sxy=p3d.stress[5], - ex=p3d.strain[0],ey=p3d.strain[1],ez=p3d.strain[2], - eyz=p3d.strain[3],ezx=p3d.strain[4],exy=p3d.strain[5], - ) - -O.dt=PWaveTimeStep()/2 - -# define the first part of simulation, hydrostatic compression -O.engines=[ - ForceResetter(), - InsertionSortCollider([Bo1_Sphere_Aabb()]), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom()], - [Ip2_FrictMat_FrictMat_FrictPhys()],[Law2_ScGeom_FrictPhys_CundallStrack()]), - NewtonIntegrator(), - Peri3dController( goal=(-1e7,-1e7,-1e7, 0,0,0), # Vector6 of prescribed final values - stressMask=0b000111, - nSteps=500, - doneHook='print "Hydrostatic load reached."; O.pause()', - youngEstimation=.5e9, # needed, when only nonzero prescribed values are stress - maxStrain=.5, - label='p3d' - ), - PyRunner(command='plotAddData()',iterPeriod=1), -] -O.run(); O.wait() - -# second part, z-axis straining and constant transversal stress -O.engines=[ - ForceResetter(), - InsertionSortCollider([Bo1_Sphere_Aabb()]), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom()], - [Ip2_FrictMat_FrictMat_FrictPhys()],[Law2_ScGeom_FrictPhys_CundallStrack()]), - NewtonIntegrator(), - Peri3dController( goal=(-1e7,-1e7,-4e-1, 0,0,0), # Vector6 of prescribed final values - stressMask=0b000011, - nSteps=1000, - xxPath=[(0,1),(1,1)], # the first (time) zero defines the initial value of stress considered nonzero - yyPath=[(0,1),(1,1)], - doneHook='print "Simulation with Peri3dController finished."; O.pause()', - maxStrain=.5, - label='p3d', - strain=p3d.strain, # continue from value reached in previous part - stressIdeal=Vector6(-1e7,-1e7,0, 0,0,0), # continue from value reached in previous part - ), - PyRunner(command='plotAddData()',iterPeriod=1), -] -O.run();O.wait() -plot.plot(subPlots=False) === removed file 'examples/test/periodic-shear.py' --- examples/test/periodic-shear.py 2013-03-28 19:23:34 +0000 +++ examples/test/periodic-shear.py 1970-01-01 00:00:00 +0000 @@ -1,41 +0,0 @@ -O.periodic=True -O.cell.setBox(.55,.55,.55) -O.bodies.append(facet([[.4,.0001,.3],[.2,.0001,.3],[.3,.2,.2]])) -O.bodies.append(sphere([.3,.1,.4],.05,fixed=False)) -O.bodies.append(sphere([.200001,.2000001,.4],.05,fixed=True)) -O.bodies.append(sphere([.3,0,0],.1,fixed=True)) -O.engines=[ - ForceResetter(), - InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()],label='isc'), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()], - [Ip2_FrictMat_FrictMat_FrictPhys()], - [Law2_ScGeom_FrictPhys_CundallStrack()] - ), - NewtonIntegrator(gravity=(0,0,-10)), - #PyRunner(command='doCellFlip()',realPeriod=5) -] - -def doCellFlip(): - flip=1 if O.cell.trsf[1,2]<0 else -1; - flipCell(Matrix3(0,0,0, 0,0,flip, 0,0,0)) - -#g=0. -#while False: -# O.cellShear=Vector3(.2*sin(g),.2*cos(pi*g),.2*sin(2*g)+.2*cos(3*g)) -# time.sleep(0.001) -# g+=1e-3 -O.cell.trsf=Matrix3(1,0,0, 0,1,.5, 0,0,1) -O.dt=2e-2*PWaveTimeStep() -O.step() -O.saveTmp() -rrr=yade.qt.Renderer() -rrr.intrAllWire,rrr.bound=True,True -#isc.watch1,isc.watch2=0,-1 - -#import yade.qt,time -#v=yade.qt.View() -#v.axes=True -#v.grid=(True,True,True) - - === removed file 'examples/test/periodic-simple-shear.py' --- examples/test/periodic-simple-shear.py 2014-04-03 13:30:10 +0000 +++ examples/test/periodic-simple-shear.py 1970-01-01 00:00:00 +0000 @@ -1,57 +0,0 @@ -# coding: utf-8 -# 2009 © Václav Šmilauer <eudo...@arcig.cz> -# 2011 ©Bruno Chareyre <bruno.chare...@hmg.inpg.fr> -"Test and demonstrate use of PeriTriaxController." -from yade import pack,qt - -O.periodic=True -O.cell.setBox(.1,.1,.1) -#O.cell.Hsize=Matrix3(0.1,0,0, 0,0.1,0, 0,0,0.1) -sp=pack.SpherePack() -radius=5e-3 -num=sp.makeCloud((0,0,0),(.1,.1,.1),radius,.2,500,periodic=True) # min,max,radius,rRelFuzz,spheresInCell,periodic -O.bodies.append([sphere(s[0],s[1]) for s in sp]) - - -O.engines=[ - ForceResetter(), - InsertionSortCollider([Bo1_Sphere_Aabb()],verletDist=.05*radius), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom()], - [Ip2_FrictMat_FrictMat_FrictPhys()], - [Law2_ScGeom_FrictPhys_CundallStrack()] - ), - PeriTriaxController(dynCell=True,mass=0.2,maxUnbalanced=0.01,relStressTol=0.02,goal=[-1e4,-1e4,0],stressMask=3,globUpdate=5,maxStrainRate=[1.,1.,1.],doneHook='triaxDone()',label='triax'), - NewtonIntegrator(damping=.2), -] - -phase=0 -def triaxDone(): - global phase - if phase==0: - print 'Here we are: stress',triax.stress,'strain',triax.strain,'stiffness',triax.stiff - print 'Now shearing.' - O.cell.velGrad=Matrix3(0,6,0, 0,0,0, 0,0,0) - triax.stressMask=7 - triax.goal=[-1e4,-1e4,-1e4] - phase+=1 - O.pause() - #elif phase==1: - #print 'Here we are: stress',triax.stress,'strain',triax.strain,'stiffness',triax.stiff - #phase+=1 - ##print 'Done, pausing now.' - ##O.pause() - -O.dt=PWaveTimeStep() -#O.run(7000); -#qt.View() -##r=qt.Renderer() -##r.bgColor=1,1,1 -#O.wait() -#O.saveTmp() -#O.cell.velGrad=Matrix3(0,0,0, -6,0,0, 0,0,0) -#O.run(5000); -#O.wait() - -#O.cell.velGrad=Matrix3(0,6,0, 0,0,0, 0,0,0) -#O.run(5000); === removed file 'examples/test/periodic-simple.py' --- examples/test/periodic-simple.py 2013-03-28 11:13:12 +0000 +++ examples/test/periodic-simple.py 1970-01-01 00:00:00 +0000 @@ -1,33 +0,0 @@ -"""Simple test of periodic collider. -A few spheres falling down in gravity field and one moving accross. -Includes a clump. -""" - -from yade import timing - -O.engines=[ - ForceResetter(), - InsertionSortCollider([Bo1_Sphere_Aabb()],label='collider'), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom()], - [Ip2_FrictMat_FrictMat_FrictPhys()], - [Law2_ScGeom_FrictPhys_CundallStrack()], - ), - TranslationEngine(translationAxis=(1,0,0),velocity=10,ids=[0]), - NewtonIntegrator(damping=.4,gravity=[0,0,-10]) -] -O.bodies.append(sphere([-4,0,11],2,fixed=True)) -O.bodies.append(sphere([0,-2,5.5],2)) -O.bodies.append(sphere([0,2,5.5],2)) -O.bodies.appendClumped([sphere([0,4,8],.8),sphere([0,5,7],.6)]) -# sets up the periodic cell -O.periodic=True -O.cell.setBox(10,10,10) -# normally handled in by the simulation... but we want to have the rendering right before start -#O.cell.postProcessAttributes() -O.dt=.1*PWaveTimeStep() -O.saveTmp() -from yade import qt -qt.Controller() -qt.View() -#O.timingEnabled=True; timing.reset(); O.run(200000,True); timing.stats() === removed file 'examples/test/periodic-triax-settingHsize.py' --- examples/test/periodic-triax-settingHsize.py 2014-01-23 18:08:34 +0000 +++ examples/test/periodic-triax-settingHsize.py 1970-01-01 00:00:00 +0000 @@ -1,46 +0,0 @@ -# coding: utf-8 -# 2011 ©Bruno Chareyre <bruno.chare...@hmg.inpg.fr> -"Demonstrate the compression of a periodic cell with non-trivial initial geometry." -from yade import pack,qt -O.periodic=True - -O.cell.hSize=Matrix3(1.0, -0.15, -0.10, - -0.2 ,1.5, 0.3, - 0.3, -0.3, 1.0) -sp=pack.SpherePack() -num=sp.makeCloud(hSize=O.cell.hSize, rMean=-0.01,rRelFuzz=.2, num=500,periodic=True, porosity=0.52,distributeMass=False) -O.bodies.append([sphere(s[0],s[1]) for s in sp]) - - -O.engines=[ - ForceResetter(), - InsertionSortCollider([Bo1_Sphere_Aabb()]), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom()], - [Ip2_FrictMat_FrictMat_FrictPhys()], - [Law2_ScGeom_FrictPhys_CundallStrack()] - ), - #We compress the packing isotropicaly first - PeriTriaxController( dynCell=True,mass=0.2,maxUnbalanced=0.01, relStressTol=0.01,goal=(-1e4,-1e4,-1e4), stressMask=7,globUpdate=5, maxStrainRate=(1.,1.,1.), doneHook='triaxDone()', label='triax'), - NewtonIntegrator(damping=.2), - #PyRunner(iterPeriod=500,command='print "strain: ",triax.strain," stress: ",triax.stress') -] -O.dt=0.5*PWaveTimeStep() -qt.View() - -phase=0 -def triaxDone(): - global phase - if phase==0: - print 'Here we are: stress',triax.stress,'strain',triax.strain - #Here we reset the transformation, the compressed packing corresponds to null strain - O.cell.trsf=Matrix3.Identity - print 'Now εxx will go from 0 to .4 while σzz and σyy will be kept the same.' - triax.stressMask=6 - triax.goal=(-0.4,-1e4,-1e4) - - phase+=1 - elif phase==1: - print 'Here we are: stress',triax.stress,'strain',triax.strain - print 'Done, pausing now.' - O.pause() === removed file 'examples/test/periodic-triax.py' --- examples/test/periodic-triax.py 2014-01-23 18:08:34 +0000 +++ examples/test/periodic-triax.py 1970-01-01 00:00:00 +0000 @@ -1,48 +0,0 @@ -# coding: utf-8 -# 2009 © Václav Šmilauer <eudo...@arcig.cz> -"Test and demonstrate use of PeriTriaxController." -from yade import pack,qt -O.periodic=True - -O.cell.hSize=Matrix3(0.1, 0, 0, - 0 ,0.1, 0, - 0, 0, 0.1) - -sp=pack.SpherePack() -radius=5e-3 -num=sp.makeCloud(Vector3().Zero,O.cell.refSize,radius,.2,500,periodic=True) # min,max,radius,rRelFuzz,spheresInCell,periodic -O.bodies.append([sphere(s[0],s[1]) for s in sp]) - - -O.engines=[ - ForceResetter(), - InsertionSortCollider([Bo1_Sphere_Aabb()],verletDist=.05*radius), - InteractionLoop( - [Ig2_Sphere_Sphere_ScGeom()], - [Ip2_FrictMat_FrictMat_FrictPhys()], - [Law2_ScGeom_FrictPhys_CundallStrack()] - ), - #PeriTriaxController(maxUnbalanced=0.01,relStressTol=0.02,goal=[-1e4,-1e4,0],stressMask=3,globUpdate=5,maxStrainRate=[1.,1.,1.],doneHook='triaxDone()',label='triax'), - #using cell inertia - PeriTriaxController(dynCell=True,mass=0.2,maxUnbalanced=0.01,relStressTol=0.02,goal=(-1e4,-1e4,0),stressMask=3,globUpdate=5,maxStrainRate=(1.,1.,1.),doneHook='triaxDone()',label='triax'), - NewtonIntegrator(damping=.2), -] -O.dt=PWaveTimeStep() -O.run(); -qt.View() - -phase=0 -def triaxDone(): - global phase - if phase==0: - print 'Here we are: stress',triax.stress,'strain',triax.strain,'stiffness',triax.stiff - print 'Now εz will go from 0 to .2 while σx and σy will be kept the same.' - triax.goal=(-1e4,-1e4,-0.2) - phase+=1 - elif phase==1: - print 'Here we are: stress',triax.stress,'strain',triax.strain,'stiffness',triax.stiff - print 'Done, pausing now.' - O.pause() - - -
_______________________________________________ Mailing list: https://launchpad.net/~yade-dev Post to : yade-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-dev More help : https://help.launchpad.net/ListHelp