← Back to team overview

yade-dev team mailing list archive

Re: [yade-dev] Trouble with use of CohesiveFrictionalPM in new version

 

UPDATE

- Seems that the moment law works (tests at the scale of one interaction)
- Seems that the contact law (say CohesiveFrictionalPM) works well at the
scale of a simple interaction (tests at the scale of one interaction)

- Don't know why, but when used in macroscale simulations (say Trixial or
Uniaxial testing), the assemblies explode/disappear/gotohell. I suspect a
problem related to the timestep computation but still not sure... Explosion
does not occur if the initial contact distance is not initialized at the
first contact between two particles, say:

no problem if D = geom->penetrationDepth / problem if D =
geom->penetrationDepth - initD with initD=geom->penetrationDepth if
contact->isFresh

- At the same time I can see that everytime I recompile the sources, all qt3
linked files are recompiled with, randomly, an error occuring (moreover, I
got this when the system is checked: Checking for QGLViewer() in C++ library
qglviewer... (cached) no).

still  trying to find out

Luc



2010/5/28 luc scholtes <lscholtes63@xxxxxxxxx>

> Thanks for your advices Anton.
>
> I found that the main problem (say, not the one due to the moment law)
> comes from those two lines, where I initialize the first contacting distance
> as the equilibrium distance:
>
> if ( contact->isFresh(rootBody) ) { phys->initD = displN; phys->normalForce
> = Vector3r::Zero(); phys->shearForce = Vector3r::Zero();}
> Real D = displN - phys->initD; // interparticular distance is computed
> depending on the equilibrium distance (which is 0 for non cohesive
> interactions)
>
> Probably some consequences in the computation of the timestep...
>
> Bruno?
>
>
>
> 2010/5/28 Anton Gladky <gladky.anton@xxxxxxxxx>
>
> I am not an expert in CohesiveFrictionalPM as I am using my own one,
>>
>> If you do not find the reason, analyzing the code, try to find in what
>> revision it was broken.
>> If you say, that it is working in r 2185, try r2200. And then compiling
>> several revision you will get
>> exactly the problem revision. In then it will be much easier to find the
>> solution.
>> ______________________________
>>
>> Anton Gladkyy
>>
>>
>> 2010/5/28 luc scholtes <lscholtes63@xxxxxxxxx>
>>
>>> Hi guys,
>>>
>>>
>>> After few investigations about CohesiveFrictionalPM in latest version, I
>>> must admit that I still do not have any idea where to look for, so if one of
>>> you could have any suggestion, it would be very kind.
>>>
>>> 1- CohesiveFrictionalPM seems to work well when it is used in basic
>>> simulations (say two elements, sphere/sphere or sphere/box) and without the
>>> moment law (the moment law produces the same "explosive behaviour" when used
>>> with CohesiveFrictionalContactLaw, so it is probably due to some problems
>>> with quaternion computation in Eigen as it worked well with wm3... Unless
>>> there was something wrong with wm3...)
>>>
>>> 2- I don't understand why, but when CohesiveFrictionalPM is used in a
>>> TriaxialTest or a uniaxial test (without the moment law, though), everything
>>> explodes. Since there have been a lot of changes during the last weeks (I
>>> use rev2185 without any problem), I don't really know where to check
>>> first... I have attached a script that I use for Triaxial Testing. I tested
>>> it with CohesiveFrictionalPM as well as with CohesiveFrictionalContactLaw.
>>> RESULTS -> if the moment law is desactivated, it works for
>>> CohesiveFrictionalContactLaw but not for CohesiveFrictionalPM.
>>>
>>> The first thing I have noticed is that, if the timestep is fixed with
>>> O.dt=-0.2*utils.PWaveTimeStep() (see the - before
>>> 0.2*utils.PWaveTimeStep()), GlobalStiffnessTimeStepper() does not update the
>>> timestep for CohesiveFrictionalPM (it does for
>>> CohesiveFrictionalContactLaw), and, the walls just go through the assembly.
>>>
>>> Then, fixing the timestep with O.dt=0.2*utils.PWaveTimeStep() (without
>>> the -), I could see that after few iterations, everything explodes again.
>>> Having a look into the TriaxialRecorder file, I could see that the kinematic
>>> energy, as well as the unbalanced force increase dramatically.
>>>
>>> The only (!!!!) difference between the two laws is that, one uses the
>>> penetration depth as the interacting distance, whereas the other initializes
>>> the interacting distance to the penetration depth when an interaction is
>>> detected, and I saw this: https://bugs.launchpad.net/yade/+bug/399963.
>>> Do you think it could be related?
>>>
>>> Please... help
>>>
>>>   Luc
>>>
>>>
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev>
>>> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev>
>>>
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev>
>> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev>
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>

Follow ups

References