← Back to team overview

yade-users team mailing list archive

Re: [Question #189913]: get porosity of a packing

 

Question #189913 on Yade changed:
https://answers.launchpad.net/yade/+question/189913

    Status: Open => Answered

Jan Stránský proposed the following answer:
try

utils.porosity()

instead of

utils.porosity

as already suggested Bruno

Jan

ceguo píše v St 07. 03. 2012 v 12:30 +0000:
> Question #189913 on Yade changed:
> https://answers.launchpad.net/yade/+question/189913
> 
>     Status: Answered => Open
> 
> ceguo is still having a problem:
> Thanks,
> 
> I notice the missing of brackets for a function. Regarding to the last problem, I use the example script just with modification from Dem3DofGeom to ScGeom (Dem3DofGeom works, but as I read the doc which suggest us using ScGeom instead.)
> #============================================================
> "Test and demonstrate use of PeriTriaxController."
> from yade import *
> from yade import pack,log,qt
> log.setLevel('PeriTriaxController',log.TRACE)
> O.periodic=True
> O.cell.refSize=Vector3(.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(Vector3().Zero,O.cell.refSize,radius,.2,500,periodic=True) # min,max,radius,rRelFuzz,spheresInCell,periodic
> O.bodies.append([utils.sphere(s[0],s[1]) for s in sp])
> 
> O.engines=[
> 	ForceResetter(),
> 	InsertionSortCollider([Bo1_Sphere_Aabb()],nBins=5,sweepLength=.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),
> ]
> O.dt=utils.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.'
> 		print 'Porosity',utils.porosity
> 		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 'Porosity',utils.porosity
> 		print 'Done, pausing now.'
> 		O.pause()
> 		
> The problem is the compression will go on endlessly as there is no stress generated to reach the goal.
> 
> Ning
>

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.