yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #04061
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