Skip to main content

Efficient quantum computational chemistry based on TensorCircuit

Project description

TenCirChem

TenCirChem

ci codecov doc Binder

TenCirChem is an efficient and versatile quantum computation package for molecular properties. TenCirChem is based on TensorCircuit, with heavy optimization for chemistry applications.

Install

The package is purely written in Python and can be obtained via pip as:

pip install tencirchem

Getting Started

UCCSD calculation example

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)])

# setup
uccsd = UCCSD(h4)
# calculate
uccsd.kernel()
# analyze result
uccsd.print_summary(include_circuit=True)

Plugin your own code is easy

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))

Please refer to the documentation for more examples and customization.

Features

  • Static module
    • Extremely fast UCC calculation with UCCSD, kUpCCGSD, pUCCD
    • Noisy circuit simulation via TensorCircuit
    • Custom integrals, active space approximation, RDMs, GPU support, etc.
  • Dynamic 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

Design principle

  • Fast
    • UCC speed 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
  • Easy to hack
    • Avoid defining new classes and wrappers when possible
      • Example: Excitation operators are represented as tuple of int. An operator pool is simply a list of tuple
    • Minimal class inheritance hierarchy: at most two levels
    • Expose internal variables through class attributes

License

TenCirChem uses its own license adopted from openCARP. In short, you can use TenCirChem freely for non-commercial/academic purpose and commercial use requires a commercial license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tencirchem-2023.3.tar.gz (54.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page