voxelPorosity

Asked by Luis Barbosa

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()

Question information

Language:
English Edit question
Status:
Expired
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Launchpad Janitor (janitor) said :
#1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.