meent

Electromagnetic simulation (RCWA) & optimization package in Python

https://github.com/kc-ml2/meent

Science Score: 31.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
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.1%) to scientific vocabulary

Keywords

electromagnetics fmm fourier-modal-method jax optics optimization pytorch rcwa rigorous-coupled-wave-analysis simulation
Last synced: 9 months ago · JSON representation ·

Repository

Electromagnetic simulation (RCWA) & optimization package in Python

Basic Info
Statistics
  • Stars: 72
  • Watchers: 3
  • Forks: 9
  • Open Issues: 0
  • Releases: 60
Topics
electromagnetics fmm fourier-modal-method jax optics optimization pytorch rcwa rigorous-coupled-wave-analysis simulation
Created almost 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

Meent

Meent is an Electromagnetic(EM) simulation package with Python, composed of three main parts: * Modeling * EM simulation * Optimization

Backends

Meent provides three libraries as a backend:
alt text

  • NumPy
    • The fundamental package for scientific computing with Python
    • Easy and lean to use
  • JAX
    • Autograd and XLA, brought together for high-performance machine learning research.
  • PyTorch
    • A Python package that provides two high-level features: Tensor computation with strong GPU acceleration and Deep neural networks built on a tape-based autograd system

When to use

| | Numpy | JAX | PyTorch | Description | | --------------- | :---: | :-: | :-----: | :---------: | | 64bit support | O | O | O | Default for scientific computing | | 32bit support | O | O | O | 32bit (float32 and complex64) data type operation* | | GPU support | X | O | O | except Eigendecomposition** | | TPU support* | X | X | X | Currently there is no workaround to do 32 bit eigendecomposition on TPU | | AD support | X | O | O | Automatic Differentiation (Back Propagation) | | Parallelization | X | O | X | JAX pmap function |

In 32bit operation, operations on numbers of 8>= digit difference fail without warning or error. Use only when you do understand what you are doing.
*
As of now(2023.03.19), GPU-native Eigendecomposition is not implemented in JAX and PyTorch. It's enforced to run on CPUs and send back to GPUs.

Numpy is simple and light to use. Suggested as a baseline with small ~ medium scale optics problem.
JAX and PyTorch is recommended for cases having large scale or optimization part.
If you want parallelized computing with multiple devices(e.g., GPUs), JAX is ready for that.
But since JAX does jit compilation, it takes much time at the first run.

How to install

shell pip install meent

JAX and PyTorch is needed for advanced utilization.

How to use

```python import meent

backend 0 = Numpy

backend 1 = JAX

backend 2 = PyTorch

backend = 1 mee = meent.call_mee(backend=backend, ...) ```

Tutorials

Jupyter notebooks are prepared in tutorials to give a brief introduction.

Examples

Comprehensive examples of computational optics with Meent can be found in examples folder.

Citation

To cite this repository:

bibtex @article{kim2024meent, title={Meent: Differentiable Electromagnetic Simulator for Machine Learning}, author={Kim, Yongha and Jung, Anthony W. and Kim, Sanmun and Octavian, Kevin and Heo, Doyoung and Park, Chaejin and Shin, Jeongmin and Nam, Sunghyun and Park, Chanhyung and Park, Juho and Han, Sangjun and Lee, Jinmyoung and Kim, Seolho and Jang, Min Seok and Park, Chan Y.}, journal={arXiv preprint arXiv:2406.12904}, year={2024} }

Owner

  • Name: ML2
  • Login: kc-ml2
  • Kind: organization
  • Email: contact@kc-ml2.com
  • Location: Korea, South

Citation (CITATION.bib)

@article{kim2024meent,
    title={Meent: Differentiable Electromagnetic Simulator for Machine Learning},
    author={Kim, Yongha and Jung, Anthony W. and Kim, Sanmun and
            Octavian, Kevin and Heo, Doyoung and Park, Chaejin and
            Shin, Jeongmin and Nam, Sunghyun and Park, Chanhyung and
            Park, Juho and Han, Sangjun and Lee, Jinmyoung and
            Kim, Seolho and Jang, Min Seok and Park, Chan Y.},
    journal={arXiv preprint arXiv:2406.12904},
    year={2024},
}

GitHub Events

Total
  • Create event: 2
  • Issues event: 9
  • Release event: 3
  • Watch event: 23
  • Delete event: 1
  • Issue comment event: 12
  • Push event: 2
  • Pull request event: 4
  • Fork event: 5
Last Year
  • Create event: 2
  • Issues event: 9
  • Release event: 3
  • Watch event: 23
  • Delete event: 1
  • Issue comment event: 12
  • Push event: 2
  • Pull request event: 4
  • Fork event: 5

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 310
  • Total Committers: 6
  • Avg Commits per committer: 51.667
  • Development Distribution Score (DDS): 0.045
Past Year
  • Commits: 210
  • Committers: 4
  • Avg Commits per committer: 52.5
  • Development Distribution Score (DDS): 0.029
Top Committers
Name Email Commits
yonghakim y****t@g****m 296
yonghakim 4****m 5
anthony0727 j****7@g****m 3
seolhokim k****1@n****m 3
Sanmun c****8@g****m 2
ML2jinmyoung m****8@k****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 9
  • Total pull requests: 68
  • Average time to close issues: 27 days
  • Average time to close pull requests: 22 minutes
  • Total issue authors: 5
  • Total pull request authors: 4
  • Average comments per issue: 0.33
  • Average comments per pull request: 0.01
  • Merged pull requests: 65
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 5
  • Pull requests: 1
  • Average time to close issues: 6 days
  • Average time to close pull requests: 3 minutes
  • Issue authors: 3
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • yufu-liu (3)
  • yonghakim (3)
  • xungu1 (3)
  • seolhokim (1)
  • carl6322 (1)
Pull Request Authors
  • yonghakim (76)
  • anthony0727 (3)
  • chocopi2718 (3)
  • ML2jinmyoung (1)
Top Labels
Issue Labels
bug (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 346 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 53
  • Total maintainers: 1
pypi.org: meent

Electromagnetic simulation (RCWA) & optimization package in Python

  • Versions: 53
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 346 Last month
Rankings
Dependent packages count: 10.1%
Stargazers count: 11.0%
Downloads: 13.6%
Average: 14.6%
Forks count: 16.9%
Dependent repos count: 21.6%
Maintainers (1)
Last synced: 9 months ago