problem of the unit of normal force in Law2_PolyhedraGeom_PolyhedraPhys_Volumetric

Asked by lip

hello
i am read the source code of yade and noticed that the normal force between two polyhedra is calculated by:
normalForce=contactGeom->normal*prop*phys->kn
while kn is calculated by:
contactPhysics->kn = Kna*Knb/(Kna+Knb)
the problem is that the unit of kn is Pa,when it multipy with volume, with unit of m³, then the unit of normal force become N.m,but it suppose to be N.
look forward for your answer

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#1

Hi, I'm not expert of Polyhedra code but it seems you are trying to question a constitutive assumption mainly.
If someone assume that Fn is proportional to intersection's volume then Fn=k*volume, and it _follows_ that k is in N/m^3.
You can't assume upfront that kn is a pressure regardless of the constitutive framework (usually it's not, anyway, it tends to be a force per length).
Bruno

Revision history for this message
Jan Stránský (honzik) said :
#2

Hello,

> normal force between two polyhedra is calculated by:

only using Law2_PolyhedraGeom_PolyhedraPhys_Volumetric :-)

> while kn is calculated by:
> contactPhysics->kn = Kna*Knb/(Kna+Knb)
> the problem is that the unit of kn is Pa ...

Kna*Knb/(Kna+Knb) is just a (half of) harmonic average of two values. It says nothing about physical units.

> when it multipy with volume, with unit of m³, then the unit of normal force become N.m,but it suppose to be N.

kn is multiplied by 'prop'. It is penetrationVolume by default. As the result should be N, it implies (as stated by Bruno) that (by default) the unit of kn is N/m^3.
But using different Law2.volumePower, you can set different meaning of kn (N/m^2, N/m, etc.) and different behavior of the model.

cheers
Jan

Revision history for this message
lip (mr.xie) said :
#3

bleow is the code i copy from polyhedra.cpp:
Real Kna = mat1->young
i have read some code in file examples/polyhedra,all the unit of young is pa,which means that the unit of kn is pa too. can you explain that?

Revision history for this message
Jan Stránský (honzik) said :
#4

> Real Kna = mat1->young

It is because PolyhedraMat derives from FrictMat. Meaning of 'young' in this case is stiffness modulus in normal direction, not strictly Young's modulus. It could be redesigned/renamed.
Actually Jan Elias, the original author, did not derived PolyhedraMat from FrictMat, but from Material. This change was done by me afterwards.. It has pros and cons..

> i have read some code in file examples/polyhedra,all the unit of young is pa,which means that the unit of kn is pa too. can you explain that?

The comments are wrong

cheers
Jan

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.