Hello j'avais récemment modifier le default Simulator methode computeMonth() pour en extraire le calcul de Fising Mortality per group et Fishing Mortality totale et les mettre après les post actions des règles (hors de la méthode). La raison en est que je voulais pouvoir calculer F soit sur les catch soit sur les landings (hors les landings ne sont disponibles qu'apres la post action des rules). Si on juge que c'est important, je crois qu'il faudrait faire un truc plus propre et dépendant de l'espèce pour la V3.4. Je propose : - est ce important ? (Steph ?) - ajouter une tickBox dans l onglet structure de pop a coté de "group min" et "group max" disant "calcul de F sur les débarquements" Changer la methode fishingMortalityPerGroup comme suit if( ! *tickBox* cochée){ MatrixND catchPerStrategyTemp = resManager.getMatrix(loopstep, pop, ResultName.MATRIX_CATCH_PER_STRATEGY_MET_PER_ZONE_POP); }else { catchPerStrategyTemp = resManager.getMatrix(loopstep, pop, ResultName.*MATRIX_LANDING_PER_MET*); } - effectivement sortir le calcul de ces resultats de ComputeMonth() *************************** Autre aspect, j'ai des pops saisonnières qui sont à 0 en janvier, leur F est donc tjs nul... - est ce utile de spécifier un mois auquel regarder l'abondance pour le calcul de F ou est ce une situation trop rare ? (Steph ?) si c est utile : - ajouter un param "mois de considération de l abondance pour le calcul de F" (!), surnommé "*mcacf*" - modifier la methode fishingMortalityPerGroup : abundancePopJan = resManager.getMatrix(new TimeStep(12*step.getYear()+*mcacf*), pop, ResultName.MATRIX_ABUNDANCE_BEGIN_MONTH); //6 juillet pour squid Sinon peut etre tester si N == 0, si oui boucler sur les pas de temps de l année jusqu a trouver un N!=0 ? *************************** Une autre : dans ObjectiveFunction f = new ObjectiveFunctionBaranov(Cgroup, Mgroup, NgroupJan); Fgroup = MinimisationUtil.fmin(0.0,2.0,1.0e-10, f); // step ?? On limite la recherche de f entre 0 et 2.0 c'est un peu restrictif mais efficace. Il serait bon de tester si Fgroup ==2 ou 1.999 et si c'est le cas de relancer la recherche entre 0 et 10 par exemple car il peut arriver que F depasse 2. ************************** Juste une remarque si je ne m'abuse if y a redondance de test l 328 du defaultSimulateur ligne 265 // discard and landing must be done after post action rules // only if there are one or more strategy if (siMatrix.getStrategies(step).size() > 0) { puis ligne 328 ds ce if if (siMatrix.getStrategies(step).size() > 0) {