diff --git a/OMCompiler/SimulationRuntime/c/simulation/solver/external_input.c b/OMCompiler/SimulationRuntime/c/simulation/solver/external_input.c index ea09cc37334..b19ed31dcac 100644 --- a/OMCompiler/SimulationRuntime/c/simulation/solver/external_input.c +++ b/OMCompiler/SimulationRuntime/c/simulation/solver/external_input.c @@ -55,45 +55,31 @@ int externalInputallocate(DATA* data) FILE * pFile = NULL; int i,j; short useLibCsvH = 1; - char * cflags = NULL; + char * csv_input_file = NULL; - cflags = (char*)omc_flagValue[FLAG_INPUT_CSV]; - if(!cflags){ - cflags = (char*)omc_flagValue[FLAG_INPUT_FILE]; - useLibCsvH = 0; - if(cflags){ - pFile = omc_fopen(cflags,"r"); - if(pFile == NULL) - warningStreamPrint(LOG_STDOUT, 0, "OMC can't find the file %s.",cflags); - }else{ - pFile = omc_fopen("externalInput.csv","r"); - } + csv_input_file = (char*)omc_flagValue[FLAG_INPUT_CSV]; + if(!csv_input_file) { + data->simulationInfo->external_input.active = 0; + return 0; } - data->simulationInfo->external_input.active = (modelica_boolean) (pFile != NULL); - if(data->simulationInfo->external_input.active || useLibCsvH){ - if(useLibCsvH){ - externalInputallocate2(data, cflags); - }else - externalInputallocate1(data, pFile); - - if(ACTIVE_STREAM(LOG_SIMULATION)) - { - printf("\nExternal Input"); - printf("\n========================================================"); - for(i = 0; i < data->simulationInfo->external_input.n; ++i){ - printf("\nInput: t=%f \t", data->simulationInfo->external_input.t[i]); - for(j = 0; j < data->modelData->nInputVars; ++j){ - printf("u%d(t)= %f \t",j+1,data->simulationInfo->external_input.u[i][j]); - } + externalInputallocate2(data, csv_input_file); + + if(ACTIVE_STREAM(LOG_SIMULATION)) + { + printf("\nExternal Input"); + printf("\n========================================================"); + for(i = 0; i < data->simulationInfo->external_input.n; ++i){ + printf("\nInput: t=%f \t", data->simulationInfo->external_input.t[i]); + for(j = 0; j < data->modelData->nInputVars; ++j){ + printf("u%d(t)= %f \t",j+1,data->simulationInfo->external_input.u[i][j]); } - printf("\n========================================================\n"); } - - data->simulationInfo->external_input.i = 0; + printf("\n========================================================\n"); } + data->simulationInfo->external_input.i = 0; return 0; } @@ -157,50 +143,6 @@ void externalInputallocate2(DATA* data, char *filename){ data->simulationInfo->external_input.active = data->simulationInfo->external_input.n > 0; } -static inline void externalInputallocate1(DATA* data, FILE * pFile){ - int n,m,c; - int i,j; - n = 0; - - while(1) { - c = fgetc(pFile); - if (c==EOF) break; - if (c=='\n') ++n; - } - // check if csv file is empty! - if (n == 0) - { - fprintf(stderr, "External input file: externalInput.csv is empty!\n"); fflush(NULL); - EXIT(1); - } - - --n; - data->simulationInfo->external_input.n = n; - data->simulationInfo->external_input.N = data->simulationInfo->external_input.n; - rewind(pFile); - - do{ - c = fgetc(pFile); - if (c==EOF) break; - }while(c!='\n'); - - m = data->modelData->nInputVars; - data->simulationInfo->external_input.u = (modelica_real**)calloc(modelica_integer_max(1,n),sizeof(modelica_real*)); - for(i = 0; isimulationInfo->external_input.n; ++i) - data->simulationInfo->external_input.u[i] = (modelica_real*)calloc(modelica_integer_max(1,m),sizeof(modelica_real)); - data->simulationInfo->external_input.t = (modelica_real*)calloc(modelica_integer_max(1,data->simulationInfo->external_input.n),sizeof(modelica_real)); - - for(i = 0; i < data->simulationInfo->external_input.n; ++i){ - c = fscanf(pFile, "%lf", &data->simulationInfo->external_input.t[i]); - for(j = 0; j < m; ++j){ - c = fscanf(pFile, "%lf", &data->simulationInfo->external_input.u[i][j]); - } - if(c<0) - data->simulationInfo->external_input.n = i; - } - fclose(pFile); -} - int externalInputFree(DATA* data) { if(data->simulationInfo->external_input.active){ diff --git a/OMCompiler/SimulationRuntime/c/util/simulation_options.c b/OMCompiler/SimulationRuntime/c/util/simulation_options.c index 2fce891daf0..d5f0726e3a7 100644 --- a/OMCompiler/SimulationRuntime/c/util/simulation_options.c +++ b/OMCompiler/SimulationRuntime/c/util/simulation_options.c @@ -83,7 +83,6 @@ const char *FLAG_NAME[FLAG_MAX+1] = { /* FLAG_IMPRK_LS */ "impRKLS", /* FLAG_INITIAL_STEP_SIZE */ "initialStepSize", /* FLAG_INPUT_CSV */ "csvInput", - /* FLAG_INPUT_FILE */ "exInputFile", /* FLAG_INPUT_FILE_STATES */ "stateFile", /* FLAG_INPUT_PATH */ "inputPath", /* FLAG_IPOPT_HESSE*/ "ipopt_hesse", @@ -214,7 +213,6 @@ const char *FLAG_DESC[FLAG_MAX+1] = { /* FLAG_IMPRK_LS */ "selects the linear solver of the integration methods: impeuler, trapezoid and imprungekuta", /* FLAG_INITIAL_STEP_SIZE */ "value specifies an initial step size for supported solver", /* FLAG_INPUT_CSV */ "value specifies an csv-file with inputs for the simulation/optimization of the model", - /* FLAG_INPUT_FILE */ "value specifies an external file with inputs for the simulation/optimization of the model", /* FLAG_INPUT_FILE_STATES */ "value specifies an file with states start values for the optimization of the model", /* FLAG_INPUT_PATH */ "value specifies a path for reading the input files i.e., model_init.xml and model_info.json", /* FLAG_IPOPT_HESSE */ "value specifies the hessian for Ipopt", @@ -420,8 +418,6 @@ const char *FLAG_DETAILED_DESC[FLAG_MAX+1] = { " Value specifies an initial step size, used by the methods: dassl, ida", /* FLAG_INPUT_CSV */ " Value specifies an csv-file with inputs for the simulation/optimization of the model", - /* FLAG_INPUT_FILE */ - " Value specifies an external file with inputs for the simulation/optimization of the model.", /* FLAG_INPUT_FILE_STATES */ " Value specifies an file with states start values for the optimization of the model.", /* FLAG_INPUT_PATH */ @@ -668,7 +664,6 @@ const flag_repeat_policy FLAG_REPEAT_POLICIES[FLAG_MAX] = { /* FLAG_IMPRK_LS */ FLAG_REPEAT_POLICY_FORBID, /* FLAG_INITIAL_STEP_SIZE */ FLAG_REPEAT_POLICY_FORBID, /* FLAG_INPUT_CSV */ FLAG_REPEAT_POLICY_FORBID, - /* FLAG_INPUT_FILE */ FLAG_REPEAT_POLICY_FORBID, /* FLAG_INPUT_FILE_STATES */ FLAG_REPEAT_POLICY_FORBID, /* FLAG_INPUT_PATH */ FLAG_REPEAT_POLICY_FORBID, /* FLAG_IPOPT_HESSE*/ FLAG_REPEAT_POLICY_FORBID, @@ -798,7 +793,6 @@ const int FLAG_TYPE[FLAG_MAX] = { /* FLAG_IMPRK_ORDER */ FLAG_TYPE_OPTION, /* FLAG_INITIAL_STEP_SIZE */ FLAG_TYPE_OPTION, /* FLAG_INPUT_CSV */ FLAG_TYPE_OPTION, - /* FLAG_INPUT_FILE */ FLAG_TYPE_OPTION, /* FLAG_INPUT_FILE_STATES */ FLAG_TYPE_OPTION, /* FLAG_INPUT_PATH */ FLAG_TYPE_OPTION, /* FLAG_IPOPT_HESSE */ FLAG_TYPE_OPTION, diff --git a/OMCompiler/SimulationRuntime/c/util/simulation_options.h b/OMCompiler/SimulationRuntime/c/util/simulation_options.h index 2157bef1a74..cc0eab4d4b4 100644 --- a/OMCompiler/SimulationRuntime/c/util/simulation_options.h +++ b/OMCompiler/SimulationRuntime/c/util/simulation_options.h @@ -99,7 +99,6 @@ enum _FLAG FLAG_IMPRK_LS, FLAG_INITIAL_STEP_SIZE, FLAG_INPUT_CSV, - FLAG_INPUT_FILE, FLAG_INPUT_FILE_STATES, FLAG_INPUT_PATH, FLAG_IPOPT_HESSE, diff --git a/doc/SimulationRuntime/DynamicOptimization/src/dyOptInitialGuess.tex b/doc/SimulationRuntime/DynamicOptimization/src/dyOptInitialGuess.tex index d18f3b628e7..5882e554a11 100644 --- a/doc/SimulationRuntime/DynamicOptimization/src/dyOptInitialGuess.tex +++ b/doc/SimulationRuntime/DynamicOptimization/src/dyOptInitialGuess.tex @@ -73,13 +73,13 @@ \maketitle \abstract{ -The initial guess is (any other nonlinear problem) important to find the soulation. The optimizer need for each time point an initial guess. Currently it's not possible formulate a initial guess/start value for each time point with Modelica. The following notes help to make a initial guess for dyn. optimization with \OpenModelica{}.\\ +The initial guess is (any other nonlinear problem) important to find the solution. The optimizer need for each time point an initial guess. Currently it's not possible formulate a initial guess/start value for each time point with Modelica. The following notes help to make a initial guess for dyn. optimization with \OpenModelica{}.\\ tip: see \url{https://build.openmodelica.org/Documentation/OpenModelica.Scripting.html} for \OpenModelica{} scripting. } \section{prior simulator} -\OpenModelica{} automaticly done a prior simulatn and use the simulation as intial guess. +\OpenModelica{} automatically done a prior simulation and use the simulation as initial guess. \begin{lstlisting}[language=Pascal, caption={initial guess with simulation},frame=single, label=lst:init] optimize(modelxxx, simflags="-ipopt_init SIM"); @@ -91,14 +91,14 @@ \subsection{prior simulator with const inputs} \subsection{prior simulator with external inputs} \OpenModelica{} fetch the inputs around the prior simulation from a file. \begin{lstlisting}[language=Pascal, caption={external inputs},frame=single] -optimize(modelxxx, simflags="-exInputFile xxx.csv -ipopt_init SIM"); +optimize(modelxxx, simflags="-csvInput xxx.csv -ipopt_init SIM"); \end{lstlisting} -\begin{lstlisting}[language=Pascal, caption={example xxx.csv},frame=single,label=lst:exInputFile2] -time input1 input2 input3 -0 -1 2 3 -0.2 -0.9 2.3 3.5 -0.6 -0.5 2.0 2.9 -1.1 0.3 1.6 3.1); +\begin{lstlisting}[language=Pascal, caption={example xxx.csv},frame=single,label=lst:csvInput2] +time, input1, input2, input3 +0, -1, 2, 3 +0.2, -0.9, 2.3, 3.5 +0.6, -0.5, 2.0, 2.9 +1.1, 0.3, 1.6, 3.1); \end{lstlisting} \section{file} diff --git a/testsuite/openmodelica/cruntime/optimization/basic/BRinitialGuess.mos b/testsuite/openmodelica/cruntime/optimization/basic/BRinitialGuess.mos index fc3f287337e..3938012be3c 100644 --- a/testsuite/openmodelica/cruntime/optimization/basic/BRinitialGuess.mos +++ b/testsuite/openmodelica/cruntime/optimization/basic/BRinitialGuess.mos @@ -8,30 +8,10 @@ getErrorString(); loadFile("BatchReactor.mo"); getErrorString(); -optimize(nmpcBatchReactor, numberOfIntervals=20, tolerance = 1e-8, simflags="-ipopt_max_iter=12 -exInputFile ReferenceFiles/initInputForBR.csv -lv LOG_IPOPT_ERROR"); +optimize(nmpcBatchReactor, numberOfIntervals=20, tolerance = 1e-8, simflags="-ipopt_max_iter=12 -csvInput ReferenceFiles/initInputForBR.csv -lv LOG_IPOPT_ERROR"); getErrorString(); -// true -// "" -// true -// "" -// record SimulationResult -// resultFile = "nmpcBatchReactor_res.mat", -// simulationOptions = "startTime = 0.0, stopTime = 1.0, numberOfIntervals = 20, tolerance = 0.00000001, method = 'optimization', fileNamePrefix = 'nmpcBatchReactor', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-ipopt_jac=NUM'", -// messages = " -// ****************************************************************************** -// This program contains Ipopt, a library for large-scale nonlinear optimization. -// Ipopt is released as open source code under the Eclipse Public License (EPL). -// For more information visit https://github.com/coin-or/Ipopt -// ****************************************************************************** -// -// " -// end SimulationResult; -// "" -// {"Files Equal!"} -// "" -// endResult // Result: // true // "" @@ -39,7 +19,7 @@ getErrorString(); // "" // record SimulationResult // resultFile = "nmpcBatchReactor_res.mat", -// simulationOptions = "startTime = 0.0, stopTime = 1.0, numberOfIntervals = 20, tolerance = 1e-08, method = 'optimization', fileNamePrefix = 'nmpcBatchReactor', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-ipopt_max_iter=12 -exInputFile ReferenceFiles/initInputForBR.csv -lv LOG_IPOPT_ERROR'", +// simulationOptions = "startTime = 0.0, stopTime = 1.0, numberOfIntervals = 20, tolerance = 1e-08, method = 'optimization', fileNamePrefix = 'nmpcBatchReactor', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-ipopt_max_iter=12 -csvInput ReferenceFiles/initInputForBR.csv -lv LOG_IPOPT_ERROR'", // messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. // // Optimizer Variables diff --git a/testsuite/openmodelica/cruntime/optimization/basic/DMwarm.mos b/testsuite/openmodelica/cruntime/optimization/basic/DMwarm.mos index 3539fa30d0d..032dc0e8eff 100644 --- a/testsuite/openmodelica/cruntime/optimization/basic/DMwarm.mos +++ b/testsuite/openmodelica/cruntime/optimization/basic/DMwarm.mos @@ -5,7 +5,7 @@ setCommandLineOptions("+g=Optimica"); getErrorString(); loadFile("DM.mo"); getErrorString(); -optimize(diesel_model, stopTime=0.5, numberOfIntervals=450,tolerance=1e-10, simflags="-lv LOG_IPOPT_ERROR -optimizerNP 1 -exInputFile ./ReferenceFiles/initDM.csv -ipopt_warm_start 12 -emit_protected"); getErrorString(); +optimize(diesel_model, stopTime=0.5, numberOfIntervals=450,tolerance=1e-10, simflags="-lv LOG_IPOPT_ERROR -optimizerNP 1 -csvInput ./ReferenceFiles/initDM.csv -ipopt_warm_start 12 -emit_protected"); getErrorString(); res := OpenModelica.Scripting.compareSimulationResults("diesel_model_res.mat","ReferenceFiles/diesel_model_ref.mat","diesel_model_res.csv",0.05,0.0005); getErrorString(); @@ -16,7 +16,7 @@ res := OpenModelica.Scripting.compareSimulationResults("diesel_model_res.mat","R // "" // record SimulationResult // resultFile = "diesel_model_res.mat", -// simulationOptions = "startTime = 0.0, stopTime = 0.5, numberOfIntervals = 450, tolerance = 1e-10, method = 'optimization', fileNamePrefix = 'diesel_model', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-lv LOG_IPOPT_ERROR -optimizerNP 1 -exInputFile ./ReferenceFiles/initDM.csv -ipopt_warm_start 12 -emit_protected'", +// simulationOptions = "startTime = 0.0, stopTime = 0.5, numberOfIntervals = 450, tolerance = 1e-10, method = 'optimization', fileNamePrefix = 'diesel_model', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-lv LOG_IPOPT_ERROR -optimizerNP 1 -csvInput ./ReferenceFiles/initDM.csv -ipopt_warm_start 12 -emit_protected'", // messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. // // Optimizer Variables diff --git a/testsuite/openmodelica/cruntime/optimization/basic/DMwarmCsv.mos b/testsuite/openmodelica/cruntime/optimization/basic/DMwarmCsv.mos index 1f89e1c76a6..89b8eac366a 100644 --- a/testsuite/openmodelica/cruntime/optimization/basic/DMwarmCsv.mos +++ b/testsuite/openmodelica/cruntime/optimization/basic/DMwarmCsv.mos @@ -5,7 +5,7 @@ setCommandLineOptions("+g=Optimica"); getErrorString(); loadFile("DM.mo"); getErrorString(); -optimize(diesel_model, stopTime=0.5, numberOfIntervals=450,tolerance=1e-10, simflags="-lv LOG_IPOPT_ERROR -optimizerNP 1 -exInputFile ./ReferenceFiles/initDM.csv -ipopt_warm_start 12 -emit_protected", outputFormat="csv"); getErrorString(); +optimize(diesel_model, stopTime=0.5, numberOfIntervals=450,tolerance=1e-10, simflags="-lv LOG_IPOPT_ERROR -optimizerNP 1 -csvInput ./ReferenceFiles/initDM.csv -ipopt_warm_start 12 -emit_protected", outputFormat="csv"); getErrorString(); optimize(diesel_model, stopTime=0.5, numberOfIntervals=450,tolerance=1e-10, simflags="-lv LOG_IPOPT_ERROR -optimizerNP 1 -csvInput ./diesel_model_res.csv -ipopt_max_iter=-1 -emit_protected", outputFormat="mat"); getErrorString(); res := OpenModelica.Scripting.compareSimulationResults("diesel_model_res.mat","ReferenceFiles/diesel_model_ref.mat","diesel_model_diff.csv",0.05,0.0005,{"u_f","u_wg"}); getErrorString(); @@ -17,7 +17,7 @@ res := OpenModelica.Scripting.compareSimulationResults("diesel_model_res.mat","R // "" // record SimulationResult // resultFile = "diesel_model_res.csv", -// simulationOptions = "startTime = 0.0, stopTime = 0.5, numberOfIntervals = 450, tolerance = 1e-10, method = 'optimization', fileNamePrefix = 'diesel_model', options = '', outputFormat = 'csv', variableFilter = '.*', cflags = '', simflags = '-lv LOG_IPOPT_ERROR -optimizerNP 1 -exInputFile ./ReferenceFiles/initDM.csv -ipopt_warm_start 12 -emit_protected'", +// simulationOptions = "startTime = 0.0, stopTime = 0.5, numberOfIntervals = 450, tolerance = 1e-10, method = 'optimization', fileNamePrefix = 'diesel_model', options = '', outputFormat = 'csv', variableFilter = '.*', cflags = '', simflags = '-lv LOG_IPOPT_ERROR -optimizerNP 1 -csvInput ./ReferenceFiles/initDM.csv -ipopt_warm_start 12 -emit_protected'", // messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. // // Optimizer Variables diff --git a/testsuite/openmodelica/cruntime/optimization/basic/ReferenceFiles/initDM.csv b/testsuite/openmodelica/cruntime/optimization/basic/ReferenceFiles/initDM.csv index a5ea71d800d..c3dac5cfee5 100644 --- a/testsuite/openmodelica/cruntime/optimization/basic/ReferenceFiles/initDM.csv +++ b/testsuite/openmodelica/cruntime/optimization/basic/ReferenceFiles/initDM.csv @@ -1,452 +1,452 @@ -time u_f u_wg -0.000000 0.000009 0.000485 -0.001111 0.000009 0.000485 -0.002222 0.000009 0.000425 -0.003333 0.000009 0.000382 -0.004444 0.000009 0.000348 -0.005556 0.000009 0.000322 -0.006667 0.000009 0.000301 -0.007778 0.000009 0.000283 -0.008889 0.000009 0.000268 -0.010000 0.000009 0.000255 -0.011111 0.000009 0.000244 -0.012222 0.000009 0.000235 -0.013333 0.000009 0.000226 -0.014444 0.000009 0.000219 -0.015556 0.000009 0.000212 -0.016667 0.000009 0.000206 -0.017778 0.000009 0.000201 -0.018889 0.000009 0.000196 -0.020000 0.000009 0.000192 -0.021111 0.000009 0.000188 -0.022222 0.000010 0.000184 -0.023333 0.000010 0.000181 -0.024444 0.000010 0.000177 -0.025556 0.000010 0.000175 -0.026667 0.000010 0.000172 -0.027778 0.000010 0.000170 -0.028889 0.000010 0.000167 -0.030000 0.000010 0.000165 -0.031111 0.000010 0.000163 -0.032222 0.000010 0.000161 -0.033333 0.000010 0.000160 -0.034444 0.000010 0.000158 -0.035556 0.000010 0.000157 -0.036667 0.000010 0.000155 -0.037778 0.000010 0.000154 -0.038889 0.000010 0.000153 -0.040000 0.000010 0.000151 -0.041111 0.000010 0.000150 -0.042222 0.000010 0.000149 -0.043333 0.000010 0.000148 -0.044444 0.000010 0.000147 -0.045556 0.000010 0.000147 -0.046667 0.000010 0.000146 -0.047778 0.000010 0.000145 -0.048889 0.000010 0.000144 -0.050000 0.000010 0.000143 -0.051111 0.000010 0.000143 -0.052222 0.000010 0.000142 -0.053333 0.000010 0.000142 -0.054444 0.000010 0.000141 -0.055556 0.000010 0.000140 -0.056667 0.000010 0.000140 -0.057778 0.000011 0.000139 -0.058889 0.000011 0.000139 -0.060000 0.000011 0.000138 -0.061111 0.000011 0.000138 -0.062222 0.000011 0.000138 -0.063333 0.000011 0.000137 -0.064444 0.000011 0.000137 -0.065556 0.000011 0.000136 -0.066667 0.000011 0.000136 -0.067778 0.000011 0.000136 -0.068889 0.000011 0.000135 -0.070000 0.000011 0.000135 -0.071111 0.000011 0.000135 -0.072222 0.000011 0.000134 -0.073333 0.000011 0.000134 -0.074444 0.000011 0.000134 -0.075556 0.000011 0.000134 -0.076667 0.000011 0.000133 -0.077778 0.000011 0.000133 -0.078889 0.000011 0.000133 -0.080000 0.000011 0.000133 -0.081111 0.000011 0.000132 -0.082222 0.000011 0.000132 -0.083333 0.000011 0.000132 -0.084444 0.000011 0.000132 -0.085556 0.000011 0.000132 -0.086667 0.000011 0.000131 -0.087778 0.000011 0.000131 -0.088889 0.000011 0.000131 -0.090000 0.000011 0.000131 -0.091111 0.000011 0.000131 -0.092222 0.000011 0.000130 -0.093333 0.000011 0.000130 -0.094444 0.000012 0.000130 -0.095556 0.000012 0.000130 -0.096667 0.000012 0.000130 -0.097778 0.000012 0.000130 -0.098889 0.000012 0.000130 -0.100000 0.000012 0.000129 -0.101111 0.000012 0.000129 -0.102222 0.000012 0.000129 -0.103333 0.000012 0.000129 -0.104444 0.000012 0.000129 -0.105556 0.000012 0.000129 -0.106667 0.000012 0.000129 -0.107778 0.000012 0.000128 -0.108889 0.000012 0.000128 -0.110000 0.000012 0.000128 -0.111111 0.000012 0.000128 -0.112222 0.000012 0.000128 -0.113333 0.000012 0.000128 -0.114444 0.000012 0.000128 -0.115556 0.000012 0.000128 -0.116667 0.000012 0.000128 -0.117778 0.000012 0.000127 -0.118889 0.000012 0.000127 -0.120000 0.000012 0.000127 -0.121111 0.000012 0.000127 -0.122222 0.000012 0.000127 -0.123333 0.000012 0.000127 -0.124444 0.000012 0.000127 -0.125556 0.000012 0.000127 -0.126667 0.000012 0.000127 -0.127778 0.000012 0.000126 -0.128889 0.000013 0.000126 -0.130000 0.000013 0.000126 -0.131111 0.000013 0.000126 -0.132222 0.000013 0.000126 -0.133333 0.000013 0.000126 -0.134444 0.000013 0.000126 -0.135556 0.000013 0.000126 -0.136667 0.000013 0.000126 -0.137778 0.000013 0.000126 -0.138889 0.000013 0.000125 -0.140000 0.000013 0.000125 -0.141111 0.000013 0.000125 -0.142222 0.000013 0.000125 -0.143333 0.000013 0.000125 -0.144444 0.000013 0.000125 -0.145556 0.000013 0.000125 -0.146667 0.000013 0.000125 -0.147778 0.000013 0.000125 -0.148889 0.000013 0.000125 -0.150000 0.000013 0.000125 -0.151111 0.000013 0.000124 -0.152222 0.000013 0.000124 -0.153333 0.000013 0.000124 -0.154444 0.000013 0.000124 -0.155556 0.000013 0.000124 -0.156667 0.000013 0.000124 -0.157778 0.000013 0.000124 -0.158889 0.000014 0.000124 -0.160000 0.000014 0.000124 -0.161111 0.000014 0.000124 -0.162222 0.000014 0.000123 -0.163333 0.000014 0.000123 -0.164444 0.000014 0.000123 -0.165556 0.000014 0.000123 -0.166667 0.000014 0.000123 -0.167778 0.000014 0.000123 -0.168889 0.000014 0.000123 -0.170000 0.000014 0.000123 -0.171111 0.000014 0.000123 -0.172222 0.000014 0.000123 -0.173333 0.000014 0.000122 -0.174444 0.000014 0.000122 -0.175556 0.000014 0.000122 -0.176667 0.000014 0.000122 -0.177778 0.000014 0.000122 -0.178889 0.000014 0.000122 -0.180000 0.000014 0.000122 -0.181111 0.000014 0.000122 -0.182222 0.000014 0.000122 -0.183333 0.000014 0.000121 -0.184444 0.000015 0.000121 -0.185556 0.000015 0.000121 -0.186667 0.000015 0.000121 -0.187778 0.000015 0.000121 -0.188889 0.000015 0.000121 -0.190000 0.000015 0.000121 -0.191111 0.000015 0.000121 -0.192222 0.000015 0.000120 -0.193333 0.000015 0.000120 -0.194444 0.000015 0.000120 -0.195556 0.000015 0.000120 -0.196667 0.000015 0.000120 -0.197778 0.000015 0.000120 -0.198889 0.000015 0.000120 -0.200000 0.000015 0.000119 -0.201111 0.000015 0.000119 -0.202222 0.000015 0.000119 -0.203333 0.000015 0.000119 -0.204444 0.000015 0.000119 -0.205556 0.000015 0.000119 -0.206667 0.000016 0.000118 -0.207778 0.000016 0.000118 -0.208889 0.000016 0.000118 -0.210000 0.000016 0.000118 -0.211111 0.000016 0.000118 -0.212222 0.000016 0.000117 -0.213333 0.000016 0.000117 -0.214444 0.000016 0.000117 -0.215556 0.000016 0.000117 -0.216667 0.000016 0.000116 -0.217778 0.000016 0.000116 -0.218889 0.000016 0.000116 -0.220000 0.000016 0.000116 -0.221111 0.000016 0.000115 -0.222222 0.000016 0.000115 -0.223333 0.000016 0.000115 -0.224444 0.000017 0.000114 -0.225556 0.000017 0.000114 -0.226667 0.000017 0.000114 -0.227778 0.000017 0.000113 -0.228889 0.000017 0.000113 -0.230000 0.000017 0.000113 -0.231111 0.000017 0.000112 -0.232222 0.000017 0.000112 -0.233333 0.000017 0.000111 -0.234444 0.000017 0.000111 -0.235556 0.000017 0.000111 -0.236667 0.000017 0.000110 -0.237778 0.000017 0.000110 -0.238889 0.000017 0.000109 -0.240000 0.000018 0.000109 -0.241111 0.000018 0.000108 -0.242222 0.000018 0.000108 -0.243333 0.000018 0.000107 -0.244444 0.000018 0.000106 -0.245556 0.000018 0.000106 -0.246667 0.000018 0.000105 -0.247778 0.000018 0.000105 -0.248889 0.000018 0.000104 -0.250000 0.000018 0.000103 -0.251111 0.000019 0.000102 -0.252222 0.000019 0.000102 -0.253333 0.000019 0.000101 -0.254444 0.000019 0.000100 -0.255556 0.000019 0.000099 -0.256667 0.000019 0.000098 -0.257778 0.000019 0.000098 -0.258889 0.000019 0.000097 -0.260000 0.000020 0.000096 -0.261111 0.000020 0.000095 -0.262222 0.000020 0.000094 -0.263333 0.000020 0.000093 -0.264444 0.000020 0.000092 -0.265556 0.000020 0.000091 -0.266667 0.000021 0.000089 -0.267778 0.000021 0.000088 -0.268889 0.000021 0.000087 -0.270000 0.000021 0.000086 -0.271111 0.000022 0.000085 -0.272222 0.000022 0.000084 -0.273333 0.000022 0.000082 -0.274444 0.000022 0.000081 -0.275556 0.000023 0.000080 -0.276667 0.000023 0.000078 -0.277778 0.000023 0.000077 -0.278889 0.000024 0.000076 -0.280000 0.000024 0.000074 -0.281111 0.000024 0.000073 -0.282222 0.000025 0.000071 -0.283333 0.000025 0.000070 -0.284444 0.000026 0.000068 -0.285556 0.000026 0.000067 -0.286667 0.000027 0.000066 -0.287778 0.000028 0.000064 -0.288889 0.000028 0.000063 -0.290000 0.000029 0.000061 -0.291111 0.000030 0.000060 -0.292222 0.000031 0.000058 -0.293333 0.000032 0.000057 -0.294444 0.000033 0.000055 -0.295556 0.000035 0.000054 -0.296667 0.000036 0.000052 -0.297778 0.000038 0.000051 -0.298889 0.000040 0.000049 -0.300000 0.000042 0.000048 -0.301111 0.000045 0.000046 -0.302222 0.000048 0.000045 -0.303333 0.000052 0.000043 -0.304444 0.000058 0.000042 -0.305556 0.000064 0.000041 -0.306667 0.000072 0.000039 -0.307778 0.000084 0.000038 -0.308889 0.000101 0.000037 -0.310000 0.000128 0.000035 -0.311111 0.000179 0.000034 -0.312222 0.000305 0.000033 -0.313333 0.001207 0.000032 -0.314444 0.179608 0.000022 -0.315556 0.308134 0.000018 -0.316667 0.452762 0.000015 -0.317778 0.619810 0.000012 -0.318889 0.810272 0.000010 -0.320000 0.997083 0.000008 -0.321111 0.999686 0.000008 -0.322222 0.999830 0.000007 -0.323333 0.999882 0.000006 -0.324444 0.999908 0.000006 -0.325556 0.999925 0.000006 -0.326667 0.999936 0.000005 -0.327778 0.999943 0.000005 -0.328889 0.999950 0.000005 -0.330000 0.999954 0.000004 -0.331111 0.999958 0.000004 -0.332222 0.999961 0.000004 -0.333333 0.999964 0.000004 -0.334444 0.999966 0.000004 -0.335556 0.999968 0.000004 -0.336667 0.999970 0.000003 -0.337778 0.999972 0.000003 -0.338889 0.999973 0.000003 -0.340000 0.999974 0.000003 -0.341111 0.999975 0.000003 -0.342222 0.999976 0.000003 -0.343333 0.999977 0.000003 -0.344444 0.999978 0.000003 -0.345556 0.999979 0.000003 -0.346667 0.999979 0.000003 -0.347778 0.999980 0.000002 -0.348889 0.999981 0.000002 -0.350000 0.999981 0.000002 -0.351111 0.999982 0.000002 -0.352222 0.999982 0.000002 -0.353333 0.999982 0.000002 -0.354444 0.999983 0.000002 -0.355556 0.999983 0.000002 -0.356667 0.999984 0.000002 -0.357778 0.999984 0.000002 -0.358889 0.999984 0.000002 -0.360000 0.999985 0.000002 -0.361111 0.999985 0.000002 -0.362222 0.999985 0.000002 -0.363333 0.999985 0.000002 -0.364444 0.999986 0.000002 -0.365556 0.999986 0.000002 -0.366667 0.999986 0.000002 -0.367778 0.999986 0.000002 -0.368889 0.999986 0.000002 -0.370000 0.999986 0.000002 -0.371111 0.999986 0.000002 -0.372222 0.999987 0.000002 -0.373333 0.999987 0.000002 -0.374444 0.999987 0.000002 -0.375556 0.999987 0.000002 -0.376667 0.999987 0.000002 -0.377778 0.999987 0.000001 -0.378889 0.999987 0.000001 -0.380000 0.999987 0.000001 -0.381111 0.999987 0.000001 -0.382222 0.999987 0.000001 -0.383333 0.999987 0.000001 -0.384444 0.999987 0.000001 -0.385556 0.999987 0.000001 -0.386667 0.999987 0.000001 -0.387778 0.999987 0.000001 -0.388889 0.999986 0.000001 -0.390000 0.999986 0.000001 -0.391111 0.999986 0.000001 -0.392222 0.999986 0.000001 -0.393333 0.999986 0.000001 -0.394444 0.999985 0.000001 -0.395556 0.999985 0.000001 -0.396667 0.999984 0.000001 -0.397778 0.999984 0.000001 -0.398889 0.999983 0.000001 -0.400000 0.999983 0.000001 -0.401111 0.999982 0.000001 -0.402222 0.999981 0.000001 -0.403333 0.999980 0.000001 -0.404444 0.999978 0.000001 -0.405556 0.999976 0.000001 -0.406667 0.999974 0.000001 -0.407778 0.999971 0.000001 -0.408889 0.999967 0.000001 -0.410000 0.999961 0.000001 -0.411111 0.999951 0.000001 -0.412222 0.999935 0.000001 -0.413333 0.999898 0.000001 -0.414444 0.999750 0.000001 -0.415556 0.958632 0.000001 -0.416667 0.850942 0.000001 -0.417778 0.756934 0.000002 -0.418889 0.674729 0.000002 -0.420000 0.602540 0.000002 -0.421111 0.538863 0.000002 -0.422222 0.482443 0.000002 -0.423333 0.432239 0.000002 -0.424444 0.387384 0.000002 -0.425556 0.347153 0.000002 -0.426667 0.310939 0.000002 -0.427778 0.278230 0.000003 -0.428889 0.248592 0.000003 -0.430000 0.221655 0.000003 -0.431111 0.197105 0.000003 -0.432222 0.174670 0.000003 -0.433333 0.154116 0.000003 -0.434444 0.135240 0.000003 -0.435556 0.117866 0.000004 -0.436667 0.101838 0.000004 -0.437778 0.087023 0.000004 -0.438889 0.073300 0.000004 -0.440000 0.060564 0.000005 -0.441111 0.048721 0.000005 -0.442222 0.037691 0.000005 -0.443333 0.027400 0.000005 -0.444444 0.017788 0.000006 -0.445556 0.008831 0.000006 -0.446667 0.001220 0.000006 -0.447778 0.000150 0.000007 -0.448889 0.000075 0.000007 -0.450000 0.000050 0.000007 -0.451111 0.000037 0.000007 -0.452222 0.000029 0.000008 -0.453333 0.000024 0.000008 -0.454444 0.000021 0.000008 -0.455556 0.000018 0.000009 -0.456667 0.000016 0.000009 -0.457778 0.000014 0.000010 -0.458889 0.000013 0.000010 -0.460000 0.000012 0.000011 -0.461111 0.000011 0.000011 -0.462222 0.000010 0.000012 -0.463333 0.000009 0.000013 -0.464444 0.000009 0.000014 -0.465556 0.000008 0.000015 -0.466667 0.000008 0.000016 -0.467778 0.000007 0.000017 -0.468889 0.000007 0.000018 -0.470000 0.000006 0.000020 -0.471111 0.000006 0.000022 -0.472222 0.000006 0.000025 -0.473333 0.000006 0.000027 -0.474444 0.000005 0.000031 -0.475556 0.000005 0.000035 -0.476667 0.000005 0.000041 -0.477778 0.000005 0.000048 -0.478889 0.000004 0.000058 -0.480000 0.000004 0.000072 -0.481111 0.000004 0.000094 -0.482222 0.000004 0.000132 -0.483333 0.000004 0.000207 -0.484444 0.000004 0.000436 -0.485556 0.000004 0.028704 -0.486667 0.000004 0.999470 -0.487778 0.000003 0.999708 -0.488889 0.000003 0.999781 -0.490000 0.000003 0.999813 -0.491111 0.000003 0.999825 -0.492222 0.000003 0.999826 -0.493333 0.000003 0.999814 -0.494444 0.000003 0.999783 -0.495556 0.000003 0.999712 -0.496667 0.000003 0.999484 -0.497778 0.000003 0.592464 -0.498889 0.000003 0.000406 -0.500000 0.000004 0.000181 +"sep= " time u_f u_wg +0.000000 0.000009 0.000485 +0.001111 0.000009 0.000485 +0.002222 0.000009 0.000425 +0.003333 0.000009 0.000382 +0.004444 0.000009 0.000348 +0.005556 0.000009 0.000322 +0.006667 0.000009 0.000301 +0.007778 0.000009 0.000283 +0.008889 0.000009 0.000268 +0.010000 0.000009 0.000255 +0.011111 0.000009 0.000244 +0.012222 0.000009 0.000235 +0.013333 0.000009 0.000226 +0.014444 0.000009 0.000219 +0.015556 0.000009 0.000212 +0.016667 0.000009 0.000206 +0.017778 0.000009 0.000201 +0.018889 0.000009 0.000196 +0.020000 0.000009 0.000192 +0.021111 0.000009 0.000188 +0.022222 0.000010 0.000184 +0.023333 0.000010 0.000181 +0.024444 0.000010 0.000177 +0.025556 0.000010 0.000175 +0.026667 0.000010 0.000172 +0.027778 0.000010 0.000170 +0.028889 0.000010 0.000167 +0.030000 0.000010 0.000165 +0.031111 0.000010 0.000163 +0.032222 0.000010 0.000161 +0.033333 0.000010 0.000160 +0.034444 0.000010 0.000158 +0.035556 0.000010 0.000157 +0.036667 0.000010 0.000155 +0.037778 0.000010 0.000154 +0.038889 0.000010 0.000153 +0.040000 0.000010 0.000151 +0.041111 0.000010 0.000150 +0.042222 0.000010 0.000149 +0.043333 0.000010 0.000148 +0.044444 0.000010 0.000147 +0.045556 0.000010 0.000147 +0.046667 0.000010 0.000146 +0.047778 0.000010 0.000145 +0.048889 0.000010 0.000144 +0.050000 0.000010 0.000143 +0.051111 0.000010 0.000143 +0.052222 0.000010 0.000142 +0.053333 0.000010 0.000142 +0.054444 0.000010 0.000141 +0.055556 0.000010 0.000140 +0.056667 0.000010 0.000140 +0.057778 0.000011 0.000139 +0.058889 0.000011 0.000139 +0.060000 0.000011 0.000138 +0.061111 0.000011 0.000138 +0.062222 0.000011 0.000138 +0.063333 0.000011 0.000137 +0.064444 0.000011 0.000137 +0.065556 0.000011 0.000136 +0.066667 0.000011 0.000136 +0.067778 0.000011 0.000136 +0.068889 0.000011 0.000135 +0.070000 0.000011 0.000135 +0.071111 0.000011 0.000135 +0.072222 0.000011 0.000134 +0.073333 0.000011 0.000134 +0.074444 0.000011 0.000134 +0.075556 0.000011 0.000134 +0.076667 0.000011 0.000133 +0.077778 0.000011 0.000133 +0.078889 0.000011 0.000133 +0.080000 0.000011 0.000133 +0.081111 0.000011 0.000132 +0.082222 0.000011 0.000132 +0.083333 0.000011 0.000132 +0.084444 0.000011 0.000132 +0.085556 0.000011 0.000132 +0.086667 0.000011 0.000131 +0.087778 0.000011 0.000131 +0.088889 0.000011 0.000131 +0.090000 0.000011 0.000131 +0.091111 0.000011 0.000131 +0.092222 0.000011 0.000130 +0.093333 0.000011 0.000130 +0.094444 0.000012 0.000130 +0.095556 0.000012 0.000130 +0.096667 0.000012 0.000130 +0.097778 0.000012 0.000130 +0.098889 0.000012 0.000130 +0.100000 0.000012 0.000129 +0.101111 0.000012 0.000129 +0.102222 0.000012 0.000129 +0.103333 0.000012 0.000129 +0.104444 0.000012 0.000129 +0.105556 0.000012 0.000129 +0.106667 0.000012 0.000129 +0.107778 0.000012 0.000128 +0.108889 0.000012 0.000128 +0.110000 0.000012 0.000128 +0.111111 0.000012 0.000128 +0.112222 0.000012 0.000128 +0.113333 0.000012 0.000128 +0.114444 0.000012 0.000128 +0.115556 0.000012 0.000128 +0.116667 0.000012 0.000128 +0.117778 0.000012 0.000127 +0.118889 0.000012 0.000127 +0.120000 0.000012 0.000127 +0.121111 0.000012 0.000127 +0.122222 0.000012 0.000127 +0.123333 0.000012 0.000127 +0.124444 0.000012 0.000127 +0.125556 0.000012 0.000127 +0.126667 0.000012 0.000127 +0.127778 0.000012 0.000126 +0.128889 0.000013 0.000126 +0.130000 0.000013 0.000126 +0.131111 0.000013 0.000126 +0.132222 0.000013 0.000126 +0.133333 0.000013 0.000126 +0.134444 0.000013 0.000126 +0.135556 0.000013 0.000126 +0.136667 0.000013 0.000126 +0.137778 0.000013 0.000126 +0.138889 0.000013 0.000125 +0.140000 0.000013 0.000125 +0.141111 0.000013 0.000125 +0.142222 0.000013 0.000125 +0.143333 0.000013 0.000125 +0.144444 0.000013 0.000125 +0.145556 0.000013 0.000125 +0.146667 0.000013 0.000125 +0.147778 0.000013 0.000125 +0.148889 0.000013 0.000125 +0.150000 0.000013 0.000125 +0.151111 0.000013 0.000124 +0.152222 0.000013 0.000124 +0.153333 0.000013 0.000124 +0.154444 0.000013 0.000124 +0.155556 0.000013 0.000124 +0.156667 0.000013 0.000124 +0.157778 0.000013 0.000124 +0.158889 0.000014 0.000124 +0.160000 0.000014 0.000124 +0.161111 0.000014 0.000124 +0.162222 0.000014 0.000123 +0.163333 0.000014 0.000123 +0.164444 0.000014 0.000123 +0.165556 0.000014 0.000123 +0.166667 0.000014 0.000123 +0.167778 0.000014 0.000123 +0.168889 0.000014 0.000123 +0.170000 0.000014 0.000123 +0.171111 0.000014 0.000123 +0.172222 0.000014 0.000123 +0.173333 0.000014 0.000122 +0.174444 0.000014 0.000122 +0.175556 0.000014 0.000122 +0.176667 0.000014 0.000122 +0.177778 0.000014 0.000122 +0.178889 0.000014 0.000122 +0.180000 0.000014 0.000122 +0.181111 0.000014 0.000122 +0.182222 0.000014 0.000122 +0.183333 0.000014 0.000121 +0.184444 0.000015 0.000121 +0.185556 0.000015 0.000121 +0.186667 0.000015 0.000121 +0.187778 0.000015 0.000121 +0.188889 0.000015 0.000121 +0.190000 0.000015 0.000121 +0.191111 0.000015 0.000121 +0.192222 0.000015 0.000120 +0.193333 0.000015 0.000120 +0.194444 0.000015 0.000120 +0.195556 0.000015 0.000120 +0.196667 0.000015 0.000120 +0.197778 0.000015 0.000120 +0.198889 0.000015 0.000120 +0.200000 0.000015 0.000119 +0.201111 0.000015 0.000119 +0.202222 0.000015 0.000119 +0.203333 0.000015 0.000119 +0.204444 0.000015 0.000119 +0.205556 0.000015 0.000119 +0.206667 0.000016 0.000118 +0.207778 0.000016 0.000118 +0.208889 0.000016 0.000118 +0.210000 0.000016 0.000118 +0.211111 0.000016 0.000118 +0.212222 0.000016 0.000117 +0.213333 0.000016 0.000117 +0.214444 0.000016 0.000117 +0.215556 0.000016 0.000117 +0.216667 0.000016 0.000116 +0.217778 0.000016 0.000116 +0.218889 0.000016 0.000116 +0.220000 0.000016 0.000116 +0.221111 0.000016 0.000115 +0.222222 0.000016 0.000115 +0.223333 0.000016 0.000115 +0.224444 0.000017 0.000114 +0.225556 0.000017 0.000114 +0.226667 0.000017 0.000114 +0.227778 0.000017 0.000113 +0.228889 0.000017 0.000113 +0.230000 0.000017 0.000113 +0.231111 0.000017 0.000112 +0.232222 0.000017 0.000112 +0.233333 0.000017 0.000111 +0.234444 0.000017 0.000111 +0.235556 0.000017 0.000111 +0.236667 0.000017 0.000110 +0.237778 0.000017 0.000110 +0.238889 0.000017 0.000109 +0.240000 0.000018 0.000109 +0.241111 0.000018 0.000108 +0.242222 0.000018 0.000108 +0.243333 0.000018 0.000107 +0.244444 0.000018 0.000106 +0.245556 0.000018 0.000106 +0.246667 0.000018 0.000105 +0.247778 0.000018 0.000105 +0.248889 0.000018 0.000104 +0.250000 0.000018 0.000103 +0.251111 0.000019 0.000102 +0.252222 0.000019 0.000102 +0.253333 0.000019 0.000101 +0.254444 0.000019 0.000100 +0.255556 0.000019 0.000099 +0.256667 0.000019 0.000098 +0.257778 0.000019 0.000098 +0.258889 0.000019 0.000097 +0.260000 0.000020 0.000096 +0.261111 0.000020 0.000095 +0.262222 0.000020 0.000094 +0.263333 0.000020 0.000093 +0.264444 0.000020 0.000092 +0.265556 0.000020 0.000091 +0.266667 0.000021 0.000089 +0.267778 0.000021 0.000088 +0.268889 0.000021 0.000087 +0.270000 0.000021 0.000086 +0.271111 0.000022 0.000085 +0.272222 0.000022 0.000084 +0.273333 0.000022 0.000082 +0.274444 0.000022 0.000081 +0.275556 0.000023 0.000080 +0.276667 0.000023 0.000078 +0.277778 0.000023 0.000077 +0.278889 0.000024 0.000076 +0.280000 0.000024 0.000074 +0.281111 0.000024 0.000073 +0.282222 0.000025 0.000071 +0.283333 0.000025 0.000070 +0.284444 0.000026 0.000068 +0.285556 0.000026 0.000067 +0.286667 0.000027 0.000066 +0.287778 0.000028 0.000064 +0.288889 0.000028 0.000063 +0.290000 0.000029 0.000061 +0.291111 0.000030 0.000060 +0.292222 0.000031 0.000058 +0.293333 0.000032 0.000057 +0.294444 0.000033 0.000055 +0.295556 0.000035 0.000054 +0.296667 0.000036 0.000052 +0.297778 0.000038 0.000051 +0.298889 0.000040 0.000049 +0.300000 0.000042 0.000048 +0.301111 0.000045 0.000046 +0.302222 0.000048 0.000045 +0.303333 0.000052 0.000043 +0.304444 0.000058 0.000042 +0.305556 0.000064 0.000041 +0.306667 0.000072 0.000039 +0.307778 0.000084 0.000038 +0.308889 0.000101 0.000037 +0.310000 0.000128 0.000035 +0.311111 0.000179 0.000034 +0.312222 0.000305 0.000033 +0.313333 0.001207 0.000032 +0.314444 0.179608 0.000022 +0.315556 0.308134 0.000018 +0.316667 0.452762 0.000015 +0.317778 0.619810 0.000012 +0.318889 0.810272 0.000010 +0.320000 0.997083 0.000008 +0.321111 0.999686 0.000008 +0.322222 0.999830 0.000007 +0.323333 0.999882 0.000006 +0.324444 0.999908 0.000006 +0.325556 0.999925 0.000006 +0.326667 0.999936 0.000005 +0.327778 0.999943 0.000005 +0.328889 0.999950 0.000005 +0.330000 0.999954 0.000004 +0.331111 0.999958 0.000004 +0.332222 0.999961 0.000004 +0.333333 0.999964 0.000004 +0.334444 0.999966 0.000004 +0.335556 0.999968 0.000004 +0.336667 0.999970 0.000003 +0.337778 0.999972 0.000003 +0.338889 0.999973 0.000003 +0.340000 0.999974 0.000003 +0.341111 0.999975 0.000003 +0.342222 0.999976 0.000003 +0.343333 0.999977 0.000003 +0.344444 0.999978 0.000003 +0.345556 0.999979 0.000003 +0.346667 0.999979 0.000003 +0.347778 0.999980 0.000002 +0.348889 0.999981 0.000002 +0.350000 0.999981 0.000002 +0.351111 0.999982 0.000002 +0.352222 0.999982 0.000002 +0.353333 0.999982 0.000002 +0.354444 0.999983 0.000002 +0.355556 0.999983 0.000002 +0.356667 0.999984 0.000002 +0.357778 0.999984 0.000002 +0.358889 0.999984 0.000002 +0.360000 0.999985 0.000002 +0.361111 0.999985 0.000002 +0.362222 0.999985 0.000002 +0.363333 0.999985 0.000002 +0.364444 0.999986 0.000002 +0.365556 0.999986 0.000002 +0.366667 0.999986 0.000002 +0.367778 0.999986 0.000002 +0.368889 0.999986 0.000002 +0.370000 0.999986 0.000002 +0.371111 0.999986 0.000002 +0.372222 0.999987 0.000002 +0.373333 0.999987 0.000002 +0.374444 0.999987 0.000002 +0.375556 0.999987 0.000002 +0.376667 0.999987 0.000002 +0.377778 0.999987 0.000001 +0.378889 0.999987 0.000001 +0.380000 0.999987 0.000001 +0.381111 0.999987 0.000001 +0.382222 0.999987 0.000001 +0.383333 0.999987 0.000001 +0.384444 0.999987 0.000001 +0.385556 0.999987 0.000001 +0.386667 0.999987 0.000001 +0.387778 0.999987 0.000001 +0.388889 0.999986 0.000001 +0.390000 0.999986 0.000001 +0.391111 0.999986 0.000001 +0.392222 0.999986 0.000001 +0.393333 0.999986 0.000001 +0.394444 0.999985 0.000001 +0.395556 0.999985 0.000001 +0.396667 0.999984 0.000001 +0.397778 0.999984 0.000001 +0.398889 0.999983 0.000001 +0.400000 0.999983 0.000001 +0.401111 0.999982 0.000001 +0.402222 0.999981 0.000001 +0.403333 0.999980 0.000001 +0.404444 0.999978 0.000001 +0.405556 0.999976 0.000001 +0.406667 0.999974 0.000001 +0.407778 0.999971 0.000001 +0.408889 0.999967 0.000001 +0.410000 0.999961 0.000001 +0.411111 0.999951 0.000001 +0.412222 0.999935 0.000001 +0.413333 0.999898 0.000001 +0.414444 0.999750 0.000001 +0.415556 0.958632 0.000001 +0.416667 0.850942 0.000001 +0.417778 0.756934 0.000002 +0.418889 0.674729 0.000002 +0.420000 0.602540 0.000002 +0.421111 0.538863 0.000002 +0.422222 0.482443 0.000002 +0.423333 0.432239 0.000002 +0.424444 0.387384 0.000002 +0.425556 0.347153 0.000002 +0.426667 0.310939 0.000002 +0.427778 0.278230 0.000003 +0.428889 0.248592 0.000003 +0.430000 0.221655 0.000003 +0.431111 0.197105 0.000003 +0.432222 0.174670 0.000003 +0.433333 0.154116 0.000003 +0.434444 0.135240 0.000003 +0.435556 0.117866 0.000004 +0.436667 0.101838 0.000004 +0.437778 0.087023 0.000004 +0.438889 0.073300 0.000004 +0.440000 0.060564 0.000005 +0.441111 0.048721 0.000005 +0.442222 0.037691 0.000005 +0.443333 0.027400 0.000005 +0.444444 0.017788 0.000006 +0.445556 0.008831 0.000006 +0.446667 0.001220 0.000006 +0.447778 0.000150 0.000007 +0.448889 0.000075 0.000007 +0.450000 0.000050 0.000007 +0.451111 0.000037 0.000007 +0.452222 0.000029 0.000008 +0.453333 0.000024 0.000008 +0.454444 0.000021 0.000008 +0.455556 0.000018 0.000009 +0.456667 0.000016 0.000009 +0.457778 0.000014 0.000010 +0.458889 0.000013 0.000010 +0.460000 0.000012 0.000011 +0.461111 0.000011 0.000011 +0.462222 0.000010 0.000012 +0.463333 0.000009 0.000013 +0.464444 0.000009 0.000014 +0.465556 0.000008 0.000015 +0.466667 0.000008 0.000016 +0.467778 0.000007 0.000017 +0.468889 0.000007 0.000018 +0.470000 0.000006 0.000020 +0.471111 0.000006 0.000022 +0.472222 0.000006 0.000025 +0.473333 0.000006 0.000027 +0.474444 0.000005 0.000031 +0.475556 0.000005 0.000035 +0.476667 0.000005 0.000041 +0.477778 0.000005 0.000048 +0.478889 0.000004 0.000058 +0.480000 0.000004 0.000072 +0.481111 0.000004 0.000094 +0.482222 0.000004 0.000132 +0.483333 0.000004 0.000207 +0.484444 0.000004 0.000436 +0.485556 0.000004 0.028704 +0.486667 0.000004 0.999470 +0.487778 0.000003 0.999708 +0.488889 0.000003 0.999781 +0.490000 0.000003 0.999813 +0.491111 0.000003 0.999825 +0.492222 0.000003 0.999826 +0.493333 0.000003 0.999814 +0.494444 0.000003 0.999783 +0.495556 0.000003 0.999712 +0.496667 0.000003 0.999484 +0.497778 0.000003 0.592464 +0.498889 0.000003 0.000406 +0.500000 0.000004 0.000181 diff --git a/testsuite/openmodelica/cruntime/optimization/basic/ReferenceFiles/initInputForBR.csv b/testsuite/openmodelica/cruntime/optimization/basic/ReferenceFiles/initInputForBR.csv index 4f3b7cb1dc5..b0b695e3a3d 100644 --- a/testsuite/openmodelica/cruntime/optimization/basic/ReferenceFiles/initInputForBR.csv +++ b/testsuite/openmodelica/cruntime/optimization/basic/ReferenceFiles/initInputForBR.csv @@ -1,62 +1,62 @@ -time u -0.000000 0.743547 -0.007753 0.747304 -0.032247 0.747304 -0.050000 0.747304 -0.057753 0.772709 -0.082247 0.772709 -0.100000 0.772709 -0.107753 0.800326 -0.132247 0.800326 -0.150000 0.800326 -0.157753 0.830488 -0.182247 0.830488 -0.200000 0.830488 -0.207753 0.863601 -0.232247 0.863601 -0.250000 0.863601 -0.257753 0.900169 -0.282247 0.900169 -0.300000 0.900169 -0.307753 0.940823 -0.332247 0.940823 -0.350000 0.940823 -0.357753 0.986367 -0.382247 0.986367 -0.400000 0.986367 -0.407753 1.037848 -0.432247 1.037848 -0.450000 1.037848 -0.457753 1.096650 -0.482247 1.096650 -0.500000 1.096650 -0.507753 1.164654 -0.532247 1.164654 -0.550000 1.164654 -0.557753 1.244495 -0.582247 1.244495 -0.600000 1.244495 -0.607753 1.339995 -0.632247 1.339995 -0.650000 1.339995 -0.657753 1.456953 -0.682247 1.456953 -0.700000 1.456953 -0.707753 1.604690 -0.732247 1.604690 -0.750000 1.604690 -0.757753 1.799371 -0.782247 1.799371 -0.800000 1.799371 -0.807753 2.072198 -0.832247 2.072198 -0.850000 2.072198 -0.857753 2.493949 -0.882247 2.493949 -0.900000 2.493949 -0.907753 3.276597 -0.932247 3.276597 -0.950000 3.276597 -0.957753 5.000000 -0.982247 5.000000 -1.000000 5.000000 +"sep= " time u +0.000000 0.743547 +0.007753 0.747304 +0.032247 0.747304 +0.050000 0.747304 +0.057753 0.772709 +0.082247 0.772709 +0.100000 0.772709 +0.107753 0.800326 +0.132247 0.800326 +0.150000 0.800326 +0.157753 0.830488 +0.182247 0.830488 +0.200000 0.830488 +0.207753 0.863601 +0.232247 0.863601 +0.250000 0.863601 +0.257753 0.900169 +0.282247 0.900169 +0.300000 0.900169 +0.307753 0.940823 +0.332247 0.940823 +0.350000 0.940823 +0.357753 0.986367 +0.382247 0.986367 +0.400000 0.986367 +0.407753 1.037848 +0.432247 1.037848 +0.450000 1.037848 +0.457753 1.096650 +0.482247 1.096650 +0.500000 1.096650 +0.507753 1.164654 +0.532247 1.164654 +0.550000 1.164654 +0.557753 1.244495 +0.582247 1.244495 +0.600000 1.244495 +0.607753 1.339995 +0.632247 1.339995 +0.650000 1.339995 +0.657753 1.456953 +0.682247 1.456953 +0.700000 1.456953 +0.707753 1.604690 +0.732247 1.604690 +0.750000 1.604690 +0.757753 1.799371 +0.782247 1.799371 +0.800000 1.799371 +0.807753 2.072198 +0.832247 2.072198 +0.850000 2.072198 +0.857753 2.493949 +0.882247 2.493949 +0.900000 2.493949 +0.907753 3.276597 +0.932247 3.276597 +0.950000 3.276597 +0.957753 5.000000 +0.982247 5.000000 +1.000000 5.000000 diff --git a/testsuite/simulation/modelica/solver/LotkaVolterraWithInput.mos b/testsuite/simulation/modelica/solver/LotkaVolterraWithInput.mos index 5c738740fab..6702b5881f2 100644 --- a/testsuite/simulation/modelica/solver/LotkaVolterraWithInput.mos +++ b/testsuite/simulation/modelica/solver/LotkaVolterraWithInput.mos @@ -45,9 +45,8 @@ val(der(rabbits),420); // create external input file for the next tests simulate(LotkaVolterra,startTime=0.0, stopTime=760.0, numberOfIntervals=760, tolerance=1e-8, outputFormat="csv"); -system("awk -F, '{print $1, $3}' LotkaVolterra_res.csv > externalInput.csv"); -simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760.0, numberOfIntervals=760, tolerance=1e-8); +simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760.0, numberOfIntervals=760, tolerance=1e-8, simflags="-csvInput=LotkaVolterra_res.csv"); val(rabbits,180); val(foxes,200); val(rabbits,666); @@ -55,7 +54,7 @@ val(foxes,760); val(derrabbits,42); val(derrabbits,420); -simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760, numberOfIntervals=760, tolerance=1e-8, method="euler"); +simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760, numberOfIntervals=760, tolerance=1e-8, method="euler", simflags="-csvInput=LotkaVolterra_res.csv"); val(rabbits,180); val(foxes,200); val(rabbits,666); @@ -63,7 +62,7 @@ val(foxes,760); val(derrabbits,42); val(derrabbits,420); -simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760.0, numberOfIntervals=760, tolerance=1e-8, method="rungekutta"); +simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760.0, numberOfIntervals=760, tolerance=1e-8, method="rungekutta", simflags="-csvInput=LotkaVolterra_res.csv"); val(rabbits,180); val(foxes,200); val(rabbits,666); @@ -71,7 +70,7 @@ val(foxes,760); val(derrabbits,42); val(derrabbits,420); -simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760.0, numberOfIntervals=760, tolerance=1e-8, method="impeuler"); +simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760.0, numberOfIntervals=760, tolerance=1e-8, method="impeuler", simflags="-csvInput=LotkaVolterra_res.csv"); val(rabbits,180); val(foxes,200); val(rabbits,666); @@ -79,7 +78,7 @@ val(foxes,760); val(derrabbits,42); val(derrabbits,420); -simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760.0, numberOfIntervals=760, tolerance=1e-8, method="imprungekutta", simflags="-impRKOrder=5"); +simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760.0, numberOfIntervals=760, tolerance=1e-8, method="imprungekutta", simflags="-impRKOrder=5 -csvInput=LotkaVolterra_res.csv"); val(rabbits,180); val(foxes,200); val(rabbits,666); @@ -87,7 +86,7 @@ val(foxes,760); val(derrabbits,42); val(derrabbits,420); -simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760.0, numberOfIntervals=760, tolerance=1e-8, method="imprungekutta", simflags="-impRKOrder=6"); +simulate(LotkaVolterraWithInput,startTime=0.0, stopTime=760.0, numberOfIntervals=760, tolerance=1e-8, method="imprungekutta", simflags="-impRKOrder=6 -csvInput=LotkaVolterra_res.csv"); val(rabbits,180); val(foxes,200); val(rabbits,666); @@ -118,10 +117,9 @@ val(derrabbits,420); // LOG_SUCCESS | info | The simulation finished successfully. // " // end SimulationResult; -// 0 // record SimulationResult // resultFile = "LotkaVolterraWithInput_res.mat", -// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'dassl', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''", +// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'dassl', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-csvInput=LotkaVolterra_res.csv'", // messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. // LOG_SUCCESS | info | The simulation finished successfully. // " @@ -134,7 +132,7 @@ val(derrabbits,420); // 76.4125896314704 // record SimulationResult // resultFile = "LotkaVolterraWithInput_res.mat", -// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'euler', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''", +// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'euler', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-csvInput=LotkaVolterra_res.csv'", // messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. // LOG_SUCCESS | info | The simulation finished successfully. // " @@ -147,7 +145,7 @@ val(derrabbits,420); // 79.63027796167692 // record SimulationResult // resultFile = "LotkaVolterraWithInput_res.mat", -// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'rungekutta', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''", +// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'rungekutta', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-csvInput=LotkaVolterra_res.csv'", // messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. // LOG_SUCCESS | info | The simulation finished successfully. // " @@ -160,7 +158,7 @@ val(derrabbits,420); // 76.41278732145514 // record SimulationResult // resultFile = "LotkaVolterraWithInput_res.mat", -// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'impeuler', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = ''", +// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'impeuler', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-csvInput=LotkaVolterra_res.csv'", // messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. // LOG_SUCCESS | info | The simulation finished successfully. // " @@ -173,7 +171,7 @@ val(derrabbits,420); // 63.26222998849814 // record SimulationResult // resultFile = "LotkaVolterraWithInput_res.mat", -// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'imprungekutta', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-impRKOrder=5'", +// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'imprungekutta', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-impRKOrder=5 -csvInput=LotkaVolterra_res.csv'", // messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. // LOG_SUCCESS | info | The simulation finished successfully. // " @@ -186,7 +184,7 @@ val(derrabbits,420); // 76.4126067599769 // record SimulationResult // resultFile = "LotkaVolterraWithInput_res.mat", -// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'imprungekutta', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-impRKOrder=6'", +// simulationOptions = "startTime = 0.0, stopTime = 760.0, numberOfIntervals = 760, tolerance = 1e-08, method = 'imprungekutta', fileNamePrefix = 'LotkaVolterraWithInput', options = '', outputFormat = 'mat', variableFilter = '.*', cflags = '', simflags = '-impRKOrder=6 -csvInput=LotkaVolterra_res.csv'", // messages = "LOG_SUCCESS | info | The initialization finished successfully without homotopy method. // LOG_SUCCESS | info | The simulation finished successfully. // "