Bonjour,
J'ai un problème cette simulation qui ne tourne pas lorsque seul
l'export "Captures_AgeStructure_pop_3pop.java" est demandé et, en
revanche, fonctionne quand l'export "Abundances.java" est demandé en
plus de "Captures_AgeStructure_pop_3pop.java" (version 4.4.2.2). D'après
le debug.txt, le problème semble provenir de l'équation d'immigration de
la population "Sole3z_WestFR" (voir ci-dessous). Par ailleurs, lorsque
la simu fonctionne (quand les deux exports sont demandés), elle met
beaucoup de temps à tourner, surtout au cours des mois de février de
chaque année). Avez-vous une idée d'où ça vient?
En pièces jointes le script d'export
"Captures_AgeStructure_pop_3pop.java", la base ainsi que le
parameters.properties de la simulation.
Merci d'avance !
Sophie Leforestier
2019-01-10 09:11:46,124 WARN [monitor-thread]
(SimulationMonitor.java:533) checkProgression - Simulation exception :
fr.ifremer.isisfish.IsisFishRuntimeException: Can't evaluate equation
at
fr.ifremer.isisfish.util.EvaluatorHelper.catchEvaluateException(EvaluatorHelper.java:276)
at
fr.ifremer.isisfish.entities.PopulationSeasonInfoImpl.getImmigrationMatrix(PopulationSeasonInfoImpl.java:685)
at
fr.ifremer.isisfish.entities.PopulationSeasonInfoImpl.getImmigrationMatrix(PopulationSeasonInfoImpl.java:626)
at simulators.DefaultSimulator.computeMonth(DefaultSimulator.java:438)
at simulators.DefaultSimulator.simulate(DefaultSimulator.java:242)
at
fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher.localSimulateSameThread(InProcessSimulatorLauncher.java:430)
at
fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher$SimThread.run(InProcessSimulatorLauncher.java:260)
Caused by: fr.ifremer.isisfish.IsisFishRuntimeException: Impossible
d'évaluer l'équation: TimeStep date =
context.getSimulationControl().getStep();
//List<Population> pops =
context.getSimulationStorage().getParameter().getPopulations();
List<Population> pops = context.getPopulationMonitor().getPopulations();
double newJuv_Veys = 0;
double newJuv_Seine =0;
for(Population p : pops){
if(p.getSpecies().getName().equals(pop.getSpecies().getName()) &&
!p.getName().equals(pop.getName())){
String name = "MatrixAbundance";
MatrixND ab =
context.getResultManager().getMatrix(date,pop,name).copy();
//MatrixND ab = context.getPopulationMonitor().getN(p);
//ab = ab.getSubMatrix(0,1,1);// ages 2
ab = ab.getSubMatrix(0,0,1);// ages 1
for (MatrixIterator i = ab.iterator(); i.hasNext();) {
i.next();
Object[] sem = i.getSemanticsCoordinates();
Zone zoneRecru = (Zone) sem[1];
PopulationGroup grp = (PopulationGroup) sem[0];
if(zoneRecru.getName().equals("Sole_nurs_Veys")) {
newJuv_Veys += i.getValue();
}else if(zoneRecru.getName().equals("Sole_nurs_Seine")){
newJuv_Seine += i.getValue();
}
}
}
}
double result = 0;
if (group.getAge() == 1) {
String zoneName = arrivalZone.getName();
if (zoneName.equals("Sole_nurs_Veys")) {
result = newJuv_Veys;
}else if(zoneName.equals("Sole_nurs_Seine")) {
result = newJuv_Seine;
}
return result;
} else return 0;
at fr.ifremer.isisfish.entities.EquationImpl.evaluate(EquationImpl.java:89)
at sun.reflect.GeneratedMethodAccessor23.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:84)
at
fr.ifremer.isisfish.entities.EquationImpl_$$_jvst2df_6.evaluate(EquationImpl_$$_jvst2df_6.java)
at
fr.ifremer.isisfish.entities.PopulationSeasonInfoImpl.getImmigrationMatrix(PopulationSeasonInfoImpl.java:657)
... 5 more
Caused by: fr.ifremer.isisfish.IsisFishRuntimeException: Can't invoke
method 'public abstract double
fr.ifremer.isisfish.equation.ImmigrationEquation.compute(fr.ifremer.isisfish.simulator.SimulationContext,org.nuiton.math.matrix.MatrixND,fr.ifremer.isisfish.entities.Population,fr.ifremer.isisfish.entities.PopulationGroup,fr.ifremer.isisfish.entities.Zone)
throws java.lang.Exception' for class
formules.ImmigrationEquationfr_ifremer_isisfish_entities_Equation_1508942748395_0_953294363441329
at
fr.ifremer.isisfish.util.EvaluatorHelper.invoke(EvaluatorHelper.java:465)
at
fr.ifremer.isisfish.util.EvaluatorHelper.evaluate(EvaluatorHelper.java:299)
at fr.ifremer.isisfish.entities.EquationImpl.evaluate(EquationImpl.java:74)
... 11 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
fr.ifremer.isisfish.util.EvaluatorHelper.invoke(EvaluatorHelper.java:462)
... 13 more
Caused by: java.lang.NullPointerException
at
formules.ImmigrationEquationfr_ifremer_isisfish_entities_Equation_1508942748395_0_953294363441329.compute(ImmigrationEquationfr_ifremer_isisfish_entities_Equation_1508942748395_0_953294363441329.java:13)
... 17 more