qlbm

A software package for Quantum Lattice Boltzmann Methods

https://github.com/qcfd-lab/qlbm

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, sciencedirect.com, springer.com, mdpi.com, acs.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

A software package for Quantum Lattice Boltzmann Methods

Basic Info
Statistics
  • Stars: 21
  • Watchers: 3
  • Forks: 7
  • Open Issues: 8
  • Releases: 2
Created almost 2 years ago · Last pushed 10 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Security

README.md

qlbm

GitHub License GitHub top language Python Version from PEP 621 TOML PyPI - Version GitHub commits since latest release GitHub branch check runs Static Badge

qlbm is a package for the development, simulation, and analysis of Quantum Lattice Boltzmann Methods.


qlbm is a rapidly evolving, research-oriented piece of software. It contains building blocks for constructing quantum circuits for quantum LBMs and connects these with quantum software infrastructure. qlbm is built with end-to-end development environment in mind, including:

  • Parsing human-readable JSON specifications for QLBMs
  • Constructing quantum circuits in Qiskit that implement QLBMs
  • Compiling quantum circuits to quantum computer and simulator platforms with Qiskit and Pytket
  • Simulating quantum circuits on classical hardware with Qiskit and Qulacs
  • Visualizing results in Paraview
  • Analyzing the properties , scalability, and performance of quantum algorithms

Static Badge

Install from source

Alternatively, you can also install the latest version of qlbm by cloning the repository and installing from source as follows (again using Python 3.12 or 3.13):

bash git clone git@github.com:QCFD-Lab/qlbm.git cd qlbm python -m venv qlbm-cpu-venv source qlbm-cpu-venv/bin/activate pip install --upgrade pip pip install -e .[cpu,dev,docs] If you are using zsh you need to replace the last line by pip install -e .\[cpu,dev,docs\]

We also provide a make script for this purpose, which will create the environment from scratch:

make install-cpu source qlbm-cpu-venv/bin/activate

PyPI installation

qlbm can also be installed through pip. We recommend the use of a Python 3.12 or 3.13 virtual environment:

bash python -m venv qlbm-cpu-venv pip install --upgrade pip pip install qlbm

Note that qlbm evolves quickly and it is likely that the GitHub repository contains new features that the PyPI installation does not. To get the latest developments, we recommend the source installation.

Container installation

There are also Docker container images in the Docker directory that can be used to install qlbm in a container environment. Due to how quickly the code base is evolving, we recommend using the CPU option for stability purposes.

Algorithms and Usage

Currently, qlbm supports two algorithms: - The Quantum Transport Method (Collisionless QLBM) described in Efficient and fail-safe quantum algorithm for the transport equation (arXiv:2211.14269) by M.A. Schalkers and M. Möller. - The Space-Time QLBM/QLGA described in On the importance of data encoding in quantum Boltzmann methods by M.A. Schalkers and M. Möller and expanded in Fully Quantum Lattice Gas Automata Building Blocks for Computational Basis State Encodings. - The Linear-encoding Quantum Lattice Gas Automata (LQLGA) described in On quantum extensions of hydrodynamic lattice gas automata by P. Love and Fully Quantum Lattice Gas Automata Building Blocks for Computational Basis State Encodings.

The demos directory contains several use cases for simulating and analyzing these algorithms. Each demo requires minimal setup once the virtual environment has been configured. Consult the README.md file in the demos directory for further details.

Note on visualization: we rely on Paraview for visualizing the flow field of the simulation. You can install Paraview from this link.

Configuration

qlbm uses quantum circuits to simulate systems that users can specify in simple JSON configuration files. For instance, the following configuration describes a 2D system of 64x32 gridpoints, 4 discrete velocities per dimension, and with 3 solid objects placed in the fluid domain:

