Le 19/05/2011 16:41, Stephanie.Mahevas@ifremer.fr a écrit :
je voudrais court-circuiter le calcul de F dans ISIS. Bon evidemment ca doit vous paraitre bizarre puisqu'ISIS est initialement fait pour ca... mais bon les pressions sont fortes pour que l'on puisse tester des procedures avec de F fixes. J'avoue ne pas trop savoir comment prendre le truc par le bon bout. Je ne pense pas que l'on ait besoin d'un nouveau simulateur car tout les calculs matriciels a chaque pas de temps ne changent pas. Ce qui change c'est simplement que dans siMatrix la methode matrixFishingMortality() n'a plus besoin d'etre appliquee car MATRIX_FISHING_MORTALITY sera initialisee dans une Regle ForcingMortality avec en entree deux fichiers ascii. Faut-il que je definisse une nouvelle methode matrixFishingMortality avec un parametre booleen qui par defaut est egal a False et qui lorsq'il est mis a TRUE par la ForcingMortality ne fait pas le calcul de matrixFishingMortality ? si oui qu'est-ce que cela implique comme consequences? comment faire pour que ce parametre soit accessible dans une regle? comment puis-je acceder a MATRIX_FISHING_MORTALITY qui est attache a ResultName dans une regle? Je ne pense pas que cela soit possible sans modification du simulateur.
A la place de : MatrixND matrixFishingMortality = siMatrix.matrixFishingMortality(date, pop); resManager.addResult(date, pop, matrixFishingMortality); Tu peut le modifier en : // matrice déjà calculée par une règle MatrixND matrixFishingMortality = resManager.getMatrix(date, pop, ResultName.MATRIX_FISHING_MORTALITY); // sinon, on la calcule if (matrixFishingMortality == null) { matrixFishingMortality = siMatrix.matrixFishingMortality(date, pop); resManager.addResult(date, pop, matrixFishingMortality); } Ce code devrait fonctionner même sans la règle. -- Éric Chatellier <chatellier@codelutin.com> Tel: 02.40.50.29.28 http://www.codelutin.com