← Back to team overview

yade-users team mailing list archive

[Question #257949]: voxelPorosity

 

New question #257949 on Yade:
https://answers.launchpad.net/yade/+question/257949

Hi,
I'm trying to set the porosity using voxelPorosity in gravity deposition, as in the script.
The value of friction angle starts in zero and when the target porosity is reached, then I set the friction angle to desired.
But, the statement "if utils.voxelPorosity(start=aabbExtrema()[0],end=aabbExtrema()[1])<targetPorosity: ", didn't work.
Any idea?

#!/usr/bin/python
# -*- coding: utf-8 -*-
#Modelo para se obter a porosidade desejada em uma soil bin
#voxelPorosity
############################################
### DEFINING VARIABLES AND MATERIALS #######
############################################
#material parameters spheres
youngs = 70e9 #Pa
poissons = 0.23 #admensional
frictionangles = 0 #degrees
densitys = 1900 #kg/m3

#material parameters walls
youngw = 205e9 #Pa
poissonw = 0.3 #admensional
frictionanglew = 30 #degrees? entre esferas e parede ou entre parede?
densityw = 7850 #kg/m3

targetPorosity = 0.74
frictionanglesf = 30 #degrees

#Material
O.materials.append(FrictMat(young=youngs,poisson=poissons,density=densitys,frictionAngle=radians(frictionangles),label='spheres'))
O.materials.append(FrictMat(young=youngw,poisson=poissonw,density=densityw,frictionAngle=radians(frictionanglew),label='walls'))

## create walls around the packing
O.bodies.append(utils.geom.facetBox((0,0,0),(0.1,0.5,0.1),material='walls'))

#Create sphere packing
sp=pack.SpherePack()
sp.makeCloud((-0.1,-0.5,-0.1),(0.1,0,0.1),-1,0.0333,10000,False,0.75,seed=1)
sp.toSimulation(material='spheres')

#Engines
O.engines=[
   ForceResetter(),
   InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
   InteractionLoop(
      # handle sphere+sphere and facet+sphere collisions
	[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
	[Ip2_FrictMat_FrictMat_FrictPhys()],
	[Law2_ScGeom_FrictPhys_CundallStrack()]
   ),
   NewtonIntegrator(gravity=(0,-9.81,0),damping=0.6),
   ]
#############################################################
###############      Calc Porosity       ###############
#############################################################
#O extrema pega as dimensoes do solido formado pelas esferas
O.engines=O.engines+[PyRunner(iterPeriod=300,command='print voxelPorosity(300,start=aabbExtrema()[0],end=aabbExtrema()[1])')]

if utils.voxelPorosity(start=aabbExtrema()[0],end=aabbExtrema()[1])<targetPorosity:
	setContactFriction(radians(frictionanglesf))
	print "change in friction angle"

O.dt=1*utils.PWaveTimeStep()
O.saveTmp()

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