JSON { "lattice": { "dim": { "x": 64, "y": 32 }, "velocities": { "x": 4, "y": 4 } }, "geometry": [ { "shape": "cuboid", "x": [18, 20], "y": [6, 25], "boundary": "specular" }, { "shape": "cuboid", "x": [23, 25], "y": [3, 17], "boundary": "bounceback" }, { "shape": "cuboid", "x": [28, 29], "y": [16, 29], "boundary": "specular" } ] }

Citation

An open access peer-reviewed article describing qlbm is available here. If you use qlbm, you can cite it as:

@article{georgescu2025qlbm, title = {qlbm – A quantum lattice Boltzmann software framework}, journal = {Computer Physics Communications}, volume = {315}, pages = {109699}, year = {2025}, issn = {0010-4655}, doi = {https://doi.org/10.1016/j.cpc.2025.109699}, url = {https://www.sciencedirect.com/science/article/pii/S0010465525002012}, author = {C\u{{a}}lin A. Georgescu and Merel A. Schalkers and Matthias M\"{o}ller}, }

Contact

In addition to opening issues, you can contact the developers of qlbm at qcfd-EWI@tudelft.nl.

Owner

  • Name: QCFD Lab
  • Login: QCFD-Lab
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Georgescu"
  given-names: "Calin A."
  orcid: "https://orcid.org/0000-0002-8102-6389"
- family-names: "Schalkers"
  given-names: "Merel A."
  orcid: "https://orcid.org/0000-0001-7751-9060"
- family-names: "Möller"
  given-names: "Matthias"
  orcid: "https://orcid.org/0000-0003-0802-945X"
title: "qlbm – A Qantum Lattice Boltzmann Software Framework"
version: 0.0.5
doi: "10.1016/j.cpc.2025.109699"
date-released: 2025-03-24
url: "https://doi.org/10.1016/j.cpc.2025.109699"
preferred-citation:
  type: article
  authors:
  - family-names: "Georgescu"
    given-names: "Calin A."
    orcid: "https://orcid.org/0000-0002-8102-6389"
  - family-names: "Schalkers"
    given-names: "Merel A."
    orcid: "https://orcid.org/0000-0001-7751-9060"
  - family-names: "Möller"
    given-names: "Matthias"
    orcid: "https://orcid.org/0000-0003-0802-945X"
  doi: "10.1016/j.cpc.2025.109699"
  journal: "Computer Physics Communications"
  title: "qlbm – A Qantum Lattice Boltzmann Software Framework"
  volume: 315
  year: 2025
  issue: 109699

GitHub Events

Total
  • Issues event: 9
  • Watch event: 15
  • Delete event: 3
  • Issue comment event: 1
  • Push event: 68
  • Pull request event: 19
  • Fork event: 3
  • Create event: 6
Last Year
  • Issues event: 9
  • Watch event: 15
  • Delete event: 3
  • Issue comment event: 1
  • Push event: 68
  • Pull request event: 19
  • Fork event: 3
  • Create event: 6

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 8
  • Total pull requests: 7
  • Average time to close issues: 13 days
  • Average time to close pull requests: about 3 hours
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 0.13
  • Average comments per pull request: 0.0
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 8
  • Pull requests: 7
  • Average time to close issues: 13 days
  • Average time to close pull requests: about 3 hours
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 0.13
  • Average comments per pull request: 0.0
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • mmoelle1 (7)
  • MatthAlex (1)
Pull Request Authors
  • gcalin (11)
  • github-actions[bot] (3)
  • mmoelle1 (1)
Top Labels
Issue Labels
enhancement (6) documentation (2) bug (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 42 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 6
  • Total maintainers: 1
pypi.org: qlbm

Quantum Algorithms for Lattice Boltzmann Methods.

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 42 Last month
Rankings
Dependent packages count: 10.1%
Forks count: 21.0%
Downloads: 23.9%
Stargazers count: 25.4%
Average: 27.5%
Dependent repos count: 57.0%
Maintainers (1)
Last synced: 10 months ago