MNPBEM provides reproducible optical-response workflows for metallic nanoparticles, implemented across multiple programming languages. The core physical model combines the Drude dielectric function with the Rayleigh quasi-static approximation for spherical particles.
This repository contains two aligned tracks:
- MNPBEM family (modular scientific workflow packages)
- MnpPlasmon family (lightweight cross-language plasmonics calculator)
For a dispersive metal:
Where:
-
$\varepsilon_\infty$ : high-frequency dielectric constant -
$\omega_p$ : plasma frequency (eV) -
$\gamma$ : damping rate (eV) -
$\omega$ : angular frequency (eV)
For
with
| Material |
|
|
|
|---|---|---|---|
| Au | 3.106 | 0.0132 | 8.90 |
| Ag | 3.810 | 0.0048 | 3.91 |
| Al | 14.83 | 0.0980 | 1.24 |
from mnp_plasmon import sphere_response
r = sphere_response(wavelength_nm=550.0, radius_nm=25.0, material="Au")
print(r.c_ext, r.c_sca, r.c_abs)using MnpPlasmon
r = sphere_response(550.0, 25.0, "Au")
println(r.c_ext, " ", r.c_sca, " ", r.c_abs)#include "mnp_plasmon.h"
sphere_response_t r = mnp_simulate_sphere_response("Au", 550.0, 25.0, 1.0);npm install @galihru/mnpimport { sphereResponse } from "@galihru/mnp";
const r = sphereResponse({ wavelengthNm: 550, radiusNm: 25, material: "Au" });
console.log(r.cExt, r.cSca, r.cAbs);To make packages visible under the GitHub profile package tab, publish to npm.pkg.github.com with public package visibility.
If a package was published as private first, set it to public in package settings.
The repository "Used by" count is automatic and appears when public repositories depend on this project/packages. It cannot be forced manually.
- Code of Conduct: .github/CODE_OF_CONDUCT.md
- Contributing Guide: .github/CONTRIBUTING.md
- Security Policy: .github/SECURITY.md
- Issue Templates: .github/ISSUE_TEMPLATE/
- Pull Request Template: .github/pull_request_template.md
- Dependabot Config: .github/dependabot.yml
This repository can regenerate cross-language example plots automatically from module source code. The generated PNG files keep the same filenames on every update so the repository stays compact.
Package: mnpbem-material + mnpbem-mie
Registry: PyPI
Package: @galihru/mnp
Registry: npm
Package: MnpPlasmon
Registry: NuGet
Package: mnp-plasmon
Registry: Crates.io
Package: mnpPlasmonR
Registry: CRAN-ready
Package: MnpPlasmon
Registry: General Registry
Package: mnp_plasmon
Registry: RubyGems + GitHub Packages
Package: mnp-plasmon
Registry: vcpkg / source
Package: mnp-plasmon
Registry: vcpkg / source
Galih Ridho Utomo
g4lihru@students.unnes.ac.id
GitHub profile
GPL-3.0-only. See LICENSE.








