Micro-level variables output in Yade

Asked by Fu zuoguang

Dear Prof. Chareyre and all users,

For the purpose of micro-level analysis, it is necessary for my running task
to end with outputting all the interaction information in the final state, the
pseudo codes are as follow.

in the specific state:
  for c in all contact points:
    if c is sphere-sphere contact:
      [1]. output c.position in global system(x-posi,y-posi,z-posi)
      [2]. output c.sphere_id_1 and c.sphere_id_2(int,int)
      [3]. output c.NormalForce in global system(x-NF,y-NF,z-NF)
      [4]. output c.TangentForce_1 in global system(x-TF_1,y-TF_1,z-TF_1)
      [5]. output c.TangentForce_2 in global system(x-TF_2,y-TF_2,z-TF_2)
      [6]. output c.Twist in global system(x-Tw,y-Tw,z-Tw)
      [7]. output c.Bending_1 in global system(x-Be_1,y-Be_1,z-Be_1)
      [8]. output c.Bending_2 in global system(x-Be_2,y-Be_2,z-Be_2)

In all the details above, [1] and [2] are the geometric attributes of the
determined contact, while [3]-[8] can represent its physics. So they may be in
different classes in Yade. so today my questions are:

[1] Are all my desired outputting objects, from [1] to [8], can be executed in
Yade?

[2] If yes, is there an example that contain all or some of them in Yade? Or can
you give me a list of name of those class corresponding to [1]-[8]?

[3] If no, please suggest me what should I do for my purpose.

Best regards
Zuoguang Fu

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Fu zuoguang
Solved:
Last query:
Last reply:
Revision history for this message
Jérôme Duriez (jduriez) said :
#1

[1] yes, except for the two components of the tangent force that Yade does not distinguish (same probably holds for Bending but I did not check)

[2] Browsing the doc of interaction from top to bottom (Interaction -> IGeom or Iphys -> and so on.. see https://yade-dem.org/doc/yade.wrapper.html#interaction) you will find that most of them are in "c.phys". eg c.phys.normalForce for [3], c.phys.shearForce for [4]+[5]
You may give a close look to the doc of your interaction physics (https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.CohFrictPhys probably ?) to see what attributes are accessible

As for c.position, it will be in "c.geom". E.g. https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.ScGeom => c.contactPoint = "c.geom.contactPoint"

Dr Jerome

Revision history for this message
Fu zuoguang (zgfu1985) said :
#2

Dear Jérôme Duriez,

Thanks for your great suggestion, I think now I can
follow most of your opinions. Yes, you are right,
Yade now combines the two shear components, both for
force and for moment, into one resultant. So for a
typical contact, there are only 4 independent physical
variables that needed to be output. So the pseudo codes
for the basic framework are that

for c in all contact points:
    c.id1 and c.id2
    c.geom.attributes(contactPoint[])
    c.phys.attributes(contact_stiffness, contact_Forces, contact_moments)

So I can use this framework to get all the basic things I want.

Best regards
Zuoguang Fu