← Back to team overview

yade-users team mailing list archive

Re: [Question #240621]: Avoid boundary effect by using parameter V in getStress() of non-periodic case

 

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

Jan Stránský proposed the following answer:
Hello Nguyen,

the stress is computed according to [1],
stress = (1/V)*sum(f_i*l_j)
where the sum is done over all interactions in the simulation, regardless
volume parameter. The volume parameter is used only to scale the sum
result. so
getStress(boxVolume*0.75) = getStress(boxVolume) / 0.75
and therefore this approach does not solve your problem..

if you want to avoid boundary effects, you can write your own function,
summing forces and branches vectors of only some interactions, e.g.

def myGetStress():
  ret = Matrix3.Zero
  for i in O.interactions:
    if not someConditionForConsideringInteraction: continue # do not
consider certain onteractions, e.g. with one or both bodies outside defined
boundaries
    f = i.phys.normalForce() + i.phys.shearForce()
    l = O.bodies[i.id2].state.pos - O.bodies[i.id1].state.pos
    ret += f.outer(l)
  return ret

cheers
Jan

[1] https://yade-dem.org/doc/yade.utils.html#yade._utils.getStress



2013/12/11 Nguyen N.G. Hien <question240621@xxxxxxxxxxxxxxxxxxxxx>

> New question #240621 on Yade:
> https://answers.launchpad.net/yade/+question/240621
>
> Hello,
> I have a question about the getStress() function (utils.getStress()) in my
> simulation (triaxial test under TriaxialStressController engine)
> In fact my model is a box with the size of the box is (-0.1,-0.1,-0.1) and
> (0.1,0.1,0.1) and the model is non-periodic case.
>
> To extract the internal stress of the specimen, I use getStress(), as I
> see in the document, for the non-periodic case, the V = 1, so in order to
> output stress for the whole specimen, it would be:
> utils.getStress(boxVolume)
> The problem here is I want to avoid the boundary effect so I want to
> "getStress" of a smaller space inside the specimen, if I do, for example
> utils.getStress(boxVolume*0.75), is that a correct to avoid the boundary
> effect? Because I don't know how V is considered and calculated in this
> function, can anyone explain?
> Thanks in advance.
>
>
> https://yade-dem.org/doc/yade.utils.html?highlight=getstress#yade._utils.getStress
>
> --
> 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.