import net.sf.openrocket.optimization.rocketoptimization.OptimizableParameter;
import net.sf.openrocket.simulation.FlightData;
import net.sf.openrocket.simulation.exception.MotorIgnitionException;
+import net.sf.openrocket.simulation.exception.SimulationCalculationException;
import net.sf.openrocket.simulation.exception.SimulationCancelledException;
import net.sf.openrocket.simulation.exception.SimulationException;
import net.sf.openrocket.simulation.exception.SimulationLaunchException;
} catch (SimulationLaunchException e) {
// Other launch exceptions result in illegal value
return Double.NaN;
+ } catch (SimulationCalculationException e) {
+ // Calculation errors result in illegal value
+ return Double.NaN;
} catch (SimulationCancelledException e) {
// Simulation cancellation stops the optimization
throw (InterruptedException) new InterruptedException("Optimization was interrupted").initCause(e);