← Back to team overview

yade-users team mailing list archive

Re: [Question #690366]: branch vector & contact normal

 

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

    Status: Open => Answered

Jan Stránský proposed the following answer:
stress = ... f_i l_j
l ... branch
f ... force
Branch can be lAB (from particleA to particleB) or lBA (from particleB to particleA).
The same for force. It is internal force, and can be either fAB (force applied to particleB) or fBA (force applied to particleA).
It does not matter if you choose AB or BA (multiplication makes the result the same), but you have to be consistent (using the "same" for both branch and force).

This formula is usually denoted as Love-Weber stress tensor in Yade and
is utilized in utils.bodyStressTensors [1,2], utils.getStress [3,4] and
probably other places.

cheers
Jan

### non-uniqueness of branch and internal force
O.bodies.append((sphere((0,0,0),2),sphere((2,0,0),2)))
O.step()
i = O.interactions[0,1]
b1,b2 = [O.bodies[j] for j in (i.id1,i.id2)]
print("branch12",b2.state.pos - b1.state.pos)
print("branch21",b1.state.pos - b2.state.pos)
print("normal",i.geom.normal)
print("force",i.phys.normalForce + i.phys.shearForce)
print("force1",O.forces.f(i.id1))
print("force2",O.forces.f(i.id2))
###

[1] https://yade-dem.org/doc/yade.utils.html#yade._utils.bodyStressTensors
[2] https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/Shop_02.cpp#L209
[3] https://yade-dem.org/doc/yade.utils.html#yade._utils.getStress
[4] https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/Shop_02.cpp#L450

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.