Community
Participate
Working Groups
Created attachment 196234 [details] Patch for the time step splitting If a value is negative after performing a time step, a smaller time step is performed. Afterwards an additional step for the remaining time is done. If a value is negative again, the this time step is split again and so on.
Created attachment 196250 [details] Bug fixed from previous patch
Created attachment 196256 [details] Bugs in previous patch fixed
Assign to Chris
Created attachment 196577 [details] Avoid stack when because of recursion If a value is only slightly negative, the time step is not split anymore. The delta is just adjusted so that the values becomes zero. The time step is only split if a value below a certain threshold occurs. Right now the threshold is set to -0.1.
when a values goes negative the time step is split into several smaller timesteps
Stack overflow still occurs
Reopening. Seeing an exception when using the finite difference solver on two or more simulations of the same scenario running in parallel. This seems to occur at an indeterminate step in the simulation. Exception seen: java.lang.NumberFormatException: empty String at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:992) at java.lang.Double.parseDouble(Double.java:510) at org.eclipse.stem.solvers.fd.impl.FiniteDifferenceImpl.recursiveStep(FiniteDifferenceImpl.java:154) at org.eclipse.stem.solvers.fd.impl.FiniteDifferenceImpl.step(FiniteDifferenceImpl.java:111) at org.eclipse.stem.core.scenario.impl.ScenarioImpl.step(ScenarioImpl.java:391) at org.eclipse.stem.jobs.simulation.Simulation.run(Simulation.java:283) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Steps to reproduce: - Select a scenario in the project explorer - Click Run - Go back to project explorer, select the same scenario again - Click run again - Workbench will eventually throw an error about running the job and generate the above exception
Changing priority to P1 and severity to Major. This bug is in the release and happens fairly regularly with the Dengue Fever model Please see Matt's comments above. The solver is getting an empty string and trying to great a could from it. see FiniteDifferenceImpl line 154 for (FdJob j : jobs) { factor = Math.min(factor, Double.parseDouble(j.getResult().getMessage())); } The empty strings are created in FdJob on lines 59 and 65.
Christian Thoens fixed this before he left.