Le 01/10/2010 15:01, Paul MARCHAL a écrit :
Bonjour,
Je souhaite récupérer dans ma règle les constantes K et r définies dans mon équation de reproduction, dont voici le code:
/double Bcur = 82472000.0; double K = 115637000.0; double Bmsy = K/2; double r = 0.17; double growth; double cOthFleets = 3666000.0 - 2731000.0; // 2008 catches of all non French fleets; double pOthFleets = cOthFleets/Bcur; double catchOth; Date date = context.getSimulationControl().getDate(); Date date0 = new Date(0); for (Zone zr : zoneRepro) { if (date0.compareTo(date) == 0) { growth = Bcur; result.setValue(zr,growth); } else { growth = (r/12)*N.getValue(0,zr)*(1-(N.getValue(0,zr)/K))*(1 - pOthFleets/12); result.setValue(zr,growth); } }
return 0;
/Inversement, je souhaiterait que certaines des constantes définies dans le code ci-dessus (e.g. cOthFleets) puissent être définies sur la base des résultats obtenus dans ma règle.
Merci pour vos lumières Je crois que Sigrid, a déjà utiliser ce genre de chose.
Dans votre règle, il y a un object nommé "context" (SimulationContext) [1] où vous pouvez stocker et récupérer des valeurs via les méthodes. Exemple : context.setValue("unnomunique.K", K); et double K = (Double)context.getValue("unnomunique.K"); Le même contexte est disponible dans les règles. (attention à l'ordre preAction / postAction) [1] http://isis-fish.labs.libre-entreprise.org/isis-fish/apidocs/fr/ifremer/isis... -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com