Elastic potential energy of polyhedra

Asked by Vasileios Angelidakis

Hi,

Following the discussion in [1], the normal stiffness "kn" in the Law2_PolyhedraGeom_PolyhedraPhys_Volumetric can have different units depending on the value of "volumePower"; e.g. for the default value volumePower=1, kn is in [N/m^3].

When calculating the elastic potential energy, we currently use [2,3,4]:
scene->energy->add(0.5*(normalForce.squaredNorm()/phys->kn+shearForce.squaredNorm()/phys->ks),
     "elastPotential",elastPotentialIx,true);
where "kn" should be in [N/m] for the units to give energy values [Joules=N*m].

I think the energy calculation in the normal direction should change either as 0.5*(normalForce.squaredNorm()/(phys->kn*phys->area),
where area the projection of the overlapping volume perpendicularly to the normal direction (this would work only if volumePower=1), or more safely, use the equivalentPenetrationDepth to begin with (which works regardless of the units of kn). Btw, looking at the calculation of the equivalentPenetrationDepth [5,6], is the exact "area" calculated or is an estimation made?

Cheers,
Vasileios

[1] https://answers.launchpad.net/yade/+question/681383
[2] https://gitlab.com/yade-dev/trunk/blob/master/pkg/dem/Polyhedra.cpp#L517
[3] https://gitlab.com/yade-dev/trunk/blob/master/pkg/dem/Polyhedra.cpp#L584
[4] https://gitlab.com/yade-dev/trunk/blob/master/pkg/dem/Polyhedra.cpp#L589
[5] https://gitlab.com/yade-dev/trunk/blob/master/pkg/dem/Polyhedra_Ig2.cpp#L121
[6] https://gitlab.com/yade-dev/trunk/blob/master/pkg/dem/Polyhedra_Ig2.cpp#L219

Question information

Language:
English Edit question
Status:
Expired
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:

This question was reopened

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

Hi Vasileios,

good point. The equations [2,3,4] are wrong. In general, elastic energy is
int F(u) du
in case F=k*u, int F du = int k*u du = 0.5*k*u^2 = 0.5*F^2/k
But it is not the case of polyhedrons interaction, where the function F(u) is actually unknown.
But probably some estimation could be done, e.g. F=k*V and assume V being proportional to u^3.
Or the approaches mentioned by you (today is too late for me to investigate them :-)

> Btw, looking at the calculation of the equivalentPenetrationDepth [5,6], is the exact "area" calculated or is an estimation made?

estimation [7]

cheers
Jan

[7] https://gitlab.com/yade-dev/trunk/blob/master/pkg/dem/Polyhedra_Ig2.cpp#L116

Revision history for this message
Vasileios Angelidakis (vsangelidakis) said :
#2

Hi Jan,

Thanks for taking a look at this.
I think assuming that V is proportional to u^3 using a fixed estimation can be risky, since it depends highly on the geometry of the overlap region. :p

I like the idea of an equivalentPenetrationdepth, since it simplifies our problem in that the elastic potential work is F*equivalentPenetrationDepth (the integral of the force along the distance it acts on).

Currently, this distance is estimated by dividing the penetrationVolume by the area perpendicularly to the contact normal direction.
I think it would be more straightforward if we calculated two opposite points of the overlap volume, along the normal direction, passing from the contact point, and calculate the equivalentPenetrationDepth as the distance of these points.

Calculating the equivalentPenetrationDepth deterministically can give us an exact calculation for the "area" as well (=penetrationVolume/equivalentPenetrationDepth), in case you have any other uses for this parameter.

All the best,
Vasileios

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

> I think assuming that V is proportional to u^3 using a fixed estimation can be risky, since it depends highly on the geometry of the overlap region. :p
> the function F(u) is actually unknown.

this is what I meant :-)

> two opposite points of the overlap volume, along the normal direction, passing from the contact point, and calculate the equivalentPenetrationDepth as the distance of these points.

then it would be needed to distinguish equivalentPenetrationDepth and this "estimatedPEnetrationDepth"

cheers
Jan

Revision history for this message
Vasileios Angelidakis (vsangelidakis) said :
#4

Good point, thanks Jan!

Regards,
Vasileios

Revision history for this message
Vasileios Angelidakis (vsangelidakis) said :
#5

Hi Jan,

I am coming back to this after giving it some thought.

In retrospect, I think assuming an equivalent penetrationDepth or an equivalent contact area is a matter of perspective (i.e. subjective to interpretation) for polyhedra.

What if instead, we calculated u_n incrementally by integrating the normal relative velocity? I am just not sure how this will be affected by the change of contact normals during a contact.

Hope you are keeping well,
Vasileios

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

The incremental approach sounds reasonable.

Another idea: energy should be conserved, so for a contact, the potential energy is equal to the kinetic energy if the two interacting bodies would repulse. Don't know if it helps much for the value determination, but could be used for verification.

cheers
Jan

Revision history for this message
Launchpad Janitor (janitor) said :
#7

This question was expired because it remained in the 'Open' state without activity for the last 15 days.