← Back to team overview

yade-users team mailing list archive

[Question #706952]: error as soon as wall and grid comes in contact.

 

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

Hi folks, 
I'm trying to simulate pullout test, It gives me Segmentation fault error. when I look deeper, I found when wall and grid comes in contact it throws an error. 
I am using WSL  with specification
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy

a MWE is attached

from builtins import range
from yade import qt, plot
from yade.gridpfacet import *
rate=0.005 #1.66e-4
compFricDegree=30
finalFricDegree = 40
stabilityThreshold = 0.01
young = 5e6
O.engines = [
        ForceResetter(),
        InsertionSortCollider([
                Bo1_Sphere_Aabb(),
                Bo1_GridConnection_Aabb(),
                Bo1_Wall_Aabb(),
        ]),
        InteractionLoop([
                        Ig2_Sphere_Sphere_ScGeom(), Ig2_Wall_Sphere_ScGeom(),
                        Ig2_Sphere_GridConnection_ScGridCoGeom(),
                        Ig2_GridNode_GridNode_GridNodeGeom6D(),
                        Ig2_GridConnection_GridConnection_GridCoGridCoGeom()], 
		[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True, setCohesionOnNewContacts=True),Ip2_FrictMat_FrictMat_FrictPhys()], 
		[           Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),
                            Law2_ScGeom_FrictPhys_CundallStrack(),
                            Law2_ScGridCoGeom_FrictPhys_CundallStrack(),
                            Law2_GridCoGridCoGeom_FrictPhys_CundallStrack(),]
        ),
        GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1, label='ts'),
        NewtonIntegrator(gravity=(0, -9.81, 0), damping=.5, label='newton'),
]
O.materials.append(FrictMat(young=young, poisson=0.5, frictionAngle=radians(compFricDegree), density=2600, label='spheres'))
O.materials.append(FrictMat(young=young, poisson=0.5, frictionAngle=0, density=0, label='walls'))
O.materials.append(CohFrictMat(young=1.325e8, poisson=0.40, density=900, frictionAngle=radians(10), normalCohesion=1.1e8, shearCohesion=1.1e8, momentRotationLaw=True, label='spheremat'))
### Parameters of a rectangular grid ###
L = 25*38/1000  #length [m]
l = 13*38/1000  #width [m]
nbL = 25+1  #number of nodes for the length	[#]
nbl = 13+1  #number of nodes for the width	[#]
r = 0.008/2	# L / 100.  #radius
color = [255. / 255., 102. / 255., 0. / 255.]
nodesIds = []
#Create all nodes first :
for i in range(0, nbL):
	for j in range(0, nbl):
		nodesIds.append(O.bodies.append(gridNode([i*L/nbL, 0.5, 0.24+j*l/nbl], r, wire=False, fixed=False, material='spheremat', color=color)))

#Create connection between the nodes
for i in range(0, len(nodesIds)):
	for j in range(i + 1, len(nodesIds)):
		dist = (O.bodies[i].state.pos - O.bodies[j].state.pos).norm()
		if (dist <= L / nbL * 1.01):
			O.bodies.append(gridConnection(i, j, r, color=color))
for i in range (0, nbl):
	O.bodies[i].state.blockedDOFs='xyz'
	O.bodies[i].state.vel[0] = 0
for i in range (len(nodesIds)-nbl, len(nodesIds)):
	O.bodies[i].state.blockedDOFs='xyz'
	O.bodies[i].state.vel[0] = 0

# O.bodies.append(geom.facetBox((.5, .5, .5), (.5, .5, .5), wallMask=55))
sp = pack.SpherePack()
# sp.makeCloud(Vector3(0,0,0), Vector3(1,0.49,1), rMean=.07, rRelFuzz=.3)
#sp.makeCloud(Vector3(0,0.51,0), Vector3(1,1,1), rMean=.07, rRelFuzz=.3)
#O.bodies.append([sphere(center, rad, material='spheres') for center, rad in sp])

#O.bodies.append(sphere(center=(Vector3(0.5, 1, 0.5)), radius=.05, material='spheres', fixed=False))
O.bodies.append(sphere(center=(Vector3(0.45, 1, 0.45)), radius=.05, material='spheres', fixed=False))
#O.bodies.append(sphere(center=(Vector3(0.55, 1, 0.55)), radius=.05, material='spheres', fixed=False))


O.bodies.append(wall(0, axis=1, sense=1))
plate = O.bodies[-1]
plate.state.vel = (0, 0.3, 0)

I appreciate any help you guys could provide. 
thanks

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