yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #12986
[Branch ~yade-pkg/yade/git-trunk] Rev 4002: cleaning examples
------------------------------------------------------------
revno: 4002
committer: bchareyre <bruno.chareyre@xxxxxxxxxxxxxxx>
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.chareyre@xxxxxxxxxxx>
-"""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 <eudoxos@xxxxxxxx>
-# 2011 ©Bruno Chareyre <bruno.chareyre@xxxxxxxxxxx>
-"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.chareyre@xxxxxxxxxxx>
-"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 <eudoxos@xxxxxxxx>
-"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()
-
-
-