@galihru/mnp-material 0.1.3 → 0.1.4
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 +34 -32
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,22 +1,29 @@
|
|
|
1
|
-
# @galihru/mnp-material
|
|
1
|
+
# @galihru/mnp-material
|
|
2
2
|
|
|
3
|
-
Analytical dielectric-function models for metallic nanoparticles in the
|
|
3
|
+
Analytical dielectric-function models for metallic nanoparticles in the
|
|
4
|
+
framework of plasmonic nanophotonics. Provides frequency-dependent complex
|
|
5
|
+
permittivity via the Drude free-electron model and constant dielectric
|
|
6
|
+
approximation, with complex wave-number computation, all operating natively
|
|
7
|
+
in the wavelength domain (wavelength in nm).
|
|
4
8
|
|
|
5
9
|
---
|
|
6
10
|
|
|
7
11
|
## Physical Background
|
|
8
12
|
|
|
9
|
-
The optical response of a metallic nanoparticle is governed by its
|
|
13
|
+
The optical response of a metallic nanoparticle is governed by its
|
|
14
|
+
frequency-dependent complex dielectric function epsilon(omega). This package
|
|
15
|
+
implements two analytical models and the wave-number relation used in
|
|
16
|
+
electrodynamic simulations.
|
|
10
17
|
|
|
11
18
|
---
|
|
12
19
|
|
|
13
20
|
## Implemented Models
|
|
14
21
|
|
|
15
|
-
### 1. Energy
|
|
22
|
+
### 1. Energy-Wavelength Conversion
|
|
16
23
|
|
|
17
24
|
All models accept wavelength in nanometres. The photon energy is computed as:
|
|
18
25
|
|
|
19
|
-

|
|
20
27
|
|
|
21
28
|
---
|
|
22
29
|
|
|
@@ -24,19 +31,19 @@ All models accept wavelength in nanometres. The photon energy is computed as:
|
|
|
24
31
|
|
|
25
32
|
Describes the dielectric response of free-electron metals:
|
|
26
33
|
|
|
27
|
-
=\varepsilon_\infty-\frac{\omega_p^2}{\omega(\omega+i\gamma)})
|
|
28
35
|
|
|
29
36
|
**Parameters:**
|
|
30
|
-
- **
|
|
31
|
-
-
|
|
37
|
+
- **eps_inf** -- high-frequency (interband) dielectric constant
|
|
38
|
+
- **omega_p** -- bulk plasma frequency, derived from electron density via the Wigner-Seitz radius *r_s*:
|
|
32
39
|
|
|
33
|
-

