yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #18324
Re: [Question #675246]: inertia calculation facetbox
Question #675246 on Yade changed:
https://answers.launchpad.net/yade/+question/675246
Status: Solved => Open
Nishant is still having a problem:
Hello,
I was understanding how polyhedron interacts with sphere in yade and
encountered a problem with the dictionary of the interaction.
I created a system with one sphere and a box (made by polyhedron). The
box touches the sphere from the bottom and has a velocity. I look at the
interaction between the box and sphere after a time step. Below is the
MWE:
#--------------------
from yade import pack,polyhedra_utils
import shutil, sys, imp
import numpy as np
#------------------- System definition ----------------------
rad_p = 0.1
Xl = 0.
Yl = 0.
Xr = 1.
Yr = 1.
Zl = rad_p
Zr = 1.
eps_pos = 1e-5
#--------------------------
O.bodies.append([sphere((0.5*(Xl+Xr)+eps_pos,0.5*(Yl+Yr),0.0),rad_p, fixed = True) ]) # Sphere object
O.bodies.append(polyhedron([(Xl,Yl,Zl),(Xr,Yl,Zl),(Xl,Yr,Zl),(Xr,Yr,Zl),(Xl,Yl,Zr),(Xr,Yl,Zr),(Xl,Yr,Zr),(Xr,Yr,Zr)],wire=False,dynamic=True)) # polyhedron which compresses the sphere
#------------------------------------
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb(), Bo1_Box_Aabb(), Bo1_Wall_Aabb(), Bo1_Polyhedra_Aabb()],allowBiggerThanPeriod=True),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(), Ig2_Facet_Sphere_ScGeom(), Ig2_Wall_Sphere_ScGeom(), Ig2_Sphere_Polyhedra_ScGeom()],
[Ip2_FrictMat_FrictMat_MindlinPhys()],
[Law2_ScGeom_MindlinPhys_Mindlin()]
),
PyRunner(command = 'load()', iterPeriod = 1, label = "checker"),
NewtonIntegrator(gravity=(0,0,0.0),damping = 0.0)
]
def load():
O.bodies[1].state.vel = Vector3(0,0,-1e-5)
if ( O.iter > 3):
O.pause()
#---------------------------
O.dt=.5e-0*PWaveTimeStep()
O.stopAtIter= int(1e6)
O.step()
#-------------------
Case I: If the sphere is positioned not at the center of box bottom face (non-zero eps_pos in the code above), O.interactions[0,1].phys.dict() gives correct interaction parameters.
Case II: When the sphere is located just at the center of the box
(eps_pos = 0), there is an interaction between the two objects, but
without any dictionary.
#Yade [1]: O.interactions[0,1].phys.dict()
#---------------------------------------------------------------------------
#AttributeError Traceback (most recent call last)
#/home/nishantkumar/Desktop/Yade201802b/build/bins/yade-2018.02b in <module>()
#----> 1 O.interactions[0,1].phys.dict()
#AttributeError: 'NoneType' object has no attribute 'dict'
Any reason for this?
--
You received this question notification because your team yade-users is
an answer contact for Yade.