Changeset aeb9725 in OpenModelica
- Timestamp:
- 2017-10-17T11:02:18+02:00 (7 years ago)
- Branches:
- Added-citation-metadata, maintenance/v1.14, maintenance/v1.15, maintenance/v1.16, maintenance/v1.17, maintenance/v1.18, maintenance/v1.19, maintenance/v1.20, maintenance/v1.21, maintenance/v1.22, maintenance/v1.23, master, omlib-staging
- Children:
- 702e338
- Parents:
- 92ac5a6
- git-author:
- Martin Sjölund <martin.sjolund@…> (10/17/17 10:02:15)
- git-committer:
- hudson <openmodelica@…> (10/17/17 11:02:18)
- Location:
- SimulationRuntime/c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
SimulationRuntime/c/simulation/results/simulation_result_mat.cpp
rbef320c raeb9725 46 46 extern "C" { 47 47 48 typedef enum { 49 MAT4_DOUBLE_PRECISION_FULL_MATRIX=0, 50 MAT4_SINGLE_PRECISION_FULL_MATRIX, 51 MAT4_32BIT_INTEGER_FULL_MATRIX, 52 MAT4_16BIT_INTEGER_FULL_MATRIX, 53 MAT4_8BIT_INTEGER_FULL_MATRIX, 54 MAT4_STRING_TEXT_MATRIX, 55 MAT4_MATRIX_TYPE_MAX 56 } MAT4_MATRIX_TYPE; 57 58 static const int MAT4_MOPT_OF_MATRIX_TYPE[MAT4_MATRIX_TYPE_MAX]={0,10,20,30,40,51}; 59 static const int MAT4_SIZE_OF_MATRIX_TYPE[MAT4_MATRIX_TYPE_MAX]={8,4,4,2,1,1}; 60 48 61 typedef std::pair<void*,int> indx_type; 49 62 typedef std::map<int,int> INTMAP; … … 70 83 71 84 static long flattenStrBuf(int dims, const struct VAR_INFO** src, char* &dest, int& longest, int& nstrings, bool fixNames, bool useComment); 72 static void mat_writeMatVer4MatrixHeader(simulation_result *self,DATA *data, threadData_t *threadData,const char *name, int rows, int cols, unsigned int size);73 static void mat_writeMatVer4Matrix(simulation_result *self,DATA *data, threadData_t *threadData, const char *name, int rows, int cols, const void *, unsigned int size);85 static void mat_writeMatVer4MatrixHeader(simulation_result *self,DATA *data, threadData_t *threadData,const char *name, int rows, int cols, MAT4_MATRIX_TYPE mat4_matrix_type); 86 static void mat_writeMatVer4Matrix(simulation_result *self,DATA *data, threadData_t *threadData, const char *name, int rows, int cols, const void *, MAT4_MATRIX_TYPE mat4_matrix_type); 74 87 static void generateDataInfo(simulation_result *self,DATA *data, threadData_t *threadData,int* &dataInfo, int& rows, int& cols, int nVars, int nParams); 75 88 static void generateData_1(DATA *data, threadData_t *threadData, double* &data_1, int& rows, int& cols, double tstart, double tstop); … … 90 103 int sz = 1; /* start with one for the timeValue */ 91 104 92 if (self->cpuTime)105 if (self->cpuTime) { 93 106 sz++; 94 95 if (omc_flag[FLAG_SOLVER_STEPS])107 } 108 if (omc_flag[FLAG_SOLVER_STEPS]) { 96 109 sz++; 97 98 for(int i = 0; i < modelData->nVariablesReal; i++) 99 if(!modelData->realVarsData[i].filterOutput) 100 { 110 } 111 for(int i = 0; i < modelData->nVariablesReal; i++) { 112 if(!modelData->realVarsData[i].filterOutput) { 101 113 matData->r_indx_map[i] = sz; 102 114 sz++; 103 115 } 116 } 104 117 105 118 /* put sensitivity analysis also to the result file */ 106 if (omc_flag[FLAG_IDAS]) 107 { 119 if (omc_flag[FLAG_IDAS]) { 108 120 sz += (data->modelData->nSensitivityVars-data->modelData->nSensitivityParamVars); 109 121 } 110 122 111 for(int i = 0; i < modelData->nVariablesInteger; i++) 112 if(!modelData->integerVarsData[i].filterOutput) 113 { 123 for (int i = 0; i < modelData->nVariablesInteger; i++) { 124 if(!modelData->integerVarsData[i].filterOutput) { 114 125 matData->i_indx_map[i] = sz; 115 126 sz++; 116 127 } 117 for(int i = 0; i < modelData->nVariablesBoolean; i++)118 if(!modelData->booleanVarsData[i].filterOutput)119 {128 } 129 for (int i = 0; i < modelData->nVariablesBoolean; i++) { 130 if(!modelData->booleanVarsData[i].filterOutput) { 120 131 matData->b_indx_map[i] = sz; 121 132 sz++; 122 133 } 123 for(int i = 0; i < modelData->nAliasReal; i++) 134 } 135 for(int i = 0; i < modelData->nAliasReal; i++) { 124 136 if(!modelData->realAlias[i].filterOutput) sz++; 125 for(int i = 0; i < modelData->nAliasInteger; i++) 137 } 138 for(int i = 0; i < modelData->nAliasInteger; i++) { 126 139 if(!modelData->integerAlias[i].filterOutput) sz++; 140 } 127 141 matData->negatedboolaliases = 0; 128 for(int i = 0; i < modelData->nAliasBoolean; i++) 129 if(!modelData->booleanAlias[i].filterOutput) 130 { 131 if(modelData->booleanAlias[i].negate) 132 matData->negatedboolaliases++; 133 sz++; 134 } 142 for(int i = 0; i < modelData->nAliasBoolean; i++) { 143 if(!modelData->booleanAlias[i].filterOutput) { 144 if(modelData->booleanAlias[i].negate) { 145 matData->negatedboolaliases++; 146 } 147 sz++; 148 } 149 } 135 150 return sz; 136 151 } … … 143 158 int i, sz = 1; 144 159 145 for (i = 0; i < modelData->nParametersReal; i++) 146 if (!modelData->realParameterData[i].filterOutput) 147 { 160 for (i = 0; i < modelData->nParametersReal; i++) { 161 if (!modelData->realParameterData[i].filterOutput) { 148 162 matData->r_indx_parammap[i] = sz; 149 163 sz ++; 150 164 } 151 152 for (i = 0; i < modelData->nParametersInteger; i++) 153 if(!modelData->integerParameterData[i].filterOutput)154 {165 } 166 167 for (i = 0; i < modelData->nParametersInteger; i++) { 168 if(!modelData->integerParameterData[i].filterOutput) { 155 169 matData->i_indx_parammap[i] = sz; 156 170 sz ++; 157 171 } 158 159 for (i = 0; i < modelData->nParametersBoolean; i++) 160 if(!modelData->booleanParameterData[i].filterOutput)161 {172 } 173 174 for (i = 0; i < modelData->nParametersBoolean; i++) { 175 if(!modelData->booleanParameterData[i].filterOutput) { 162 176 matData->b_indx_parammap[i] = sz; 163 177 sz ++; 164 178 } 179 } 165 180 166 181 return sz - 1; … … 176 191 names[curVar++] = &timeValName; 177 192 178 if (self->cpuTime)193 if (self->cpuTime) { 179 194 names[curVar++] = &cpuTimeValName; 180 181 if(omc_flag[FLAG_SOLVER_STEPS]) 195 } 196 197 if (omc_flag[FLAG_SOLVER_STEPS]) { 182 198 names[curVar++] = &solverStepsValName; 183 184 for(int i = 0; i < modelData->nVariablesReal; i++) if(!modelData->realVarsData[i].filterOutput) 199 } 200 201 for (int i = 0; i < modelData->nVariablesReal; i++) if(!modelData->realVarsData[i].filterOutput) { 185 202 names[curVar++] = &(modelData->realVarsData[i].info); 203 } 186 204 187 205 /* put sensitivity analysis also to the result file */ 188 if (omc_flag[FLAG_IDAS]) 189 { 190 for(int i = data->modelData->nSensitivityParamVars; i < data->modelData->nSensitivityVars; i++) 191 { 206 if (omc_flag[FLAG_IDAS]) { 207 for(int i = data->modelData->nSensitivityParamVars; i < data->modelData->nSensitivityVars; i++) { 192 208 names[curVar++] = &(modelData->realSensitivityData[i].info); 193 209 } 194 210 } 195 for(int i = 0; i < modelData->nVariablesInteger; i++) if(!modelData->integerVarsData[i].filterOutput) 211 for(int i = 0; i < modelData->nVariablesInteger; i++) if(!modelData->integerVarsData[i].filterOutput) { 196 212 names[curVar++] = &(modelData->integerVarsData[i].info); 197 for(int i = 0; i < modelData->nVariablesBoolean; i++) if(!modelData->booleanVarsData[i].filterOutput) 213 } 214 for(int i = 0; i < modelData->nVariablesBoolean; i++) if(!modelData->booleanVarsData[i].filterOutput) { 198 215 names[curVar++] = &(modelData->booleanVarsData[i].info); 199 for(int i = 0; i < modelData->nAliasReal; i++) if(!modelData->realAlias[i].filterOutput) 216 } 217 for(int i = 0; i < modelData->nAliasReal; i++) if(!modelData->realAlias[i].filterOutput) { 200 218 names[curVar++] = &(modelData->realAlias[i].info); 201 for(int i = 0; i < modelData->nAliasInteger; i++) if(!modelData->integerAlias[i].filterOutput) 219 } 220 for(int i = 0; i < modelData->nAliasInteger; i++) if(!modelData->integerAlias[i].filterOutput) { 202 221 names[curVar++] = &(modelData->integerAlias[i].info); 203 for(int i = 0; i < modelData->nAliasBoolean; i++) if(!modelData->booleanAlias[i].filterOutput) 222 } 223 for(int i = 0; i < modelData->nAliasBoolean; i++) if(!modelData->booleanAlias[i].filterOutput) { 204 224 names[curVar++] = &(modelData->booleanAlias[i].info); 205 206 for(int i = 0; i < modelData->nParametersReal; i++) 207 {208 if (!modelData->realParameterData[i].filterOutput) 225 } 226 227 for(int i = 0; i < modelData->nParametersReal; i++) { 228 if (!modelData->realParameterData[i].filterOutput) { 209 229 names[curVar++] = &(modelData->realParameterData[i].info); 210 }211 for(int i = 0; i < modelData->nParametersInteger; i++)212 {213 if (!modelData->integerParameterData[i].filterOutput) 230 } 231 } 232 for(int i = 0; i < modelData->nParametersInteger; i++) { 233 if (!modelData->integerParameterData[i].filterOutput) { 214 234 names[curVar++] = &(modelData->integerParameterData[i].info); 215 }216 for(int i = 0; i < modelData->nParametersBoolean; i++)217 {218 if (!modelData->booleanParameterData[i].filterOutput) 235 } 236 } 237 for(int i = 0; i < modelData->nParametersBoolean; i++) { 238 if (!modelData->booleanParameterData[i].filterOutput) { 219 239 names[curVar++] = &(modelData->booleanParameterData[i].info); 240 } 220 241 } 221 242 … … 229 250 int rows, cols; 230 251 double *doubleMatrix = NULL; 231 try 232 { 252 try { 233 253 std::ofstream::pos_type remember = matData->fp.tellp(); 234 254 matData->fp.seekp(matData->data1HdrPos); … … 236 256 generateData_1(data, threadData, doubleMatrix, rows, cols, matData->startTime, matData->stopTime); 237 257 /* write `data_1' matrix */ 238 mat_writeMatVer4Matrix(self,data, threadData,"data_1", cols, rows, doubleMatrix, sizeof(double));258 mat_writeMatVer4Matrix(self,data, threadData,"data_1", cols, rows, doubleMatrix, MAT4_DOUBLE_PRECISION_FULL_MATRIX); 239 259 free(doubleMatrix); doubleMatrix = NULL; 240 260 matData->fp.seekp(remember); 241 } 242 catch(...) 243 { 261 } catch(...) { 244 262 matData->fp.close(); 245 263 free(doubleMatrix); … … 282 300 283 301 /* write `AClass' matrix */ 284 mat_writeMatVer4Matrix(self,data, threadData,"Aclass", 4, 11, Aclass, sizeof(int8_t));302 mat_writeMatVer4Matrix(self,data, threadData,"Aclass", 4, 11, Aclass, MAT4_STRING_TEXT_MATRIX); 285 303 /* flatten variables' names */ 286 304 flattenStrBuf(matData->numVars + matData->numParams, names, stringMatrix, rows, cols, false /* We cannot plot derivatives if we fix the names ... */, false); 287 305 /* write `name' matrix */ 288 mat_writeMatVer4Matrix(self,data,threadData,"name", rows, cols, stringMatrix, sizeof(int8_t));306 mat_writeMatVer4Matrix(self,data,threadData,"name", rows, cols, stringMatrix, MAT4_STRING_TEXT_MATRIX); 289 307 free(stringMatrix); stringMatrix = NULL; 290 308 … … 292 310 flattenStrBuf(matData->numVars + matData->numParams, names, stringMatrix, rows, cols, false, true); 293 311 /* write `description' matrix */ 294 mat_writeMatVer4Matrix(self,data,threadData,"description", rows, cols, stringMatrix, sizeof(int8_t));312 mat_writeMatVer4Matrix(self,data,threadData,"description", rows, cols, stringMatrix, MAT4_STRING_TEXT_MATRIX); 295 313 free(stringMatrix); stringMatrix = NULL; 296 314 … … 298 316 generateDataInfo(self, data, threadData, intMatrix, rows, cols, matData->numVars, matData->numParams); 299 317 /* write `dataInfo' matrix */ 300 mat_writeMatVer4Matrix(self, data, threadData, "dataInfo", cols, rows, intMatrix, sizeof(int32_t));318 mat_writeMatVer4Matrix(self, data, threadData, "dataInfo", cols, rows, intMatrix, MAT4_32BIT_INTEGER_FULL_MATRIX); 301 319 302 320 /* remember data1HdrPos */ … … 307 325 generateData_1(data, threadData, doubleMatrix, rows, cols, matData->startTime, matData->stopTime); 308 326 /* write `data_1' matrix */ 309 mat_writeMatVer4Matrix(self,data,threadData,"data_1", cols, rows, doubleMatrix, sizeof(double));327 mat_writeMatVer4Matrix(self,data,threadData,"data_1", cols, rows, doubleMatrix, MAT4_DOUBLE_PRECISION_FULL_MATRIX); 310 328 311 329 /* remember data2HdrPos */ 312 330 matData->data2HdrPos = matData->fp.tellp(); 313 331 /* write `data_2' header */ 314 mat_writeMatVer4MatrixHeader(self,data,threadData,"data_2", matData->r_indx_map.size() + matData->i_indx_map.size() + matData->b_indx_map.size() + matData->negatedboolaliases + 1 /* add one more for timeValue*/ + self->cpuTime + /* add one more for solverSteps*/ + omc_flag[FLAG_SOLVER_STEPS] + nSensitivities, 0, sizeof(double)); 332 mat_writeMatVer4MatrixHeader(self,data,threadData,"data_2", 333 matData->r_indx_map.size() + matData->i_indx_map.size() + matData->b_indx_map.size() + matData->negatedboolaliases + 1 /* add one more for timeValue*/ + self->cpuTime + /* add one more for solverSteps*/ + omc_flag[FLAG_SOLVER_STEPS] + nSensitivities, 0, 334 omc_flag[FLAG_SINGLE_PRECISION] ? MAT4_SINGLE_PRECISION_FULL_MATRIX : MAT4_DOUBLE_PRECISION_FULL_MATRIX); 315 335 316 336 free(doubleMatrix); … … 320 340 matData->fp.flush(); 321 341 322 } 323 catch(...) 324 { 342 } catch(...) { 325 343 matData->fp.close(); 326 344 free(names); names=NULL; … … 349 367 { 350 368 matData->fp.seekp(matData->data2HdrPos); 351 mat_writeMatVer4MatrixHeader(self,data,threadData,"data_2", matData->r_indx_map.size() + matData->i_indx_map.size() + matData->b_indx_map.size() + matData->negatedboolaliases + 1 /* add one more for timeValue*/ + self->cpuTime + /* add one more for solverSteps*/ + omc_flag[FLAG_SOLVER_STEPS] + nSensitivities, matData->ntimepoints, sizeof(double));369 mat_writeMatVer4MatrixHeader(self,data,threadData,"data_2", matData->r_indx_map.size() + matData->i_indx_map.size() + matData->b_indx_map.size() + matData->negatedboolaliases + 1 /* add one more for timeValue*/ + self->cpuTime + /* add one more for solverSteps*/ + omc_flag[FLAG_SOLVER_STEPS] + nSensitivities, matData->ntimepoints, omc_flag[FLAG_SINGLE_PRECISION] ? MAT4_SINGLE_PRECISION_FULL_MATRIX : MAT4_DOUBLE_PRECISION_FULL_MATRIX); 352 370 matData->fp.close(); 353 371 } … … 362 380 } 363 381 382 static inline void writeSingleRealOutput(mat_data *matData, double v) 383 { 384 if (omc_flag[FLAG_SINGLE_PRECISION]) { 385 float datPoint = v; 386 matData->fp.write((char*)&datPoint, sizeof(float)); 387 } else { 388 matData->fp.write((char*)&v, sizeof(double)); 389 } 390 } 391 364 392 void mat4_emit(simulation_result *self,DATA *data, threadData_t *threadData) 365 393 { … … 375 403 although ofstream does have some buffering, but it is not enough and 376 404 not for this purpose */ 377 matData->fp.write((char*)&(data->localData[0]->timeValue), sizeof(double)); 378 379 if(self->cpuTime) 380 matData->fp.write((char*)&cpuTimeValue, sizeof(double)); 381 382 if(omc_flag[FLAG_SOLVER_STEPS]) 383 matData->fp.write((char*)&(data->simulationInfo->solverSteps), sizeof(double)); 384 385 for(int i = 0; i < data->modelData->nVariablesReal; i++) if(!data->modelData->realVarsData[i].filterOutput) 386 matData->fp.write((char*)&(data->localData[0]->realVars[i]),sizeof(double)); 405 writeSingleRealOutput(matData, data->localData[0]->timeValue); 406 407 if(self->cpuTime) { 408 writeSingleRealOutput(matData, cpuTimeValue); 409 } 410 411 if(omc_flag[FLAG_SOLVER_STEPS]) { 412 writeSingleRealOutput(matData, data->simulationInfo->solverSteps); 413 } 414 415 for(int i = 0; i < data->modelData->nVariablesReal; i++) if(!data->modelData->realVarsData[i].filterOutput) { 416 writeSingleRealOutput(matData, data->localData[0]->realVars[i]); 417 } 387 418 388 419 /* put parameter sensitivity analysis also to the result file */ 389 if (omc_flag[FLAG_IDAS]) 390 { 391 for(int i = 0; i < data->modelData->nSensitivityVars-data->modelData->nSensitivityParamVars; i++) 392 matData->fp.write((char*)&(data->simulationInfo->sensitivityMatrix[i]),sizeof(double)); 393 } 394 for(int i = 0; i < data->modelData->nVariablesInteger; i++) if(!data->modelData->integerVarsData[i].filterOutput) 395 { 396 datPoint = (double) data->localData[0]->integerVars[i]; 397 matData->fp.write((char*)&datPoint,sizeof(double)); 398 } 399 for(int i = 0; i < data->modelData->nVariablesBoolean; i++) if(!data->modelData->booleanVarsData[i].filterOutput) 400 { 401 datPoint = (double) data->localData[0]->booleanVars[i]; 402 matData->fp.write((char*)&datPoint,sizeof(double)); 403 } 404 for(int i = 0; i < data->modelData->nAliasBoolean; i++) if(!data->modelData->booleanAlias[i].filterOutput) 405 { 406 if(data->modelData->booleanAlias[i].negate) 407 { 408 datPoint = (double) (data->localData[0]->booleanVars[data->modelData->booleanAlias[i].nameID]==1?0:1); 409 matData->fp.write((char*)&datPoint,sizeof(double)); 410 } 411 } 420 if (omc_flag[FLAG_IDAS]) { 421 for(int i = 0; i < data->modelData->nSensitivityVars-data->modelData->nSensitivityParamVars; i++) { 422 writeSingleRealOutput(matData, data->simulationInfo->sensitivityMatrix[i]); 423 } 424 } 425 for (int i = 0; i < data->modelData->nVariablesInteger; i++) { 426 if(!data->modelData->integerVarsData[i].filterOutput) { 427 writeSingleRealOutput(matData, (double) data->localData[0]->integerVars[i]); 428 } 429 } 430 for (int i = 0; i < data->modelData->nVariablesBoolean; i++) { 431 if(!data->modelData->booleanVarsData[i].filterOutput) { 432 writeSingleRealOutput(matData, (double) data->localData[0]->booleanVars[i]); 433 } 434 } 435 for (int i = 0; i < data->modelData->nAliasBoolean; i++) { 436 if(!data->modelData->booleanAlias[i].filterOutput) { 437 if(data->modelData->booleanAlias[i].negate) { 438 writeSingleRealOutput(matData, (double) (data->localData[0]->booleanVars[data->modelData->booleanAlias[i].nameID]==1?0:1)); 439 } 440 } 441 } 412 442 if (!matData->fp) { 413 443 throwStreamPrint(threadData, "Error while writing file %s",self->filename); … … 436 466 } 437 467 438 long flattenStrBuf(int dims, const struct VAR_INFO** src, char* &dest, int& longest, int& nstrings, bool fixNames, bool useComment)468 static long flattenStrBuf(int dims, const struct VAR_INFO** src, char* &dest, int& longest, int& nstrings, bool fixNames, bool useComment) 439 469 { 440 470 int i,len; … … 469 499 470 500 // writes MAT-file matrix header to file 471 void mat_writeMatVer4MatrixHeader(simulation_result *self, DATA *data, threadData_t *threadData, const char *name, int rows, int cols, unsigned int size)501 static void mat_writeMatVer4MatrixHeader(simulation_result *self, DATA *data, threadData_t *threadData, const char *name, int rows, int cols, MAT4_MATRIX_TYPE mat4_matrix_type) 472 502 { 473 503 mat_data *matData = (mat_data*) self->storage; … … 481 511 const int endian_test = 1; 482 512 MHeader_t hdr; 483 484 int type = 0; 485 if(size == 1 /* char */) 486 type = 51; 487 if(size == 4 /* int32 */) 488 type = 20; 513 int size = MAT4_SIZE_OF_MATRIX_TYPE[mat4_matrix_type]; 514 int type = MAT4_MOPT_OF_MATRIX_TYPE[mat4_matrix_type]; 489 515 490 516 /* create matrix header structure */ … … 505 531 } 506 532 507 void mat_writeMatVer4Matrix(simulation_result *self, DATA *data, threadData_t *threadData, const char *name, int rows, int cols, const void *matrixData, unsigned int size)533 static void mat_writeMatVer4Matrix(simulation_result *self, DATA *data, threadData_t *threadData, const char *name, int rows, int cols, const void *matrixData, MAT4_MATRIX_TYPE mat4_matrix_type) 508 534 { 509 535 mat_data *matData = (mat_data*) self->storage; 510 mat_writeMatVer4MatrixHeader(self, data, threadData, name, rows, cols, size);536 mat_writeMatVer4MatrixHeader(self, data, threadData, name, rows, cols, mat4_matrix_type); 511 537 512 538 /* write data */ 513 matData->fp.write((const char*)matrixData, (size)*rows*cols);539 matData->fp.write((const char*)matrixData, MAT4_SIZE_OF_MATRIX_TYPE[mat4_matrix_type]*rows*cols); 514 540 if(!matData->fp) { 515 541 throwStreamPrint(threadData, "Cannot write to file %s",self->filename); … … 518 544 519 545 520 void generateDataInfo(simulation_result *self, DATA *data, threadData_t *threadData, int32_t* &dataInfo, int& rows, int& cols, int nVars, int nParams)546 static void generateDataInfo(simulation_result *self, DATA *data, threadData_t *threadData, int32_t* &dataInfo, int& rows, int& cols, int nVars, int nParams) 521 547 { 522 548 mat_data *matData = (mat_data*) self->storage; … … 682 708 } 683 709 684 void generateData_1(DATA *data, threadData_t *threadData, double* &data_1, int& rows, int& cols, double tstart, double tstop)710 static void generateData_1(DATA *data, threadData_t *threadData, double* &data_1, int& rows, int& cols, double tstart, double tstop) 685 711 { 686 712 const SIMULATION_INFO *sInfo = data->simulationInfo; -
SimulationRuntime/c/util/simulation_options.c
ra766c29 raeb9725 125 125 /* FLAG_RT */ "rt", 126 126 /* FLAG_S */ "s", 127 /* FLAG_SINGLE_PRECISION */ "single", 127 128 /* FLAG_SOLVER_STEPS */ "steps", 128 129 /* FLAG_STEADY_STATE */ "steadyState", … … 228 229 /* FLAG_RT */ "value specifies the scaling factor for real-time synchronization (0 disables)", 229 230 /* FLAG_S */ "value specifies the integration method", 231 /* FLAG_SINGLE */ "output in single precision", 230 232 /* FLAG_SOLVER_STEPS */ "dumps the number of integration steps into the result file", 231 233 /* FLAG_STEADY_STATE */ "aborts if steady state is reached", … … 485 487 /* FLAG_S */ 486 488 " Value specifies the integration method.", 489 /* FLAG_SINGLE */ 490 " Output results in single precision (mat-format only).", 487 491 /* FLAG_SOLVER_STEPS */ 488 492 " dumps the number of integration steps into the result file", … … 593 597 /* FLAG_RT */ FLAG_TYPE_OPTION, 594 598 /* FLAG_S */ FLAG_TYPE_OPTION, 599 /* FLAG_SINGLE */ FLAG_TYPE_FLAG, 595 600 /* FLAG_SOLVER_STEPS */ FLAG_TYPE_FLAG, 596 601 /* FLAG_STEADY_STATE */ FLAG_TYPE_FLAG, -
SimulationRuntime/c/util/simulation_options.h
ra766c29 raeb9725 133 133 FLAG_RT, 134 134 FLAG_S, 135 FLAG_SINGLE_PRECISION, 135 136 FLAG_SOLVER_STEPS, 136 137 FLAG_STEADY_STATE,
Note: See TracChangeset
for help on using the changeset viewer.