Recent Releases of tequila-basic
tequila-basic - v.1.9.9
Add initial state support for expectation values (#373)
python result = tq.simulate(E, initial_state=....)python E = tq.compile(E) evaluated = E(variables, initial_state=....)Improve circuit compilation performance (#375)
Wave function compact visualization (#376)
spex backend (#379)
adding spex as a supported backend
python result = tq.simulate(E, backend="spex")bash pip install spex-tequilaBug in orbitaloptimizer.py to vqesolver (#377)
Remove Qiskit noise feature and transpile circuit (#378)
geometrytoxyz (#382)
Co-authored-by: Oliver Hüttenhofer oliver.huettenhofer@gmail.com Co-authored-by: davibinco 59845652+davibinco@users.noreply.github.com Co-authored-by: Mikel-Ma 116980451+Mikel-Ma@users.noreply.github.com Co-authored-by: JdelArco98 francisco.del.arco.santos@uni-a.de
- Python
Published by kottmanj 11 months ago
tequila-basic - v.1.9.8
Overview
- oo more flexible (#366)
- Fix current Qiskit versions
- Update ci_backends.yml
- Add Qiskit GPU simulator
- Refactor QubitWaveFunction, add support for Numpy array backed dense representation (#370)
- Fix some tests
- Reactivate QASM tests
- Enable arbitrary state initialization for Qulacs and Qiskit backends (#371)
Details:
- Enable arbitrary state initialization for Qulacs and Qiskit backends (#371) (Oliver Huettenhofer )
For the Qulacs and Qiskit backend, it makes it possible to initialize circuits with arbitrary wavefunctions instead of only basis states.
This also adds the parameter for sampling and to tq.simulate.
I have added boolean flags to the backend circuit objects that indicate which backends support this and throw an error message when necessary. This doesn't seem ideal, but I didn't want to change the other backends that I can't test.
Also, combining initial states with a keymap is awkward, I think it only makes sense if we assume that all states on the inactive qubits are the same. For now I disabled it and throw an error message. I noticed that there's no keymap for sampling, can we get rid of it for simulating too?
Example usage:
```python import numpy as np import tequila as tq from tequila import QubitWaveFunction
U = tq.gates.H(target=0) state = QubitWaveFunction.from_array(np.array([1.0, 1.0])).normalize()
result = tq.simulate(U, initialstate=state, backend="qulacs") assert result.isclose(QubitWaveFunction.frombasisstate(nqubits=1, basis_state=0))
result = tq.simulate(U, initialstate=state, backend="qulacs", samples=100) assert result.isclose(QubitWaveFunction.fromarray(np.array([100.0, 0.0]))) ```
- Refactor QubitWaveFunction, add support for Numpy array backed dense representation (#370) (Oliver Huettenhofer)
When running simulate to get the output wavefunction of a circuit, currently the conversion from the array that the backend returns to the dictionary format that Tequila uses can be a bottleneck.
This pull request fixes this by refactoring the QubitWaveFunction class and allowing it to either use a dictionary for sparse wavefunctions, or a Numpy array for dense wavefunctions.
To see the performance improvement, consider the code from my previous pull request, but increase the number of qubits to 22:
```python import tequila as tq from math import pi import time
SIZE = 22
def qft(size: int, inverse: bool = False) -> tq.QCircuit(): U = tq.QCircuit() for i in range(size): U += tq.gates.H(target=i) for j in range(size - i - 1): U += tq.gates.Phase(target=i + j + 1, angle=(-1 if inverse else 1) * pi / 2 ** (j + 2)) U += tq.gates.CRz(target=i, control=i + j + 1, angle=(-1 if inverse else 1) * pi / 2 ** (j + 1)) return U
U = qft(SIZE) V = qft(SIZE) + qft(SIZE, inverse=True)
start = time.time() wfn = tq.simulate(U, backend="qulacs") print(f"QFT time: {time.time() - start} s")
start = time.time() wfn = tq.simulate(V, backend="qulacs") print(f"QFT + inverse QFT time: {time.time() - start} s") ```
On the current devel branch, this takes around 10 seconds for only the QFT, and around 2.4 seconds for the QFT combined with the inverse. With this pull request, this is reduced to around 0.95s / 1.85s. Not only is it faster, but the larger circuit is now slower, unlike before where the larger circuit was faster because the result was a sparse wavefunction. The time spent in the Qulacs update_quantum_state method is around 0.7s / 1.4s, so now the simulation actually makes up the majority of the runtime.
In theory, both sparse and dense representations should be functionally equivalent, and the only difference should be a space-time tradeoff. Most of the time, the sparse representation is used by default to preserve the previous behaviour. The dense representation is used when the wavefunction is constructed from an array, or when it is chosen explicitly.
I also made various other changes to the wavefunction API.
- Add Qiskit GPU simulator (Oliver Huettenhofer)
I added support for running the Qiskit simulator on the GPU by creating a subclass that changes the device name. I used the same structure as for the Qulacs GPU simulator.
Using this requires the qiskit-aer-gpu package.
I also commented out the package check for qulacs-gpu, because that package is not maintained, instead you have to compile Qulacs with GPU support, see https://github.com/qulacs/qulacs/issues/623#issuecomment-2006123134.
Co-authored-by: Oliver Huettenhofer oliver.huettenhofer@gmail.com
- Python
Published by kottmanj over 1 year ago
tequila-basic - v.1.9.7
Minor convenience changes Major Performance improvements for wavefunction simulation (without using expecation values)
- Fix
U.export_to("path.png)"syntax - Deepcopy gates in
__iadd__ofQCircuit(#360) - Simulation performance improvements (#359)
- Only apply keymap if necessary in
simulate - Simplify comparison and only calculate index bitstring when necessary in
from_array - Fix
numbering_outparameter ininitialize_bitstringand remove MSB2LSB/LSB2MSB keymap infrom_array - Optimize
initialize_bitstring - Update requirements.txt (no scipy version restriction, issue #361)
- rdm calculation more flexible (#363)
- Update version.py
RDM calculations:
calling the rdm function in the quantum chemistry module with evaluate=False gives back a tq.QTensor object
direct evaluation within compute_rdm is however faster (no repetitions in the simulation)
python
rdm1, rdm2 = mol.compute_rdms(U=U, evaluate=False)
Performance improvements @ohuettenhofer see the original pr: https://github.com/tequilahub/tequila/pull/359
no syntax changes
Co-authored-by: Oliver Huettenhofer oliver.huettenhofer@gmail.com Co-authored-by: Oliver Hüttenhofer 168852439+ohuettenhofer@users.noreply.github.com
- Python
Published by kottmanj over 1 year ago
tequila-basic - v.1.9.6
New functionality in chemistry module, smaller bug fixes, minor changes.
New functionality in Chemistry Module:
Orbital Rotation Circuits
python
UR = mol.get_givens_circuit(spatial_orbital_transformation_matrix)
Optimized compilation of Jordan-Wigner UCC excitation gates
According to: Yordanov et. al.
Unitary Conversion between Bravyi-Kitaev and Jordan-Wigner
python
U = mol.transformation.me_to_jw()
Transform molecular RDMS
e.g. freeze orbital 1 (in JW) explicitly.
python
rdm1, rdm2 = mol.compute_rdms(..., rdm_trafo=tq.paulis.X([0,1])
Otherwise
- dropping GPyOpt support (not updated to dependencies/new python versions)
- Qiskit translation updated to current qiskit version.
individual PRs
- Fixing Pyscfmol.fromtq() (#342)
- Fixing Pyscfmol.fromtq()
- RDMs transformation (#341)
- rdms transformation
- rdm_trafo default from False to None
- fix U.export_to() personalized (#344)
- Add Givens Methods (#343)
- add automatic construction of orbital rotation circuits
- control not passed form QubitExcitation to QubitExcitationImpl (#346)
- fixing error in the initialization of binary hamiltonians closes #394 (#351)
- Fermionic Excitation Implementation (#350)
- Fermionic Excitation Implementation
- made indices in Fermionic excitations more consistent
- Update chemistry_tools.py
- Update qc_base.from tequila (#353)
- Update simulator_qiskit.py (#354) fixing u1, cu1 deprecation in qiskit
- quantumchemistry: added encoding transformations (#345)
- quantum chemistry: added encoding transformations
- Update CI
- updating qiskit noise imports to latest versions (#355)
Co-authored-by: JdelArco98 javierdelarcosantos@gmail.com Co-authored-by: Phillip W. K. Jensen 46899159+pwkj@users.noreply.github.com Co-authored-by: JdelArco98 francisco.del.arco.santos@uni-a.de Co-authored-by: Deadly Artist 44524817+DeadlyArtist@users.noreply.github.com Co-authored-by: Benjamin Meyer 46791542+benni-tec@users.noreply.github.com
- Python
Published by kottmanj over 1 year ago
tequila-basic - v.1.9.5
Tequila Version 1.9.5
- orbital names are better tracked through transformations (#338)
- keep basis info when re-initializing with mol.from_tequila
Example (Gaussian Basis Set)
needs
bash
pip install pyscf
```python geom = "H 0.0 0.0 0.0\nH 0.0 0.0 1.5" mol = tq.Molecule(geometry=geom, basis_set="sto-3g")
mol.printbasisinfo() ```
gives
basis_name : sto-3g
orbital_type : hf
orthogonal basis : False
basis functions : 2
active orbitals : [0, 1]
reference : [0]
Current Orbitals
{idx_total:0, idx:0}
coefficients: [0.63074567 0.63074567]
{idx_total:1, idx:1}
coefficients: [ 0.82021585 -0.82021585]
change to "native orbitals", meaning in this case orthonormalized atomics
python
mol = mol.use_native_orbitals()
mol.print_basis_info()
gives
basis_name : sto-3g
orbital_type : orthonormalized-sto-3g-basis
orthogonal basis : False
basis functions : 2
active orbitals : [0, 1]
reference : [0]
Current Orbitals
{idx_total:0, idx:0}
coefficients: [ 1.02598473 -0.13397565]
{idx_total:1, idx:1}
coefficients: [-0.13397565 1.02598473]
Using the orbital optimization routine will now set the orbital coefficients w.r.t the original basis
U = mol.make_ansatz(name="SPA", edges=[(0,1)])
opt = tq.chemistry.optimize_orbitals(molecule=mol, circuit=U)
mol2 = opt.molecule
mol2.print_basis_info()
basis_name : sto-3g
orbital_type : optimized
orthogonal basis : False
basis functions : 2
active orbitals : [0, 1]
reference : [0]
Current Orbitals
{idx_total:0, idx:0}
coefficients: [-0.63074597 -0.63074537]
{idx_total:1, idx:1}
coefficients: [ 0.82021562 -0.82021608]
Example MRA-PNOs
MRA-PNOs from the madness module, need
bash
pip install pyscf
conda install madtequila -c kottmann
```python geom = "H 0.0 0.0 0.0\nH 0.0 0.0 1.5" mol = tq.Molecule(geometry=geom)
mol.printbasisinfo() ```
basis_name : mra
orbital_type : pno
orthogonal basis : True
basis functions : 2
active orbitals : [0, 1]
reference : [0]
Current Orbitals
{idx_total:0, idx:0, occ:2.0, pair:(0, 0)}
coefficients: [1. 0.]
{idx_total:1, idx:1, occ:0.0425791, pair:(0, 0)}
coefficients: [0. 1.]
MRA-PNOs are the native basis, so mol.use_native_basis() has no effect here. After calling the orbital-optimizer, coefficients of the optimized molecule are w.r.t the MRA-PNOs.
- fixing syntax issue in post_init of dataclass (#327)
- Support for phoenics optimizer dropped (dependency not maintained anymore and problems with downstream dependencies are piling up)
- more convenient randomization initialization for orbital optimizer (e.g
initial_guess="near_zero") Update qasm.py (#334, #335) Fixes issue #332
added methods to create annihilation, creation, sz, sp, sm and s2 operators in qubit representation (#336)
python ak = mol.make_annihilation_op(k) # spin-orbital k ck = mol.make_creation_op(k) ck = ak.dagger() S = mol.make_s2_op() # total-spin operator Sz = mol.make_sz_op() # spin-polarization Nk = mol.make_number_op(k)
Co-authored-by: davibinco 59845652+davibinco@users.noreply.github.com
- Python
Published by kottmanj almost 2 years ago
tequila-basic - v.1.9.4
- fixing syntax issue in post_init of dataclass (#327)
- phoenics dropped due to maintenance resources
- more convenient randomization initialization for OO, avoiding numpy warnings
- Python
Published by kottmanj about 2 years ago
tequila-basic - v.1.9.3
fixing issues with qubit encodings and orbital optimizations (#325) Orbital optimizer was setting transformation in the molecule back to the default (JordanWigner)
- Python
Published by kottmanj about 2 years ago
tequila-basic - v.1.9.2
Minor changes
- changed circuit init in adapt class (#319)
- added moleculearguments explicitly to orbitaloptimizer (#321)
- PR Silence PySCF (#322)
Co-authored-by: Davide Bincoletto davide@qalg031.informatik.uni-augsburg.de
- Python
Published by kottmanj about 2 years ago
tequila-basic - v.1.9.1
Minor Bug Fixes
Update pyscf_interface.py
no irreps in c1 (#314) (thanks @nysler)
fixing issues with gradient printing in spsa (#316) (thanks @dariavh)
fixing bug associated to qubit excitations with added controls (#317) (thanks Silvia Riera Villapun)
- Python
Published by kottmanj over 2 years ago
tequila-basic - v.1.9.0
- orbital optimizer more flexible with regards to qubit encodings (#305)
see https://arxiv.org/abs/2105.03836 for more on the "HCB" encoding
orbital optimization with circuits that respect HCB encodings now around a factor of 2 faster.
see tequilahub/quantum-valence-bond for an example in file
h6_spa.py
Example: ```python import tequila as tq
mol = tq.Molecule(geometry="H 0.0 0.0 1.0\nH 0.0 0.0 2.0\nH 0.0 0.0 3.0\nH 0.0 0.0 4.0") U = mol.make_ansatz(name="HCB-SPA")
opt = tq.chemistry.optimizeorbitals(mol, U, usehcb=True) ```
- Structures for F3 circuit optimizations (#303)
Adding linear depth F3 circuit
Adding trotter error feature along testing data (#292)
Adding trotter error feature along testing data
iSWAP gate and Givens gate (#304)
Implement iSWAP gate.
Implement Givens gate and bugfix tests iSWAP.
Remove iSWAP from Cirq simulator.
Refactor
GeneralizedRotationto generators with (possible) nullspace. (#306)Migrate shifted_gates method from QubitExcitation to GeneralizedRotation.
Bugfix: list of
GeneralizedRotationImpl.Bugfix: target order matters in
QubitExcitation.Add check for p0 in
GeneralizedRotation.SWAP gate initialization updated to follow conventions
Refactor
mapped_qubitsto avoid duplicate code.added GenRot shortcut
Bugfix: change API to modularized
cirqpackage. (#308)Refactor circuit build to
cirq_googlemodule.Add check for
cirq_google, add test.Update ci_backends.yml
Some BugFixes (#311)
UpCCGSD mix_sd fixed
Co-authored-by: Praveen Jayakumar praveen91299@gmail.com Co-authored-by: Praveen Jayakumar praveen.jayakumar@mail.utoronto.ca Co-authored-by: lamq317 lamq317@gmail.com Co-authored-by: Daria Van Hende 33431368+dariavh@users.noreply.github.com Co-authored-by: JdelArco98 104641558+JdelArco98@users.noreply.github.com
- Python
Published by kottmanj over 2 years ago
tequila-basic - v.1.8.9
better messages for madtequila (#291)
qubit encodings consistency (#294)
more consistency in HCB approximation and SPA wavefunctions (#295)
more consistency in HCB approximation and SPA wavefunctions
keeping up to date with pyscf and setting parse_arg=False in mol constructor (mainly blocks pytest commands)
added plot2cube support to madness interface (#296)
Update madness_interface.py
dropping noisy simulation support in qulacs -- no longer maintained
fixing small issue in tests regarding scipy 1.11 release
adding args/kwargs to psi4.compute_rdms function
adding return to call of base class in psi4.compute_rdms function
```python
create cube files form madness orbitals
mol = tq.Molecule(geometry="myfile.xyz") mol.plot2cube(orbital=2) # plots active orbital 2 to a cube file ```
- preparing for hcb merge (#293) mol.computerdms(usehcb=True) is now enabled for spin-free matrices. Allows to compute RDMs with half the qubits (given that the circuit is in HCB encoding).
- Implementing HCB rdm on general compute_rdms()
- consistency in rdm computation with hcb for reordered transformations
* fixes hcbrdms and Tests rdmshcb
Co-authored-by: Javier del Arco javierdelarcosantos@gmail.com Co-authored-by: J. S. Kottmann jakob.kottmann@gmail.com
- enabled HCB in orbital optimization, can be done via tq.chemistry.opt… (#297)
- enabled HCB in orbital optimization, can be done via tq.chemistry.optimizeorbitals(...,usehcb=True)
```python
orbital optimization with hardcore-boson circuits
U = mol.makeansatz("HCB-UpCCD") opt = tq.chemistry.optimizeorbitals(circuit=U, molecule=mol, initialguess=guess, usehcb=True) ```
- small issue in consistency test, silenced unnecesarry warning
- QASM string parsing bug (#298)
Co-authored-by: Praveen Jayakumar praveen.jayakumar@mail.utoronto.ca * Update requirements.txt * Fix NumPy float and int (#301)
Co-authored-by: JdelArco98 104641558+JdelArco98@users.noreply.github.com Co-authored-by: Javier del Arco javierdelarcosantos@gmail.com Co-authored-by: Praveen Jayakumar praveen91299@gmail.com Co-authored-by: Praveen Jayakumar praveen.jayakumar@mail.utoronto.ca Co-authored-by: Erik Kjellgren erikkjellgren@live.dk
- Python
Published by kottmanj over 2 years ago
tequila-basic - v.1.8.8
Improvement on Measurement Optimization (Seonghoon Choi @schoi839 & Aranya Chakraborty @Aranya3003 ): Addition of techniques from https://doi.org/10.22331/q-2023-01-03-889 (Izmaylov Group) PR authored by: Seonghoon Choi and Aranya Chakraborty
- Completed SVD (commit on behalf of Aranya Chakraborty).
- Completed FFF (commit on behalf of Aranya Chakraborty).
- Improved the efficiency of F3.
- Truncated CISD containing only a few slater determinant terms is usedinstead of the full CISD.
- F3 is performed only on a few large variance fragments.
- Safer choice of minimum meas_alloc (1e-6) to avoid issues with allocating 0 shots.
- Addressing minor comments.
- Adding tests for Fermionic measurement optimization schemes.
- Returning rotated (cartan form) obt and tbts after F3.
Changed OSI to ICS for consistency.
Circuit for fermionic measurement techniques:
Added circuit implementations of orbital rotations
Added test for orbital rotations.
Proper handling of non-symmetric fermionic Hamiltonian (happens when one obtains it from reversejordanwigner of a qubit Hamiltonian).
Handling options in compile_groups to better deal with exceptions and default options.
getfermionicwise now correctly returns QubitHamiltonian rather than openfermion QubitOperator.
If suggested samples = 0, at least 1 sample (shot) is allocated for that measurable fragment.
- Update psi4interface.py removed computexbodyintegral functions as this migrated to qc_base
- Update ci_pyquil.yml deactivating for now, issues with forest-sdk docker file
- Update pyscf_interface.py allow charged molecules in pyscf backend --------
* allow molecule construction with basis= along with basis_set= as this was a common issue
* adding repr method to Variables class for easier serialization and evaluation
- made autograd the default in requirements -- less issues on M1/M2 chips and windows
* provided more information in autograd_imports
allow qpic export from circuit without having to specify the filename keyword explicitly
Co-authored-by: Aranya Chakraborty aranyac@iisc.ac.in Co-authored-by: Seonghoon Choi seonghoon.choi@utoronto.ca Co-authored-by: J. S. Kottmann jakob.kottmann@gmail.com
- Python
Published by kottmanj almost 3 years ago
tequila-basic - v.1.8.7
removing deprecated tensorflow interface (#275)
Tests fail since a while due to new versions of tensorflow. I don't have time to maintain the module and it seems unused. If you want to revive it, just let me know or make a PR with working tests.
- Python
Published by kottmanj almost 3 years ago
tequila-basic - v.1.8.6
Update madness_interface.py (#273) fixing a bug that appears when npno is set manually and is smaller than the number of electron pairs. Example N2 with npno=3 (triple bond only). Maxrank was then set to zero. Prevent this from happening by forcing maxrank to be at least 1 when auto-assigned.
Autograd usage: - changing floatpower to power in _pow__ operators to allow for more convenience when using jax instead of autograd (affects mostly osx-arm64 and win systems)
Minor updates: - little more convenience in mol.UR and mol.UC in accordance with arXiv:2207.12421
- Python
Published by kottmanj almost 3 years ago
tequila-basic - v.1.8.5
Fixed initialization bug in UR and UC convenience functions in tq.Molecule
- UR corresponds to Eq.(6) in arxiv:2207.12421
- UC with JordanWigner corresponds to Eq.(22) in arxiv:2207.12421
- UC otherwise corresponds to quantum gates generated by Eq.(6) in arxiv:2105.03836
- Python
Published by kottmanj about 3 years ago
tequila-basic - v.1.8.4
improved adapt defaults and created convenience function for molecular solver (#254)
Pr overlap groups (#255)
Implemented sorted insertion grouping.
Sorted insertion grouping (a type of greedy grouping method) has been implemented for both qubit wise commuting and fully commuting groups.
Added tests to verify that sorted insertion grouping returns appropriately commutative groups.
If one wishes to evaluate commuting groups using the suggested sample size, it can be done by specifying samples="auto-total#ofsamples", e.g., samples="auto-1000000" when compiling the objective (or circuit).
Currently, suggested samples require a covariance dictionary. However, in the future, automatic evaluation of covariances will be implemented. Authored-by: Seonghoon Choi seonghoon.choi@epfl.ch thanks to Thomson Yen @tymcr for feedback
make transformation to native basis (e.g. atomics) more convenient wi… (#256)
make transformation to native basis (e.g. atomics) more convenient with orbital_type keyword
tensorflow with newer versions failed. adapting tests to old version
Quick fix for e-XX type of floats
replacing numpy.complex with complex as the former was deprecated in recent numpy version
adding test for 1.e-X coefficients in hamiltonian
added gem method | same as krylov method but more convenient (#260)
PR Chem Convenience (#261)
added UR and UC to chemistry module (following arxiv: 2207.12421)
PR syntax braket to BraKet (#262)
braket -> BraKet for consistency in syntax
added Fidelity and Overlap convenience
suspicious self import (#263) removed potential trouble maker
Update qc_base.py (#264) patched typo
Update simulator_qiskit.py (#265) deprecation of + operator in qiskit 0.40.0
-----— Co-authored-by: schoi839 99433778+schoi839@users.noreply.github.com Co-authored-by: IraitzM iraitzm@gmail.com
- Python
Published by kottmanj about 3 years ago
tequila-basic - v.1.8.3
Mostly small updates - fixing wrong assumptions on k-UpCCGSD for k-GS keyword (#251) - added warning about performance loss and potential solution when using HCB in orbital_optimizer (#252) computation of 1-RDM and 2-RDM will map from HCB to JW and therefore will have higher runtime costs as potentially expected by the user - adding pypi release to github actions
- Python
Published by kottmanj over 3 years ago
tequila-basic - v.1.8.2
v.1.8.2: Fixing some small bugs in madness interface and optimizer
- some failsaves when tq.grad is called with a compiled structure (#245)
allowing manual gradient compilation for scipy
introduced silent keyword in adapt (#246)
fixing bug in auto-determining core-orbitals (#248) resolves #247 thanks to @jjgoings
fixing bug in auto-determining core-orbitals
added more tests for failsaves, added qulacs version restriction due to changed noise models
fix heavy element formatting for periodictable (#249) @jjgoings
Co-authored-by: Joshua Goings 3915169+jjgoings@users.noreply.github.com
- Python
Published by kottmanj over 3 years ago
tequila-basic - v1.8.1
Bugfix for madness interface when datadir is used versions before can get around it with tq.Molecule(...., name="/path/name") instead of tq.Molecule(...,name=name, datadir=path)
- Python
Published by kottmanj over 3 years ago
tequila-basic - v1.8.0
Add BraKet Functionality (#227) @fran-scala PR from fran-scala/tequila Adds tq.BraKet to tequila and provides an application with a krylov solver Author: @fran-scala via QOSF
simplified qubit excitation (#211)
Chemistry Bug Fixes (#215)
- further improvements with pyscf interface:
- no clashes with inbuild mp2 and cis amplitude routines.
- some more failsafes
- changed defaults in uccsd
- add contract method to QTensor so as to allow optimization (restored functionality from VectorObjective). @salperinlea
added dummy map_variables to FixedVariable class to avoid unnecessary errors (#219)
fixing small issue with specialized active spaces (if molecular integrals are directly provided and no ref-orbital is frozen (#220)
cleanup and more docs in chemistry base class (#221)
Pr minifix (#224): fixing inplace error with add_controls and deactivated inplace operation as default
Pr IntegralManager (#223)
cleanup and more docs in chemistry base class
added IntegralManager class
fixing issues with keeping track of the reference
fixed issues with ordering in NBTensor, added auto-detection of orderings
adding improvements for fock matrix (tested with mp2 and cis functions
easier orbital transformations (#225)
Add convertPaulistring, PauliGate, little fix in ExpPauli
Pr chemistry cosmetics (#228)
fixed some faulty printouts
fixing active space translation issues between chemistry backends and orbital optimization
Delete requirements_phoenics.txt
Delete requirementsphoenics36.txt
Update cichemistrypsi4.yml
psi4 conda support for python 3.7 stopped
Support for capitalized filenames (#232) @LasseBKristensen
Minor change to allow for capitalization in file paths when loading molecule from a file.
Minor bugfix of madness interface -Fix of bug that would cause getpairorbitals to sometimes fail when called by localqubitmap.
added spa ansatz outside of madness module (#234)
frozen-core moved to parameters (#236)
frozen-core moved to parameters, activated by default
adapting tests to frozen_core=True
more convience in madness interface (#241)
auto-read deactivated: use n_pno="read" instead
datadir can be provided
Co-authored-by: Sumner sumner.alperin@mail.utoronto.ca Co-authored-by: fran-scala scala0francesco@gmail.com Co-authored-by: Francesco Scala 91551202+fran-scala@users.noreply.github.com Co-authored-by: LasseBKristensen 48718447+LasseBKristensen@users.noreply.github.com
- Python
Published by kottmanj over 3 years ago
tequila-basic - v1.7.0
QTensor Structure (by @gaurav-iiser ) - High level tensors with tequila quantum objects - Derives from numpy.ndarray, analog in usage - e.g.: T = QTensor([objective1, objective2], shape=(2,)) - e.g.: T3 = T1.dot(T2) - e.g: result = tq.simulate(T3)
CIrcuit compiler: Easier API - e.g. U1=tq.compilecircuit(U). Default compiles everything to elementary gates - e.g. U1=tq.compile(U, controlledrotation=False)
Chemistry: - Orbital Optimizer: tq.chemistry.optimizeorbitals(molecule=mol, circuit=U) optimizes orbitals for given circuit - More convenience in ansatz construction - More flexibly PySCF interface - automatic naming of molecules - automatic geometryfile lookup if name is given - automatic protocols for madness interface (minimal correlated as default) - nelectrons/atoms/atom-numbers in parameters - compute_rdms returns rdm directly
CIrcuit export via qpic: - more convenience - more flexibility - e.g.: U.exportto(filename="circuit.png") - e.g.: U.exportto(filename="circuit.pdf", style="standard")
Improved measurement Reduction (by @ZPBQuantum ): - Shorter circuits in basis-rotations - e.g.: tq.ExpectationValue(H=H, U=U, optimize_measurements=True)
- Python
Published by kottmanj about 4 years ago
tequila-basic - v1.6.2
Pr robustness application (#183)
Added code and techniques described in https://arxiv.org/abs/2110.09793
sign consistency between upccgsd circuit optimizations (#184)
more consistency between different mappings (e.g. optimized compiling in JW vs standard compiling in BK)
fixing bug in qcbase (#182)
prepare_reference did not consider potential reordering in the fermionic encoding
PR-Improved-rotation-circuits-in-grouping (#162)
More efficient basis-change rotation-circuits in the measurement reduction scheme of T.-C. Yen, V. Verteletskyi and A. Izmaylov
Will be described in detail in Z. Bansingh, A. Izmaylov et. al. (once published paper will be added to README.md list)
Qiskit update (#185)
Fixing qiskit backend to comply with new version
- Python
Published by kottmanj over 4 years ago
tequila-basic - v1.6.1
SPSA Optimizer and Bug-Fixes
SPSA optimizer - @Zombor00 fix geometry formatting bug in ParametersQC (#176) @m-i-w fixing issues with FixedVariable and gradients (#177) @kottmanj Fixed bugs related to singles rotations in UCC methods (#179) @kottmanj
- Python
Published by kottmanj over 4 years ago
tequila-basic - v1.6.0
- Pr opt compiling (#148)
- switch on optimized compiling of qubit excitations by default, small bugfix in trotterized gates
- fixed issue with reordered jordanwigner and optimized compiling
qubit excitation: optimized compiling also for non-ordered excitations
Pr map variables (#149)
allow mapping of variables
fixed qpic and circuit parameter repr
transformed variables work for new versions of jax/jaxlib (#151)
more consistency between qubit excitations and fermionic_excitation gates
adapted tests
PR:PySCF (#153)
automatize pyscf support
Pr four term rule (#150)
sync with master
initial four-term rule
four term rule for qubit excitation PR by dwierichs
F12 correction (#156)
added F12 functionality
more convenience in adding gates to circuit (#157) PR by p. schleich
PR pyscf hotfix (#158)
circumvent pyscf crash from newest h5py release
QLM simulator support (#159)
Created support for QLM (simulators) PR by Leo Becker
Pr controlled (#160)
Add control_circ method to QCircuit PR by MakoStrwlkr
Changed cirq.TrialResult to cirq.Result (#167)
Co-authored-by: David Wierichs davidwierichs@gmail.com Co-authored-by: Philipp Schleich 63513558+philipp-q@users.noreply.github.com Co-authored-by: Leo Becker leijonamieli@hotmail.fi Co-authored-by: MakoStrwlkr 72935357+MakoStrwlkr@users.noreply.github.com
- Python
Published by kottmanj over 4 years ago
tequila-basic - tequila v1.5.0
Chemistry Updates: * added hardcore boson hamiltonian to qcbase * improved madness defaults (symmmetric orthogonalization, boys localization, diagonal approximation) * active space integration into hcb hamiltonians * qubit mapping for circuits includes generators nowl * collect more information in adapt * simplified and generalized qubit encodings in the chemistry backend * naming pnoinfo files consistently * unifying upccgsd labeling * better file handling from madinterface * unified (SPA-)-(HCB)-UpCC(G)(S)D approaches according to arXiv:2105.03836 * optimized qubit excitations according to arxiv:2005.14475 * adding A approximation to UpCCGSD singles * added SPA keyword for consistency with paper * pyscf bridge for convenience + streamlined method calling in spa and upccgsd hierarchies * added classical methods to pyscf * added pyscf to CI *avoid gate duplication in makeupccsd General Updates and Fixes: * cleaning up gates * moving improved QubitExcitations from devel-chemistry to public devel * moving improved Controlled-Gates-Shifts from devel-chemistry to public devel * balanced improvements in gates with current version of the chem module *Avoid numeric type issue with jax for lazy initialization of initial variables in some optimizers *fixed issue with scipy module and noise (now passed down correctly) *improved qpic module
- Python
Published by kottmanj almost 5 years ago
tequila-basic - tequila v1.0.0
Initial release version of tequila
The main features are described in: https://arxiv.org/abs/2011.03057 Extended features for the chemistry module are described in: https://pubs.rsc.org/en/content/articlelanding/2021/SC/D0SC06627C#!divAbstract
- Python
Published by kottmanj about 5 years ago