Dynaωo is an hybrid C++/Modelica open source suite of simulation tools for power systems. It aims at providing power system stakeholders with a transparent, flexible, interoperable and robust suite of simulation tools that could ease collaboration and cooperation in the power system community.
To achieve this goal, Dynaωo is based on two main principles: the use of a high-level modelling language Modelica and a strict separation between the modelling and the solving parts.
It is an ongoing project based on previous works conducted particularly in two R\&D European projects: Pegase and iTesla. These projects have contributed to the choices that are the basis upon which Dynaωo is built: they proved the usability of the Modelica language for power system simulations and contributed to the development of numerical resolution strategies that are integrated into Dynaωo.
Dynaωo ‘s primary focus has been on long-term and short-term stability studies but the very encouraging results obtained and the flexibility of the approach led to an extension of the initiative. Dynaωo is now evolving towards a complete and coherent suite of simulation tools, sharing the same philosophy:
- DynaFlow for steady-state calculations
- DySym for short-circuit calculations
- DynaWaltz for long-term stability simulations
- DynaSwing for short-term stability studies
- DynaWave for stability studies and system design with a high-penetration of power electronics-based components (quasi-EMT)
Only validated models, numerical methods and test cases are included into the official release. We plan to release additional features in the near future, including for example additional models (IEC wind model, SPS models, etc.), or new test cases (Nordic32 test case, IEEE test cases).
In addition to the Dynaωo repository, you can have a look at Dynawo-algorithms, enabling to launch contingency analysis, voltage margin or critical clearing time calculations or to Dynaflow-launcher, enabling to launch DynaFlow with a minimal set of inputs.
Dynaωo is an open source project licensed under the terms of the Mozilla Public License, v. 2.0. The source code is hosted into a GitHub repository.
Dynaωo is using some external libraries to run simulations:
- OpenModelica, a Modelica environment developed and maintained by the Open Source Modelica Consortium distributed under a GPL V3.0 or OSMC Public License V1.2. The current version used is V1.13.2.
- SUNDIALS, a suite of solvers developed and maintained by the Lawrence Livermore National Lab and distributed under a BSD-3-Clause license. The 6.3.0 version is currently used.
- SuiteSparse, and in particular KLU, a LU decomposition library that is part of the suite sparse project, developed and maintained by T. A. Davis et al. at the University of Florida distributed under a LGPL-2.1+. The version 5.10.1 of suite sparse is the one used by Dynaωo.
- Adept, an automatic differentiation library that has been developed and maintained at the University of Reading by R.J. Hogan distributed under Apache-2.0. It is the version 2.1.1 that is integrated into Dynaωo.
- Xerces-C++ a validating XML parser written in a portable subset of C++ and distributed under the Apache Software License, Version 2.0. The current version used is 3.2.2.
- Libxml2, a XML C parser and toolkit distributed under the MIT License. The current version used is 2.9.4.
- PowSyBl - iidm4cpp, a C++ implementation of the IIDM grid model and distributed under the MPL License, Version 2.0. The current version used is 1.4.0.
- NICSLU which is another LU decomposition library. It is developed and maintained by Tsinghua University and is optional at the moment into Dynaωo. It is distributed under a GNU LGPL license.
- jQuery that is distributed into Dynaωo to display results into a minimalistic GUI after the simulation. The current version used is the 1.3.4 distributed under both a MIT and a GPL license.
- cpplint, a collection of a high-performance multi-threaded malloc implementations distributed under the BSD license. Dynaωo-algorithms is currently using the version 2.6.1.
- gperftools, a collection of a high-performance multi-threaded malloc implementations distributed under the BSD license. Dynaωo-algorithms is currently using the version 2.6.1.
- MPICH, an implementation of the Message Passing Interface (MPI) standard distributed under a BSD-like license. Dynaωo-algorithms currently using the version 3.4.2.