Skip to content

Commit

Permalink
- bugfix fmu
Browse files Browse the repository at this point in the history
- check sim_result before calling
- clean object files in fmu.makefile

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@9679 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Jens Frenkel committed Aug 24, 2011
1 parent a8b3ec8 commit b036421
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 28 deletions.
9 changes: 5 additions & 4 deletions Compiler/susan_codegen/SimCode/SimCodeFMU.tpl
Expand Up @@ -377,6 +377,7 @@ case SIMCODE(__) then
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include "modelica.h"
#include "<%fileNamePrefix%>_functions.h"
#include "simulation_init.h"
#include "fmiModelFunctions.h"
Expand Down Expand Up @@ -879,7 +880,7 @@ match platform
<%\t%> mv modelDescription.xml <%fileNamePrefix%>/modelDescription.xml
<%\t%> cd <%fileNamePrefix%>; zip -r <%fileNamePrefix%>.fmu *

<%fileNamePrefix%>.dll: <%fileNamePrefix%>_FMU.o <%fileNamePrefix%>.o <%fileNamePrefix%>_records.o
<%fileNamePrefix%>.dll: clean <%fileNamePrefix%>_FMU.o <%fileNamePrefix%>.o <%fileNamePrefix%>_records.o
<%\t%> $(CXX) -shared -I. -o <%fileNamePrefix%>.dll <%fileNamePrefix%>_FMU.o <%fileNamePrefix%>.o <%fileNamePrefix%>_records.o $(CPPFLAGS) <%dirExtra%> <%libsPos1%> <%libsPos2%> $(CFLAGS) $(LDFLAGS) -linteractive $(SENDDATALIBS) <%match System.os() case "OSX" then "-lf2c" else "-Wl,-Bstatic -lf2c -Wl,-Bdynamic"%> -Wl,--kill-at

<%\t%> mkdir -p <%fileNamePrefix%>
Expand All @@ -890,8 +891,8 @@ match platform
case "LINUX"
case "Unix" then
<<
<%fileNamePrefix%>: clean $(MAINOBJ) <%fileNamePrefix%>_records.o
<%\t%> $(CXX) -shared -I. -o <%fileNamePrefix%>$(DLLEXT) $(MAINOBJ) <%fileNamePrefix%>_records.o $(CPPFLAGS) <%dirExtra%> <%libsPos1%> <%libsPos2%> $(CFLAGS) $(SENDDATALIBS) $(LDFLAGS) <%match System.os() case "OSX" then "-lf2c" else "-Wl,-Bstatic -lf2c -Wl,-Bdynamic"%>
<%fileNamePrefix%>_FMU: clean <%fileNamePrefix%>_FMU.o <%fileNamePrefix%>.o <%fileNamePrefix%>_records.o
<%\t%> $(CXX) -shared -I. -o <%fileNamePrefix%>$(DLLEXT) <%fileNamePrefix%>_FMU.o <%fileNamePrefix%>.o <%fileNamePrefix%>_records.o $(CPPFLAGS) <%dirExtra%> <%libsPos1%> <%libsPos2%> $(CFLAGS) $(SENDDATALIBS) $(LDFLAGS) <%match System.os() case "OSX" then "-lf2c" else "-Wl,-Bstatic -lf2c -Wl,-Bdynamic"%>

<%\t%> mkdir -p <%fileNamePrefix%>
<%\t%> mkdir -p <%fileNamePrefix%>/binaries
Expand Down Expand Up @@ -955,7 +956,7 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__), simula
<%\t%> @mv $@.tmp $@
$(MAINOBJ): $(MAINFILE) <%fileNamePrefix%>.c <%fileNamePrefix%>_functions.c <%fileNamePrefix%>_functions.h
clean:
<%\t%> @rm -f <%fileNamePrefix%>_records.o $(MAINOBJ)
<%\t%> @rm -f <%fileNamePrefix%>_records.o $(MAINOBJ) <%fileNamePrefix%>_FMU.o <%fileNamePrefix%>.o
>>
end fmuMakefile;

Expand Down
8 changes: 1 addition & 7 deletions c_runtime/fmu_model_interface.c
Expand Up @@ -118,7 +118,7 @@ fmiComponent fmiInstantiateModel(fmiString instanceName, fmiString GUID,
}
comp->time = &globalData->timeValue;
setLocalData(globalData);
sim_verbose = 0;//comp->loggingOn?64:0;
sim_verbose = comp->loggingOn?64:0;
sim_noemit = 0;
jac_flag = 0;
num_jac_flag = 0;
Expand Down Expand Up @@ -602,12 +602,6 @@ fmiStatus fmiInitialize(fmiComponent c, fmiBoolean toleranceControlled, fmiReal
"fmiInitialize: main_initialize failed");
return fmiError;
}
else
{
comp->functions.logger(c, comp->instanceName, fmiError, "log",
"fmiInitialize: fmiInitialize failed!");
return fmiError;
}
SaveZeroCrossings();
saveall();

