yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #26828
[Question #699960]: yade::InteractionLoop::action(): assumption ‘!swap’ failure
New question #699960 on Yade:
https://answers.launchpad.net/yade/+question/699960
Hi everyone,
I changed computers during the calculation of spherical and polyhedral particles, resulting in errors and flashbacks of models that would otherwise run.
The following is the system information of the computer with the error.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Welcome to Yade 20211219-6187~d81270c~xenial1
Using python version: 3.5.2 (default, Jan 26 2021, 13:30:48)
[GCC 5.4.0 20160609]
TCP python prompt on localhost:9000, auth cookie `csyeua'
XMLRPC info provider on http://localhost:21000
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Here is the error message:
python3.5: /builds/yade-dev/trunk/deb/yadedaily/core/InteractionLoop.cpp:159:virtual void yade::InteractionLoop::action(): assumption ‘!swap’ failure.
The following are the main parts of the model scripts:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
from yade import pack,qt,plot,utils,polyhedra_utils,ymport,export,pack,timing
from yade import *
import numpy
from pprint import pprint
import random
from random import uniform
from random import randint
from math import *
matP = PolyhedraMat()
matP.density = 2650 #kg/m^3
matP.young = 55E9#Pa 5.5E9
#matP.young = 2.75 #Pa 1E7
matP.poisson = 0.25 # 20000/1E7
matP.frictionAngle = 0.27 #rad0.7
O.materials.append(matP)
steel = PolyhedraMat()
steel.density = 2600 #kg/m^3
steel.young = 150E9 #inital steel was 15E9
steel.poisson = 0.21
steel.frictionAngle = 0.2 #rad
O.materials.append(steel)
sphereballast = CohFrictMat()#Coh
sphereballast.density = 2000
#sphereballast.young = 5.5E8
sphereballast.young = 3E8
sphereballast.possion = 0.5
sphereballast.frictionAngle = 0.1364 #rad0.364
sphereballast.alphaKr = 2
sphereballast.etaRoll = 1
sphereballast.isCohesive = TrueO.bodies.append(ymport.textExt('/tmp/sphere low1.dat',format='x_y_z_r',material=sphereballast))
O.bodies.append(ymport.textPolyhedra('/tmp/pack low1.dat',material=matP))
O.materials.append(sphereballast)
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Polyhedra_Aabb(),Bo1_Wall_Aabb(),Bo1_Facet_Aabb(),Bo1_Sphere_Aabb()]),
InteractionLoop(
[Ig2_Wall_Polyhedra_PolyhedraGeom(), Ig2_Polyhedra_Polyhedra_PolyhedraGeom(), Ig2_Facet_Polyhedra_PolyhedraGeom(),Ig2_Sphere_Sphere_ScGeom(),Ig2_Sphere_Polyhedra_ScGeom(),Ig2_Facet_Sphere_ScGeom(),Ig2_Wall_Sphere_ScGeom()],
[Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys(), Ip2_FrictMat_PolyhedraMat_FrictPhys(),Ip2_FrictMat_FrictMat_FrictPhys(),Ip2_CohFrictMat_CohFrictMat_CohFrictPhys()],
[Law2_PolyhedraGeom_PolyhedraPhys_Volumetric(),Law2_ScGeom_FrictPhys_CundallStrack(), Law2_ScGeom6D_CohFrictPhys_CohesionMoment()],
),
NewtonIntegrator(damping=0.7,gravity=(0,0,-9.8000)),
PyRunner(command='Compact()',iterPeriod=1,label='compact'),
]
def Compact():
global a
if a == 1:
ldpltheight=max([b.state.pos[2]+b.shape.radius for b in O.bodies if isinstance(b.shape,Sphere)])
ldplt=polyhedra_utils.polyhedra(steel,v=((-0.148,0,ldpltheight),(-0.073*sqrt(3),-0.073,ldpltheight),(-0.073,-0.073*sqrt(3),ldpltheight),(0,-0.148,ldpltheight),(0.073,-0.073*sqrt(3),ldpltheight),(0.073*sqrt(3),-0.073,ldpltheight),(0.148,0,ldpltheight),(0.073*sqrt(3),0.073,ldpltheight),(0.073,0.073*sqrt(3),ldpltheight),(0,0.148,ldpltheight),(-0.073,0.073*sqrt(3),ldpltheight),(-0.073*sqrt(3),0.073,ldpltheight),(-0.148,0,ldpltheight+0.01),(-0.073*sqrt(3),-0.073,ldpltheight+0.01),(-0.073,-0.073*sqrt(3),ldpltheight+0.01),(0,-0.148,ldpltheight+0.01),(0.073,-0.073*sqrt(3),ldpltheight+0.01),(0.073*sqrt(3),-0.073,ldpltheight+0.01),(0.148,0,ldpltheight+0.01),(0.073*sqrt(3),0.073,ldpltheight+0.01),(0.073,0.073*sqrt(3),ldpltheight+0.01),(0,0.148,ldpltheight+0.01),(-0.073,0.073*sqrt(3),ldpltheight+0.01),(-0.073*sqrt(3),0.073,ldpltheight+0.01)),fixed=False, color=(0.75,0.65,0.65))
O.bodies.append(ldplt)
a=a+1
elif a == 2:
Lastnum=O.bodies[-1].id
O.bodies[Lastnum].state.blockedDOFs='xyXYZ'
#O.bodies[Lastnum].state.vel=[0,0,-0.05]
O.bodies[Lastnum].state.angVel=(0,0,0)
O.forces.setPermF(Lastnum,(0,0,-900))
#Lastnum1=O.bodies[0].i
#O.bodies[Lastnum1].state.blockedDOFs='xyXYZ'
a=a+1
elif a == 3:
Lastnum=O.bodies[-1].id
plateF=O.forces.f(Lastnum)[2]
print ("Load= %.5f"%(plateF))
ldpltheight=max([b.state.pos[2] for b in O.bodies if isinstance(b.shape,Sphere)])
print ("pos=%.8f"%(ldpltheight))
#s=O.bodies[Lastnum1].state.pos[2]
#print ("planepos up=%.8f"%(s))
s1=O.bodies[Lastnum].state.pos[2]
print ("planepos up=%.8f"%(s1))
t=O.bodies[Lastnum].state.ori
print (t)
How should the above question be modified? Any suggestions are welcome!
--
You received this question notification because your team yade-users is
an answer contact for Yade.