The D3A is being developed by Grid Singularity as an interface and codebase to model, simulate, optimize and (coming soon) download and deploy a custom energy exchange. See more at https://www.d3a.io .
Please refer to: https://github.com/gridsingularity/d3a/blob/master/CODE_OF_CONDUCT.md
Please refer to: https://github.com/gridsingularity/d3a/blob/master/CONTRIBUTING.md
(For instructions using Docker see below)
After cloning this project setup a Python 3.6 virtualenv and install fabric3:
~# pip install fabric3
To install solidity follow the steps here:
https://solidity.readthedocs.io/en/v0.5.1/installing-solidity.html#binary-packages
To install the dependencies run the following command:
~# fab sync
After installation the simulation can be run with the following command:
~# d3a run
There are various options available to control the simulation run. Help on there is available via:
~# d3a run --help
While running a simulation, the following keyboard commands are available:
Key | Command |
---|---|
i | Show information about simulation |
p | Pause simulation |
q | Quit simulation |
r | Reset and restart simulation |
R | Start a Python REPL at the current simulation step |
s | Save current state of simulation to file (see below for resuming) |
+ | Increase 'slowdown' factor |
- | Decrease 'slowdown' factor |
We use pip-tools managed by fabric3 to handle requirements. To update the pinned requirements use the following command:
~# fab compile
There is also a command to compile and sync in one step:
~# fab reqs
pip-tools: https://github.com/nvie/pip-tools fabric3: https://pypi.python.org/pypi/Fabric3
We use py.test managed by tox to run the (unit) tests. To run the test suite simply run the following command:
~# tox
py.test: https://pytest.org tox: https://tox.testrun.org
The repository contains a docker Dockerfile. To build an image use the following command (change into repository folder first):
~# docker build -t d3a .
After building is complete you can run the image with:
~# docker run --rm -it d3a
Command line parameters can be given normally after the image name:
~# docker run --rm d3a --help ~# docker run --rm d3a run --help ~# docker run --rm d3a run --setup default_2a -t15s
There is also a handy script that deals with the building of the image and running the provided command:
~# ./run_d3a_on_docker.sh "$docker_command" $export_path
where you can provide the d3a_command and export path where the simulation results are stored. For example:
~# ./run_d3a_on_docker.sh "d3a -l ERROR run --setup default_2a -t 15s" $HOME/d3a-simulation
builds a d3a docker image (if not already present), runs the simulation with setup-file default_2a, tick-length 15s and stores the simulation output data into $HOME/d3a-simulation. If no export_path is provided, simulation results will be stored in $HOME/d3a-simulation.
docker: https://docker.io
Please refer to: https://gridsingularity.github.io/d3a/d3a-documentation/