Skip to content

Commit

Permalink
New release v0.4.0.RC into main (#326)
Browse files Browse the repository at this point in the history
* Update develop to catch up with main version 0.3.3 (#249)

* Fix link of fig in qchem & excited states notebook (#250)

* allow single flip index dis for qcc (#247)

* allow single flip index dis for jkmn

* Richardson extrapolation: bug fix + error estimation (#252)

* Bugfix: DMET with QCC (#253)

* iQCC using only Clifford circuits notebook (#254)

* pUCCD ansatz (#251)

* UHF reference (#240)

* uhf implementation with VQESolver functionality
* support for all types of orbital freezing
* add active_spin and uhf attributes to SecondQuantizedDMETFragment
* add spin to adapt_ansatz arguments

* added multi-product, grid_circuits and discrete_clock (#257)

* added multi-product, grid_circuits and discrete_clock

* translation to pennylane (#260)

* tangelo to pennylane format translation

Co-authored-by: Valentin Senicourt <[email protected]>

* bump testing version to 3.8 (#262)

Updating python version to 3.8 in automated tests, as 3.7 is no longer maintained by the Python dev team

* Auto threshold cutoff for small coefficients in LCU (#261)

* check for small value lcu
* changed to keep same vector length but apply no operations

* Openshell DMET (#208)

* Open-shell DMET.
* Fix for get_rdm CCSD.
* Added NAO localization.
* Added LiO2 spin=1 DMET test.
* Added UHF MF for DMET. New get_rdm for VQESolver.

* Save mid-circuit measurement (#256)

* A flag now allows users to save mid-circuit measurements for each shot run.

Co-authored-by: Valentin Senicourt <[email protected]>

* Fix for IBMQConnection (#264)

* Updated copyright year to 2023 (#267)

* added draw method to circuit (#266)

* added draw method to circuit (warning about font comes up in linux env)

* Cirq, qulacs, pennylane and projectq operator translation functions (#268)

* Support to bidirectional translation of operators for cirq, qulacs, PennyLane, projectq.
* Fixed a bug in QulacsSimulator.expectation_value_from_prepared_state.
* Important bug in qiskit -> tangelo op translation fixed

* Fixed identity operator evaluation and extended the accepted input types in compute_rdms (#269)

* Compute RDMs function can now hangle both term formats (string and openfermion tuple).
* Unhashable list for of -> conversion to tuples.
* Handling all the inputs in compute_rdms.

* Temporarily disabling OS-DMET (#271)

* Temporarily disabling for code verification purpose, as the implementation seems to return very odd and incorrect results for simple systems.

* Link to new example repo

* Update README.rst

* Revert changes that broke tests (#275)

* reverted changes that broke tests

* DMET + frozen orbitals for each fragment (#276)

* DMET + frozen orbitals,  added DMET/frozen tests.

* Example folder relocated to new repo Tangelo-Examples (#274)

* removed examples folder, removed notebooks from automated tests, added link higher in README.rst

* Docs update (#272)

* Updated conf.py, tested building docs and fixed comments/docs.
* Removed tutorials.rst with the notebooks.

* Desired measurement result (#263)

* New feature: return frequencies matching desired mid-circuit measurement values.

---------

Co-authored-by: James Brown <[email protected]>

* fix error for imaginary qubit_op with desired meas result (#278)

* Integrate bug fix into main before release (#278) (#279) (#280)

Co-authored-by: James Brown <[email protected]>
* fix error for imaginary qubit_op with desired meas result (#278)

* Depth function performance increase (#285)

* Depth function takes now less than half a second to compute it from scratch for ~120K depth circuit.

* Fix for (inverse of S and T gate) #287. (#288)

* Translation perf tests (operator, circuit) (#289)

* Performance test for translation layer of linq, for most formats

---------

Co-authored-by: Valentin Senicourt <[email protected]>
Co-authored-by: ValentinS4t1qbit <[email protected]>

* deterministic desired_meas_result (#290)

* deterministic desired_meas_result

* Mifnohelper print: remove problem handle (#293)

* Removed problem handle from print. It now only focuses on chemistry information

Co-authored-by: Valentin Senicourt <[email protected]>
Co-authored-by: ValentinS4t1qbit <[email protected]>

* Combinatorial mapping of fermionic Hamiltonians (#286)

* Initial implementation. Known performance scaling issues, may attempt to introduce a different QubitOperator in the future.

* Re-enabling open-shell DMET (#291)

* Re-enabling OS-DMET.

* Support for symbolic simulator (simpy) (#292)

Support for symbolic backend based on sympy, to provide algebraic expressions for states / circuits with less than 10 qubits. Notebook / examples to follow later on.

* Arg simulate_options and projective_circuit to VQESolver (#298)

* It is now possible to request desired measurements and other options for the "simulate" method called by the backend
* Projective circuits can be used with VQE algorithm(s). Either passed by the user explicitly or integrated through the ansatz.

---------

Co-authored-by: Valentin Senicourt <[email protected]>

* Supporting symbols as parameters and add nsimplify to results (#300)

* Symbolic expression simplified.

* Simplification of exp. value and fixed a bug in translate op.

* Add ability to get inverse with Symbol parameters.

* Switch nsimplify to evalf.

* Trim trivial qubits from circuit and Hamiltonian (#302)

Remove qubits that are in a deterministic state in quantum circuits, and simplify qubit Hamiltonian accordingly, in order to reduce resource requirements while computing expectation values.

---------

Co-authored-by: Valentin Senicourt <[email protected]>

* Push contributors towards develop and not to main for PRs (#303)

* Update to CONTRIB (main -> develop) and added workflow to help avoid PR to main that are not from develop

* Set the DMET virtual orbital truncation threshold at the user level (#304)

* Add option to turn off virt. orb. truncation.
* Changed the threshold instead of a flag. Occ. set to their abs values.

* Trim bug (#305)

* minor bug fixes + test

* Added typing for option dictionaries in quantum agorithms (#307)

* added typing for option dictionaries, which improves user experience (autocomplete, auto-loading of docstrings for different GUIs) and handle options better overall

* IntegralSolver class: base + support for Psi4 (#297)

* Tests for pyscf, test for psi4, tests for custom IntegralSolver
* temporary: install NO_PYSCF available to users
* new: MP2Solver

This PR will be followed by 1-2 other PRs to decouple pyscf from almost all algorithms and streamline the use of classical chem backends (support for all classical solvers, turning pyscf as an optional dependency for Tangelo, fixing docs and README etc as a result)

* Change multi-controlled CNOT to multi-controlled CX (#308)

* change multi-controlled CNOT to multi-controlled CX

---------

Co-authored-by: Valentin Senicourt <[email protected]>

* Braket connection (#312)

Support for Braket connection, including batch submission of jobs. Tests, docs, refresh of env_var.sh
A PR for the QPU notebook will follow

---------

Co-authored-by: Valentin Senicourt <[email protected]>
Co-authored-by: ValentinS4t1qbit <[email protected]>

* Support for UMP2 initial parameters (#310)

* Support for UMP2 initial parameters.

* Checkfile for IntegralSolverPySCF (#311)

* chkfile for IntegralSolverPySCF.

* QubitOperator import from Tangelo, for better encapsulation (#299)

* Use Tangelo's `QubitOperator` instead of OpenFermion when possible.
* Constructor method `from_openfermion` and export method `to_openfermion` available in `QubitOperator` class.

Remaining usage of Openfermion is tied to qubit mappings mostly, and code relying on other Openfermion features.

---------

Co-authored-by: Valentin Senicourt <[email protected]>
Co-authored-by: ValentinS4t1qbit <[email protected]>

* FCISolverPsi4 (#309)

* moved chem tests to molecular_computation tests
* Changed FCISolver to class with solver attribute

---------

Co-authored-by: Valentin Senicourt <[email protected]>

* Removed deprecated Linq functions (#316)

* Removed deprecated versions of trasnlation functions and Simulator.
---------

Co-authored-by: Valentin Senicourt <[email protected]>
Co-authored-by: ValentinS4t1qbit <[email protected]>

* CCSD solver psi4 (#313)

* add ccsd_solver test to psi4 testing
* get_rdm currently not supported, suggestions added in comments

* ADAPT: add spin to available options  (#317)

* add spin to available options and docstring

* MP2 psi4 (#315)

* Support for MP2 with psi4 backend.

* get_rdm and get_mp2_parameters currently unsupported, suggestions left in docstrings.

* skip performance tests (Linq) in pytest (#319)

Perrformance tests take time and should not be run systematically

* Typos in docs (#321)

* Added spaces in messages.

* Typos and code format.

* Add period.

* DMET Effective Core Potential fix(related to #306) (#318)

* potential fix for #306, test added

* Change installation (#320)

* remove no_pyscf, attempt windows test
* updated psi4 test

---------

Co-authored-by: Valentin Senicourt <[email protected]>

* DMET-ecp test fix: change optimizer to minimize square (#323)

* improved Error message for MP2 initialization in UCCSD (pySCf currently required) (#322)

* improved Error message for MP2 initialization if pyscf is not found

* Qiskit-related: deprecation update to SparsePauliOp and bug workaround (#325)

* Stim clifford simulator integration (#314)

* direct tableau
* noise and circuit sampler
* decomposition into clifford gates
* clifford decomp tests, and SDAG in cirq
* is_clifford in gate class
* expand clifford decomp to integer values
* small comments, add pip install stim to workflow

Co-authored-by: Valentin Senicourt <[email protected]>

* Bumping Tangelo version number in _version.py

* Update CHANGELOG.md

---------

Co-authored-by: Valentin Senicourt <[email protected]>
Co-authored-by: AlexandreF-1qbit <[email protected]>
Co-authored-by: James Brown <[email protected]>
Co-authored-by: KrzysztofB-1qbit <[email protected]>
Co-authored-by: Valentin Senicourt <[email protected]>
Co-authored-by: James Brown <[email protected]>
Co-authored-by: ValentinS4t1qbit <[email protected]>
Co-authored-by: elloyd-1qbit <[email protected]>
Co-authored-by: GitHub Actions <[email protected]>
  • Loading branch information
10 people authored Jun 29, 2023
1 parent a503c39 commit b5f092c
Show file tree
Hide file tree
Showing 130 changed files with 5,532 additions and 1,153 deletions.
23 changes: 21 additions & 2 deletions .github/workflows/continuous_integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ jobs:
python-version: [3.8]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}

Expand Down Expand Up @@ -44,6 +44,7 @@ jobs:
pip install cirq
pip install projectq
pip install pennylane
pip install stim
if: always()

- name: Install Microsoft qsharp/qdk
Expand All @@ -63,12 +64,30 @@ jobs:
python -m pip install .
if: always()

- name: tangelo no_pyscf tests
run: |
cd tangelo/toolboxes/molecular_computation/tests
pytest --doctest-modules --junitxml=junit/nopyscf-test-results.xml test_nopyscf.py
if: always()

- name: Install pyscf
run: |
python -m pip install pyscf
python -m pip install git+https://github.com/pyscf/semiempirical
if: always()

- name: tangelo tests
run: |
cd tangelo
pytest --doctest-modules --junitxml=junit/tangelo-test-results.xml --cov=. --cov-report=xml --cov-report=html
if: always()

- name: Upload nopyscf test results
uses: actions/upload-artifact@v3
with:
name: tangelo-no-pyscf-test-results
path: tangelo/toolboxes/molecular_computation/tests/junit/nopyscf-test-results.xml

- name: Upload pytest test results
uses: actions/upload-artifact@v3
with:
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/protect_main.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: 'Protect Main Branch'

on:
pull_request:

jobs:
check_branch:
runs-on: ubuntu-latest
steps:
- name: Check branch
if: github.base_ref == 'main' && github.head_ref != 'develop'
run: |
echo "ERROR: You can only merge to main from develop. Make sure your PR merges into the right branch."
exit 1
76 changes: 76 additions & 0 deletions .github/workflows/run_psi4_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: psi4 test

on: [pull_request]

jobs:
build:

runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8]

defaults:
run:
shell: bash -el {0}

steps:
- uses: actions/checkout@v3
- uses: conda-incubator/setup-miniconda@v2
with:
activate-environment: anaconda-client-env
- run: conda info
- run: conda list
- run: conda config --show

- name: Install psi4
shell: bash -el {0}
run: |
conda install psi4 python=3.8 -c psi4
conda init
if: always()

- name: Install pip, wheel, pytest, jupyter
run: |
python -m pip install --upgrade pip
pip install wheel
pip install pytest
pip install pytest-cov
- name: Install qulacs
run: |
pip install qulacs
if: always()

- name: tangelo install
run: |
python -m pip install .
if: always()

- name: tangelo psi4 integral tests
run: |
cd tangelo/toolboxes/molecular_computation/tests
pytest --doctest-modules --junitxml=junit/psi4-test-results.xml test_psi4.py
if: always()

- name: tangelo psi4 classical tests
run: |
cd tangelo/algorithms/classical/tests
pytest --doctest-modules --junitxml=junit/psi4-classical-test-results.xml
if: always()

- name: Upload psi4 test results
uses: actions/upload-artifact@v3
with:
name: tangelo-psi4-test-results
path: tangelo/toolboxes/molecular_computation/tests/junit/psi4-test-results.xml

- name: Upload classical psi4 test results
uses: actions/upload-artifact@v3
with:
name: tangelo-classical-psi4-test-results
path: tangelo/algorithms/classical/tests/junit/psi4-classical-test-results.xml

- name: Download all workflow run artifacts
uses: actions/download-artifact@v3
if: always()
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,29 @@
This file documents the main changes between versions of the code.


## [0.4.0] - 2023-06-29

### Added

- Psi4 and pyscf optional dependencies, can be used as chemistry backends for classical calculations
- symbolic simulator
- stim clifford simulator
- Support for UHF reference mean-field in DMET
- trimming trivial qubits from Hamiltonians and circuits
- BraketConnection class
- combinatorial qubit mapping
- MP2Solver

### Changed

- Bugfix: DMET with virtual space truncation threshold, as well as ecp
- ADAPT now supports spin as parameter

### Deprecatedv / Removed

- in linq: Old translation functions, and Simulator class (use get_backend or translate_circuit instead)


## [0.3.4] - 2023-02-15

### Added
Expand Down
13 changes: 7 additions & 6 deletions CONTRIBUTIONS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -43,24 +43,25 @@ In your terminal, clone the repo on your local machine, and move into the newly
cd Tangelo
From the perspective of your local clone, your fork is called the ``origin`` remote.
Let's synchronize your fork with the main Tangelo repo by adding the latter as the upstream remote, and then update your local ``main`` branch:
Let's synchronize your fork with the main Tangelo repo by adding the latter as the upstream remote, and then update your local ``develop`` branch:

.. code-block:: shell
git remote add upstream https://github.com/goodchemistryco/Tangelo.git
git fetch upstream
git checkout main
git merge upstream/main
git checkout develop
git merge upstream/develop
Note: we here suggest the ``develop`` branch, as this is where contributions will be merged. No one should be merging directly to ``main``, unless it is to sync it with ``develop`` once in a while, and just before a new version release.

**2. Work on your own developments**

Create your development branch, based on the ``main`` branch (or the current development branch listed on the `DevBranch badge <./README.rst>`_)
Create your development branch, based on the ``develop`` branch (or the current development branch listed on the `DevBranch badge <./README.rst>`_, if different)

.. code-block:: shell
git checkout main -b your_branch_name
git checkout develop -b your_branch_name
where ``your_branch_name`` is the name of your own development branch, preferably related to what you will be working on.
Let's assume you've made some changes and committed them with ``git commit``, and that you'd like to push them to your fork (which is referred to as "origin"):
Expand All @@ -72,7 +73,7 @@ Let's assume you've made some changes and committed them with ``git commit``, an
**3. The Pull Request (PR)**

Now when you go to https://github.com/goodchemistryco/Tangelo, you should be able to create a pull request from the branch on your fork to a branch on the main Tangelo repo. Give your pull request a name and briefly describe what the purpose is and include a reference to the associated issue if there's one.
Now when you go to https://github.com/goodchemistryco/Tangelo, you should be able to create a pull request from the branch on your fork to a branch on the main Tangelo repo. Give your pull request a name, verify that the destination branch is ``develop`` (not ``main``), and briefly describe what the purpose is / include a reference to the associated issue if there's one.
Several Tangelo users will receive a notification, and will review your code and leave comments in the PR. You can reply to these comments, or simply apply the recommended changes locally, and then commit and push them like above: it automatically updates your PR.
If there are conflicts, you can solve them locally and push, or directly through Github.

Expand Down
50 changes: 16 additions & 34 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -96,43 +96,31 @@ separately with ``pip``\ , before trying again.
With Docker
^^^^^^^^^^^

Use our Docker file to deploy Tangelo in a Linux environment, either retrieved from pip or mounted locally.
Comment / uncomment the relevant sections of the Dockerfile to control installation and dependencies.
Use our Docker file to deploy Tangelo in a Linux environment, either retrieved from pip or mounted locally. Comment / uncomment the relevant sections of the Dockerfile to control installation and dependencies.

"No install" notebook method
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

A good alternative for users that simply want to quickly get a working environment ready, especially for quick tests, demos, tutorials.
Check out the tutorial section below to see how services such as Google Colab may help you circumvent local installation challenges or go beyond the limitations of your personal computer if you feel short of compute power or memory.
Check out the tutorial section below to see how services such as Google Colab, Binder or JupyterLab may help you circumvent local installation challenges or go beyond the compute capabilities of your laptop.

Optional dependencies: Quantum Simulators
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Optional dependencies
^^^^^^^^^^^^^^^^^^^^^
Tangelo enables users to target various backends. In particular, it integrates quantum circuit simulators such as ``qulacs``\ , ``qiskit``\ , ``cirq`` or ``qdk``. We leave it to you to install the packages of your choice, and refer to their own documentation. Most packages can be installed through pip or conda in a straightforward way.

Tangelo enables users to target various backends. In particular, it integrates quantum circuit simulators such as
``qulacs``\ , ``qiskit``\ , ``cirq`` or ``qdk``. We leave it to you to install the packages of your choice, and refer to their own documentation.
Most packages can be installed through pip in a straightforward way:

.. code-block::
Optional dependencies: Classical Quantum Chemistry Packages
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

pip install qulacs
pip install qiskit
pip install cirq
...
Tangelo can be used without having a classical quantum chemistry package installed but many algorithms, by default, depend on one being installed. The two quantum chemistry packages that are natively supported are `PySCF <https://pyscf.org/>`_ and `Psi4 <https://psicode.org/>`_.

Depending on your OS and environment, some of these packages may be more challenging to install. For installing Microsoft's QDK
or any issue regarding the above packages, please check their respective documentation.
You are also welcome to provide your own interface to a quantum chemistry package of your choice by defining a subclass of `IntegralSolver <https://github.com/goodchemistryco/Tangelo/blob/develop/tangelo/toolboxes/molecular_computation/integral_solver.py>`_. An example of this can be found in `this test <https://github.com/goodchemistryco/Tangelo/blob/develop/tangelo/toolboxes/molecular_computation/tests/test_molecule.py#L167>`_.


Quick note for Windows users
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Our installation instructions will work on Linux and MacOS systems. If you are using Windows, we recommend
you install the `Windows Linux Subsystem <https://docs.microsoft.com/en-us/windows/wsl/install>`_, which allows you
to run Ubuntu as an application. Once it has been installed, you can type ``explorer.exe`` in your Ubuntu terminal to
drag and drop files between your Windows and Linux environment.

Here are a few essentials to install inside a brand new Ubuntu environment, before trying to install Tangelo:
Depending on your OS and environment, some of the optional packages may be more challenging to install. If you are using Windows, we recommend you install the `Windows Linux Subsystem <https://docs.microsoft.com/en-us/windows/wsl/install>`_, which allows you to run Ubuntu as an application. Once it has been installed, you can type ``explorer.exe`` in your Ubuntu terminal to drag and drop files between your Windows and Linux environment. Here are a few essentials to install inside a brand new Ubuntu environment, before trying to install Tangelo:

.. code-block::
Expand All @@ -145,21 +133,17 @@ Here are a few essentials to install inside a brand new Ubuntu environment, befo
Optional: environment variables
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Some environment variables can impact performance (ex: using GPU for quantum circuit simulation, or changing
the number of CPU threads used) or are used to connect to web services providing access to some compute backends.
Some environment variables can impact performance (ex: using GPU for quantum circuit simulation, or changing the number of CPU threads used) or are used to connect to web services providing access to some compute backends.

See the list of relevant environment variables and their use in ``env_var.sh``. In order for these variables to be set to
the desired values in your environment, you can run this shell script in Linux with the following command line:
``source env_var.sh`` (you may need to set execution permissions with ``chmod +x set_env_var.sh`` first), or you can set
them in whatever way your OS supports it, or even inside your python script using the ``os`` package.
See the list of relevant environment variables and their use in ``env_var.sh``. In order for these variables to be set to the desired values in your environment, you can run this shell script in Linux with the following command line:
``source env_var.sh`` (you may need to set execution permissions with ``chmod +x set_env_var.sh`` first), or you can set them in whatever way your OS supports it, or even inside your python script using the ``os`` package.

Tutorials and examples
----------------------

We have a `dedicated repository <https://github.com/goodchemistryco/Tangelo-Examples>`_ for examples and tutorials !

We wrote a number of them, and tried to provide material that doesn't just explain how to use the software, but provides insights into the complex topics of chemistry, quantum computing, and digs into the challenges we encountered in our previous hardware experiments.
Nothing prevents users from contributing and showcasing what they have been doing with Tangelo.
We wrote a number of them, and tried to provide material that doesn't just explain how to use the software, but provides insights into the complex topics of chemistry, quantum computing, and digs into the challenges we encountered in our previous hardware experiments. Nothing prevents users from contributing and showcasing what they have been doing with Tangelo.

You can visualize notebooks directly on Github, most of them have been pre-run.
If you'd like to be able to run them locally, we suggest you use `Jupyter notebooks inside a virtual environment <https://janakiev.com/blog/jupyter-virtual-envs/>`_.
Expand All @@ -181,8 +165,7 @@ Check out our `tutorials <./TUTORIALS.rst>`_ file for more details.
Tests
-----

Unit tests can be found in the ``tests`` folders, located in the various toolboxes they are related to. To automatically
find and run all tests (assuming you are in the ``tangelo`` subfolder that contains the code of the package):
Unit tests can be found in the ``tests`` folders, located in the various toolboxes they are related to. To automatically find and run all tests (assuming you are in the ``tangelo`` subfolder that contains the code of the package):

.. code-block::
Expand All @@ -198,8 +181,7 @@ You do not need to be a seasoned software developer or expert in your field to m
However we need some guidelines and processes to ensure that we build something of quality for the community. We describe them in the `contributions <./CONTRIBUTIONS.rst>`_ file.
There are many ways you can contribute, but in case you're considering contributing to the codebase: don't be scared of the infamous pull request process ! It can feel intimidating, but we've had a few researchers or high-schoolers go through their first one and... they came back for more ! Mostly.

You can use the `Issue tab <https://github.com/goodchemistryco/Tangelo/issues>`_ to open a bug report or feature request.
If you're not sure, starting a discussion in the `Discussion tab <https://github.com/goodchemistryco/Tangelo/discussions>`_ is a good start: we'll figure it out from there.
You can use the `Issue tab <https://github.com/goodchemistryco/Tangelo/issues>`_ to open a bug report or feature request. If you're not sure, starting a discussion in the `Discussion tab <https://github.com/goodchemistryco/Tangelo/discussions>`_ is a good start: we'll figure it out from there.

By joining the Tangelo community and sharing your ideas and developments, you are creating an opportunity for us to learn and grow together, and take ideas to the finish line and beyond.

Expand Down
24 changes: 22 additions & 2 deletions env_var.sh
Original file line number Diff line number Diff line change
@@ -1,14 +1,34 @@
#!/bin/bash

# To set the number of OpenMP threads used by the package (may have a strong impact on performance)

# 1. Performance
# ---------------------------------------------------------------

# Multithreading: OpenMP threads used in libraries such as quantum simulation backends
export OMP_NUM_THREADS=

# To use GPUs, if qulacs-gpu has been installed (values: 0 or 1)
# TODO: replace with a flag that just says USE_GPU. Everything GPU-enabled and supported will be accelerated.
# Quantum simulator: use GPUs, if qulacs-gpu has been installed (values: 0 or 1)
export QULACS_USE_GPU=


# 2. QPU Connections
# ---------------------------------------------------------------

# IBM Q services: Qiskit & Qiskit runtime need to be installed, you also
# need a IBM Q account set up.
export IBM_TOKEN=

# IONQ QPU services: your personal APIKEY to use IonQ REST services
export IONQ_APIKEY=

# Honeywell QPU services: your personal login info to use Honeywell REST services
export HONEYWELL_EMAIL=
export HONEYWELL_PASSWORD=

# Amazon Braket services (set variables here or use ~/.aws/credentials)
# You need to have an account and the Amazon CLI installed. Check out their documentation.
export AWS_REGION=
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export AWS_SESSION_TOKEN=
8 changes: 4 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import setuptools
import sys
import subprocess
import os


def install(package):
subprocess.check_call([sys.executable, "-m", "pip", "install", package])


with open("tangelo/_version.py") as f:
version = f.readlines()[-1].split()[-1].strip("\"'")

with open('README.rst', 'r') as f:
long_description = f.read()

install('wheel')
install('pyscf')
install('git+https://github.com/pyscf/semiempirical')

description = "Maintained by Good Chemistry Company, focusing on the development of end-to-end materials simulation workflows on quantum computers."

Expand All @@ -24,10 +24,10 @@ def install(package):
version=version,
description=description,
long_description=description,
#long_description_content_type=description,
# long_description_content_type=description,
url="https://github.com/goodchemistryco/Tangelo",
packages=setuptools.find_packages(),
test_suite="tangelo",
setup_requires=['h5py'],
install_requires=['h5py', 'bitarray', 'openfermion', 'openfermionpyscf']
install_requires=['h5py', 'bitarray', 'openfermion']
)
2 changes: 1 addition & 1 deletion tangelo/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@

""" Define version number here. It is read in setup.py, and bumped automatically
when using the new release Github action. """
__version__ = "0.3.4"
__version__ = "0.4.0.RC"
2 changes: 1 addition & 1 deletion tangelo/algorithms/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@
# limitations under the License.

from .variational import BuiltInAnsatze, VQESolver, ADAPTSolver, SA_VQESolver, SA_OO_Solver
from .classical import FCISolver, CCSDSolver, MINDO3Solver
from .classical import FCISolver, CCSDSolver, MINDO3Solver, MP2Solver
from .projective import QITESolver
Loading

0 comments on commit b5f092c

Please sign in to comment.