{ "info": { "author": "Josh Izaac", "author_email": "josh@iza.ac", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: Fortran", "Programming Language :: Python", "Topic :: Scientific/Engineering :: Physics" ], "description": ".. image:: http://img.shields.io/github/release/josh146/pyctqw.png?style=flat\r\n :target: https://github.com/josh146/pyctqw/releases/latest\r\n \r\n.. image:: http://img.shields.io/pypi/v/pyCTQW.png?style=flat\r\n :target: https://pypi.python.org/pypi/pyCTQW\r\n \r\n.. image:: http://img.shields.io/pypi/dm/pyCTQW.png?style=flat\r\n :target: https://pypi.python.org/pypi/pyCTQW\r\n\r\nFortran library and Python module to calculate continuous-time quantum walks\r\n\r\nThis is intended to provide a framework to quickly and easily work with quantum\r\nwalkers, take advantage of high performance computing, and allow easy visualisation.\r\n\r\nFor more information on how to use this package, please see the `online documentation `_\r\n\r\nFeatures\r\n============\r\n* Fortran and Python bindings (in the form of a library and module respectively)\r\n* Supports MPI through the use of the PETSc and SLEPc high-performance sparse\r\n matrix libraries (CUDA support planned)\r\n* Has in-built support for infinite-line hamiltonians\r\n* Import and export matrices/states in binary or text \r\n* Can import custom adjancency matrices\r\n* Supports both one and two walkers (non-interacting)\r\n* Import and export matrices/states in binary, text or matlab format\r\n* Python module supports plotting and visualisation using matplotlib and networkx\r\n* Entanglement calculations\r\n* Ability to place diagonal defects/barriers on graph vertices\r\n* MPI graph isomorphism methods, for both 2 and 3 interacting particles\r\n\r\nTODO\r\n============\r\n* CUDA support\r\n* Calculation of transmission\r\n* Add fallback modes when PETSc/SLEPc are not present\r\n\r\nDependencies\r\n============\r\n\r\nIn addition to an MPI implementation (e.g. `MPICH `_ or `Open MPI `_), the python ``pyCTQW.MPI`` module depends on the following components:\r\n\r\n- `Python `_ >= 2.7\r\n- `NumPy `_ >= 1.6.0\r\n- `PETSc `_ >= 3.4.2 \r\n- `SLEPc `_ >= 3.4.1 \r\n- `petsc4py 3.4 or petsc4py-dev `_\r\n- `mpi4py `_ (recommended, used for some plotting)\r\n- `matplotlib `_ (recommended, for node plotting and graph visualisation)\r\n- `SciPy `_ (recommended, for some I/O operations)\r\n- `NetworkX `_ (recommended, graph visualisation)\r\n\r\n\r\nInstallation using `pip`\r\n===========================\r\n\r\nAfter ensuring NumPy and petsc4py are installed (and all PETSc, SLEPc and MPI environment variables are properly set), pyCTQW can be installed using `pip`:\r\n\r\n.. code-block:: bash\r\n \r\n $ pip install pyCTQW\r\n\r\n\r\nInstallation from source code\r\n==============================\r\n\r\nAlternatively, the source code can be downloaded and compiled manually:\r\n\r\n1) Ensure all dependencies required above are installed\r\n\r\n2) Extract the ``pyCTQW`` folder, and ``cd`` into the extracted directory:\r\n\r\n .. code-block:: bash\r\n \r\n $ tar xvzf pyctqw-1.1.0.tar.gz\r\n $ cd pyctqw-1.1.0\r\n\r\n3) Ensure that your PETSc and SLEPc environment variables are correctly set; for example,\r\n\r\n .. code-block:: bash\r\n\r\n $ export PETSC_DIR=/path/to/petsc\r\n $ export PETSC_ARCH=linux-gnu\r\n $ export SLEPC_DIR=/path/to/slepc\r\n\r\n If you are unsure what your PETSc or SLEPc variables should be, please refer to their documentation.\r\n\r\n .. important::\r\n If you plan to install ``pyCTQW.MPI`` using ``root`` to a **system** directory, the PETSc and SLEPc environment variables must be available to the root user.\r\n\r\n4) Compile the Python module ``pyCTQW.MPI`` by running\r\n\r\n .. code-block:: bash\r\n \r\n $ python setup.py build\r\n\r\n5) System-wide install:\r\n\r\n .. code-block:: bash\r\n \r\n $ sudo -E python setup.py install\r\n\r\n where the command ``-E`` ensures that the environment variables set in step 3 are passed to the root.\r\n\r\n .. note::\r\n If you do not have root access, or the above command does not appear to work, you can install the package locally by running\r\n\r\n .. code-block:: bash\r\n \r\n $ python setup.py install --user\r\n\r\n Now, have a go running some of the examples!\r\n\r\n*Optional*: compiling ``libctqwMPI``\r\n===========================================================\r\n\r\nIn addition to an MPI implementation (e.g. `MPICH `_ or `Open MPI `_), the Fortran library ``libctqwMPI`` depends on the following components:\r\n- `PETSc `_ >= 3.4.2 \r\n- `SLEPc `_ >= 3.4.1\r\n\r\nOnce these dependencies are installed, simply open a terminal in the root directory of ``pyCTQW-X.Y`` and run\r\n \r\n.. code-block:: bash \r\n \r\n $ make fortran [options]\r\n\r\nwhere available options include\r\n\r\n.. list-table::\r\n :widths: 3 3 30\r\n :header-rows: 1\r\n\r\n * - Option\r\n - Values\r\n - Description\r\n\r\n * - ``shared_lib``\r\n - 0 (default), 1\r\n - whether to build ``libctqwMPI`` as a shared library (``shared_lib=1``, producing ``libctqwMPI.so``) or a static library (``shared_lib=0`` (default), producing ``libctqwMPI.a``).\r\n\r\n If built as a shared library, compiled programs will be smaller, but ``libctqwMPI.so`` will need to be added to a directory used by ``ld`` (either by setting the environment variable ``LD_LIBRARY_PATH`` or by placing ``libctqwMPI.so`` in ``/usr/local/lib`` etc).\r\n \r\nThe fortran library (``libctqwMPI.so`` or ``libctqwMPI.a``) can be found in the ``pyCTQW-X.Y/lib`` directory, with required module files found in the ``pyCTQW-X.Y/include`` directory.\r\n\r\n\r\n*Optional:* build documentation \r\n=======================================\r\n\r\nIf `Sphinx `_ is installed, the documentation can be compiled by running\r\n\r\n.. code-block:: bash\r\n \r\n $ pip install -r docs/requirements.txt\r\n $ make docs\r\n\r\nDocumentation\r\n===============\r\n\r\nFor more information on how to use this package, please see the `online documentation `_\r\n\r\nAcknowledgements\r\n===========================\r\n\r\nThe graph isomorphism subroutine ``GraphISCert`` uses the external subroutine ``d_refsor``, a highly optimised Fortran sorting implementation written by Michel Olagnon and part of the `ORDERPACK 2.0 `_ suite of ranking and sorting algorithms for Fortran 90.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pyctqw.readthedocs.org", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "pyCTQW", "package_url": "https://pypi.org/project/pyCTQW/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyCTQW/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pyctqw.readthedocs.org" }, "release_url": "https://pypi.org/project/pyCTQW/1.1.0/", "requires_dist": null, "requires_python": null, "summary": "An MPI enabled CTQW simulator", "version": "1.1.0" }, "last_serial": 1091015, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "154c6b79e29cff3484769aabdd0c1c8c", "sha256": "b9080fc115b0d0e0299be220366e9a9a6a9fa05bfe0aeff3fd09a20b31798f85" }, "downloads": -1, "filename": "pyCTQW-1.0.0.tar.gz", "has_sig": false, "md5_digest": "154c6b79e29cff3484769aabdd0c1c8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1714544, "upload_time": "2014-03-17T13:40:55", "url": "https://files.pythonhosted.org/packages/00/cc/c75f2c44ffed46b8df03e1d0ca488a64a17dfa9c43ecb04348a51150cd21/pyCTQW-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "a7c00923bba82529518dded0cd12e4f0", "sha256": "8744111c5084a027c678cb0e0a81e55b37de92704e89d82fcc73be27829af268" }, "downloads": -1, "filename": "pyCTQW-1.1.0.tar.gz", "has_sig": false, "md5_digest": "a7c00923bba82529518dded0cd12e4f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1737577, "upload_time": "2014-05-13T16:34:20", "url": "https://files.pythonhosted.org/packages/01/31/425c4afe8686e1357dd9b37461bfa6b3e4d580dfb550e5e2653e9fbf7687/pyCTQW-1.1.0.tar.gz" } ], "dev": [] }, "urls": [ { "comment_text": "", "digests": { "md5": "a7c00923bba82529518dded0cd12e4f0", "sha256": "8744111c5084a027c678cb0e0a81e55b37de92704e89d82fcc73be27829af268" }, "downloads": -1, "filename": "pyCTQW-1.1.0.tar.gz", "has_sig": false, "md5_digest": "a7c00923bba82529518dded0cd12e4f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1737577, "upload_time": "2014-05-13T16:34:20", "url": "https://files.pythonhosted.org/packages/01/31/425c4afe8686e1357dd9b37461bfa6b3e4d580dfb550e5e2653e9fbf7687/pyCTQW-1.1.0.tar.gz" } ] }