Skip to content

Commit 6a1e56e

Browse files
author
Christian SChubert
committed
cpprutime: added all input-, output- and aliasvariables to csv output. Now BooleanNetwork reports "Files Equal".
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@17247 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 7ee6296 commit 6a1e56e

File tree

1 file changed

+110
-23
lines changed

1 file changed

+110
-23
lines changed

Compiler/Template/CodegenCpp.tpl

Lines changed: 110 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1960,21 +1960,20 @@ case SIMCODE(modelInfo = MODELINFO(__)) then
19601960
void <%lastIdentOfPath(modelInfo.name)%>::writeOutput(const OUTPUT command)
19611961
{
19621962
1963-
//Write head line
1963+
//Write head line
19641964
if (command & HEAD_LINE)
19651965
{
1966-
vector<string> head;
1967-
head+= <%writeoutput1(modelInfo)%>
1968-
_historyImpl->write(head);
1966+
vector<string> head;
1967+
head+= <%writeoutput1(modelInfo)%>
1968+
_historyImpl->write(head);
19691969
}
19701970
//Write the current values
19711971
else
19721972
{
1973-
1974-
HistoryImplType::value_type_v v(<%numAlgvars(modelInfo)%>+<%numStatevars(modelInfo)%>);
1975-
HistoryImplType::value_type_dv v2(<%numDerivativevars(modelInfo)%>);
1976-
<%writeoutput2(modelInfo)%>
1977-
<%if Flags.isSet(Flags.WRITE_TO_BUFFER) then
1973+
HistoryImplType::value_type_v v(<%numAlgvars(modelInfo)%>+<%numInOutvars(modelInfo)%>+<%numAliasvars(modelInfo)%>+<%numStatevars(modelInfo)%>);
1974+
HistoryImplType::value_type_dv v2(<%numDerivativevars(modelInfo)%>);
1975+
<%writeoutput2(modelInfo)%>
1976+
<%if Flags.isSet(Flags.WRITE_TO_BUFFER) then
19781977
<<
19791978
HistoryImplType::value_type_r v3(<%numResidues(allEquations)%>);
19801979
<%(allEquations |> eqs => (eqs |> eq => writeoutputAlgloopsolvers(eq,simCode));separator="\n")%>
@@ -2071,13 +2070,13 @@ case SIMCODE(modelInfo=MODELINFO(__), extObjInfo=EXTOBJINFO(__)) then
20712070
<<
20722071
#include "ReduceDAE/Interfaces/IReduceDAE.h"
20732072
#include "DataExchange/Policies/BufferReaderWriter.h"
2074-
typedef HistoryImpl<BufferReaderWriter,<%numAlgvars(modelInfo)%>+<%numStatevars(modelInfo)%>,<%numDerivativevars(modelInfo)%>,<%numResidues(allEquations)%>> HistoryImplType;
2073+
typedef HistoryImpl<BufferReaderWriter,<%numAlgvars(modelInfo)%>+<%numInOutvars(modelInfo)%>+<%numAliasvars(modelInfo)%>+<%numStatevars(modelInfo)%>,<%numDerivativevars(modelInfo)%>,<%numResidues(allEquations)%>> HistoryImplType;
20752074
20762075
>>
20772076
else
20782077
<<
20792078
#include "DataExchange/Policies/TextfileWriter.h"
2080-
typedef HistoryImpl<TextFileWriter,<%numAlgvars(modelInfo)%>+<%numStatevars(modelInfo)%>,<%numDerivativevars(modelInfo)%>,0> HistoryImplType;
2079+
typedef HistoryImpl<TextFileWriter,<%numAlgvars(modelInfo)%>+<%numInOutvars(modelInfo)%>+<%numAliasvars(modelInfo)%>+<%numStatevars(modelInfo)%>,<%numDerivativevars(modelInfo)%>,0> HistoryImplType;
20812080
20822081
>>%>
20832082
/*****************************************************************************
@@ -3420,12 +3419,6 @@ case MODELINFO(vars=SIMVARS(__)) then
34203419
(vars.boolAlgVars |> SIMVAR(__) =>
34213420
' "<%crefStr(name)%>" '
34223421
;separator=","),
3423-
(vars.stateVars |> SIMVAR(__) =>
3424-
' "<%crefStr(name)%>" '
3425-
;separator=","),
3426-
(vars.derivativeVars |> SIMVAR(__) =>
3427-
' "<%crefStr(name)%>" '
3428-
;separator=","),
34293422
(vars.inputVars |> SIMVAR(__) =>
34303423
' "<%crefStr(name)%>" '
34313424
;separator=","),
@@ -3440,6 +3433,12 @@ case MODELINFO(vars=SIMVARS(__)) then
34403433
;separator=","),
34413434
(vars.boolAliasVars |> SIMVAR(__) =>
34423435
' "<%crefStr(name)%>" '
3436+
;separator=","),
3437+
(vars.stateVars |> SIMVAR(__) =>
3438+
' "<%crefStr(name)%>" '
3439+
;separator=","),
3440+
(vars.derivativeVars |> SIMVAR(__) =>
3441+
' "<%crefStr(name)%>" '
34433442
;separator=",")
34443443
}
34453444
;separator=","%>;
@@ -3502,6 +3501,24 @@ case MODELINFO(varInfo=VARINFO(__)) then
35023501
>>
35033502
end numAlgvars;
35043503
3504+
template numInOutvars(ModelInfo modelInfo)
3505+
::=
3506+
match modelInfo
3507+
case MODELINFO(varInfo=VARINFO(__)) then
3508+
<<
3509+
<%varInfo.numInVars%>+<%varInfo.numOutVars%>
3510+
>>
3511+
end numInOutvars;
3512+
3513+
template numAliasvars(ModelInfo modelInfo)
3514+
::=
3515+
match modelInfo
3516+
case MODELINFO(varInfo=VARINFO(__)) then
3517+
<<
3518+
<%varInfo.numAlgAliasVars%>+<%varInfo.numIntAliasVars%>+<%varInfo.numBoolAliasVars%>
3519+
>>
3520+
end numAliasvars;
3521+
35053522
template numAlgvar(ModelInfo modelInfo)
35063523
::=
35073524
match modelInfo
@@ -3529,6 +3546,51 @@ case MODELINFO(varInfo=VARINFO(__)) then
35293546
>>
35303547
end numBoolAlgvar;
35313548
3549+
template numInputvar(ModelInfo modelInfo)
3550+
::=
3551+
match modelInfo
3552+
case MODELINFO(varInfo=VARINFO(__)) then
3553+
<<
3554+
<%varInfo.numInVars%>
3555+
>>
3556+
end numInputvar;
3557+
3558+
template numOutputvar(ModelInfo modelInfo)
3559+
::=
3560+
match modelInfo
3561+
case MODELINFO(varInfo=VARINFO(__)) then
3562+
<<
3563+
<%varInfo.numOutVars%>
3564+
>>
3565+
end numOutputvar;
3566+
3567+
template numAliasvar(ModelInfo modelInfo)
3568+
::=
3569+
match modelInfo
3570+
case MODELINFO(varInfo=VARINFO(__)) then
3571+
<<
3572+
<%varInfo.numAlgAliasVars%>
3573+
>>
3574+
end numAliasvar;
3575+
3576+
template numIntAliasvar(ModelInfo modelInfo)
3577+
::=
3578+
match modelInfo
3579+
case MODELINFO(varInfo=VARINFO(__)) then
3580+
<<
3581+
<%varInfo.numIntAliasVars%>
3582+
>>
3583+
end numIntAliasvar;
3584+
3585+
template numBoolAliasvar(ModelInfo modelInfo)
3586+
::=
3587+
match modelInfo
3588+
case MODELINFO(varInfo=VARINFO(__)) then
3589+
<<
3590+
<%varInfo.numBoolAliasVars%>
3591+
>>
3592+
end numBoolAliasvar;
3593+
35323594
template numDerivativevars(ModelInfo modelInfo)
35333595
::=
35343596
match modelInfo
@@ -3538,6 +3600,15 @@ case MODELINFO(varInfo=VARINFO(__)) then
35383600
>>
35393601
end numDerivativevars;
35403602
3603+
template getAliasVar(AliasVariable aliasvar)
3604+
"Returns the alias Attribute of ScalarVariable."
3605+
::=
3606+
match aliasvar
3607+
case NOALIAS(__) then 'noAlias'
3608+
case ALIAS(__) then '<%cref(varName)%>'
3609+
case NEGATEDALIAS(__) then '-<%cref(varName)%>'
3610+
else 'noAlias'
3611+
end getAliasVar;
35413612
35423613
template writeoutput2(ModelInfo modelInfo)
35433614
@@ -3547,13 +3618,29 @@ case MODELINFO(vars=SIMVARS(__)) then
35473618
35483619
35493620
<<
3621+
const int algVarsStart = 0;
3622+
const int intAlgVarsStart = algVarsStart + <%numAlgvar(modelInfo)%>;
3623+
const int boolAlgVarsStart = intAlgVarsStart + <%numIntAlgvar(modelInfo)%>;
3624+
const int inputVarsStart = boolAlgVarsStart + <%numBoolAlgvar(modelInfo)%>;
3625+
const int outputVarsStart = inputVarsStart + <%numInputvar(modelInfo)%>;
3626+
const int aliasVarsStart = outputVarsStart + <%numOutputvar(modelInfo)%>;
3627+
const int intAliasVarsStart = aliasVarsStart + <%numAliasvar(modelInfo)%>;
3628+
const int boolAliasVarsStart = intAliasVarsStart + <%numIntAliasvar(modelInfo)%>;
3629+
const int stateVarsStart = boolAliasVarsStart + <%numBoolAliasvar(modelInfo)%>;
3630+
3631+
<%vars.algVars |> SIMVAR(__) hasindex i0 =>'v(algVarsStart+<%i0%>)=<%cref(name)%>;'%>
3632+
<%vars.intAlgVars |> SIMVAR(__) hasindex i1 =>'v(intAlgVarsStart+<%i1%>)=<%cref(name)%>;'%>
3633+
<%vars.boolAlgVars |> SIMVAR(__) hasindex i2 =>'v(boolAlgVarsStart+<%i2%>)=<%cref(name)%>;'%>
3634+
3635+
<%vars.inputVars |> SIMVAR(__) hasindex i3 =>'v(inputVarsStart+<%i3%>)=<%cref(name)%>;'%>
3636+
<%vars.outputVars |> SIMVAR(__) hasindex i4 =>'v(outputVarsStart+<%i4%>)=<%cref(name)%>;'%>
35503637
3551-
<%vars.algVars |> SIMVAR(__) hasindex i0 =>'v(<%i0%>)=<%cref(name)%>;'%>
3552-
<%vars.intAlgVars |> SIMVAR(__) hasindex i1 =>'v(<%i1%>+<%numAlgvar(modelInfo)%>)=<%cref(name)%>;'%>
3553-
<%vars.boolAlgVars |> SIMVAR(__)hasindex i2 =>'v(<%i2%>+ <%numAlgvar(modelInfo)%> +<%numIntAlgvar(modelInfo)%>)=<%cref(name)%>;'%>
3554-
<%(vars.stateVars |> SIMVAR(__) hasindex i3 =>' v(<%i3%> +<%numAlgvar(modelInfo)%> +<%numIntAlgvar(modelInfo)%> +<%numBoolAlgvar(modelInfo)%>)=__z[<%index%>]; ')%>
3555-
<%(vars.derivativeVars |> SIMVAR(__) hasindex i4 =>' v2(<%i4%>)=__zDot[<%index%>]; ')%>
3556-
3638+
<%vars.aliasVars |> SIMVAR(__) hasindex i5 =>'v(aliasVarsStart+<%i5%>)=<%getAliasVar(aliasvar)%>;'%>
3639+
<%vars.intAliasVars |> SIMVAR(__) hasindex i6 =>'v(intAliasVarsStart+<%i6%>)=<%getAliasVar(aliasvar)%>;'%>
3640+
<%vars.boolAliasVars |> SIMVAR(__) hasindex i7 =>'v(boolAliasVarsStart+<%i7%>)=<%getAliasVar(aliasvar)%>;'%>
3641+
3642+
<%(vars.stateVars |> SIMVAR(__) hasindex i8 =>'v(stateVarsStart+<%i8%>)=__z[<%index%>]; ')%>
3643+
<%(vars.derivativeVars |> SIMVAR(__) hasindex i9 =>'v2(<%i9%>)=__zDot[<%index%>]; ')%>
35573644
>>
35583645
end writeoutput2;
35593646

0 commit comments

Comments
 (0)