@@ -498,6 +498,33 @@ int startNonInteractiveSimulation(int argc, char**argv, DATA* data)
498498 return retVal;
499499}
500500
501+ /* ! \fn initializeResultData(DATA* simData, int cpuTime)
502+ *
503+ * \param [ref] [simData]
504+ * \param [int] [cpuTime]
505+ *
506+ * This function initializes result object to emit data.
507+ */
508+ int initializeResultData (DATA* simData, string result_file_cstr, int cpuTime)
509+ {
510+ int retVal = 0 ;
511+ long maxSteps = 4 * simData->simulationInfo .numSteps ;
512+ if (isInteractiveSimulation () || sim_noemit || 0 == strcmp (" empty" , simData->simulationInfo .outputFormat )) {
513+ sim_result = new simulation_result_empty (result_file_cstr.c_str (), maxSteps, simData, cpuTime);
514+ } else if (0 == strcmp (" csv" , simData->simulationInfo .outputFormat )) {
515+ sim_result = new simulation_result_csv (result_file_cstr.c_str (), maxSteps, simData, cpuTime);
516+ } else if (0 == strcmp (" mat" , simData->simulationInfo .outputFormat )) {
517+ sim_result = new simulation_result_mat (result_file_cstr.c_str (), simData->simulationInfo .startTime , simData->simulationInfo .stopTime , simData, cpuTime);
518+ } else if (0 == strcmp (" plt" , simData->simulationInfo .outputFormat )) {
519+ sim_result = new simulation_result_plt (result_file_cstr.c_str (), maxSteps, simData, cpuTime);
520+ } else {
521+ cerr << " Unknown output format: " << simData->simulationInfo .outputFormat << endl;
522+ retVal = 1 ;
523+ }
524+ INFO2 (LOG_SOLVER," Allocated simulation result data storage for method '%s' and file='%s'" , sim_result->result_type (), result_file_cstr.c_str ());
525+ return retVal;
526+ }
527+
501528/* *
502529 * Calls the solver which is selected in the parameter string "method"
503530 * This function is used for interactive and non-interactive simulation
@@ -514,20 +541,8 @@ int callSolver(DATA* simData, string result_file_cstr, string init_initMethod,
514541 int retVal = -1 ;
515542 const char * outVars = (outputVariablesAtEnd.size () == 0 ) ? NULL : outputVariablesAtEnd.c_str ();
516543
517- long maxSteps = 4 * simData->simulationInfo .numSteps ;
518- if (isInteractiveSimulation () || sim_noemit || 0 == strcmp (" empty" , simData->simulationInfo .outputFormat )) {
519- sim_result = new simulation_result_empty (result_file_cstr.c_str (), maxSteps, simData, cpuTime);
520- } else if (0 == strcmp (" csv" , simData->simulationInfo .outputFormat )) {
521- sim_result = new simulation_result_csv (result_file_cstr.c_str (), maxSteps, simData, cpuTime);
522- } else if (0 == strcmp (" mat" , simData->simulationInfo .outputFormat )) {
523- sim_result = new simulation_result_mat (result_file_cstr.c_str (), simData->simulationInfo .startTime , simData->simulationInfo .stopTime , simData, cpuTime);
524- } else if (0 == strcmp (" plt" , simData->simulationInfo .outputFormat )) {
525- sim_result = new simulation_result_plt (result_file_cstr.c_str (), maxSteps, simData, cpuTime);
526- } else {
527- cerr << " Unknown output format: " << simData->simulationInfo .outputFormat << endl;
528- return 1 ;
529- }
530- INFO2 (LOG_SOLVER," Allocated simulation result data storage for method '%s' and file='%s'" , sim_result->result_type (), result_file_cstr.c_str ());
544+ if (initializeResultData (simData, result_file_cstr, cpuTime))
545+ return -1 ;
531546
532547 if (simData->simulationInfo .solverMethod == std::string (" " )) {
533548 INFO (LOG_SOLVER, " | No solver is set, using dassl." );
0 commit comments