yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #15674
Re: [Question #657637]: Applying confinement (rigid boundary) to a cylindrical sample
Question #657637 on Yade changed:
https://answers.launchpad.net/yade/+question/657637
Swapnil posted a new comment:
Thanks Jan.
Option [1] leads to the movement of spheres out of the boundary (I tried the script). I do not want the spheres to move out of the boundary. Therefore, I would have to go for application of lateral confining pressure. That you say is depicted in [2].
# facets division
nw = 24,
nh = 15,
# facets
facets = []
if testType == 'cyl':
rCyl2 = .5*width / cos(pi/float(nw))
for r in xrange(nw):
for h in xrange(nh):
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) )
f1 = facet((v1,v2,v3),color=(0,0,1),material=frictMat)
f2 = facet((v1,v3,v4),color=(0,0,1),material=frictMat)
facets.extend((f1,f2))
O.bodies.append(facets)
mass = O.bodies[0].state.mass
for f in facets:
f.state.mass = mass
f.state.blockedDOFs = 'XYZz'
# apply prestress to facets
def addForces():
for f in facets:
n = f.shape.normal
a = f.shape.area
O.forces.addF(f.id,preStress*a*n)
As I can understand from reading this:
Using [1] creates a default set of facets and combines them to form a cylindrical boundary of the prescribed dimensions. Isn't it?
On the other hand in [2], the user is creating facets (using vectors) and then combining them followed by application of pre-defined stresses(confining pressure). My question here is can this operation be performed like in [1]? that is using a simpler way to create facets and then applying stresses.
For e.g something like (just an idea to keep it simple):
#create facet sets and combine them to form a cylindrical shaped
boundary around the sample.
facets = geom.facetCylinder((0,0,0.125),0.1,0.25,wallMask=2|4)
O.bodies.append(facets)
# for all facets block restrain the desired motion
facets.state.blockedDOFs='XYZz'
#apply prestress to each one
O.forces.addF(f.id,preStress*a*n)
In short, I am looking for a simpler way to perform the application of
laterally confining pressures.
--
You received this question notification because your team yade-users is
an answer contact for Yade.