O.tags['params'] for 2 batchs and 1 save

Bug #1596021 reported by Jérôme Duriez
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Yade
Invalid
Undecided
Unassigned

Bug Description

Hello,

I've faced some issue for batch simulation. I have a batch simulation that loads a .yade save from a previous simulation that was also launched in batch mode.

The two batch-mode simulations consider different parameters in their .table. And in the second simulation, O.tags['params'] refers to the parameters of the first batch-mode simulation, while I would like it refers to the parameters of the current simulation..

I'm attaching example scripts "first.py" and "second.py", together with their "first.table" and "second.table" to illustrate. "first.py" will generate a .yade that will be used by "second.py". During the batch execution of "second.py", O.tags['params'] refers to first.table instead of second.table.

It turns out the O.load erases the right O.tags['params']

Do we agree it is a bug or, at least, an indesirable feature ? Would it be possible to not save O.tags['params'] in .yade files ?

Revision history for this message
Jérôme Duriez (jduriez) wrote :
Revision history for this message
Jérôme Duriez (jduriez) wrote :
Revision history for this message
Jérôme Duriez (jduriez) wrote :
Revision history for this message
Jérôme Duriez (jduriez) wrote :
Revision history for this message
Jan Stránský (honzik) wrote : Re: [Yade-dev] [Bug 1596021] Re: O.tags['params'] for 2 batchs and 1 save

Hi Jerome,

in my opinion it is not bug nor indesirable feature. O.load should load
everything what is saved, including O.tags. I think there would be plenty
of situations where you define O.tags, save it and after load you want to
have them. As an extreme, one may complain that after O.load, the bodies
are loaded from previous simulation :-)

what about this as a solution (readParamsFromTable after O.load)?

###### second.py ########################################
O.load('first.yade')
readParamsFromTable(secondParam = 'toto')
from yade.params.table import *
print 'In second.py at the end, O.tags[params] =', O.tags['params']
#######################################################

cheers
Jan

2016-06-24 18:27 GMT+02:00 Jérôme Duriez <email address hidden>:

> ** Attachment added: "second.table"
>
> https://bugs.launchpad.net/yade/+bug/1596021/+attachment/4689856/+files/second.table
>
> --
> You received this bug notification because you are a member of Yade
> developers, which is subscribed to Yade.
> https://bugs.launchpad.net/bugs/1596021
>
> Title:
> O.tags['params'] for 2 batchs and 1 save
>
> Status in Yade:
> New
>
> Bug description:
> Hello,
>
> I've faced some issue for batch simulation. I have a batch simulation
> that loads a .yade save from a previous simulation that was also
> launched in batch mode.
>
> The two batch-mode simulations consider different parameters in their
> .table. And in the second simulation, O.tags['params'] refers to the
> parameters of the first batch-mode simulation, while I would like it
> refers to the parameters of the current simulation..
>
> I'm attaching example scripts "first.py" and "second.py", together
> with their "first.table" and "second.table" to illustrate. "first.py"
> will generate a .yade that will be used by "second.py". During the
> batch execution of "second.py", O.tags['params'] refers to first.table
> instead of second.table.
>
> It turns out the O.load erases the right O.tags['params']
>
> Do we agree it is a bug or, at least, an indesirable feature ? Would
> it be possible to not save O.tags['params'] in .yade files ?
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/yade/+bug/1596021/+subscriptions
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-dev
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-dev
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
Jérôme Duriez (jduriez) wrote :

Indeed, that's another point of view.. Mine would be that O.tags['params'] is deeply related with the batch parameters rather than anything else. I'll wait a couple of days and then mark the bug as invalid if I'm the only one thinking that way.

(In fact, the solution you're proposing would not work for my case because I decide to load, or do something else, depending on the batch parameters)

Speaking by the way about O.tags in general, I never use it for something else than 'params' and am curious what use can be made of it (which starts to be off topic here)

Thanks !

Revision history for this message
Bruno Chareyre (bruno-chareyre) wrote :

Hi Jérôme,
O.tags contain whatever you like in terms of named data (e.g. version/date of the script that was used to produce one particular scene).
If you see O.tags['params'] as a memory of which parameters were used (it is obviously not the sole purpose) you realize that forgetting history upon reload may not be a desirable feature.

> the solution you're proposing would not work for my case because I decide to load, or do something else, depending on the batch parameters

For your particular problem maybe the script design itself can be questionned.
Else why not this:

readParamsFromTable(secondParam = 'toto')
#do whatever you like, and depending on the second params maybe:
   O.load('first.yade')
   readParamsFromTable(secondParam = 'toto') #overwrite

Revision history for this message
Jérôme Duriez (jduriez) wrote :

Thanks everyone.

Changed in yade:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.