← Back to team overview

yade-users team mailing list archive

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.