Expand Down
16 changes: 8 additions & 8 deletions c_runtime/simulation_events.cpp
Expand Up @@ -716,7 +716,7 @@ EventHandle(int flag)
functionAliasEquations();
if (sim_verbose >= LOG_EVENTS)
{
sim_result->emit();
if (sim_result) sim_result->emit();
}
while (needToIterate || checkForDiscreteChanges())
{
Expand All @@ -735,7 +735,7 @@ EventHandle(int flag)
functionAliasEquations();
if (sim_verbose >= LOG_EVENTS)
{
sim_result->emit();
if (sim_result) sim_result->emit();
}
IterationNum++;
if (IterationNum > IterationMax)
Expand Down Expand Up @@ -763,7 +763,7 @@ EventHandle(int flag)
functionDAE(&needToIterate);
if (sim_verbose >= LOG_EVENTS)
{
sim_result->emit();
if (sim_result) sim_result->emit();
}
while (needToIterate || checkForDiscreteChanges())
{
Expand All @@ -781,7 +781,7 @@ EventHandle(int flag)
functionDAE(&needToIterate);
if (sim_verbose >= LOG_EVENTS)
{
sim_result->emit();
if (sim_result) sim_result->emit();
}
IterationNum++;
if (IterationNum > IterationMax)
Expand All @@ -792,15 +792,15 @@ EventHandle(int flag)

}
saveall();
sim_result->emit();
if (sim_result) sim_result->emit();

//Activate sample and evaluate again
activateSampleEvents();

functionDAE(&needToIterate);
if (sim_verbose >= LOG_EVENTS)
{
sim_result->emit();
if (sim_result) sim_result->emit();
}
while (needToIterate || checkForDiscreteChanges())
{
Expand All @@ -818,7 +818,7 @@ EventHandle(int flag)
functionDAE(&needToIterate);
if (sim_verbose >= LOG_EVENTS)
{
sim_result->emit();
if (sim_result) sim_result->emit();
}
IterationNum++;
if (IterationNum > IterationMax)
Expand Down Expand Up @@ -955,7 +955,7 @@ FindRoot(double *EventTime)
functionODE();
functionAlgebraics();
saveall();
sim_result->emit();
if (sim_result) sim_result->emit();

//determined system at t_e + epsilon
globalData->timeValue = time_right;
Expand Down
8 changes: 4 additions & 4 deletions c_runtime/simulation_init.cpp
Expand Up @@ -287,7 +287,7 @@ main_initialize(const char* method)

if (sim_verbose >= LOG_SOLVER)
{
sim_result->emit();
if (sim_result) sim_result->emit();
}
/* call initialize function and save start values */
saveall();
Expand All @@ -303,7 +303,7 @@ main_initialize(const char* method)
saveall();
if (sim_verbose >= LOG_SOLVER)
{
sim_result->emit();
if (sim_result) sim_result->emit();
}
// start with the real initialization
globalData->init = 1;
Expand Down Expand Up @@ -336,15 +336,15 @@ main_initialize(const char* method)

if (sim_verbose >= LOG_SOLVER)
{
sim_result->emit();
if (sim_result) sim_result->emit();
}

update_DAEsystem();
SaveZeroCrossings();
saveall();
if (sim_verbose >= LOG_SOLVER)
{
sim_result->emit();
if (sim_result) sim_result->emit();
}
storeExtrapolationDataEvent();
globalData->init = 0;
Expand Down
10 changes: 5 additions & 5 deletions c_runtime/solver_main.cpp
Expand Up @@ -379,7 +379,7 @@ solver_main(int argc, char** argv, double &start, double &stop, double &step,
saveall();
if (sim_verbose >= LOG_SOLVER)
{
sim_result->emit();
if (sim_result) sim_result->emit();
}

//Activate sample and evaluate again
Expand All @@ -396,7 +396,7 @@ solver_main(int argc, char** argv, double &start, double &stop, double &step,
sampleEvent_actived = 0;
}
saveall();
sim_result->emit();
if (sim_result) sim_result->emit();
storeExtrapolationDataEvent();
}
catch (TerminateSimulationException &e)
Expand All @@ -418,7 +418,7 @@ solver_main(int argc, char** argv, double &start, double &stop, double &step,
}
globalData->terminal = 1;
update_DAEsystem();
sim_result->emit();
if (sim_result) sim_result->emit();
globalData->terminal = 0;
return 0;
}
Expand Down Expand Up @@ -562,7 +562,7 @@ solver_main(int argc, char** argv, double &start, double &stop, double &step,
}
}
SaveZeroCrossings();
sim_result->emit();
if (sim_result) sim_result->emit();

if (reset == true)
{
Expand Down Expand Up @@ -597,7 +597,7 @@ solver_main(int argc, char** argv, double &start, double &stop, double &step,
if (globalData->timeValue >= stop){
globalData->terminal = 1;
update_DAEsystem();
sim_result->emit();
if (sim_result) sim_result->emit();
globalData->terminal = 0;
}

Expand Down

0 comments on commit b036421

Please sign in to comment.