← Back to team overview

yade-users team mailing list archive

Re: recorder problems

 

    Hello. The problem is that the lines you wrote in the mail allow 
only to define the Engines which will record all that you want. That's 
neccessary to define them but not at all enough !
    Once they are correctly defined you have to make so that these 
Engines will indeed be executed when they have to. To make simple that 
is done in the lines occuring at the end of the createActors function

    //rootBody->engines.push_back(averagePositionRecorder);
    //rootBody->engines.push_back(velocityRecorder);
    //rootBody->engines.push_back(forcerec);

And as you see they are commented...!! whereas the line about the 
triaxialtest recorder :
rootBody->engines.push_back(triaxialStateRecorder);
(above) is not commented...

In fact these lines allow to access to the list of the Engines of the 
simulation will we be executed every time step (this list is the 
variable "engines" of the "rootBody" object, which you have to consider 
as the whole simulation). And so you have to put in this list (with the 
C++ function "push_back") the engines you want to be executed.
Did you read my small "Getting started" ? ;-) 
Good luck

Jerome

Benjamin Fragneaud a écrit :
> Hi Lionel,
> This problem occurs also with Yade´s default preprocessor, for 
> expample with cohesiveTriaxialTest. In this preprocessor file, there 
> is two types of recorders:
>
> - AveragePositionRecorder, ForceRecorder, VelocityRecorder -> doesn´t 
> work (empty recorded files)
>
> Code used:
>
> void CohesiveTriaxialTest::createActors(shared_ptr<MetaBody>& rootBody)
> 00557 {
> 00558 // recording average positions
> 00559         averagePositionRecorder = 
> shared_ptr<AveragePositionRecorder>(new AveragePositionRecorder);
> 00560         averagePositionRecorder -> outputFile           = 
> positionRecordFile;
> 00561         averagePositionRecorder -> interval             = 
> recordIntervalIter;
> 00562 // recording forces
> 00563         forcerec = shared_ptr<ForceRecorder>(new ForceRecorder);
> 00564         forcerec -> outputFile  = forceRecordFile;
> 00565         forcerec -> interval    = recordIntervalIter;
> 00566 // recording velocities
> 00567         velocityRecorder = shared_ptr<VelocityRecorder>(new 
> VelocityRecorder);
> 00568         velocityRecorder-> outputFile   = velocityRecordFile;
> 00569         velocityRecorder-> interval     = recordIntervalIter;
> 00570
>
> - TriaxialTestRecorder -> works
>
> The main preprocessor is available in 
> pkg/dem/PreProcessor/CohesiveTriaxialTest.cpp; it is also attached to 
> this mail.
>
> Since my preprocessor is just on test, I preferred to use as an 
> example which is supposed to work properly, and that I'm using as an 
> example in order to understand the structure of the recorder egines.
>
> Let me know if some more information is required.
> Thanks again your help and time,
>
> Ben
>
>
> Lionel Favier <lfavier@xxxxxxxxxxxxxxx> ha escrito:
>
>> Benjamin Fragneaud a écrit :
>>> Hi everybody,
>>>
>>> I´d like to know if anybody already had problems with some recorders
>>> like ForceRecorder engine, VelocityRecorder engine etc... this engines
>>> seem to be constructed on the same basis. By using yade prepocessor
>>> examples, I found out that this recorders create a document, but this
>>> document remain empty (no data). The only recorders wich are working
>>> properly are the stressWallRecorder as well as the snaprecorder, which
>>> both belong to the triaxialTestEngine.
>>>
>>> I´m not an expert in C++ programmation, I just started to deal with
>>> this stuff one month ago, so I beleive that I must do something wrong.
>>> Yade is actually  running (one of the last svn subversion) on kubuntu
>>> 8.04 hardy and all the yade components appear to run perfectly on this
>>> platform.
>>>
>>> Thanks a lot for your help,
>>>
>>> Ben
>>>
>>> _______________________________________________
>>> Yade-users mailing list
>>> Yade-users@xxxxxxxxxxxxxxxx
>>> https://lists.berlios.de/mailman/listinfo/yade-users
>>>
>>>
>> Hello Ben,
>>
>> I think you should add an enclosure of your Preprocessor example,
>> because a lot of various worries could happen ...
>>
>> -- 
>> Lionel FAVIER
>> Doctorant
>> Laboratoire Sols Solides Structures, Risques (3S-R)
>> Equipe Risques et Vulnérabilité (RV)
>>
>> Domaine Universitaire - BP 53
>> 38041 Grenoble Cedex 9
>> France
>>
>> Tél: +33 (0)4 56 52 86 36
>> lionel.favier@xxxxxxxxxxx
>>
>> _______________________________________________
>> Yade-users mailing list
>> Yade-users@xxxxxxxxxxxxxxxx
>> https://lists.berlios.de/mailman/listinfo/yade-users
>>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Yade-users mailing list
> Yade-users@xxxxxxxxxxxxxxxx
> https://lists.berlios.de/mailman/listinfo/yade-users
_______________________________________________
Yade-users mailing list
Yade-users@xxxxxxxxxxxxxxxx
https://lists.berlios.de/mailman/listinfo/yade-users



Follow ups

References