@@ -60,7 +60,6 @@ template translateModel(SimCode simCode)
6060 let _ = match boolOr(Flags.isSet(Flags.HARDCODED_START_VALUES), Flags.isSet(Flags.GEN_DEBUG_SYMBOLS))
6161 case true then
6262 let()= textFile(simulationInitParameterCppFile(simCode, &extraFuncsInit, &extraFuncsDeclInit, '<%className%>Initialize', stateDerVectorName, false),'OMCpp<%fileNamePrefix%>InitializeParameter.cpp')
63- let()= textFile(simulationInitAliasVarsCppFile(simCode, &extraFuncsInit, &extraFuncsDeclInit, '<%className%>Initialize', stateDerVectorName, false),'OMCpp<%fileNamePrefix%>InitializeAliasVars.cpp')
6463 let()= textFile(simulationInitAlgVarsCppFile(simCode , &extraFuncsInit , &extraFuncsDeclInit, '<%className%>Initialize', stateDerVectorName, false),'OMCpp<%fileNamePrefix%>InitializeAlgVars.cpp')
6564 ""
6665 else
@@ -368,16 +367,13 @@ template getPreVarsCount(ModelInfo modelInfo)
368367 match modelInfo
369368 case MODELINFO(varInfo=VARINFO(__)) then
370369 let allVarCount = intAdd(stringInt(numRealvars(modelInfo)), intAdd(stringInt(numIntvars(modelInfo)), stringInt(numBoolvars(modelInfo))))
371- //let allVarCount = intAdd(intAdd(intAdd(varInfo.numAlgAliasVars,varInfo.numAlgVars),varInfo.numDiscreteReal ), intAdd(intAdd(varInfo.numIntAliasVars,varInfo.numIntAlgVars), intAdd(varInfo.numBoolAlgVars,intAdd(varInfo.numBoolAliasVars, intMul(2,varInfo.numStateVars)))))
372370 <<
373371 <%allVarCount%>
374372 >>
375373 end match
376374end getPreVarsCount;
377375
378376
379-
380-
381377template simulationMixedSystemHeaderFile(SimCode simCode ,Text& extraFuncs,Text& extraFuncsDecl,Text extraFuncsNamespace)
382378 "Generates code for header file for simulation target."
383379::=
@@ -537,11 +533,14 @@ case SIMCODE(modelInfo = MODELINFO(__)) then
537533 //This is necessary to prevent linker errors that occur with GCC 4.4 if a complex type is not used in the code and contains arrays
538534 <%dummyTypeElemCreation%>
539535 }
536+
540537 IMixedSystem* <%lastIdentOfPath(modelInfo.name)%>Initialize::clone()
541538 {
542539 return new <%lastIdentOfPath(modelInfo.name)%>Initialize(*this);
543540 }
541+
544542 <%getIntialStatus(simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace)%>
543+
545544 <%setIntialStatus(simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace)%>
546545
547546 <%init(simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation, complexStartExpressions)%>
@@ -574,52 +573,6 @@ match simCode
574573 >>
575574end simulationInitParameterCppFile;
576575
577- template simulationInitAliasVarsCppFile(SimCode simCode ,Text& extraFuncs,Text& extraFuncsDecl,Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
578- "Generates code for main cpp file for simulation target."
579- ::=
580- match simCode
581- case SIMCODE(__) then
582- match modelInfo
583- case modelInfo as MODELINFO(vars=SIMVARS(__)) then
584- let &varDecls8 = buffer "" /*BUFD*/
585- let &varDecls9 = buffer "" /*BUFD*/
586- let &varDecls10 = buffer "" /*BUFD*/
587- let functionPrefix = if Flags.isSet(Flags.HARDCODED_START_VALUES) then "initialize" else "check"
588- let init7 = ""//initAliasValstWithSplit("Real", '<%lastIdentOfPath(modelInfo.name)%>Initialize::initializeAliasVars', vars.aliasVars, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, contextOther, stateDerVectorName, useFlatArrayNotation)
589- let init8 = ""//initAliasValst(varDecls8, "Int", vars.intAliasVars, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, contextOther, stateDerVectorName, useFlatArrayNotation)
590- let init9 = ""//initValst(varDecls9, "Bool",vars.boolAliasVars, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, contextOther, stateDerVectorName, useFlatArrayNotation)
591- let init10 = ""//initStringAliasValstWithSplit("String", '<%lastIdentOfPath(modelInfo.name)%>Initialize::<%functionPrefix%>StringAliasVars', vars.stringAliasVars, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, contextOther, stateDerVectorName, useFlatArrayNotation)
592-
593- <<
594- <%init7%>
595- /*string alias*/
596- <%init10%>
597-
598- void <%lastIdentOfPath(modelInfo.name)%>Initialize::<%functionPrefix%>AliasVars()
599- {
600- }
601-
602- void <%lastIdentOfPath(modelInfo.name)%>Initialize::<%functionPrefix%>IntAliasVars()
603- {
604- <%varDecls8%>
605- <%init8%>
606- }
607-
608- void <%lastIdentOfPath(modelInfo.name)%>Initialize::<%functionPrefix%>BoolAliasVars()
609- {
610- <%varDecls9%>
611- <%init9%>
612- }
613-
614- void <%lastIdentOfPath(modelInfo.name)%>Initialize::<%functionPrefix%>StringAliasVars()
615- {
616- <%varDecls10%>
617- <%init10%>
618- }
619- >>
620- end simulationInitAliasVarsCppFile;
621-
622-
623576template simulationInitAlgVarsCppFile(SimCode simCode ,Text& extraFuncs,Text& extraFuncsDecl,Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
624577 "Generates code for main cpp file for simulation target."
625578::=
@@ -2790,7 +2743,6 @@ template calcHelperMainfile(SimCode simCode ,Text& extraFuncs,Text& extraFuncsDe
27902743 <<
27912744 #include "OMCpp<%fileNamePrefix%>InitializeParameter.cpp"
27922745 #include "OMCpp<%fileNamePrefix%>InitializeAlgVars.cpp"
2793- #include "OMCpp<%fileNamePrefix%>InitializeAliasVars.cpp"
27942746 >>
27952747 %>
27962748 #include "OMCpp<%fileNamePrefix%>InitializeExtVars.cpp"
@@ -5891,11 +5843,11 @@ case SIMCODE(modelInfo = MODELINFO(__),makefileParams = MAKEFILE_PARAMS(__)) th
58915843 initializeAlgloopSolverVariables();
58925844 //init alg loop vars
58935845 <%initAlgloopvars%>
5894-
58955846 <%lastIdentOfPath(modelInfo.name)%>WriteOutput::initialize();
58965847 <%lastIdentOfPath(modelInfo.name)%>Jacobian::initialize();
58975848 <%lastIdentOfPath(modelInfo.name)%>Jacobian::initializeColoredJacobianA();
58985849 }
5850+
58995851 <%if(boolAnd(boolNot(Flags.isSet(Flags.HARDCODED_START_VALUES)), Flags.isSet(Flags.GEN_DEBUG_SYMBOLS))) then
59005852 <<
59015853 void <%lastIdentOfPath(modelInfo.name)%>Initialize::checkParameters()
@@ -5914,15 +5866,12 @@ case SIMCODE(modelInfo = MODELINFO(__),makefileParams = MAKEFILE_PARAMS(__)) th
59145866 checkIntAlgVars();
59155867 checkBoolAlgVars();
59165868 checkStringAlgVars();
5917- checkAliasVars();
5918- checkIntAliasVars();
5919- checkBoolAliasVars();
5920- checkStringAliasVars();
59215869 //checkStateVars();
59225870 //checkDerVars();
59235871 }
59245872 >>
59255873 %>
5874+
59265875 void <%lastIdentOfPath(modelInfo.name)%>Initialize::initializeFreeVariables()
59275876 {
59285877 #if !defined(FMU_BUILD)
@@ -5948,7 +5897,6 @@ case SIMCODE(modelInfo = MODELINFO(__),makefileParams = MAKEFILE_PARAMS(__)) th
59485897 initializeDiscreteAlgVars();
59495898 initializeIntAlgVars();
59505899 initializeBoolAlgVars();
5951- initializeStringAliasVars();
59525900 initializeStateVars();
59535901 initializeDerVars();
59545902 >>
@@ -9558,60 +9506,6 @@ match c
95589506end isOutput;
95599507
95609508
9561- template initAliasValstWithSplit(Text type, Text funcNamePrefix, list<SimVar> varsLst, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9562- Text extraFuncsNamespace, Context context, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation) ::=
9563- let &funcCalls = buffer "" /*BUFD*/
9564- let funcs = List.partition(varsLst, 100) |> ls hasindex idx =>
9565- let &varDecls = buffer "" /*BUFD*/
9566- let &funcCalls += '<%funcNamePrefix%>_<%idx%>();'
9567- let init = initAliasValst(varDecls, type, ls, simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, context, stateDerVectorName, useFlatArrayNotation)
9568- <<
9569- void <%funcNamePrefix%>_<%idx%>()
9570- {
9571-
9572- <%varDecls%>
9573- <%init%>
9574- }
9575- >>
9576- ;separator="\n"
9577-
9578- <<
9579- <%funcs%>
9580-
9581- void <%funcNamePrefix%>()
9582- {
9583- <%funcCalls%>
9584- }
9585- >>
9586- end initAliasValstWithSplit;
9587-
9588-
9589- template initStringAliasValstWithSplit(Text type, Text funcNamePrefix, list<SimVar> varsLst, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9590- Text extraFuncsNamespace, Context context, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation) ::=
9591- let &funcCalls = buffer "" /*BUFD*/
9592- let funcs = List.partition(varsLst, 100) |> ls hasindex idx =>
9593- let &varDecls = buffer "" /*BUFD*/
9594- let &funcCalls += '<%funcNamePrefix%>_<%idx%>();'
9595- let init = initStringAliasValst(varDecls, type, ls, simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, context, stateDerVectorName, useFlatArrayNotation)
9596- <<
9597- void <%funcNamePrefix%>_<%idx%>()
9598- {
9599- <%varDecls%>
9600- <%init%>
9601- }
9602- >>
9603- ;separator="\n"
9604-
9605- <<
9606- <%funcs%>
9607-
9608- void <%funcNamePrefix%>()
9609- {
9610- <%funcCalls%>
9611- }
9612- >>
9613- end initStringAliasValstWithSplit;
9614-
96159509template initValstWithSplit(Text &varDecls, Text type, Text funcNamePrefix, list<SimVar> varsLst, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
96169510 Text extraFuncsNamespace, Context context, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
96179511::=
@@ -9686,75 +9580,6 @@ template initValst(Text &varDecls, Text type, list<SimVar> varsLst, SimCode simC
96869580end initValst;
96879581
96889582
9689- template initAliasValst(Text &varDecls, Text type, list<SimVar> varsLst, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl, Text extraFuncsNamespace,
9690- Context context, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation) ::=
9691- varsLst |> sv as SIMVAR(__) =>
9692- let &preExp = buffer ""
9693- let &varDeclsCref = buffer ""
9694- let initval = getAliasInitVal(sv.aliasvar, contextOther, &preExp, &varDecls, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
9695- <<
9696- <%preExp%>
9697- SystemDefaultImplementation::set<%type%>StartValue(<%getAliasCRef(sv.aliasvar, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, context, stateDerVectorName, useFlatArrayNotation)%>, <%initval%>);
9698- >>
9699- ;separator="\n"
9700- end initAliasValst;
9701-
9702-
9703- template initStringAliasValst(Text &varDecls, Text type, list<SimVar> varsLst, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl, Text extraFuncsNamespace,
9704- Context context, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
9705- ::=
9706- varsLst |> sv as SIMVAR(__) =>
9707- let &preExp = buffer ""
9708- let initval = getAliasInitVal(sv.aliasvar, contextOther, &preExp, &varDecls, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
9709- '<%preExp%>
9710- SystemDefaultImplementation::set<%type%>StartValue(<%cref1(sv.name,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace,context,varDecls, stateDerVectorName, useFlatArrayNotation)%>,<%initval%>);'
9711- ;separator="\n"
9712- end initStringAliasValst;
9713-
9714-
9715- template getAliasInitVal(AliasVariable aliasvar, Context context, Text &preExp, Text &varDecls, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9716- Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
9717- "Returns the alias Attribute of ScalarVariable."
9718- ::=
9719- match aliasvar
9720- case ALIAS(__)
9721- case NEGATEDALIAS(__) then getAliasInitVal2(varName, context, preExp, varDecls, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
9722- else 'noAlias'
9723-
9724- end getAliasInitVal;
9725-
9726- template getAliasInitVal2(ComponentRef aliascref, Context context, Text &preExp, Text &varDecls, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9727- Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
9728- "Returns the alias Attribute of ScalarVariable."
9729- ::=
9730- cref2simvar(aliascref, simCode ) |> var as SIMVAR(__)=>
9731- match initialValue
9732- case SOME(v) then
9733- daeExp(v, context, &preExp, &varDecls,simCode , &extraFuncs , &extraFuncsDecl, extraFuncsNamespace, stateDerVectorName, useFlatArrayNotation)
9734- else
9735- startValue(var.type_)
9736- end getAliasInitVal2;
9737-
9738-
9739- template getVarFromAliasName(ComponentRef varname, Context context, Text &preExp, Text &varDecls, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9740- Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
9741- "Returns the alias Attribute of ScalarVariable."
9742- ::=
9743- cref2simvar(varname, simCode ) |> var as SIMVAR(__)=>
9744- getVarFromAliasName2(var.aliasvar,varname,context, &preExp, &varDecls, simCode, extraFuncs, extraFuncsDecl, extraFuncsNamespace, stateDerVectorName,useFlatArrayNotation)
9745- end getVarFromAliasName;
9746-
9747-
9748- template getVarFromAliasName2(AliasVariable aliasvar,ComponentRef origvarname, Context context, Text &preExp, Text &varDecls, SimCode simCode, Text& extraFuncs, Text& extraFuncsDecl,
9749- Text extraFuncsNamespace, Text stateDerVectorName /*=__zDot*/, Boolean useFlatArrayNotation)
9750- "Returns the alias Attribute of ScalarVariable."
9751- ::=
9752- match aliasvar
9753- case NOALIAS(__) then '<%cref1(origvarname, simCode ,&extraFuncs ,&extraFuncsDecl, extraFuncsNamespace, context, varDecls, stateDerVectorName, useFlatArrayNotation)%>'
9754- case ALIAS(__)
9755- case NEGATEDALIAS(__) then '<%cref1(varName, simCode, &extraFuncs, &extraFuncsDecl, extraFuncsNamespace, context, varDecls, stateDerVectorName, useFlatArrayNotation)%>'
9756- end getVarFromAliasName2;
9757-
97589583template startValue(DAE.Type ty)
97599584::=
97609585 match ty
0 commit comments