Messages from list : cormas@cirad.fr

Choose a topic among the following archives :

Re: How to make an action only one time ?

New Message Reply Date view Thread view Subject view Author view

Subject: Re: How to make an action only one time ?
From: Fabrice Vinatier (fabrice.vinatier@cirad.fr)
Date: Mon Jun 30 2008 - 18:11:15 CEST

Bonjour,
Malheureusement, la sauvegarde ne se fait pas à un pas de temps défini,
mais au moment où la condition est remplie, et ce moment varie selon les
simulations.
Pour l'instant je m'en suis sorti en introduisant un paramètre stop
valant 0 à l'initialisation et s'incrémentant dès que la condition est
remplie. A chaque pas de temps, je teste si self class stop=0
ifTrue:[condition] mais c'est un peu de la bricole.
Je vais réfléchir à ce que vous m'avez proposé pour voir si ça ne peut
s'arranger dans ce cas tout de même.

J'avais une autre question :
L'espace que je considère est une parcelle de bananeraie, avec toujours
2 bananiers par case à 2 stades différents (l'un est le rejet de
l'autre). Je fais pondre des charançons sur ces cases, mais je ne
parviens pas à ce que les oeufs soient inféodés à l'un ou l'autre des
bananiers :
voici le code :
    self fecundity timesRepeat:
            [newCosmopolites := self newEntity: Cosmopolites.
            newCosmopolites initWithSumTemp: 0.
            newCosmopolites initWithAge: 0.
            newCosmopolites moveTo: self patch].

et je voudrais indiquer self Plant au lieu de self patch, car avec cette
configuration, les oeufs et larves se développent sur la cellule, et pas
sur le bananier, mais l'argument moveTo ne s'applique qu'à une entité
spatiale.

FV

Michel Etienne a écrit :
> A 11:10 30/06/2008 -0400, Fabrice Vinatier a écrit :
>> Hello,
>> I am looking for a way to make an action only one time, although the
>> condition is still valid for the next time steps.
>> I send the code :
>>
>> (self thePlants select: [:a | a growingState = #harvesting]) size > 0
>> ifTrue:
>> [self saveAttackDistributions.
>> self savePopDistributions]
>>
>> AttackDistributions and PopDistributions are saved in a file .txt,
>> but if there is 10 time steps after harvesting, for example, the
>> saving will be done ten times.
>>
>> If you have an idea of how to prevent this ?
>> Cheers,
>
> il suffit de définir le pas de temps auquel vous souhaitez faire les
> sauvegardes avec un modulo (t \\ n), n étant le nombre de pas de temps
> entre une sauvegarde et la suivante
>
>
> t \\ 12 = 1 ifTrue: [(self thePlants select: [:a | a growingState =
> #harvesting]) size > 0
> ifTrue:
> [self saveAttackDistributions.
> self savePopDistributions]]
>
> lance une sauvegarde aux pas de temps 1, 13, 25 etc
>
> M. Etienne
>
>

-- 
Fabrice Vinatier
Modélisation / Entomologie

CIRAD - PRAM Unité de recherche Systèmes de culture bananes, plantains et ananas

Téléphone : 05 96 42 30 58

!! Nouvelle adresse email !! fabrice.vinatier@cirad.fr

New Message Reply Date view Thread view Subject view Author view
 

Back to home