Skip to content

Commit baaec60

Browse files
committed
Added support to the adevs code generator for mixed nonlinear systems.
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@9387 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 23ac647 commit baaec60

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

Compiler/susan_codegen/SimCode/SimCodeAdevs.tpl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,8 +231,13 @@ case SIMCODE(modelInfo = MODELINFO(varInfo = vi as VARINFO(__))) then
231231

232232
#ifdef extraPolate
233233
#undef extraPolate
234-
#endif
235234
#define extraPolate(v) v
235+
#endif
236+
237+
#ifdef check_discrete_values
238+
#undef check_discrete_values
239+
#define check_discrete_values(size,numValues) found_solution = 1
240+
#endif
236241

237242
#define time timeValue
238243
#define localData this
@@ -287,6 +292,7 @@ end simulationCppFile;
287292
template declareExtraResiduals(list<SimEqSystem> allEquations)
288293
::=
289294
(allEquations |> eqn => (match eqn
295+
case eq as SES_MIXED(__) then declareExtraResiduals(listFill(eq.cont,1))
290296
case eq as SES_NONLINEAR(__) then
291297
<<
292298
void residualFunc<%index%>_cpp(int *n, double* xloc, double* res, int* iflag);
@@ -299,7 +305,7 @@ template makeExtraResiduals(list<SimEqSystem> allEquations, String name)
299305
"Generates functions in simulation file."
300306
::=
301307
(allEquations |> eqn => (match eqn
302-
case eq as SES_MIXED(__) then functionExtraResiduals(listFill(eq.cont,1))
308+
case eq as SES_MIXED(__) then makeExtraResiduals(listFill(eq.cont,1),name)
303309
case eq as SES_NONLINEAR(__) then
304310
let &varDecls = buffer "" /*BUFD*/
305311
let algs = (eq.eqs |> eq2 as SES_ALGORITHM(__) =>

0 commit comments

Comments
 (0)