A package to solve topology optimization problems that target optica forcesl based on the Maxwell Stress Tensor formalism.
Project description
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:
- Force Calculations for a square article in free-space: The tutorial
square.ipynbreproduces the results shown in Figure 3. - Optimization for a particle in free-space: The tutorial
opt_repulsive.ipynbimplements 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}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mst_topopt-0.2.2.tar.gz.
File metadata
- Download URL: mst_topopt-0.2.2.tar.gz
- Upload date:
- Size: 31.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7bd8d72e36ea03ed16d20eb5ca528d0a7a26914cadb105c04397d6e70fd5faf
|
|
| MD5 |
289e5bc9d8eca4a896914966a35570a8
|
|
| BLAKE2b-256 |
8c034c6851749848f019fb7f2a28e485b9edbcecfd226eaf642d570aced5fdfb
|
File details
Details for the file MST_TopOpt-0.2.2-py3-none-any.whl.
File metadata
- Download URL: MST_TopOpt-0.2.2-py3-none-any.whl
- Upload date:
- Size: 36.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4357801383b1aaccecf0646b786f8f208cecf4535529337709153caa3ced78a6
|
|
| MD5 |
8897574fd1770fa8bc94b58a52512195
|
|
| BLAKE2b-256 |
b041f51830d2cccd5f090943ea665d09c12dd2ad12838a10f2c3979b920b4e28
|