Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing equation at extended FMU generation #53

Open
cbermperi opened this issue Nov 7, 2022 · 2 comments
Open

Missing equation at extended FMU generation #53

cbermperi opened this issue Nov 7, 2022 · 2 comments
Assignees

Comments

@cbermperi
Copy link
Contributor

cbermperi commented Nov 7, 2022

In the following the used commands, the output of the log-file and the error are listed:

julia> using NonLinearSystemNeuralNetworkFMU

julia> workdir = joinpath(pwd(), "temp")
"/home/cbermperi/workdir/NonLinearSystemNeuralNetworkFMU.jl/temp"

julia> modelName = "EngineV6"
"EngineV6"

julia> moFiles=["modelEngineV6.mo"]
1-element Vector{String}:
 "modelEngineV6.mo"

julia> (csvFiles, fmu, profilingInfo) = main(modelName, moFiles, workdir=workdir, reuseArtifacts=true, N=1)
[ Info: Profile EngineV6
[ Info: Slowest eq 5508: ncall: 68906, time: 40.927077312, maxTime: 0.102854009, fraction: 0.15156661116110612
[ Info: Find min-max values of used varaibles
[ Info: Generate default FMU
[ Info: Generate extended FMU
[ Info: Compilation log file: /home/cbermperi/workdir/NonLinearSystemNeuralNetworkFMU.jl/temp/temp/EngineV6.interface_compile.log
┌ Warning: Environment variable ORT_DIR not set.
└ @ NonLinearSystemNeuralNetworkFMU ~/workdir/NonLinearSystemNeuralNetworkFMU.jl/src/genFMUs.jl:209
[ Info: Error caught, dumping log file /home/cbermperi/workdir/NonLinearSystemNeuralNetworkFMU.jl/temp/temp/EngineV6.interface_compile.log
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- FMI2 include directory: /home/cbermperi/workdir/NonLinearSystemNeuralNetworkFMU.jl/FMI-Standard-2.0.3/headers
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Building for FMI platform linux64
-- Configuring done
-- Generating done
-- Build files have been written to: /home/cbermperi/workdir/NonLinearSystemNeuralNetworkFMU.jl/temp/temp/FMU/sources/build_cmake
[  0%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dgemm.c.o
[  1%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dger.c.o
[  2%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dgesv.c.o
[  3%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dgetf2.c.o
[  4%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dgetrf.c.o
[  5%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dgetrs.c.o
[  6%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dlamch.c.o
[  7%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dlaswp.c.o
[  8%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dogleg_.c.o
[  9%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dpmpar_.c.o
[ 10%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dscal.c.o
[ 11%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dswap.c.o
[ 11%] Building C object CMakeFiles/EngineV6.dir/external_solvers/dtrsm.c.o
[ 12%] Building C object CMakeFiles/EngineV6.dir/external_solvers/enorm_.c.o
[ 13%] Building C object CMakeFiles/EngineV6.dir/external_solvers/hybrj_.c.o
[ 14%] Building C object CMakeFiles/EngineV6.dir/external_solvers/i_nint.c.o
[ 15%] Building C object CMakeFiles/EngineV6.dir/external_solvers/idamax.c.o
[ 16%] Building C object CMakeFiles/EngineV6.dir/external_solvers/ieeeck.c.o
[ 17%] Building C object CMakeFiles/EngineV6.dir/external_solvers/ilaenv.c.o
[ 18%] Building C object CMakeFiles/EngineV6.dir/external_solvers/iparmq.c.o
[ 19%] Building C object CMakeFiles/EngineV6.dir/external_solvers/lsame.c.o
[ 20%] Building C object CMakeFiles/EngineV6.dir/external_solvers/pow_di.c.o
[ 21%] Building C object CMakeFiles/EngineV6.dir/external_solvers/qform_.c.o
[ 22%] Building C object CMakeFiles/EngineV6.dir/external_solvers/qrfac_.c.o
[ 22%] Building C object CMakeFiles/EngineV6.dir/external_solvers/r1mpyq_.c.o
[ 23%] Building C object CMakeFiles/EngineV6.dir/external_solvers/r1updt_.c.o
[ 24%] Building C object CMakeFiles/EngineV6.dir/external_solvers/s_cmp.c.o
[ 25%] Building C object CMakeFiles/EngineV6.dir/external_solvers/s_copy.c.o
[ 26%] Building C object CMakeFiles/EngineV6.dir/external_solvers/xerbla.c.o
[ 27%] Building C object CMakeFiles/EngineV6.dir/fmi-export/special_interface.c.o
[ 28%] Building C object CMakeFiles/EngineV6.dir/gc/memory_pool.c.o
[ 29%] Building C object CMakeFiles/EngineV6.dir/gc/omc_gc.c.o
[ 30%] Building C object CMakeFiles/EngineV6.dir/math-support/pivot.c.o
[ 31%] Building C object CMakeFiles/EngineV6.dir/meta/meta_modelica_catch.c.o
[ 32%] Building C object CMakeFiles/EngineV6.dir/simulation/omc_simulation_util.c.o
[ 33%] Building C object CMakeFiles/EngineV6.dir/simulation/options.c.o
[ 33%] Building C object CMakeFiles/EngineV6.dir/simulation/simulation_info_json.c.o
[ 34%] Building C object CMakeFiles/EngineV6.dir/simulation/simulation_omc_assert.c.o
[ 35%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/delay.c.o
[ 36%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/fmi_events.c.o
[ 37%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/initialization/initialization.c.o
[ 38%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/linearSolverLapack.c.o
[ 39%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/linearSolverTotalPivot.c.o
[ 40%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/linearSystem.c.o
[ 41%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/model_help.c.o
[ 42%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/nonlinearSolverHomotopy.c.o
[ 43%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/nonlinearSolverHybrd.c.o
[ 44%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/nonlinearSystem.c.o
[ 44%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/nonlinearValuesList.c.o
[ 45%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/omc_math.c.o
[ 46%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/spatialDistribution.c.o
[ 47%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/stateset.c.o
[ 48%] Building C object CMakeFiles/EngineV6.dir/simulation/solver/synchronous.c.o
[ 49%] Building C object CMakeFiles/EngineV6.dir/util/ModelicaUtilities.c.o
[ 50%] Building C object CMakeFiles/EngineV6.dir/util/base_array.c.o
[ 51%] Building C object CMakeFiles/EngineV6.dir/util/boolean_array.c.o
[ 52%] Building C object CMakeFiles/EngineV6.dir/util/context.c.o
[ 53%] Building C object CMakeFiles/EngineV6.dir/util/division.c.o
[ 54%] Building C object CMakeFiles/EngineV6.dir/util/doubleEndedList.c.o
[ 55%] Building C object CMakeFiles/EngineV6.dir/util/generic_array.c.o
[ 55%] Building C object CMakeFiles/EngineV6.dir/util/index_spec.c.o
[ 56%] Building C object CMakeFiles/EngineV6.dir/util/integer_array.c.o
[ 57%] Building C object CMakeFiles/EngineV6.dir/util/jacobian_util.c.o
[ 58%] Building C object CMakeFiles/EngineV6.dir/util/list.c.o
[ 59%] Building C object CMakeFiles/EngineV6.dir/util/modelica_string.c.o
[ 60%] Building C object CMakeFiles/EngineV6.dir/util/modelica_string_lit.c.o
[ 61%] Building C object CMakeFiles/EngineV6.dir/util/omc_error.c.o
[ 62%] Building C object CMakeFiles/EngineV6.dir/util/omc_file.c.o
[ 63%] Building C object CMakeFiles/EngineV6.dir/util/omc_init.c.o
[ 64%] Building C object CMakeFiles/EngineV6.dir/util/omc_mmap.c.o
[ 65%] Building C object CMakeFiles/EngineV6.dir/util/omc_msvc.c.o
[ 66%] Building C object CMakeFiles/EngineV6.dir/util/omc_numbers.c.o
[ 66%] Building C object CMakeFiles/EngineV6.dir/util/parallel_helper.c.o
[ 67%] Building C object CMakeFiles/EngineV6.dir/util/rational.c.o
[ 68%] Building C object CMakeFiles/EngineV6.dir/util/real_array.c.o
[ 69%] Building C object CMakeFiles/EngineV6.dir/util/ringbuffer.c.o
[ 70%] Building C object CMakeFiles/EngineV6.dir/util/simulation_options.c.o
[ 71%] Building C object CMakeFiles/EngineV6.dir/util/string_array.c.o
[ 72%] Building C object CMakeFiles/EngineV6.dir/util/utility.c.o
[ 73%] Building C object CMakeFiles/EngineV6.dir/util/varinfo.c.o
[ 74%] Building C object CMakeFiles/EngineV6.dir/EngineV6.c.o
[ 75%] Building C object CMakeFiles/EngineV6.dir/EngineV6_01exo.c.o
[ 76%] Building C object CMakeFiles/EngineV6.dir/EngineV6_02nls.c.o
[ 77%] Building C object CMakeFiles/EngineV6.dir/EngineV6_03lsy.c.o
[ 77%] Building C object CMakeFiles/EngineV6.dir/EngineV6_04set.c.o
[ 78%] Building C object CMakeFiles/EngineV6.dir/EngineV6_05evt.c.o
[ 79%] Building C object CMakeFiles/EngineV6.dir/EngineV6_06inz.c.o
[ 80%] Building C object CMakeFiles/EngineV6.dir/EngineV6_06inz_part0.c.o
[ 81%] Building C object CMakeFiles/EngineV6.dir/EngineV6_06inz_part1.c.o
[ 82%] Building C object CMakeFiles/EngineV6.dir/EngineV6_07dly.c.o
[ 83%] Building C object CMakeFiles/EngineV6.dir/EngineV6_08bnd.c.o
[ 84%] Building C object CMakeFiles/EngineV6.dir/EngineV6_08bnd_part2.c.o
[ 85%] Building C object CMakeFiles/EngineV6.dir/EngineV6_08bnd_part3.c.o
[ 86%] Building C object CMakeFiles/EngineV6.dir/EngineV6_08bnd_part4.c.o
[ 87%] Building C object CMakeFiles/EngineV6.dir/EngineV6_09alg.c.o
[ 88%] Building C object CMakeFiles/EngineV6.dir/EngineV6_10asr.c.o
[ 88%] Building C object CMakeFiles/EngineV6.dir/EngineV6_11mix.c.o
[ 89%] Building C object CMakeFiles/EngineV6.dir/EngineV6_12jac.c.o
[ 90%] Building C object CMakeFiles/EngineV6.dir/EngineV6_13opt.c.o
[ 91%] Building C object CMakeFiles/EngineV6.dir/EngineV6_14lnz.c.o
[ 92%] Building C object CMakeFiles/EngineV6.dir/EngineV6_15syn.c.o
[ 93%] Building C object CMakeFiles/EngineV6.dir/EngineV6_16dae.c.o
[ 94%] Building C object CMakeFiles/EngineV6.dir/EngineV6_17inl.c.o
[ 95%] Building C object CMakeFiles/EngineV6.dir/EngineV6_18spd.c.o
[ 96%] Building C object CMakeFiles/EngineV6.dir/EngineV6_FMU.c.o
[ 97%] Building C object CMakeFiles/EngineV6.dir/EngineV6_functions.c.o
[ 98%] Building C object CMakeFiles/EngineV6.dir/EngineV6_init_fmu.c.o
[ 99%] Building C object CMakeFiles/EngineV6.dir/EngineV6_records.c.o
[100%] Linking C shared library EngineV6.so
/usr/bin/ld: CMakeFiles/EngineV6.dir/fmi-export/special_interface.c.o: in function `myfmi2evaluateEq':
special_interface.c:(.text+0x480): undefined reference to `EngineV6_eqFunction_5432'
collect2: error: ld returned 1 exit status
gmake[2]: *** [CMakeFiles/EngineV6.dir/build.make:1809: EngineV6.so] Fehler 1
gmake[1]: *** [CMakeFiles/Makefile2:84: CMakeFiles/EngineV6.dir/all] Fehler 2
gmake: *** [Makefile:136: all] Fehler 2

ERROR: failed process: Process(setenv(`cmake --build build_cmake/ --target install`; dir="/home/cbermperi/workdir/NonLinearSystemNeuralNetworkFMU.jl/temp/temp/FMU/sources"), ProcessExited(2)) [2]

Stacktrace:
  [1] pipeline_error
    @ ./process.jl:565 [inlined]
  [2] run(::Cmd; wait::Bool)
    @ Base ./process.jl:480
  [3] run
    @ ./process.jl:477 [inlined]
  [4] #omrun#19
    @ ~/workdir/NonLinearSystemNeuralNetworkFMU.jl/src/genFMUs.jl:28 [inlined]
  [5] (::NonLinearSystemNeuralNetworkFMU.var"#35#36"{String, String})()
    @ NonLinearSystemNeuralNetworkFMU ~/workdir/NonLinearSystemNeuralNetworkFMU.jl/src/genFMUs.jl:219
  [6] redirect_stdio(f::NonLinearSystemNeuralNetworkFMU.var"#35#36"{String, String}; stdin::Nothing, stderr::String, stdout::String)
    @ Base ./stream.jl:1408
  [7] compileFMU(fmuRootDir::String, modelname::String, workdir::String)
    @ NonLinearSystemNeuralNetworkFMU ~/workdir/NonLinearSystemNeuralNetworkFMU.jl/src/genFMUs.jl:216
  [8] addEqInterface2FMU(modelName::String, pathToFmu::String, eqIndices::Vector{Int64}; workingDir::String)
    @ NonLinearSystemNeuralNetworkFMU ~/workdir/NonLinearSystemNeuralNetworkFMU.jl/src/genFMUs.jl:269
  [9] main(modelName::String, moFiles::Vector{String}; workdir::String, reuseArtifacts::Bool, N::Int64)
    @ NonLinearSystemNeuralNetworkFMU ~/workdir/NonLinearSystemNeuralNetworkFMU.jl/src/main.jl:106
 [10] top-level scope
    @ REPL[16]:1
@AnHeuermann AnHeuermann self-assigned this Nov 7, 2022
@AnHeuermann
Copy link
Collaborator

Could reproduce the issue after fighting with my build environment for a few hours. I'll check and try to fix it tomorrow.

@AnHeuermann AnHeuermann changed the title Generating extended FMU for model EngineV6 wasn't succesful Missing equation at extended FMU generation Nov 8, 2022
@AnHeuermann
Copy link
Collaborator

Found the issue. Long story short. The C files from the original model are different to the C files from the FMU.
The indices for equations and variables are all different. I'm not totally sure if that is the only difference or if even the equations themself are different for FMU and normal C simulation.

I'll investigate, but that will take a while.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants