@galihru/mnp-material 0.1.1 → 0.1.2
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.
- package/README.md +150 -2
- package/package.json +14 -2
package/README.md
CHANGED
|
@@ -1,7 +1,155 @@
|
|
|
1
1
|
# @galihru/mnp-material
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Analytical dielectric-function models for metallic nanoparticles in the framework of plasmonic nanophotonics.
|
|
4
|
+
Provides frequency-dependent permittivity evaluation via the Drude free-electron model, constant dielectric approximation, and wave-number computation — all operating natively in the wavelength domain (λ in nm).
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Physical Background
|
|
9
|
+
|
|
10
|
+
The optical response of a metallic nanoparticle is governed by its frequency-dependent complex dielectric function ε(ω). This package implements three levels of approximation used in nanophotonics electrodynamics.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Implemented Models
|
|
15
|
+
|
|
16
|
+
### 1. Energy–Wavelength Conversion
|
|
17
|
+
|
|
18
|
+
All models accept wavelength in nanometres. The photon energy is obtained via:
|
|
19
|
+
|
|
20
|
+

|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
### 2. Drude Free-Electron Model
|
|
25
|
+
|
|
26
|
+
The Drude model describes the optical response of free-electron metals:
|
|
27
|
+
|
|
28
|
+
=\varepsilon_\infty-\frac{\omega_p^2}{\omega(\omega+i\gamma)})
|
|
29
|
+
|
|
30
|
+
where:
|
|
31
|
+
- **ε∞** — interband (high-frequency) dielectric constant
|
|
32
|
+
- **ωₚ** — bulk plasma frequency, derived from the Wigner–Seitz radius *rₛ*:
|
|
33
|
+
|
|
34
|
+

|
|
35
|
+
|
|
36
|
+
where *H* = 27.2116 eV (Hartree energy) converts atomic-unit plasma frequency to eV.
|
|
37
|
+
|
|
38
|
+
- **γ** — phenomenological damping (Drude scattering rate)
|
|
39
|
+
|
|
40
|
+
#### Built-in Material Parameters
|
|
41
|
+
|
|
42
|
+
| Material | *rₛ* (a.u.) | ε∞ | γ (eV) | ωₚ (eV) |
|
|
43
|
+
|---|---|---|---|---|
|
|
44
|
+
| `Au` / `gold` | 3.00 | 10.0 | 0.066 | ~9.07 |
|
|
45
|
+
| `Ag` / `silver` | 3.00 | 3.3 | 0.022 | ~9.07 |
|
|
46
|
+
| `Al` / `aluminum` | 2.07 | 1.0 | 1.06 | ~15.8 |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
### 3. Constant Dielectric Model
|
|
51
|
+
|
|
52
|
+
For non-dispersive homogeneous embedding media (e.g. glass, water):
|
|
53
|
+
|
|
54
|
+
=\varepsilon_0\in\mathbb{C})
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### 4. Wave Number in Medium
|
|
59
|
+
|
|
60
|
+
The complex wave number for light propagating in a dielectric medium:
|
|
61
|
+
|
|
62
|
+
=\frac{2\pi}{\lambda}\sqrt{\varepsilon(\lambda)})
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Install
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npm install @galihru/mnp-material
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## API Reference
|
|
75
|
+
|
|
76
|
+
### `drudeEpsilon(materialName, wavelengthNm)`
|
|
77
|
+
|
|
78
|
+
Evaluates the Drude dielectric function for a built-in metal.
|
|
79
|
+
|
|
80
|
+
```js
|
|
81
|
+
import { drudeEpsilon } from "@galihru/mnp-material";
|
|
82
|
+
|
|
83
|
+
// Single wavelength
|
|
84
|
+
const eps = drudeEpsilon("Au", 548.1);
|
|
85
|
+
// → { re: -7.45, im: 1.23 }
|
|
86
|
+
|
|
87
|
+
// Array of wavelengths
|
|
88
|
+
const spectra = drudeEpsilon("Ag", [400, 500, 600, 700]);
|
|
89
|
+
// → [{ re, im }, ...]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### `makeDrudeMaterial(name)`
|
|
95
|
+
|
|
96
|
+
Returns raw Drude parameters for a given metal.
|
|
97
|
+
|
|
98
|
+
```js
|
|
99
|
+
import { makeDrudeMaterial } from "@galihru/mnp-material";
|
|
100
|
+
|
|
101
|
+
const au = makeDrudeMaterial("Au");
|
|
102
|
+
// → { name: "Au", eps0: 10.0, gammad: 0.066, wp: 9.07 }
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### `constantEpsilon(value, wavelengthNm)`
|
|
108
|
+
|
|
109
|
+
Returns a constant complex permittivity independent of frequency.
|
|
110
|
+
|
|
111
|
+
```js
|
|
112
|
+
import { constantEpsilon } from "@galihru/mnp-material";
|
|
113
|
+
|
|
114
|
+
// Water: n ≈ 1.33, ε = n² = 1.769
|
|
115
|
+
const epsWater = constantEpsilon(1.769, 548.1);
|
|
116
|
+
// → { re: 1.769, im: 0 }
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
### `wavenumberInMedium(wavelengthNm, epsilonComplex)`
|
|
122
|
+
|
|
123
|
+
Computes the complex wave number k = (2π/λ)√ε.
|
|
124
|
+
|
|
125
|
+
```js
|
|
126
|
+
import { constantEpsilon, wavenumberInMedium } from "@galihru/mnp-material";
|
|
127
|
+
|
|
128
|
+
const eps = constantEpsilon(1.769, 548.1);
|
|
129
|
+
const k = wavenumberInMedium(548.1, eps);
|
|
130
|
+
// → { re: ..., im: ... } [nm⁻¹]
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### Complex Arithmetic Utilities
|
|
136
|
+
|
|
137
|
+
```js
|
|
138
|
+
import { complex, add, sub, mul, div, sqrtComplex, fromReal } from "@galihru/mnp-material";
|
|
139
|
+
|
|
140
|
+
const z1 = complex(-5.2, 1.3); // -5.2 + 1.3i
|
|
141
|
+
const z2 = fromReal(2.0); // 2.0 + 0i
|
|
142
|
+
const prod = mul(z1, z2); // → { re: -10.4, im: 2.6 }
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Author
|
|
148
|
+
|
|
149
|
+
**GALIH RIDHO UTOMO** · g4lihru@students.unnes.ac.id
|
|
150
|
+
University of Semarang State (UNNES)
|
|
151
|
+
License: GPL-2.0-only
|
|
152
|
+
|
|
5
153
|
|
|
6
154
|
## Features
|
|
7
155
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galihru/mnp-material",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.1.2",
|
|
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": {
|