Skip to main content

A package for micro/nanoflow

Project description

mnFlow

DOI License: AGPL v3 Documentation PyPI downloads PyPI version Code style: Black

Single DLD Parallelized DLD

[!TIP] The manual and tutorials can be accessed from the documentation, generated from /docs.

Introduction

Micro-nanoflow (mnFlow) library is aimed at providing the community with tools for design and modeling of micro-nanofluidic chips. The current focus of the project is on Deterministic Lateral Displacement (DLD) structures. In particular, the DLD design automation (DDA) tool aims at automating the entire process of design and production of computer-aided design (CAD) files for DLD-based micro-nanofluidic chips. The produced CAD files can be used for computational modeling, optimization, and manufacturing of DLD devices.

Usage

Installation

To use mnFlow, first install it using pip (preferably in a virtual environment using venv):

python -m pip install mnflow

Getting Started

Let us design a DLD structure with critical diameter of d_c=10.0 (microns) and periodicity of Np=10. The channel is vertical by default. In this example, we pass rot_last=90 to apply a 90-degree rotation to form a horizontal channel (for better arrangement in this document). Finally, we pass opt_save_image=True to save an image of the layout. Here, is the final script:

from mnflow.mfda.cad.dld.theme.block import DLD
dld = DLD(
    d_c=10.0,
    Np=10,
    rot_last=90,
    opt_save_image=True,
)

Output:

----------------------------------------
core.DLD___Np:10_Nw:8_gap_w:21.571_pitch_w:43.142_gap_a:21.571_pitch_a:43.142_height:86.284_boundary_treatment:pow_3
block.DLD___num_unit:9_opt_mirror:False_array_counts:[1, 1]_opt_mirror_before_array:[False, False]
----------------------------------------
{'Np': 10,
 'Nw': 8,
 'area': 1781004.4974180001,
 'bb': [(-3861.227, -113.554), (21.571, 345.137)],
 'count of 1D arrays of core.DLD': 1,
 'd_c': 9.999999999999998,
 'lx': 3882.798,
 'ly': 458.69100000000003,
 'performance': {'Flow rate @ 1 bar/area (micro-liter/min/mm-sq)': 715.9902222759154,
                 'die area (mm-sq)': 1.7810044974180002,
                 'gap over crit. dia.': 2.1571083717157262,
                 'volumetric flow rate at 1 bar (micro-liter/min)': 1275.1818059807188},
 'resistance (Pa.sec/m^3)': 4705211423076.657,
 'volumetric flow rate at 1 bar (m^3/sec)': 2.1253030099678647e-08,
 'volumetric flow rate at 1 bar (milli-liter/hr)': 76.51090835884312}

Output layout:

At this point, you should have a few files created in your working directory automatically: layout files in gds and png formats.

If that is the case, and if the layout is similar to the output layout presented above, and if the log you see after executing the script matches that shown above, the package should have been installed properly.

How to contribute code

Follow these steps to submit your code contribution.

Step 1. Open an issue

