Local energy dissipation

Asked by Yor1

Hello Yade users,

I implement the mathematical equation for different enegetic components and the calculation is correct.
The energy calulation is performed in the simulated system globally.
The dissipated energy are cracks energy, damping energy and friction energy.
In my case, i simulate the compression test (uniaxial and triaxial) and i calculate the different energetic components during the simulation.
I compare my results (dissipated energy) with the results obtained in experimental test performed by Wassermann (2009) in the ore-iron. I remark that my dissipated energy (cracks energy) is more important than the dissipated energy obtained by Wassermann.
Wassermann obtain the dissipated energy by the AE sensors putted on the sample.
So i want to calculate the dissipated energy in the same zone on which Wassermann put his sensors.
Is that possible ?
In the link below you find the Wassemann's paper published in 2009

https://filex.univ-lorraine.fr/get?k=q88Ik1lGqX5cOp93Xfd

Best regards.
Jabrane.

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Yor1
Solved:
Last query:
Last reply:
Revision history for this message
Yor1 (jabrane-hamdi) said :
#1

Hello,

I try to simplify my question.
Is it possible to have the information about particles and contact (force, momentum, velocity, stiffenesses etc...) in a specific area of a numerical sample ?

Best regards.
Jabrane.

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

Hi Jabrane,

Is it possible to have the information about particles and contact (force,
> momentum, velocity, stiffenesses etc...) in a specific area of a numerical
> sample ?

of course:
forcesInCertainArea = [O.forces.f(b.id) for b in O.bodies if b.state.pos[2]
> 1.5] # to get forces from bodies with z coordinate > 1.5
avgForce = sum(forcesInCertainArea,Vector3.Zero) / len(forcesInCertainArea
# to average them

To get better answer about energies, please provide a MWE or specify more
in detail how you compute energy ("globally" does not really says much. Do
you use your own functions in Python? O.energy[...]?
Law2.someKindOfEnergy()? ......).

cheers
Jan

Revision history for this message
Yor1 (jabrane-hamdi) said :
#3

Hello Jan,

Thank you for your reaction.
I just don't understand what do you mean by "MWE".
May be my question is idiot but really i don't understand it.

Best regards
Jabrane.

Revision history for this message
Jan Stránský (honzik) said :
#4
Revision history for this message
Yor1 (jabrane-hamdi) said :
#5

Hello Jan,

Now i understand "MWE", thank you :-)

The "global" calculation of friction energy and cracks energy means that i calculate these components in all the sample's contact.
My goal is to calculate these energy components in the contact included in the part of the sample which i'm interesting.

These energy components are calculated in the souce files with these name: "totalSlipE" for the friction energy and "totalCracksE" for the cracks energy.
You find the source files in the links below:
JointedCohesiveFrictionalPM.cpp https://filex.univ-lorraine.fr/get?k=PzE9jgmEIEheUbiqOEb
JointedCohesiveFrictionalPM.hpp https://filex.univ-lorraine.fr/get?k=P8kvtWEW6baalMTMQPp

Best regards.
Jabrane

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

Hi Jabrane,

you can (just some brainstorming):
1) hard code some values to the code :-) not very good solution, but if you
know it in advance, it would make its job
2) create another member of the Law2, probably being a predicate and there
would be another computed value (apart from the global value, also "local"
value satisfying the predicate condition would be computed
3) The values of dissipated energy would not be only added to some global
value, but stored individually for each interaction.
4) From python, you can somehow store values from previous step and with
the values from the current step, you can perform computation according to
the same equations, but only at certain location.

Reading it again, I think 3) is the most clean and general approach.

cheers
Jan

Revision history for this message
Yor1 (jabrane-hamdi) said :
#7

Hi Jan,

I think that i have a good idea for this problem by introducing a new energetic component Ecracks_local in the source files like this
if (x1 < geom->contactPoint[0] < x2 and x3 < geom->contactPoint[1] < x4 and x5 < geom->contactPoint[1] < x6)
Ecracks_local+= 0.5(Fn*Fn/kn + Fs*Fs/ks)

i will try this.

Best regards.
Jabrane.

Revision history for this message
Yor1 (jabrane-hamdi) said :
#8

Hello Jan,

I implement the solution proposed in my precedent comment and it works very well.

That solved my question.

Best regards.
Jabrane.