Giter Club home page Giter Club logo

openquantumsystems.jl's Introduction

OpenQuantumSystems.jl

Dev CI codecov

OpenQuantumSystems.jl is a numerical framework written in Julia that makes it easy to simulate various kinds of open quantum systems with main focus on quantum biology in finite basis. It is inspired by the quantarhei and QuantumOptics.jl.

Installation

You can obtain OpenQuantumSystems using Julia's Pkg REPL-mode (hitting ] as the first character of the command prompt):

(v1.6) pkg> add OpenQuantumSystems

or with using Pkg; Pkg.add("OpenQuantumSystems").

Questions & Contributions

The package is still under development. If you have any questions or need help, see gitter channel and ask away. Also, contributions of any kind are always welcome! If you have any ideas for bug fixes, new features, optimisation or unit tests suggest it straight away or create a pull request.

Motivation

This package is a backbone for calculations for my master thesis supervised by doc. Tomáš Mančal.

Roadmap

What is OpenQuantumSystems.jl capable of right now?

  • It only supports systems with a finite basis.
  • Calculate Hamiltonian for Aggregates of molecules. Molecules have system Hamiltonian that consists only of relevant degrees of freedom (electronic basis) and bath degrees of freedom. Bath consists of LHOs with shifted potentials for excited local electronic states.
  • Trace over bath degrees of freedom using Franck-Condon Factors and reduced density matrix.
  • It can calculate dynamics for aggregate named as follows
    • Exact dynamics (calculate U(t) operator)
    • Schrodinger dynamics
    • Liuville-von Neumann dynamics
    • Quantum Master Equation dynamics
  • OQS can also prepare the initial condition for density matrix as a laser-excited pulse.
  • It can evaluate the remaining part of the bath. The majority of my master thesis proposes various kinds of ansatzes that aim to find a closed-form of QME with RDM.
  • Scoring of obtained RDM in time in comparison to another RDM.
  • Calculate memory kernel as superoperator.

What can we expect in the near future?

  • Iterative approach for bath part of the reduced density matrix.
  • Calculation of rate constants from dynamics and memory kernel.
  • Better documentation with examples of how to use this package.
  • QME with iterative correction of bath part.
  • Calculation of dipoles for molecules given coordinates.
  • Implementation of Foerster and modified Redfield theories of excitation energy transfer for finite systems (and perhaps special infinite cases).

What would be nice to have?

  • Decomposition of mixed states into a linear combination of pure states using linear programming.
  • Loading Hamiltonian and data storage for aggregate.
  • GPU support for Schrodinger equation and possibly state decomposition.
  • Anharmonic oscillators.
  • Double excited states.
  • Interface with quantarhei, or creating an interface in quantarhei package.

Branches status

Master

CI CI-nightly-julia CI-short Deploy Nightly

Develop

CI-short codecov

Testing

You can use make.bat or make file for testing, but it will install all the dependencies before executing tests. I advise using jupyter notebook src/local_test.ipynb with julia kernel for tests. Package Revise.jl will load all the functions and by using include("src/test_file.jl") you can quickly debug and add new tests.

Developing

Please use formatting in make.bat or make file. I suggest using Revise.jl with jupyter notebook in src/local.ipynb for adding new features. It will spare you of the painful precompilation time.

Credit

quantarhei - Concepts of aggregate construction, Hamiltonian of aggregate construction and trace over bath degrees of freedom were implemented in quantarhei in python.

QuantumOpticsBase.jl - Provides building elements for this package, such as the implementation of operators and superoperators (and many more).

openquantumsystems.jl's People

Contributors

detrin avatar github-actions[bot] avatar restyled-commits avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

openquantumsystems.jl's Issues

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

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.