Interfacing with HELICSΒΆ

The HELICS framework allows other tool developers to add HELICS components to enable co-simulation. Interfacing with HELICS can be done using the C++ Application API or the C Shared Library API. Developers familiar with HELICS and the HELICS Application API can interface with HELICS using the C++ Application API. HELICS also provides an additional well defined C API built as a shared library that can be easily interfaced with from other tools. This C interface also supports easier integration with tools developed in other languages. Developers can easily integrate HELICS into their application using the C Shared Library API using FFI.

In addition, the team has leveraged a development tool called SWIG to build interfaces in the high level programming languages listed below.

  • Python (3 and 2)
  • MATLAB
  • Java
  • Octave
  • C#

SWIG allows cross platform support, i.e. extensions will work for Windows, Mac and Linux. The user does not necessarily need to install SWIG, the extension code is generated by the developers of HELICS and is only required to be built on the user end. The CMake build process includes targets for the Python, MATLAB and Java extensions. Other languages can be supported in the future. If you have a language requirement, please contact the developers.