how to calculate anisotropy of contact normal vector

Asked by lip on 2019-08-13

hello
     i want to know how to calculate anisotropy of contact normal vector between particles, is there any funtion in yade can handle that?if not, can you give me some advice to help me achieve that in yade?

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
2019-08-14
Last reply:
2019-08-14

Hi, since you did not define "anisotropy of contact normal vector" accurately it is impossible to answer.
Nevertheless, since you have been using yade for years I would suggest it is time to go through the documentation as it could reduce the need to ask questions here. Or, at least, you could use the searchbox on yade and launchpad websites with relevant keywords.
"Fabric" maybe? :)

Bruno

lip (mr.xie) said : #2

hello
  i am sorry for i did not make my question clear.
  maybe you can just give me some advice about how to calculate the contact normal vector, for the anisotropy value of contact normal vector can be calculate based on that.

Hi,

PDFEngine do that for you. It compute the average of quantities like stress, distance, and probability of interaction for each orientation. For now, it works only for spherical particles.

Just add
PDFEngine(filename="PDF.txt", iterPeriod=1000, numDiscretizeAnglePhi=9,numDiscretizeAngleTheta=13, label="PDFRecorder")

in your engines. This will output a PDF.txt containing the density functions, with column name like NormalStress_xy(theta, phi)

Formulas:
x = r sin theta sin phi
y = r cos phi
z = r sin theta cos phi

This is a work in progress (not well documented for now) but it work as is.

Jan Stránský (honzik) said : #4

Hello,

as (almost) always, a MWE [1] would be useful (e.g. to know what "particle" is - sphere, polyhedra...), expressing on a few artificially created spheres and artificially created interactions to show what you want to achieve and what is your expectation of "anisotropy of contact normal vector", etc.

Often you could solve your problem just by preparing such MWE.
Furthermore, it will help us to help you :-)

> how to calculate the contact normal vector

for i in O.interactions:
   contactNormalVector = i.geom.normal # [2]

> i want to know how to calculate anisotropy of contact normal vector

if I understand it correctly, fabric tensor (as suggested by Bruno) is what you are looking for [3]

cheers
Jan

[1] https://www.yade-dem.org/wiki/Howtoask
[2] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.GenericSpheresContact.normal
[3] https://yade-dem.org/doc/yade.utils.html#yade._utils.fabricTensor

Can you help with this problem?

Provide an answer of your own, or ask lip for more information if necessary.

To post a message you must log in.