Skip to content

Commit 5d24997

Browse files
author
Jens Frenkel
committed
- Bugfix Initialisation Method leastSquare
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@6248 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent f556155 commit 5d24997

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

c_runtime/simulation_init.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,27 @@
3939
void leastSquare(long *nz, double *z, double *funcValue)
4040
{
4141
int ind, indAct, indz;
42+
int startIndPar = 2*globalData->nStates+globalData->nAlgebraic+globalData->intVariables.nAlgebraic+globalData->boolVariables.nAlgebraic;
4243
for (ind=0, indAct=0, indz=0; ind<globalData->nStates; ind++)
4344
if (globalData->initFixed[indAct++]==0)
4445
globalData->states[ind] = z[indz++];
45-
46-
for (ind=0,indAct=2*globalData->nStates+globalData->nAlgebraic; ind<globalData->nParameters; ind++)
46+
// for real parameters
47+
for (ind=0,indAct=startIndPar; ind<globalData->nParameters; ind++)
4748
if (globalData->initFixed[indAct++]==0)
4849
globalData->parameters[ind] = z[indz++];
4950

51+
// for int parameters
52+
for (ind=0,indAct=startIndPar+globalData->nParameters; ind<globalData->intVariables.nParameters; ind++) {
53+
if (globalData->initFixed[indAct++]==0)
54+
globalData->intVariables.parameters[ind] = (modelica_integer)z[indz++];
55+
}
56+
57+
// for bool parameters
58+
for (ind=0,indAct=startIndPar+globalData->nParameters+globalData->intVariables.nParameters; ind<globalData->boolVariables.nParameters; ind++) {
59+
if (globalData->initFixed[indAct++]==0)
60+
globalData->boolVariables.parameters[ind] = (modelica_boolean)z[indz++];
61+
}
62+
5063
functionODE();
5164
functionDAE_output();
5265
functionDAE_output2();

0 commit comments

Comments
 (0)