Skip to main content

MST_TopOpt

This repository contains the code used to reproduce key results from the paper:

B. Martinez de Aguirre Jokisch, R.E. Christiansen, O. Sigmund.
"Engineering optical forces through Maxwell stress tensor inverse design"
arXiv preprint arXiv:2410.20009 (2024).

Overview

Precise spatial manipulation of particles via optical forces is essential in many research areas, ranging from biophysics to atomic physics. Central to this effort is the challenge of designing optical systems optimized for specific applications. Traditional design methods often rely on trial-and-error approaches or simplified models, such as approximating particles as point dipoles—an assumption valid only for particles much smaller than the wavelength of the electromagnetic field.

In this work, we present a general inverse design framework based on the Maxwell stress tensor (MST) formalism. This framework enables the simultaneous design of all components of the system and is applicable to particles of arbitrary sizes and shapes. With small modifications to the baseline formulation, the method can engineer systems capable of attracting, repelling, accelerating, oscillating, and trapping particles.

The methodology relies on the finite element method (FEM) and topology optimization, a gradient-based approach for iteratively designing optical systems. The examples in this work are two-dimensional, assuming transverse electric (TE) polarization, with the optical system illuminated by an incident plane wave. Note that the base-code can be modified to assume transverse magnetic (TM) polarization or be illuminated by more complex sources.

Installation

To install the MST_TopOpt package, use the following command:

pip install MST_TopOpt

Repository Content

This repository includes tutorials to reproduce the following results from the paper:

  1. Force Calculations for a square article in free-space: The tutorial square.ipynb reproduces the results shown in Figure 3.
  2. Optimization for a particle in free-space: The tutorial opt_repulsive.ipynb implements the optimization process for free-space particles in Figure 4.

The code in this repository can be extended to reproduce additional results presented in the paper, such as those for particle-metalens systems and their applications.

Citing MST_TopOpt

If you use MST_TopOpt in your research, we kindly request that you cite the following paper:

B. Martinez de Aguirre Jokisch, R.E. Christiansen, O. Sigmund.
"Engineering optical forces through Maxwell stress tensor inverse design"
arXiv preprint arXiv:2410.20009 (2024).

Example Citation in BibTeX:

@article{martinez2024msttopopt,
  title = {Engineering optical forces through Maxwell stress tensor inverse design},
  author = {Martinez de Aguirre Jokisch, B. and Christiansen, R.E. and Sigmund, O.},
  journal = {arXiv preprint},
  year = {2024},
  eprint = {2410.20009},
  archivePrefix = {arXiv}
}

Metadata

Release files for MST-TopOpt 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for MST-TopOpt 0.2.2
File Size Uploaded
mst_topopt-0.2.2.tar.gz 31.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for MST-TopOpt 0.2.2
File Interpreter ABI Platform
MST_TopOpt-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 67.4 kB

Release files / mst_topopt-0.2.2.tar.gz

Download URL mst_topopt-0.2.2.tar.gz
Size 31.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a7bd8d72e36ea03ed16d20eb5ca528d0a7a26914cadb105c04397d6e70fd5faf
BLAKE2b-256 checksum
How to use checksums
8c034c6851749848f019fb7f2a28e485b9edbcecfd226eaf642d570aced5fdfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.16

Release files / MST_TopOpt-0.2.2-py3-none-any.whl

Download URL MST_TopOpt-0.2.2-py3-none-any.whl
Size 36.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4357801383b1aaccecf0646b786f8f208cecf4535529337709153caa3ced78a6
BLAKE2b-256 checksum
How to use checksums
b041f51830d2cccd5f090943ea665d09c12dd2ad12838a10f2c3979b920b4e28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.16

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page