Before making any changes, we recommend opening an issue (if one doesn't already exist) and discussing your proposed changes. This way, we can give you feedback and validate the proposed changes.

Step 2. Make code changes

To make code changes, you need to fork the repository.

Step 3. Create a pull request

Once the change is ready, open a pull request from your branch in your fork to the dev branch of this repository.

Step 4. Review

Work with reviewers to apply any changes that may be necessary.

Step 5. Merge

Once the change is approved, we will merge the changes into the repository.

Acknowledgments

This project utilizes the packages mentioned in the following. We gratefully acknowledge their contributions to this project.

Citation

If you use this work in your research, please cite the relevant works associated with it as listed in the following.

Original paper

A. Mehboudi, S. Singhal, and S.V. Sreenivasan, A universal framework for design and manufacture of deterministic lateral displacement chips. Lab on a Chip 25, 1521-1536 (2025). DOI: 10.1039/D4LC00838C

BibTeX entry:

@article{mehboudi_universal_2025,
  title = {A Universal Framework for Design and Manufacture of Deterministic Lateral Displacement Chips},
  author = {Mehboudi, Aryan and Singhal, Shrawan and Sreenivasan, S. V.},
  year = {2025},
  month = mar,
  journal = {Lab on a Chip},
  volume = {25},
  number = {6},
  pages = {1521--1536},
  publisher = {The Royal Society of Chemistry},
  issn = {1473-0189},
  doi = {10.1039/D4LC00838C},
  url = {https://pubs.rsc.org/en/content/articlelanding/2025/lc/d4lc00838c},
  urldate = {2025-03-14}
}

Pressure Balance

A. Mehboudi, S. Singhal, and S.V. Sreenivasan, Investigation of pressure balance in proximity of sidewalls in deterministic lateral displacement. Biomicrofluidics 19, 034102 (2025). DOI: 10.1063/5.0272397

BibTeX entry:

@article{mehboudi_investigation_2025,
    author = {Mehboudi, Aryan and Singhal, Shrawan and Sreenivasan, S.V.},
    title = {Investigation of pressure balance in proximity of sidewalls in deterministic lateral displacement},
    journal = {Biomicrofluidics},
    volume = {19},
    number = {3},
    pages = {034102},
    year = {2025},
    month = {05},
    issn = {1932-1058},
    doi = {10.1063/5.0272397},
    url = {https://doi.org/10.1063/5.0272397},
}

Multi-lane boundary (MLB) model optimized through combinatorial approach

A. Mehboudi, S. Singhal, and S.V. Sreenivasan, A Combinatorial Approach to Novel Boundary Design in Deterministic Lateral Displacement. arXiv:2506.06936 (2025). DOI: 10.48550/arXiv.2506.06936

BibTeX entry:

@article{mehboudi_combinatorial_2025,
    author = {Mehboudi, Aryan and Singhal, Shrawan and Sreenivasan, S.V.},
    title = {A Combinatorial Approach to Novel Boundary Design in Deterministic Lateral Displacement},
    journal = {arXiv},
    year = {2025},
    month = {06},
    doi = {10.48550/arXiv.2506.06936},
    url = {https://doi.org/10.48550/arXiv.2506.06936},
}

Zenodo Archive

A. Mehboudi, mnFlow: A package for micro/nanoflow, Zenodo, 2024. DOI: 10.5281/zenodo.14357811

BibTeX entry:

@misc{mehboudi_mnflow_2024,
  title = {{{mnFlow}}: {{A}} Package for Micro/Nanoflow},
  shorttitle = {{{mnFlow}}},
  author = {Mehboudi, Aryan},
  year = {2024},
  month = dec,
  publisher = {Zenodo},
  doi = {10.5281/ZENODO.14357811},
  url = {https://zenodo.org/doi/10.5281/zenodo.14357811},
  abstract = {Micro-nanoflow (mnFlow) package is aimed at providing the community with tools for design and modeling of micro-nanofluidic chips.},
  copyright = {GNU Affero General Public License v3.0 only}
}

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

mnflow-0.0.2.tar.gz (101.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mnflow-0.0.2-py3-none-any.whl (104.9 kB view details)

Uploaded Python 3

File details

Details for the file mnflow-0.0.2.tar.gz.

File metadata

  • Download URL: mnflow-0.0.2.tar.gz
  • Upload date:
  • Size: 101.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for mnflow-0.0.2.tar.gz
Algorithm Hash digest
SHA256 cd31358bf61bdf70fa4d0d1607d44de9e26beac090d28dd01772230cb23cf85b
MD5 b641c836ed5bc6ed8e3fcc26b61f4ae3
BLAKE2b-256 4e4f01ac26f7d44efd2978f49db2a40ae4717fad7efeda5f56f6a50767cf1093

See more details on using hashes here.

File details

Details for the file mnflow-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: mnflow-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 104.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for mnflow-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7f3980f2103d1bea3bafb6d3777fcbcf053619f1c68e35d4a42517d2d83f49f8
MD5 7d5d60a19cb21f0f9054b52ace55c350
BLAKE2b-256 aad0140e2772a28c72ef1dbe049e3c6fb0152cfb0242e3a0fa8fb8bad6edd01b

See more details on using hashes here.

Supported by

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