yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #19935
[Question #681410]: Cylindrical flexible membrane from Pfacet elements
New question #681410 on Yade:
https://answers.launchpad.net/yade/+question/681410
Hi all,
I'm newbie to yade and try to model cylindrical membrane using Pfacet elements for triaxial test.
I have used two for loops to create membrane mesh and I can not see the fully developed membrane in 3D view in Yadedaily.
Instead I can only see a strip along height of the cylinder(revolving is not happened).
A minimum working exmaple is attached below.
Could you please help me on this?
# encoding: utf-8
from yade import qt
from yade.gridpfacet import *
###########################
##### ENGINES #####
###########################
O.engines=[
ForceResetter(),
InsertionSortCollider([
Bo1_Sphere_Aabb(),
Bo1_Wall_Aabb(),
Bo1_PFacet_Aabb(),
],sortThenCollide=True),
InteractionLoop(
[
Ig2_GridNode_GridNode_GridNodeGeom6D(),
Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
Ig2_Sphere_Sphere_ScGeom6D(),
Ig2_Sphere_PFacet_ScGridCoGeom(),
],
[
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.8,label='ts'),
NewtonIntegrator(gravity=(0,-9.81,0),damping=0.1,label='newton')
]
#materials
O.materials.append(CohFrictMat(young=1e7,poisson=1,density=2650,frictionAngle=radians(30),normalCohesion=3e7,shearCohesion=3e7,momentRotationLaw=True,label='gridNodeMat'))
O.materials.append( FrictMat( young=1e7,poisson=0.1,density=2650,frictionAngle=radians(30),label='pFacetMat' ) )
###################################
##### PFacet creators #####
###################################
nodesIds=[]
cylIds=[]
P_facets=[]
c=0
width=0.1 #diameter of cylinder
height=0.2 #height of cylinder
nw = 40 # no of nodes along perimeter
nh = 12 # no of nodes along height
r=width/100 #radius of grid node
color1=[255./255.,102./255.,0./255.]
color2=[0,0,0]
color3=[0.5,0.5,0.5]
rCyl2 = .5*width / cos(pi/float(nw))
for r in xrange(nw):
for h in xrange(nh):
c=c+1
v1 = Vector3( rCyl2*cos(2*pi*(r+0)/float(nw)),rCyl2*sin(2*pi*(r+0)/float(nw)), height*(h+0)/float(nh) )
v2 = Vector3( rCyl2*cos(2*pi*(r+1)/float(nw)),rCyl2*sin(2*pi*(r+1)/float(nw)), height*(h+0)/float(nh) )
v3 = Vector3( rCyl2*cos(2*pi*(r+1)/float(nw)),rCyl2*sin(2*pi*(r+1)/float(nw)), height*(h+1)/float(nh) )
v4 = Vector3( rCyl2*cos(2*pi*(r+0)/float(nw)),rCyl2*sin(2*pi*(r+0)/float(nw)), height*(h+1)/float(nh) )
V1=(O.bodies.append(gridNode([rCyl2*cos(2*pi*(r+0)/float(nw)),rCyl2*sin(2*pi*(r+0)/float(nw)), height*(h+0)/float(nh)],r,wire=True,fixed=False, material='gridNodeMat',color=color1)) )
V2=(O.bodies.append(gridNode([rCyl2*cos(2*pi*(r+1)/float(nw)),rCyl2*sin(2*pi*(r+1)/float(nw)), height*(h+0)/float(nh)],r,wire=True,fixed=False, material='gridNodeMat',color=color2)) )
V3=(O.bodies.append(gridNode([rCyl2*cos(2*pi*(r+1)/float(nw)),rCyl2*sin(2*pi*(r+1)/float(nw)), height*(h+1)/float(nh)],r,wire=True,fixed=False, material='gridNodeMat',color=color1)) )
V4=(O.bodies.append(gridNode([rCyl2*cos(2*pi*(r+0)/float(nw)),rCyl2*sin(2*pi*(r+0)/float(nw)), height*(h+1)/float(nh)],r,wire=True,fixed=False, material='gridNodeMat',color=color2)) )
# append node ids to seperate matrix for later use
nodesIds.append(V1)
nodesIds.append(V2)
nodesIds.append(V3)
nodesIds.append(V4)
#create grid connection
cylIds.append(O.bodies.append(gridConnection(V1,V2,r,material='gridNodeMat',color=color3)))
cylIds.append(O.bodies.append(gridConnection(V2,V3,r,material='gridNodeMat',color=color3)))
cylIds.append(O.bodies.append(gridConnection(V1,V3,r,material='gridNodeMat',color=color3)))
cylIds.append(O.bodies.append(gridConnection(V3,V4,r,material='gridNodeMat',color=color3)))
cylIds.append(O.bodies.append(gridConnection(V4,V1,r,material='gridNodeMat',color=color3)))
#create Pfacets
O.bodies.append(pfacet(V1,V2,V3,wire=True,material='pFacetMat',color=color3))
O.bodies.append(pfacet(V1,V3,V4,wire=True,material='pFacetMat',color=color3))
if c%50==0:
print c
qt.View()
O.saveTmp()
--
You received this question notification because your team yade-users is
an answer contact for Yade.