TOPFARM is an open source tool for optimizing wind farms based on OpenMDAO and FUSED-Wind. The source is available on github.
This container is a convenient way to deploy the topfarm tool on linux, windows and macos without the hassle of installing all the necessary libraries.
What you get
The container is built on ipython/scipysever, piredtu/openmdao:0.10.3.2 and piredtu/fusedwind.
Downloading the container
Start your docker
$ docker pull dtuwindenergy/topfarm
Running the container
There are two ways to run it:
$ docker run -it dtuwindenergy/topfarm bash
Note that you need to activate a virtual environement when inside the container to be able to run openmdao, fusedwind or topfarm scripts:
$ . $ACTIVATE
IPython notebook mode:
$ docker run -d -p 80:8888 -e 'PASSWORD=openmdao' dtuwindenergy/topfarm
Then point your browser to the IP address given to your docker (in MacOS and Windows you should get it with the command
Getting your data in and out
You will probably want to mount your local drive with the -v optional command (see the doc).
some examples for a MacOS/linux machine to mount your home directory:
$ docker run -it -v $HOME:/home dtuwindenergy/topfarm bash
$ docker run -d -p 80:8888 -v $HOME:/topfarm/home dtuwindenergy/topfarm
Working with the same container
Sometimes you want to reuse the same container, in order not to have to type the same long commnand line over and over, or to keep the changes you have done in it.
Here we create a container that is caller
$ docker run -d -p 80:8888 -e 'PASSWORD=openmdao' --name topfarm -v $HOME:/topfarm/home dtuwindenergy/topfarm
To stop the container
$ docker stop topfarm
To restart the container
$ docker restart topfarm
While the container is running one can also execute commands with it
$ docker exec -it topfarm bash
$ docker exec -it topfarm omdao ipython
Updating the image
If you have made some changes inside the container and want to save them, you will need to commit the container to a new image.
If you haven't given a name to the container, then get its nickname (here it's romantic_fermi)
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ee9d5bcacf8f dtuwindenergy/topfarm:latest "/notebook.sh" 5 hours ago Up About an hour 0.0.0.0:80->8888/tcp romantic_fermi
Then commit the changes
$ docker commit -m "awesome changes" romantic_fermi dtuwindenergy/topfarm:new_tag
your images can be listed with
docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE dtuwindenergy/topfarm new_tag f42f6583f5f2 1 minute ago 1.968 GB dtuwindenergy/topfarm latest f42f6583f5f2 4 hours ago 1.968 GB