← Back to team overview

yade-users team mailing list archive

Re: [Question #248206]: A simple case for stress strain curve

 

Question #248206 on Yade changed:
https://answers.launchpad.net/yade/+question/248206

    Status: Open => Answered

Jan Stránský proposed the following answer:
Hi Behzad,

the function you ask calls function getStressLWForEachBody [1]. It basicly
does what is described in its documentation [2]. For each body, a stress is
estimated from interaction forces acting on the body.

Estimated because of the volume, which is not (unless very special cases
like a space fully filled by boxes) uniquely defined. If you look to [1],
you would find that the algorithm is designed for spherical particles and
in that case the volume is real volume of the sphere. For real packing,
average stress of the packing would be lower than average of these body
stresses (because sum of volume of spheres < volume of box, as stated in
doc [2]).

If a sphere is interacting with facet or box, some suitable radius (like
radius of the interacting sphere) is assigned for the facet (for IGeom
purposes). Note that for each interaction this assigned radius may be
different. Consequently, if you fix facet size, forces acting on the facet
and only change spheres' sizes, you would get different stresses on the
facet. This is the consequence of the design of the function for spheres
(maybe it could be mentioned in the docs). In case of same sized sphere and
same forces, computed stress would be always the same.

HTH
Jan

[1]
http://bazaar.launchpad.net/~yade-pkg/yade/git-trunk/view/head:/pkg/dem/Shop_02.cpp#L398
[2] https://yade-dem.org/doc/yade.utils.html#yade._utils.bodyStressTensors



2014-05-05 20:41 GMT+02:00 behzad majidi <
question248206@xxxxxxxxxxxxxxxxxxxxx>:

> New question #248206 on Yade:
> https://answers.launchpad.net/yade/+question/248206
>
> Hi,
>
> Imagine we have a material sample composed of let's say five spheres with
> the same radius of 1, touching in line creating a a vertial beam. (as given
> below)
> We put this sample between two facets and apply a certain velocity to the
> facet(s) to compress the sample.
> So, it's a simple compression test on a sample.
> I wonder how can we plot the stress-strain curve of this sample.
> I guess it can work if I put;
>
> stress=utils.bodyStressTensors()
>  and then I call for stress[box_2[[2][2] it should work.
> But how this stress is calculated? Does Yade get it from the area
> estimated from the sphere/facet penetration?
> If it's the case what happens if the sample is composed of a random
> packing of spheres making a cylinder? Does Yade calculate the stress
> automatically from each contacting spheres or I need to get the force on
> the facet and then divide it by the area of the sample?
>
> =======================
> O.reset()
> from yade import utils, plot
> from yade import pack, qt
>
>
>
> id_Mat1=O.materials.append(FrictMat(young=1e8,poisson=0.3,density=1000,frictionAngle=1))
> Mat=O.materials[id_Mat1]
>
>
> id_Mat2=O.materials.append(FrictMat(young=1e10,poisson=0.3,density=1000,frictionAngle=1))
> Rigid=O.materials[id_Mat2]
>
>
> s1=utils.sphere([0.0,0.0,1.0],1.0,fixed=True,material=Mat)
> s2=utils.sphere([0.0,0.0,3.0],1.0,fixed=True,material=Mat)
> s3=utils.sphere([0.0,0.0,5.0],1.0,fixed=True,material=Mat)
> s4=utils.sphere([0.0,0.0,7.0],1.0,fixed=True,material=Mat)
> s5=utils.sphere([0.0,0.0,9.0],1.0,fixed=True,material=Mat)
>
> O.bodies.append(s1)
>
>
> box_1 = O.bodies.append(box((0,0,0),(1,1,.001),fixed=True,material=Rigid))
> box_2 =
> O.bodies.append(box((0,0,10.0),(1,1,.0001),fixed=True,material=Rigid))
>
> O.engines=[
> ForceResetter(),
> InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
> InteractionLoop(
> [Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
> [Ip2_FrictMat_FrictMat_FrictPhys()],
> [Law2_ScGeom_FrictPhys_CundallStrack()]
> ),
> NewtonIntegrator(damping=0.7,gravity=[0,0,0]),
> PyRunner(command='AutoData()',iterPeriod=1000)
> ]
>
>
> O.bodies[box_2].state.vel=(0,0,-0.001)
>
> qt.View()
>
> ======================================
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users
> More help   : https://help.launchpad.net/ListHelp
>

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.