View on Github

Dynaωo

Dynaωo is available on Linux and Windows. For MacOS users we recommend to use Docker. The latest release is Dynaωo v1.5.0 and could be retrieved using the following links:

Linux distribution Dynawo_Linux_v1.5.0.zip
Windows distribution (VS2019) Dynawo_Windows_v1.5.0.zip
Documentation DynawoDocumentation.zip
Dynawo Modelica library Dynawo_Modelica_library_v1.5.0.zip
Detailed release note v1.5.0_release_note.txt

To get started with Dynaωo you have different possibilities, depending on your background and what you want to do:

Dynaωo Linux binaries distribution

Official Linux-based release is available here.

Dynaωo is tested on Fedora and Ubuntu based platforms. However, provided that you can install system packages there should be no problem on others Linux distributions.

Required dependencies are the following:

Following commands can be used to install the required dependencies:

Ubuntu:

$> apt-get install -y g++ unzip curl python

Fedora:

$> dnf install -y gcc-c++ unzip curl python

Following commands can be used to download and test the latest distribution:

$> curl -L $(curl -s -L -X GET https://api.github.com/repos/dynawo/dynawo/releases/latest | grep "Dynawo_Linux" | grep url | cut -d '"' -f 4) -o Dynawo_Linux_latest.zip
$> unzip Dynawo_Linux_latest.zip
$> cd dynawo
$> ./dynawo.sh jobs-with-curves sources/examples/DynaWaltz/IEEE14/IEEE14_GeneratorDisconnections/IEEE14.jobs
$> ./dynawo.sh help
$> ./dynawo.sh jobs --help

Dynaωo Windows binaries distribution

Official Windows-based release is available here.

Dynaωo is tested on Windows 10.

If you plan to use Dynaωo with the default models library there is no additional dependency.

If you plan to compile on the fly your own Modelica models then required dependencies are the following:

You can do as follows to download and test Dynaωo:

$> dynawo --jobs-file sources\examples\DynaWaltz\IEEE14\IEEE14_GeneratorDisconnections\IEEE14.jobs

Building Dynaωo from sources on Linux

Dynaωo and its dependencies will need some packages to work. Here is the list of all packages you can install to have no dependency problem in the following steps. This example works for Ubuntu:

$> apt-get install -y git gcc g++ gfortran autoconf pkgconf automake make libtool cmake hwloc openjdk-8-jdk libblas-dev liblpsolve55-dev libarchive-dev doxygen doxygen-latex liblapack-dev libexpat1-dev libsqlite3-dev libxerces-c-dev zlib1g-dev gettext patch clang python-pip libncurses5-dev libreadline-dev libdigest-perl-md5-perl unzip gcovr lcov libboost-all-dev qt4-qmake qt4-dev-tools lsb-release libxml2-utils python-lxml python-psutil wget libcurl4-openssl-dev rsync

This one works for Fedora:

$> dnf install -y git gcc gcc-c++ gcc-gfortran autoconf automake make libtool cmake hwloc java-1.8.0-openjdk-devel blas-devel lapack-devel lpsolve-devel expat-devel glibc-devel sqlite-devel xerces-c-devel libarchive-devel zlib-devel doxygen doxygen-latex qt-devel gettext patch wget python-devel clang llvm-devel ncurses-devel readline-devel unzip perl-Digest-MD5 vim gcovr python-pip python-psutil boost-devel lcov gtest-devel gmock-devel xz rsync python-lxml graphviz libcurl-devel

To build Dynaωo you need to clone this repository and launch the following commands in the source code directory:

$> git clone https://github.com/dynawo/dynawo.git dynawo
$> cd dynawo
$> echo '#!/bin/bash
export DYNAWO_HOME=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)

export DYNAWO_SRC_OPENMODELICA=$DYNAWO_HOME/OpenModelica/Source
export DYNAWO_INSTALL_OPENMODELICA=$DYNAWO_HOME/OpenModelica/Install

export DYNAWO_LOCALE=en_GB
export DYNAWO_RESULTS_SHOW=true
export DYNAWO_BROWSER=firefox

export DYNAWO_NB_PROCESSORS_USED=1

export DYNAWO_BUILD_TYPE=Release
export DYNAWO_CXX11_ENABLED=YES

$DYNAWO_HOME/util/envDynawo.sh $@' > myEnvDynawo.sh
$> chmod +x myEnvDynawo.sh
$> ./myEnvDynawo.sh build-user

You can have more information about compilation options and customisation here.

Warning: If you’re working behind a proxy make sure you have exported the following proxy environment variables

$> export http_proxy=http://login:mdp@proxy_address:proxy_port/
$> export https_proxy=https://login:mdp@proxy_address:proxy_port/
$> export no_proxy=localhost,127.0.0.0/8,::1
$> export HTTP_PROXY=$http_proxy;export HTTPS_PROXY=$https_proxy;export NO_PROXY=$no_proxy;

Once you have installed and compiled Dynaωo as explained in the previous part, you can launch a simulation by calling one example from DynaFlow, DynaSwing or DynaWaltz:

$> ./myEnvDynawo.sh jobs examples/DynaWaltz/IEEE14/IEEE14_GeneratorDisconnections/IEEE14.jobs
$> ./myEnvDynawo.sh jobs examples/DynaSwing/IEEE14/IEEE14_Fault/IEEE14.jobs
$> ./myEnvDynawo.sh jobs examples/DynaFlow/IEEE14/IEEE14_DisconnectLine/IEEE14.jobs

This command launches a simple simulation on the IEEE 14-bus network that should work if your installation went well and your compilation finished successfully. It could be checked by looking to the outputs directory and comparing its content with the ones from the reference outputs directory (especially the curves file).

$> cd examples/DynaWaltz/IEEE14/IEEE14_GeneratorDisconnections/
$> ls outputs
$> diff outputs/curves/curves.csv reference/outputs/curves/curves.csv

All the simulation outputs are stored into the outputs directory.

It is also possible to display directly simulation results - plots - into a simple GUI (created for demonstration purpose) by using the following command:

$> ./myEnvDynawo.sh jobs-with-curves examples/DynaWaltz/IEEE14/IEEE14_GeneratorDisconnections/IEEE14.jobs

For example, for the generator disconnections simulated with DynaWaltz, the plot for the voltage module in p.u. on bus 1 should look like this:

image

You can obtain more informations about commands you can use by launching:

$> ./myEnvDynawo.sh help

We advise you to deploy our autocompletion script to help you with the available commands, it will also set an alias in your bashrc or zshrc to be able to call Dynaωo from anywhere. You can launch one of the two following commands:

$> ./myEnvDynawo.sh deploy-autocompletion --deploy --shell-type bash
$> ./myEnvDynawo.sh deploy-autocompletion --deploy --shell-type zsh

Then you can launch:

$> dynawo help

Dynaωo Docker environment

We provide on Docker Hub an image of Dynaωo master. You can use it by launching the following command:

$> docker run -it dynawo/dynawo

You can have more information on how to use Docker to build and try Dynaωo here.