← Back to team overview

yade-users team mailing list archive

[Question #699589]: i.geom.normal is not normalized (unit) vector from the branch vector (for the case of sphere-sphere contact)

 

New question #699589 on Yade:
https://answers.launchpad.net/yade/+question/699589

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('compactedStatesuffusion25.yade.gz')" ;
(2) find all the interactions of particle 12 by "for i in O.bodies[12].intrs(): print (i.isReal,i.id1,i.id2)" and the result is as follows:
(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[3,12] by the follow code:
i = O.interactions[3,12]
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))

the result is as follows:

('branch12', Vector3(0.005264805042519041,-0.0011961713201094834,-0.0024246928681093648))
('branch21', Vector3(-0.005264805042519041,0.0011961713201094834,0.0024246928681093648))
('normal', Vector3(-0,-1,-0))
('force', Vector3(0,-0.6724835758663493,-0))
('force1', Vector3(0,28.188489135826057,0))
('force2', Vector3(-0.0003050240398732389,0.00005915155744011741,0.00009299475981276988))

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!

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