← Back to team overview

yade-users team mailing list archive

[Question #701731]: ValueError: cannot convert float to integer

 

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

Hi all,

I'm working on my cylinder particle case, however, when I start running my script below, the cylinder particles are segmented and the whole cylinder particle extends over time. I do not know why... 

Additionally, the script points out a ValueError: cannot convert float Nan to integer

May someone have experience for this error?

### Scripts ###

from __future__ import print_function
from yade.gridpfacet import *
from yade import pack, plot,qt
import gts, os.path, locale

from numpy import arange



#locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') # Note: gts is locale-dependent. If, for example, german locale is used, gts.read()-function does not import floats normally

#### Parameters ####

# radius of cylinder
cyl_R=0.2
# length of cylinder
cyl_L=0.1
# friction angle
phi=30.0
# Young's modulus
E=1e6


idSteel=O.materials.append(FrictMat(young=210e9,poisson=.25,frictionAngle=.8,density=7.85e3,label="steel"))
# wallMask=31 >> +/-x, +/-y, -z
O.bodies.append(geom.facetBox((0,0,0),(2.5,2.5,1),wallMask=63,material="steel" ))


### create materials ###

# gridConnections material

gridConMat= O.materials.append(CohFrictMat(young=E, poisson=0.5, density=1500, frictionAngle=radians(phi), normalCohesion=1e10, shearCohesion=1e10, momentRotationLaw=True, label='gcMat'))

# general interactions

cylMat= O.materials.append(FrictMat(young=E, poisson=0.5, density=1500, frictionAngle=radians(phi), label='cMat'))

### create particles/packing: cylinders ###

nodesIds=[]
cylIds=[]

dx=0.5
dy=0.5
nx=5
ny=5
nz=1
dz=0


for i in range(0,nx):
	x=0+i*dx
	for j in range(0,ny):
		y=0+j*dy
		for k in range(0,nz):
			z=0+k*dz
   			cylinder((x,y+cyl_L,z),(x,y,z),radius=cyl_R,nodesIds=nodesIds,cylIds=cylIds,
color=[1,0,0],fixed=False,intMaterial='gcMat',extMaterial='cMat')


### Engines ###

O.engines = [
	ForceResetter(),
        InsertionSortCollider([Bo1_GridConnection_Aabb(),Bo1_PFacet_Aabb(), Bo1_Wall_Aabb()]),
        InteractionLoop([
			Ig2_GridNode_GridNode_GridNodeGeom6D(),
                 	Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
			Ig2_Wall_Sphere_ScGeom(),
			Ig2_Sphere_Sphere_ScGeom(),
			Ig2_Sphere_GridConnection_ScGridCoGeom(),
			Ig2_GridConnection_PFacet_ScGeom(),
                ],
                [
# internal cylinder physics 
         		Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False),
# physics for external interactions, i.e., cylinder-cylinder 
                        Ip2_FrictMat_FrictMat_FrictPhys()   
                ],
                [
                        Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),     # contact law for "internal" cylinder forces
                        Law2_GridCoGridCoGeom_FrictPhys_CundallStrack(),  # contact law for cylinder-cylinder interaction
			Law2_ScGeom_FrictPhys_CundallStrack(),
			Law2_ScGridCoGeom_FrictPhys_CundallStrack()              
		 ]
        ),
	GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.5),
        NewtonIntegrator(gravity=(0., 0, -9.81), damping=0.5, label='newton'),
	move
	#TranslationEngine(translationAxis=[1,0,0],velocity=0.5,ids=[0,1,2,3,4,5])
	#PyRunner(iterPeriod=1e-3,command="")
]
 	
O.dt=1e-06

### periodic boundary for facetBox ###

wmask = 4|8|16|32 # y and z walls
O.bodies.append(geom.facetBox((0.,0.,0.),(2.5,2.5,1.0),wallmask=wmask,material="steel"))
O.periodic=True
O.cell.setBox(2.5,20.0,20.0)

### set the velocity for facet ###

for id in range(6):
    b = O.bodies[id]
    b.state.vel = (0,0,1)

### Define Functions ###

move = TranslationEngine(translationAxis=[1,0,0],velocity=0.5,ids=[0,1,2,3,4,5])

#### For viewing ####
qt.View()

#### Allows to reload the simulation ####
O.saveTmp()







-- 
You received this question notification because your team yade-users is
an answer contact for Yade.