|
|
34
41
|
|
|
35
|
-
-
|
|
42
|
+
- **gamma** -- phenomenological Drude damping rate (scattering)
|
|
36
43
|
|
|
37
44
|
**Built-in material table:**
|
|
38
45
|
|
|
39
|
-
| Material |
|
|
46
|
+
| Material | r_s (a.u.) | eps_inf | gamma (eV) | omega_p (eV) |
|
|
40
47
|
|---|---|---|---|---|
|
|
41
48
|
| `Au` / `gold` | 3.00 | 10.0 | 0.066 | ~9.07 |
|
|
42
49
|
| `Ag` / `silver` | 3.00 | 3.3 | 0.022 | ~9.07 |
|
|
@@ -48,7 +55,7 @@ Describes the dielectric response of free-electron metals:
|
|
|
48
55
|
|
|
49
56
|
For non-dispersive homogeneous embedding media (glass, water, vacuum):
|
|
50
57
|
|
|
51
|
-
=\varepsilon_0,\quad\varepsilon_0\in\mathbb{C})
|
|
52
59
|
|
|
53
60
|
---
|
|
54
61
|
|
|
@@ -56,7 +63,7 @@ For non-dispersive homogeneous embedding media (glass, water, vacuum):
|
|
|
56
63
|
|
|
57
64
|
Complex wave number for light propagating through a dielectric:
|
|
58
65
|
|
|
59
|
-
=\frac{2\pi}{\lambda}\sqrt{\varepsilon(\lambda)}\quad[\mathrm{nm}^{-1}])
|
|
60
67
|
|
|
61
68
|
---
|
|
62
69
|
|
|
@@ -72,15 +79,16 @@ npm install @galihru/mnp-material
|
|
|
72
79
|
|
|
73
80
|
### `drudeEpsilon(materialName, wavelengthNm)`
|
|
74
81
|
|
|
75
|
-
Returns the complex Drude permittivity for a built-in metal at one or multiple
|
|
82
|
+
Returns the complex Drude permittivity for a built-in metal at one or multiple
|
|
83
|
+
wavelengths.
|
|
76
84
|
|
|
77
85
|
```js
|
|
78
86
|
import { drudeEpsilon } from "@galihru/mnp-material";
|
|
79
87
|
|
|
80
|
-
// Single wavelength
|
|
88
|
+
// Single wavelength -> { re, im }
|
|
81
89
|
const eps = drudeEpsilon("Au", 548.1);
|
|
82
90
|
|
|
83
|
-
// Wavelength array
|
|
91
|
+
// Wavelength array -> [{ re, im }, ...]
|
|
84
92
|
const spectra = drudeEpsilon("Ag", [400, 500, 600, 700]);
|
|
85
93
|
```
|
|
86
94
|
|
|
@@ -94,7 +102,7 @@ Returns the raw Drude parameter object for a given metal name.
|
|
|
94
102
|
import { makeDrudeMaterial } from "@galihru/mnp-material";
|
|
95
103
|
|
|
96
104
|
const au = makeDrudeMaterial("Au");
|
|
97
|
-
//
|
|
105
|
+
// -> { name: "Au", eps0: 10.0, gammad: 0.066, wp: 9.07 }
|
|
98
106
|
```
|
|
99
107
|
|
|
100
108
|
---
|
|
@@ -106,23 +114,23 @@ Returns a wavelength-independent complex permittivity.
|
|
|
106
114
|
```js
|
|
107
115
|
import { constantEpsilon } from "@galihru/mnp-material";
|
|
108
116
|
|
|
109
|
-
// Water: n = 1.33
|
|
117
|
+
// Water: n = 1.33 -> eps = n^2 = 1.769
|
|
110
118
|
const epsWater = constantEpsilon(1.769, 548.1);
|
|
111
|
-
//
|
|
119
|
+
// -> { re: 1.769, im: 0 }
|
|
112
120
|
```
|
|
113
121
|
|
|
114
122
|
---
|
|
115
123
|
|
|
116
124
|
### `wavenumberInMedium(wavelengthNm, epsilonComplex)`
|
|
117
125
|
|
|
118
|
-
Computes the complex wave number k = (
|
|
126
|
+
Computes the complex wave number k = (2*pi/lambda)*sqrt(epsilon).
|
|
119
127
|
|
|
120
128
|
```js
|
|
121
129
|
import { constantEpsilon, wavenumberInMedium } from "@galihru/mnp-material";
|
|
122
130
|
|
|
123
131
|
const eps = constantEpsilon(1.769, 548.1);
|
|
124
132
|
const k = wavenumberInMedium(548.1, eps);
|
|
125
|
-
//
|
|
133
|
+
// -> { re: ..., im: ... } [nm^-1]
|
|
126
134
|
```
|
|
127
135
|
|
|
128
136
|
---
|
|
@@ -134,20 +142,14 @@ import { complex, add, sub, mul, div, sqrtComplex, fromReal } from "@galihru/mnp
|
|
|
134
142
|
|
|
135
143
|
const z1 = complex(-5.2, 1.3); // -5.2 + 1.3i
|
|
136
144
|
const z2 = fromReal(2.0); // 2.0 + 0i
|
|
137
|
-
const prod = mul(z1, z2); //
|
|
138
|
-
const root = sqrtComplex(z1); //
|
|
145
|
+
const prod = mul(z1, z2); // -> { re: -10.4, im: 2.6 }
|
|
146
|
+
const root = sqrtComplex(z1); // -> { re: ..., im: ... }
|
|
139
147
|
```
|
|
140
148
|
|
|
141
149
|
---
|
|
142
150
|
|
|
143
|
-
## Keywords
|
|
144
|
-
|
|
145
|
-
plasmonics � dielectric-function � drude-model � nanoparticle � nanophotonics � permittivity � gold � silver � electrodynamics � optics
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
151
|
## Author
|
|
150
152
|
|
|
151
|
-
**GALIH RIDHO UTOMO**
|
|
152
|
-
Universitas Negeri Semarang (UNNES)
|
|
153
|
-
License: GPL-2.0-only
|
|
153
|
+
**GALIH RIDHO UTOMO** | g4lihru@students.unnes.ac.id
|
|
154
|
+
Universitas Negeri Semarang (UNNES)
|
|
155
|
+
License: GPL-2.0-only
|
package/package.json
CHANGED