ValueError: cannot convert float to integer

Asked by enki

Hi all,

I'm working on my cylinder particle case, however, when I start running my script below, the script points out a ValueError: cannot convert float Nan to integer

** Complete error message **
VaueError Traceback (most recent call last)

/usr/lib/x86_64-linux-gnu/yade/py/yade/__init__.py in refreshValues(self)

                                                              self.iterLabel.setText('#%ld / %ld, %.1f/s %s'% (O.iter,stopAtIter,self.iterPerSec,subStepInfor))
                                                                                              if t!=float('inf'):
                                                                                                          s=int(t); ms=int(t*1000)%1000; us=int(t*1000000)%1000; ns=int(t*1000000000)%1000
                                                                                                          self.virtTimeLabel.setText(u'%03ds%03dm%03d%03dn'%(s,ms,us,ns))
                                                                                              else: self.virtTimeLabel.setText(u'[]?!')
ValueError" cannot convert float NaN to integer

*****: Terminal shows this error multiple times *****

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

O.periodic=True

#### Parameters ####

# radius of cylinder
cyl_R=0.1
# length of cylinder
cyl_L=0.2
# 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 walls
walls=aabbWalls([(0,0,0),(5,5,2)],thickness=0.0,material='steel')
wallIds=O.bodies.append(walls)

### periodic boundary for facetBox ###

#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,0.5)

### 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')

#O.bodies.appendClumped()

move = TranslationEngine(translationAxis=[0,0,1],velocity=0.1,ids=[0,1])

### 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=0.5*PWaveTimeStep()

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

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

Question information

Language:
English Edit question
Status:
Open
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

Hello,

please read [1] when it is finally working.

> Additionally ...

please open separate questions for separate problems ([1], point 5).
According to the title, I would stick here to the error and open a new question for cylinder enlarging, a new question for yellow box and a new question for not displayed walls
(well, the last two may be joined as they really are related. But e.g. the error has nothing to do with yellow box etc.)

Also note that the attached script should be a MWE ([1], point 3), so e.g. for not displayed walls, cylinders and most of the code is irrelevant and a MWE for the not displayed walls should focus only on walls.
(this way, often you can find the answer yourself).

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

when you get en error, please post **complete** error message ([1], point 2).
Usually there is also the specific line which is very useful.

> when I start running my script

Also please provide information about your OS and Yade version ([1], point 4) and how you run it.
I used recent yadedaily (20220504-6539~3497d6b~jammy1), run 1000000 iterations of your script without any error.

Cheers
Jan

[1] https://www.yade-dem.org/wiki/Howtoask

Revision history for this message
enki (kikiyu) said (last edit ):
#2

Thanks Jan,

>> I have edited my question format with complete error message.

>> I run code line: "yade filename.py" directly in the terminal, the 3D view has nothing, the terminal shows the ValueError I mentioned above...

>> I think I used yade 2018.02b on Ubuntu 18.04, meanwhile, I've updated the newest version of yadedaily, but I still got similar error

Can you help with this problem?

Provide an answer of your own, or ask enki for more information if necessary.

To post a message you must log in.