yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #22960
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.