DisHeatLib is a Modelica library for dynamic modelling of district heating networks. It uses the excellent Modelica IBPSA library as core.
This is the development site for the Modelica DisHeatLib library and its user guide.
Instructions for developers are available on the IBPSA wiki.
The Modelica DisHeatLib library is a free open-source library with basic models that simplify the implementation of district heating networks, relevant control systems and provide an interface to an optional electric power network.
The Modelica DisHeatLib library is available under a 3-clause BSD-license. See Modelica DisHeatLib Library license.
You may report any issues by using the Issues button.
Contributions in the form of Pull Requests are always welcome. Prior to issuing a pull request, make sure your code follows the IBPSA style guide and coding conventions.
Dymola is needed including a supported C++ compiler such as Visual Studio. Newer versions of Visual Studio might not be supported. For Dymola 2020 Visual Studio 2017 is supported and can be found, e.g., here. The IBPSA library must be loaded before the DisHeatLib. OpenModelica is currently not supported (see this issue).
Modelica by Example is an interactive introduction to Modelica by M. Tiller.
The Buildings library user guide contains best practices and useful information for modeling thermal-hydraulic models in Modelica which applies to the IBPSA and DisHeatLib libraries.
Concrete examples on how to use models from the DisHeatLib library can be found in the respective example sub-packages. They include simple one component examples and more elaborate examples combining multiple models to larger district heating systems of varying complexity. Each example is explained in detail in the respective model documentation including example commands and plots.
To automatically load package IBPSA and DisHeatLib each time you start Dymola open "\insert\dymola.mos" and add the following lines:
openModel("[library path]/IBPSA/package.mo");
openModel("[library path]/DisHeatLib/package.mo");