i.geom.normal is not normalized (unit) vector from the branch vector (for the case of sphere-sphere contact)
I want to calculate the mechanical anisotropy, the branch vector is needed. However, I find the contact normal obtained by i.geom.normal is not normalized (unit) vector from the branch vector (for the case of sphere-sphere contact), The specific process is as follows:
(1) load saved file by "O.load(
(2) find all the interactions of particle 12 by "for i in O.bodies[
(True, 3, 12)
(True, 12, 97)
(True, 12, 211)
(True, 427, 12)
(True, 12, 1033)
(True, 1171, 12)
(True, 1196, 12)
(True, 12, 2736)
(True, 2777, 12)
(True, 12, 3222)
(True, 3453, 12)
(True, 4202, 12)
(True, 12, 7845)
(True, 12, 8119)
(True, 8496, 12)
(True, 10817, 12)
(True, 11570, 12)
(True, 12, 13485)
(True, 12, 15013)
(True, 12, 19529)
(True, 12, 21199)
(True, 12, 22291)
(True, 12, 22449)
(True, 12, 22803)
(True, 12, 23442)
(True, 12, 24412)
(True, 25196, 12)
(True, 12, 29244)
(True, 12, 30387)
(True, 12, 34784)
(True, 12, 35280)
(True, 36427, 12)
(True, 37206, 12)
(True, 12, 40297)
(True, 41898, 12)
(True, 12, 42413)
(True, 12, 44052)
(True, 12, 45495)
(True, 45948, 12)
(True, 12, 47578)
(True, 12, 48322)
(True, 12, 49112)
(True, 12, 49738)
(True, 49923, 12);
(3) then print the branch vector, contact normal vector and contact normal force vector of O.interactions[
i = O.interactions[
b1,b2 = [O.bodies[j] for j in (i.id1,i.id2)]
print("
print("
print("
print("
print("
print("
the result is as follows:
('branch12', Vector3(
('branch21', Vector3(
('normal', Vector3(-0,-1,-0))
('force', Vector3(
('force1', Vector3(
('force2', Vector3(
It can be seen that the branch vector, contact normal vector and contact normal force vector are not in the same direction. Why is this?
Thanks!
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Zhicheng Gao
- Solved:
- Last query:
- Last reply: