# problem of the unit of normal force in Law2_PolyhedraGeom_PolyhedraPhys_Volumetric

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.

## Question information

Language:
English Edit question
Status:
For:
Assignee:
No assignee Edit question
Last query:
2019-06-12
2019-06-12
 Bruno Chareyre (bruno-chareyre) said on 2019-06-12: #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

 Jan Stránský (honzik) said on 2019-06-12: #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

 lip (mr.xie) said on 2019-06-12: #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?

 Jan Stránský (honzik) said on 2019-06-12: #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?