English | 简体中文
TenCirChem is an efficient and versatile quantum computation package for molecular properties. TenCirChem is based on TensorCircuit and is optimized for chemistry applications.
TenCirChem-NG is fully compatible with TenCirChem with more new features and bug fixes.
Getting started with TenCirChem-NG by installing the package via pip:
pip install tencirchem-ng
Some functionality of TenCirChem-NG requires JAX.
Please install JAX following installation instructions
or simply by pip install tencirchem-ng[jax]
.
TenCirChem is written in pure Python, and its use is straightforward. Here's an example of calculating UCCSD:
from tencirchem import UCCSD, M
d = 0.8
# distance unit is angstrom
h4 = M(atom=[["H", 0, 0, d * i] for i in range(4)])
# configuration
uccsd = UCCSD(h4)
# calculate and returns energy
uccsd.kernel()
# analyze result
uccsd.print_summary(include_circuit=True)
Running uccsd.kernel() in the above code determines the optimized circuit ansatz parameters and VQE energy.
TenCirChem also allows the user to supply custom parameters. Here's an example:
import numpy as np
from tencirchem import UCCSD
from tencirchem.molecule import h4
uccsd = UCCSD(h4)
# evaluate various properties based on custom parameters
params = np.zeros(uccsd.n_params)
print(uccsd.statevector(params))
print(uccsd.energy(params))
print(uccsd.energy_and_grad(params))
For more examples and customization, please refer to the documentation
TenCirChem's features include:
- Statics module
- UCC calculation with UCCSD, kUpCCGSD, pUCCD at an extremely fast speed
- Noisy circuit simulation via TensorCircuit
- Custom integrals, active space approximation, RDMs, GPU support, etc.
- Dynamics module
- Transformation from renormalizer models to qubit representation
- VQA algorithm based on JAX
- Built-in models: spin-boson model, pyrazine S1/S2 internal conversion dynamics
TenCirChem is designed to be:
- Fast
- UCC speed is 10000x faster than other packages
- Example: H8 with 16 qubits in 2s (CPU). H10 with 20 qubits in 14s (GPU)
- Achieved by analytical expansion of UCC factors and exploitation of symmetry
- UCC speed is 10000x faster than other packages
- Easy to hack
- Avoid defining new classes and wrappers when possible
- Example: Excitation operators are represented as
tuple
ofint
. An operator pool is simply alist
oftuple
- Example: Excitation operators are represented as
- Minimal class inheritance hierarchy: at most two levels
- Expose internal variables through class attributes
- Avoid defining new classes and wrappers when possible
TenCirChem is released under Academic Public License. See the LICENSE file for details. In short, you can use TenCirChem-NG freely for non-commercial/academic purpose and commercial use requires a commercial license.
If this project helps in your research, please cite our software whitepaper:
TenCirChem: An Efficient Quantum Computational Chemistry Package for the NISQ Era
which is also a good introduction to the software.
An efficient algorithm to encode phonon states in electron-phonon systems for quantum computation. See examples and the tutorial. Reference paper: https://arxiv.org/pdf/2301.01442.pdf (published in PRR).