@galihru/mnp-material 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +152 -71
  2. package/package.json +14 -2
package/README.md CHANGED
@@ -1,72 +1,153 @@
1
- # @galihru/mnp-material
2
-
3
- Scientific dielectric-response models for plasmonic simulations.
4
- JavaScript port of the [mnpbem-material](https://pypi.org/project/mnpbem-material/) Python module.
5
-
6
- ## Features
7
-
8
- - Constant dielectric model for homogeneous media
9
- - Drude free-electron model for metals (Au, Ag, Al)
10
- - Tabulated `(E, n, k)` optical constants with wavelength interpolation
11
- - Complex arithmetic utilities
12
-
13
- ## Implemented Formulations
14
-
15
- ### Constant Dielectric
16
-
17
- ![ε(λ) = ε₀](https://latex.codecogs.com/svg.latex?\varepsilon(\lambda)=\varepsilon_0)
18
-
19
- Wave number in medium:
20
-
21
- ![k(λ) = (2π/λ)√ε](https://latex.codecogs.com/svg.latex?k(\lambda)=\frac{2\pi}{\lambda}\sqrt{\varepsilon})
22
-
23
- ### Drude Model
24
-
25
- For free-electron metals (Au, Ag, Al):
26
-
27
- ![ε(ω) = ε∞ - ωp²/(ω(ω+iγ))](https://latex.codecogs.com/svg.latex?\varepsilon(\omega)=\varepsilon_\infty-\frac{\omega_p^2}{\omega(\omega+i\gamma)})
28
-
29
- Energy–wavelength conversion:
30
-
31
- ![ω_eV = 1239.84 / λ_nm](https://latex.codecogs.com/svg.latex?\omega_{\mathrm{eV}}=\frac{1239.84}{\lambda_{\mathrm{nm}}})
32
-
33
- ### Tabulated Material
34
-
35
- Given tabulated optical constants `(E, n, k)`:
36
-
37
- ![ε = (n + ik)²](https://latex.codecogs.com/svg.latex?\varepsilon=(n+ik)^2)
38
-
39
- ## Install
40
-
41
- ```bash
42
- npm install @galihru/mnp-material
43
- ```
44
-
45
- ## API
46
-
47
- ```js
48
- import {
49
- constantEpsilon,
50
- drudeEpsilon,
51
- makeDrudeMaterial,
52
- wavenumberInMedium,
53
- complex, add, sub, mul, div, sqrtComplex,
54
- EV_TO_NM, HARTREE_EV
55
- } from "@galihru/mnp-material";
56
-
57
- // Drude model for gold at 548.1 nm
58
- const epsAu = drudeEpsilon("Au", 548.1);
59
- console.log(epsAu); // { re: ..., im: ... }
60
-
61
- // Constant dielectric (water, n ≈ 1.33)
62
- const epsWater = constantEpsilon(1.33 ** 2, 548.1);
63
-
64
- // Wave number in medium
65
- const k = wavenumberInMedium(epsWater, 548.1);
66
- ```
67
-
68
- ## Author
69
-
70
- **GALIH RIDHO UTOMO** — g4lihru@students.unnes.ac.id
1
+ # @galihru/mnp-material
2
+
3
+ Analytical dielectric-function models for metallic nanoparticles in the framework of plasmonic nanophotonics. Provides frequency-dependent complex permittivity via the Drude free-electron model and constant dielectric approximation, with complex wave-number computation � all operating natively in the wavelength domain (?, nm).
4
+
5
+ ---
6
+
7
+ ## Physical Background
8
+
9
+ The optical response of a metallic nanoparticle is governed by its frequency-dependent complex dielectric function e(?). This package implements two analytical models and the wave-number relation used in electrodynamic simulations.
10
+
11
+ ---
12
+
13
+ ## Implemented Models
14
+
15
+ ### 1. Energy�Wavelength Conversion
16
+
17
+ All models accept wavelength in nanometres. The photon energy is computed as:
18
+
19
+ ![? = C/?](https://latex.codecogs.com/svg.latex?\omega\,[\mathrm{eV}]=\frac{C}{\lambda\,[\mathrm{nm}]},\quad%20C=1239.841984\,\mathrm{eV{\cdot}nm})
20
+
21
+ ---
22
+
23
+ ### 2. Drude Free-Electron Model
24
+
25
+ Describes the dielectric response of free-electron metals:
26
+
27
+ ![e(?) = e8 - ?p�/(?(?+i?))](https://latex.codecogs.com/svg.latex?\varepsilon(\omega)=\varepsilon_\infty-\frac{\omega_p^2}{\omega(\omega+i\gamma)})
28
+
29
+ **Parameters:**
30
+ - **e8** � high-frequency (interband) dielectric constant
31
+ - **??** bulk plasma frequency, derived from electron density via the Wigner�Seitz radius *r?*:
32
+
33
+ ![?p from rs](https://latex.codecogs.com/svg.latex?\rho_0=\frac{3}{4\pi%20r_s^3},\qquad\omega_p=\sqrt{4\pi\rho_0}\times%2027.2116\,\mathrm{eV})
34
+
35
+ - **?** phenomenological Drude damping rate (scattering)
36
+
37
+ **Built-in material table:**
38
+
39
+ | Material | *r?* (a.u.) | e8 | ? (eV) | ?? (eV) |
40
+ |---|---|---|---|---|
41
+ | `Au` / `gold` | 3.00 | 10.0 | 0.066 | ~9.07 |
42
+ | `Ag` / `silver` | 3.00 | 3.3 | 0.022 | ~9.07 |
43
+ | `Al` / `aluminum` | 2.07 | 1.0 | 1.06 | ~15.8 |
44
+
45
+ ---
46
+
47
+ ### 3. Constant Dielectric Model
48
+
49
+ For non-dispersive homogeneous embedding media (glass, water, vacuum):
50
+
51
+ ![e(?) = e0](https://latex.codecogs.com/svg.latex?\varepsilon(\lambda)=\varepsilon_0,\quad\varepsilon_0\in\mathbb{C})
52
+
53
+ ---
54
+
55
+ ### 4. Wave Number in Medium
56
+
57
+ Complex wave number for light propagating through a dielectric:
58
+
59
+ ![k(?) = (2p/?)ve](https://latex.codecogs.com/svg.latex?k(\lambda)=\frac{2\pi}{\lambda}\sqrt{\varepsilon(\lambda)}\quad[\mathrm{nm}^{-1}])
60
+
61
+ ---
62
+
63
+ ## Install
64
+
65
+ ```bash
66
+ npm install @galihru/mnp-material
67
+ ```
68
+
69
+ ---
70
+
71
+ ## API Reference
72
+
73
+ ### `drudeEpsilon(materialName, wavelengthNm)`
74
+
75
+ Returns the complex Drude permittivity for a built-in metal at one or multiple wavelengths.
76
+
77
+ ```js
78
+ import { drudeEpsilon } from "@galihru/mnp-material";
79
+
80
+ // Single wavelength ? { re, im }
81
+ const eps = drudeEpsilon("Au", 548.1);
82
+
83
+ // Wavelength array ? [{ re, im }, ...]
84
+ const spectra = drudeEpsilon("Ag", [400, 500, 600, 700]);
85
+ ```
86
+
87
+ ---
88
+
89
+ ### `makeDrudeMaterial(name)`
90
+
91
+ Returns the raw Drude parameter object for a given metal name.
92
+
93
+ ```js
94
+ import { makeDrudeMaterial } from "@galihru/mnp-material";
95
+
96
+ const au = makeDrudeMaterial("Au");
97
+ // ? { name: "Au", eps0: 10.0, gammad: 0.066, wp: 9.07 }
98
+ ```
99
+
100
+ ---
101
+
102
+ ### `constantEpsilon(value, wavelengthNm)`
103
+
104
+ Returns a wavelength-independent complex permittivity.
105
+
106
+ ```js
107
+ import { constantEpsilon } from "@galihru/mnp-material";
108
+
109
+ // Water: n = 1.33 ? e = n� � 1.769
110
+ const epsWater = constantEpsilon(1.769, 548.1);
111
+ // ? { re: 1.769, im: 0 }
112
+ ```
113
+
114
+ ---
115
+
116
+ ### `wavenumberInMedium(wavelengthNm, epsilonComplex)`
117
+
118
+ Computes the complex wave number k = (2p/?)ve.
119
+
120
+ ```js
121
+ import { constantEpsilon, wavenumberInMedium } from "@galihru/mnp-material";
122
+
123
+ const eps = constantEpsilon(1.769, 548.1);
124
+ const k = wavenumberInMedium(548.1, eps);
125
+ // ? { re: ..., im: ... } [nm?�]
126
+ ```
127
+
128
+ ---
129
+
130
+ ### Complex Arithmetic Utilities
131
+
132
+ ```js
133
+ import { complex, add, sub, mul, div, sqrtComplex, fromReal } from "@galihru/mnp-material";
134
+
135
+ const z1 = complex(-5.2, 1.3); // -5.2 + 1.3i
136
+ const z2 = fromReal(2.0); // 2.0 + 0i
137
+ const prod = mul(z1, z2); // ? { re: -10.4, im: 2.6 }
138
+ const root = sqrtComplex(z1); // ? { re: ..., im: ... }
139
+ ```
140
+
141
+ ---
142
+
143
+ ## Keywords
144
+
145
+ plasmonics � dielectric-function � drude-model � nanoparticle � nanophotonics � permittivity � gold � silver � electrodynamics � optics
146
+
147
+ ---
148
+
149
+ ## Author
150
+
151
+ **GALIH RIDHO UTOMO** � g4lihru@students.unnes.ac.id
152
+ Universitas Negeri Semarang (UNNES)
71
153
  License: GPL-2.0-only
72
-
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@galihru/mnp-material",
3
- "version": "0.1.1",
4
- "description": "Material dielectric models for plasmonic electrodynamics.",
3
+ "version": "0.1.3",
4
+ "description": "Analytical dielectric-function models for metallic nanoparticles in plasmonic nanophotonics.",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
7
7
  "exports": {
@@ -11,6 +11,18 @@
11
11
  "src",
12
12
  "README.md"
13
13
  ],
14
+ "keywords": [
15
+ "plasmonics",
16
+ "dielectric-function",
17
+ "drude-model",
18
+ "nanoparticle",
19
+ "nanophotonics",
20
+ "permittivity",
21
+ "gold",
22
+ "silver",
23
+ "electrodynamics",
24
+ "optics"
25
+ ],
14
26
  "author": "GALIH RIDHO UTOMO <g4lihru@students.unnes.ac.id>",
15
27
  "license": "GPL-2.0-only",
16
28
  "repository": {