The OMSimulator project is a FMI-based co-simulation environment that supports ordinary (i.e., non-delayed) and TLM connections.
Pre-compiled binaries are available for Windows.
The latest documentation is avilable as pdf and html.
- Boost (system, filesystem)
- cmake
- Sphinx
- readline (if using Lua)
- 3rdParty subproject
- FMILibrary
- Lua
- PugiXML
- SUNDIALS CVODE
- SUNDIALS KINSOL
- CTPL
- gflags
- glog
- Ceres Solver
-
install libxml2-dev
sudo apt-get install libxml2-dev
-
configure OMSimulator
make config-3rdParty make config-OMSimulator
-
build OMSimulator
make OMSimulator -j4
-
setup OMDev
- Checkout OMDev (OpenModelica Development Environment) from OpenModelica/OMDev
- Follow the instructions in
OMDev/INSTALL.txt
-
configure OMSimulator
make config-3rdParty make config-OMSimulator
-
build OMSimulator
make OMSimulator -j4
The following versions of Visual Studio are supported:
- "VS14-Win64" -> "Visual Studio 14 2015 Win64"
- "VS14-Win32" -> "Visual Studio 14 2015"
- "VS15-Win64" -> "Visual Studio 15 2017 Win64"
It is not strictly required to install the full Visual Studio IDE. The batch scripts only require Visual C++ Build Tools.
-
install boost (VS14: 1.63, VS15: 1.64)
- Download and install precompiled boost libs, e.g. from this source
- Set environment variable
BOOST_ROOTto install path, e.g:BOOST_ROOT=C:\local\boost_1_64_0
-
configure OMSimulator
configWinVS.bat VS15-Win64
-
build OMSimulator
buildWinVS.bat VS15-Win64
OMSimulator.git is a superproject. Clone the project using:
MY_FORK=MyGitHubUserName ; git clone https://github.com/OpenModelica/OMSimulator.git --recursive && (cd OMSimulator && git remote set-url --push origin https://github.com/$MY_FORK/OMSimulator.git && git submodule foreach --recursive 'git remote set-url --push origin `git config --get remote.origin.url | sed s,^.*/,https://github.com/'$MY_FORK'/,`')If you are a developer and want to track the latest heads, use:
# After cloning
git submodule foreach --recursive "git checkout master"
# To update; you will need to merge each submodule, but your changes will remain
git submodule foreach --recursive "git pull"In order to push to the repository, you will push to your own fork of OMSimulator.git, OMSimulator-testsuite.git, etc. You will need to create a fork of each repository that you want to push to (by clicking the Fork button in the GitHub web interface).
Developers can trigger a Hudson job after creating a pull request to test the changes on different platforms.
OMSimulator includes an optional parameter optimization module. It is enabled by default. It can be disabled in order to speed up the compilation process or if it causes compilation problems. It is not supported when using MinGW (and automatically disabled in that case). It can be disabled by using the options CERES=OFF (disables building its dependencies) and OMSYSIDENT=OFF.
make config-3rdParty OMSYSIDENT=OFF
make config-OMSimulator OMSYSIDENT=OFF