There are packages for simulation of water networks. EPANET can be used for simulation of physical network. An EPANET compatible python package called WNTR (Water Network Tool for Resilience) has been developed to simulate and analyze resilience of water distribution networks. However, my interest is on the cyber-physical systems. Minicps, a framework for Cyber-Physical Systems real-time simulation, built on top of mininet, is our choice (maybe because I couldn't find another one). However, during the installation I encountered some challenges. I am going to walk  you through my experiences with this package.

# Requirement

This package is developed for Linux OS. So if you are using windows you have to use a virtualization system. We use VirtualBox which is free and can be used on Windows, Linux, and Mac. There is a VM image available for download. However, I spent some time and I preferred a graphical Linux and I started another virtual machine.

I needed to increase the size of my VM from 10 GB to 15 GB so I ran the following steps in windows host:

The command to change the size is the following:

"C:\Program Files\Oracle\VirtualBox\VBoxmanage.exe" modifyhd minicps.vmdk --resize 15000

However, it resulted in the following error:

Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage.exe: error: Resize medium operation for this format is not implemented yet!

To resolve it we must convert it to VDI (link)

"C:\Program Files\Oracle\VirtualBox\VBoxmanage.exe" clonehd minicps.vmdk minicps2.vdi --format VDI

Then I went through the steps in install tab.