Git Product home page Git Product logo

tencirchem's Introduction

TenCirChem

TenCirChem

ci codecov pypi doc Binder

English | 简体中文

TenCirChem is an efficient and versatile quantum computation package for molecular properties. TenCirChem is based on TensorCircuit and is optimized for chemistry applications.

Easy Installation

Getting started with TenCirChem by installing the package via pip:

pip install tencirchem

Simple to Use

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

Exciting Features

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

Design principle

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
  • 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 is released under Academic Public License. See the LICENSE file for details. In short, you can use TenCirChem freely for non-commercial/academic purpose and commercial use requires a commercial license.

Citing TenCirChem

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.

Research and Applications

Variational basis state encoder

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

tencirchem's People

Contributors

liwt31 avatar refraction-ray avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.