FlamingPy Release 0.8.2a5
Pre-release
Pre-release
nariman87
released this
31 May 12:01
·
47 commits
to special-release
since this release
New features since the last release
- Node and edge coloring can now be done based on any attribute and personalized colors can be defined via a dictionary: #32 (backward incompatible)
- The
EGraph
plot legend is not limited to the "state" attribute of the node but to any attribute. #32 (backward incompatible) - The
dims
attribute ofEGraph
has been removed. Its function is replaced by thedimensions
parameter that is passed to thedraw_EGraph
method. This method does not require theEGraph
to have adims
attribute defined anymore. #42 (backward incompatible) - Our frontend simulator script,
simulations.py
, now supports simple and highly-scalable MPI jobs throughmpi4py
libraries in a non-intrusive manner. The users who do not have or want MPI, can runsimulations.py
single-threaded as per usual without facing any errors. MPI users can speed up Monte Carlo samplings in EC steps virtually up to as many processors they can throw at it. The script support jobs both on local machines and large-scale clusters. #47 (backward compatible)- MPI users on their local machines can simply run the following for a 4-processor job:
mpirun -np 4 python flamingpy/simulations.py
- MPI users on their local machines can simply run the following for a 4-processor job:
Bug fixes
- Fixed the class inheretance diagram displayed in
fp.codes
. #41
Improvements
- The
draw_EGraph
function is refactored. #32- This reduces the function complexity; ensures nodes, edges, and general plot attributes are handled in different places; and allows for better code maintenance and readability.
display_axes
is changed toshow_axes
for consistency.
xlim
inviz.plot_Z_err_cond
is adjusted to the relevant domain when plotting the central peak. #33- Added
fig, ax
returns for the draw methods inutils/viz.py
. #33 - Both upper and lower axes limits can now be specified for
EGraph
plots. #42 - Improvements to the decoding example. #44
- Rename function and add dosctring.
- Decrease the size of markers for plotting stabilizer nodes.
- Improve the way to scatter stabilizers via specifying indices.
- Improved codefactor score for several key files. #51
- Pandas is removed from the package requirements. #63
mpi4py
is not a development requirement for Linux users. #64- CI test check that code executes properly with and without MPI. #64
Documentation changes
- A pipeline for adding tutorials to the docs was introduced. #24
- To add a tutorial, use the
gallery-item
directive from thexanadu-sphinx-theme
. For the new document to be compiled its filename should start withrun_
. Thumbnails will be created out of the first figure generated and stored intutorials/_out/images/thumb/
with the same name of the tutorial prepended withsphx_glr_
.
- To add a tutorial, use the
- Brief tutorials about graph states and error correction were added. #24
- An introduction to quantum error correction was added. #24
- Added UML class and package diagrams for
fp
page. #41 - Improved class inheritance diagram for
fp.codes
,fp.cv
, andfp.decoders
. #41 - Added
libopenmpi-dev
package to the apt list of.readthedoc.yml
to allow documentation successful builds after adding recentmpi4py
requirements. #59 - Adds a section to
guide_for_devs.rst
explaining how to install and use MPI along with FlamingPy. #64
Contributors
This release contains contributions from (in alphabetical order):
Joost Bus, Sebastián Duque Mesa, Luis Mantilla, Nariman Saadatmand, Ilan Tzitrin, Trevor Vincent
See full commit details here.