Coder Social home page Coder Social logo

zhiguanglu / qcs Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 0.0 24.84 MB

Quantum Correlation Solver for driven-dissipative quantum system

License: BSD 3-Clause "New" or "Revised" License

Python 1.95% Jupyter Notebook 92.07% HTML 5.98%
quantum-optics correlation-function

qcs's Introduction

Quantum Correlation Solver (QCS)

PyPI PyPI - Python Version PyPI - Status PyPI - License GitHub repo size Downloads

QCS is an open-source Python code that allows to study the single-photon transmission and reflection, as well as the nth-order equal-time correlation functions (ETCFs) in driven-dissipative quantum systems. The handbook about the package and example notebooks can be found in the current directory.

Applicable conditions

Here, the system needs to meet two conditions. One is that the system Hamiltonian that doesn't include the coherent driving part must satisfy U(1) symmetry, namely the total excitation number conservation. The other is that the driving strength must be small enough. Based on the two points, we could reduce the computation complexity of ETCFs from exponential to polynomial when the system contains multiple optical cavities, emitters, and both.

Computable physical quantities and quantum effects in quantum optics

  • Transmission and reflectance spectrums, ETCFs, cross-correlation function, and 2nd-order unequal-time correlation function.
  • Photon blockade, antibunching, and bunching effects.
  • Dynamical photon blockade effects.

The commonest systems

  • Cavity QED system.
  • Waveguide QED system.

Installation

We've uploaded the open source package to PyPI, and you can add this package to your Python with the command,

pip install qcs_phy

Before installing, please ensure you've added the Python packages: numpy, scipy. Besides, please use the latest version by updating your package with the command,

pip install qcs_phy -U

If you have any problems installing the tool, please open an issue or write to us.

Use

from qcs_phy import qcs
# create the effective Hamiltonian
...Heff
# create the input and output channels
...Input
...Output
# calculate the physical quantity
system = qcs(Heff, Input, Output)
result = system.calculate_quantity(Quantity)

For more details and examples on the use of QCS see the handbook and example folder. Besides, we've provided the numerical comparison results in tests folder.

Citation

There is an official article related to this package, and the article is available at:

Phys. Rev. A 108, 053703 (2023)

http://journals.aps.org/pra/abstract/10.1103/PhysRevA.108.053703

DOI: 10.1103/PhysRevA.108.053703

http://arxiv.org/abs/2305.08923

You can cite the article, if this package is greatly helpful for your research.

Supplementary instruction

Due to the limited level of my programming ability, I've optimized the code to the best of my ability, and I guarantee its correctness (see the tests folder). Finally, If there are some bugs running the code, please contact me as soon as possible.

License

QCS is licensed under the terms of the BSD license.

Update log

1.0.0 first release

1.0.1 fixed functions: print_Dim,print_basis,print_InOutput,print_Heff

1.0.2 fixed the problem of the denominator about calculating the single-photon transmission and reflection when the collective spins are coherently driven

1.0.3 fixed the formula of the single-photon transmission and reflection

1.0.4 updated the function: calculate_2nd_uETCF

1.0.5 deleted the function: print_Dim, and updated the function: print_basis

1.0.7 fixed the private function: __prestore_HeffList

1.0.9 updated a new function: print_weight_N, which is used to print the weight excitation number operator of the effective Hamiltonian; fixed the problem of constructing the weight excitation number operator for tripartite and multipartite interactions

1.1.0 further fixed the problem of constructing the weight excitation number operator for tripartite and multipartite interactions

1.1.1 fixed an issue where the calculate_xxx functions would not work properly when it appeared after the print_xxx functions

1.1.2 improved the function: calculate_2nd_uETCF; this is final version

qcs's People

Contributors

zhiguanglu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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.