failure mode of each contact during triaxial compression

Asked by Leonard on 2020-07-07

Hi,

I am now working on a drained triaxial compression test and I am curious to know how to gain the failure mode of each contact during the simulation.

Specifically, I use CohFrictMat as material of sphere particles:

CohFrictMat(isCohesive=True,young,alphaKr,alphaKtw, poisson,frictionAngle,etaRoll,etaTwist, density,normalCohesion,shearCohesion, momentRotationLaw=True)

and use Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm=True,always_use_moment_law=True).

So, potentially there could be 3 failure modes for each interaction: shear, bending and twisting. How can we know which mode the interaction fails with?

Thanks
Leonard

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Jérôme Duriez
Solved:
2020-07-10
Last query:
2020-07-10
Last reply:
2020-07-10
Jérôme Duriez (jduriez) said : #1

Hi,

I do not know exactly what you have in mind for the "interaction failure" term, but there does not seem, anyway, to be any YADE attribute ("flag") that would reflect the fact that some limit state has been reached at the CohFrictPhys interaction level. The source code for instance does not seem to set any in [*]

There are some in the JCF contact model, through e.g. Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM.recordCracks, .nbShearCracks, .. and somewhat in body.state (as a JCFpmState.nbBrokenBonds)

Remember that for true interaction failure (when the interaction disappears), it would be impossible to store anything in an interaction physics object (cont.phys for cont in O.interactions) that no longer exists..

On the other hand, if you just wanna know whether shear force / twisting torque / bending torques have reached their maximum values (which does not necessarily trigger interaction removal ?), it should be possible for you to directly compare current values of (the norm of) those with respect to maximum values.

[*] https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/CohesiveFrictionalContactLaw.cpp#L234 and below, for latest YADE version

Leonard (z2521899293) said : #2

Hi Jérôme,

Thanks for your reply.

 >if you just wanna know whether shear force / twisting torque / bending torques have reached their maximum values.
>>Yes, that is what I want.

>which does not necessarily trigger interaction removal
>>One stupid question: When does yade remove an interaction? Is it when the two particles are detected not in contact by the algorithm, or something more complex?

Just one more question:

Current normal force and shear force can be obtained using i.phys.normalForce.norm() and i.phys.shearForce.norm(). How to get twisting torque \ bending torques?

Thanks,
Leonard

Best Jérôme Duriez (jduriez) said : #3

> When does yade remove an interaction?

By YADE design, when the Law2 returns false to an existing interaction. More details depend on the chosen Law2, an example is at [*]

As for the torques, searching for "moment", "twisting", "bending" in the attributes/doc of CohFrictPhys might lead you to CohFrictPhys.moment_bending and CohFrictPhys.moment_twist
=> i.phys.moment_twist and i.phys.moment_bending (then .norm())

[*]when particles lose geometrical contact in Law2_ScGeom_FrictPhys_CundallStrack: https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/ElasticContactLaw.cpp#L73

Leonard (z2521899293) said : #4

Thanks Jérôme Duriez, that solved my question.