← Back to team overview

yade-dev team mailing list archive

Re: CohesiveFrictionalPM...

 



You are totally right, as I said, CFpm does exactly the same as CFCL (except the creep related to snow tests and the flags named after "erosion").
Erosion has been removed, and creep is not activated by default, it can't hurt.

The only difference is that CFpm gathers all the interaction dispatchers in a unique file which is, in my opinion, really more readable than the separated files linked to CFCL
I noticed the all-in-one approach which minimizes files (but not duplicates), and I noticed it was well documented. That is why I'm not to sure what to do now.
(In fact, I did it also to help Tieng with his contact law which now works ;-) ).

I was guessing... ;-)

I am curious about the pbs you fixed in CFCL?
I replaced some lines with the updateShearForce/applyForceAtContactPoint functions which doesn't change the equations.
Real changes are in :

l.113:
Real maxFs = currentContactPhysics->shearAdhesion;
if (!currentContactPhysics->cohesionDisablesFriction || maxFs==0)
               maxFs += Fn*currentContactPhysics->tangensOfFrictionAngle;

l.119:
if (currentContactPhysics->fragile && !currentContactPhysics->cohesionBroken) {
                   currentContactPhysics->SetBreakingState();
maxFs = max((Real) 0, Fn*currentContactPhysics->tangensOfFrictionAngle);}

as well as with the naming conflict, but, what is the "right" way? With CFpm, I just tried to follow the last code updates, according to Vaclav's work. CFpm was created as a way to update CFCL in its most basic form (no creep or erosion flags)... So, do we include your features to CFpm, or do we simply delete CFpm? I don't know...
If it was not already typed and documented, the answer would be fairly simple : register the existing class correctly (now I did it) and put your new features in it, but in the current situation, I'm not sure... What can we do? Isolate parts of the code that are re-used in a few functions to avoid duplicates (like e.g. updateShearForce)? Make your new classes inherit from CF classes if there are additional parameters? Include additional functionalities (normal inelasticity, if any?) in CF functor with flags to activate/desactivate, like for creep?

Note that a change will have to be made soon to move the attributes "cohesion" and "tensileStrength" from the functor to the IPhys. For now we can't assign different values in different parts of the domain (one more example of a duplicated bug...).


Bruno



References