This repository was archived by the owner on Sep 14, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmaxwellfdfd.html
More file actions
223 lines (223 loc) · 8.72 KB
/
maxwellfdfd.html
File metadata and controls
223 lines (223 loc) · 8.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta name="generator" content="jemdoc, see http://jemdoc.jaboc.net/" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<link rel="stylesheet" href="jemdoc.css" type="text/css" />
<title>MaxwellFDFD</title>
<!-- MathJax -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-MML-AM_CHTML' async>
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
TeX: { equationNumbers: { autoNumber: "AMS" } }
});
</script>
<!-- End MathJax -->
<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-45186598-1', 'stanford.edu');
ga('require', 'displayfeatures');
ga('require', 'linkid', 'linkid.js');
ga('send', 'pageview');
</script>
<!-- End Google Analytics -->
</head>
<body>
<table summary="Table for page layout." id="tlayout">
<tr valign="top">
<td id="layout-menu">
<div class="menu-category">Wonseok Shin</div>
<div class="menu-item"><a href="index.html">About</a></div>
<div class="menu-item"><a href="pdf/shin_cv.pdf" target="blank">CV</a></div>
<div class="menu-category">Research</div>
<div class="menu-item"><a href="publications.html">Publications</a></div>
<div class="menu-category">Teaching</div>
<div class="menu-item"><a href="ee256.html">EE256 (Stanford)</a></div>
<div class="menu-item"><a href="http://math.mit.edu/18.335" target="blank">18.335 (MIT)</a></div>
<div class="menu-category">Software</div>
<div class="menu-item"><a href="maxwellfdfd.html" class="current">MaxwellFDFD</a></div>
<div class="menu-item"><a href="fd3d.html">FD3D</a></div>
<div class="menu-item"><a href="jemdoc+mathjax.html">jemdoc+MathJax</a></div>
</td>
<td id="layout-content">
<div id="toptitle">
<h1>MaxwellFDFD</h1>
</div>
<p><b>MaxwellFDFD</b> is a MATLAB-based package that solves the frequency-domain Maxwell's equations
</p>
<p style="text-align:center">
\[
\nabla \times \mathbf{E}(\mathbf{r}) = -i \, \omega \, \mu(\mathbf{r},\mathbf{\omega}) \, \mathbf{H}(\mathbf{r}) - \mathbf{M}(\mathbf{r}),\\
\nabla \times \mathbf{H}(\mathbf{r}) = i \, \omega \, \varepsilon(\mathbf{r},\mathbf{\omega}) \, \mathbf{E}(\mathbf{r}) + \mathbf{J}(\mathbf{r}),
\]
</p><p>where
</p>
<ul>
<li><p>\(\mathbf{r}\) is the position variable;
</p>
</li>
<li><p>\(\mathbf{E}(\mathbf{r})\) and \(\mathbf{H}(\mathbf{r})\) are the solution electric and magnetic fields of the EM waves;
</p>
</li>
<li><p>\(\mathbf{J}(\mathbf{r})\) and \(\mathbf{M}(\mathbf{r})\) are the electric and magnetic current source densities emanating the EM waves;
</p>
</li>
<li><p>\(\omega\) is the oscillation frequency of the current sources; and
</p>
</li>
<li><p>\(\varepsilon(\mathbf{r},\omega)\) and \(\mu(\mathbf{r},\omega)\) are the electric permittivity and magnetic permeability of the object at \(\mathbf{r}\) for \(\omega\).
</p>
</li>
</ul>
<p>MaxwellFDFD solves the above Maxwell's equations by the finite-difference frequency-domain (FDFD) method, and hence the name MaxwellFDFD.
</p>
<h2>Major Features</h2>
<ul>
<li><p>Built-in frequency-dependent dielectric constants for commonly used nanophotonic materials (e.g., Ag, Au, Si, SiO₂) taken from the widely used references (e.g., <a href="http://journals.aps.org/prb/abstract/10.1103/PhysRevB.6.4370" target=“blank”>Johnson and Christy</a>, <a href="http://books.google.com/books?isbn=0080523757" target=“blank”>Palik</a>, <a href="http://books.google.com/books?isbn=1439880492" target=“blank”>CRC Handbook</a>)
</p>
</li>
<li><p>Dynamic nonuniform grid generation aligned with object boundaries
</p>
</li>
<li><p>Waveguide mode solver and waveguide-mode-generating current source
</p>
</li>
<li><p>2D and 3D visualization of objects, sources, and solution fields
</p>
</li>
<li><p>Periodic array of objects
</p>
</li>
<li><p>Electric (\(\mathbf{J}\)) and magnetic (\(\mathbf{M}\)) current sources
</p>
</li>
<li><p>PEC, PMC, periodic, and Bloch boundary conditions
</p>
</li>
<li><p>Stretched-coordinate perfectly matched layer (SC-PML) and uniaxial PML (UPML)
</p>
</li>
<li><p>Total-field/scattered-field (TF/SF) method
</p>
</li>
<li><p>Power flux calculation
</p>
</li>
</ul>
<h2>System Requirements</h2>
<ul>
<li><p>MATLAB 2014a or later (no Toolbox needed)
</p>
</li>
</ul>
<h2>Download</h2>
<p>Press the “Download ZIP” button in the right panel of <a href="https://github.com/wsshin/maxwellfdfd" target=“blank”>MaxwellFDFD's GitHub page</a>.
</p>
<h2>Documentation</h2>
<p>The online documentation is available <a href="http://wsshin.github.io/maxwellfdfd/doc/index.html" target=“blank”>here</a>. (The entire MATLAB-style documentation is included in the <tt>doc/</tt> directory of the downloaded MaxwellFDFD package.)
</p>
<h2>Examples</h2>
<p><a name="eg1"></a>
</p>
<ul>
<li><p>Plane wave incident on a slit in a silver slab
</p>
</li>
</ul>
<table class="imgtable"><tr><td>
<img src="http://wsshin.github.io/maxwellfdfd/doc/img/slit2d_field.png" alt="Plane Wave Incident on a Silver Slab with a Slit" width="350px" /> </td>
<td align="left"></td></tr></table>
<ul>
<li><p>TF/SF simulation of a plane wave incident on a gold bow-tie antenna
</p>
</li>
</ul>
<table class="imgtable"><tr><td>
<img src="http://wsshin.github.io/maxwellfdfd/doc/img/bowtie2d_field.png" alt="TF/SF Simulation of a Plane Wave Incident on a Gold Bow-tie Antenna" width="450px" /> </td>
<td align="left"></td></tr></table>
<ul>
<li><p>Point source in a photonic crystal waveguide double bend
</p>
</li>
</ul>
<table class="imgtable"><tr><td>
<img src="http://wsshin.github.io/maxwellfdfd/doc/img/pcdoublebend2d_field.png" alt="Double Bend in a Photonic Crystal Waveguide" width="650px" /> </td>
<td align="left"></td></tr></table>
<ul>
<li><p>More examples: [<a href="http://wsshin.github.io/maxwellfdfd/doc/topic/gallery2d.html" target=“blank”>link</a>]
</p>
</li>
</ul>
<h2>Basic Usage</h2>
<p>Using MaxwellFDFD is very simple. There is an all-in-one function, <tt>maxwell_run()</tt>, and you just need to fill in its input parameters. For example, below is the code for the <a href="maxwellfdfd.html#eg1">first example</a> shown above.
</p>
<div class="codeblock">
<div class="blockcontent"><pre>
[E, H] = maxwell_run(...
'OSC', 1e-9, 1550, ...
'DOM', {'vacuum', 'none', 1.0}, [-1100 1100; -1100 2600; 0 10], 10, BC.p, [100 100 0], ...
'OBJ', {'CRC/Ag', 'k'}, ...
Box([-1100 -80; 0 1000; 0 10]), ...
Box([80 1100; 0 1000; 0 10]), ...
'SRCJ', PlaneSrc(Axis.y, -500, Axis.x));
</pre></div></div>
<p>The meaning of the <i>input parameter groups</i> used in the code is as follows:
</p>
<ul>
<li><p><tt>'OSC'</tt> (oscilation): the length unit (1 nm) and free-space wavelength (1550 nm)
</p>
</li>
<li><p><tt>'DOM'</tt> (domain): the material and size of the simulation domain
</p>
</li>
<li><p><tt>'OBJ'</tt> (object): the materials and shapes of the objects in the simulation domain
</p>
</li>
<li><p><tt>'SRCJ'</tt> (source): the electric current source in the simulation domain
</p>
</li>
</ul>
<p>The output parameters <tt>E</tt> and <tt>H</tt> are the solution <i>E</i>- and <i>H</i>-fields of the simulation.
</p>
<h2>How to Cite</h2>
<p>You are welcome to cite the following paper about the techniques used in MaxwellFDFD:
</p>
<ul>
<li><p>W. Shin and S. Fan, “Choice of the perfectly matched layer boundary condition for frequency-domain Maxwell's equations solvers,” <i>Journal of Computational Physics</i>, vol. 231, pp. 3406–3431 (2012) [<a href="pdf/shin2012jcp.pdf" target=“blank”>pdf</a>]
</p>
</li>
</ul>
<p>You can also cite the URL of MaxwellFDFD's GitHub page as follows:
</p>
<ul>
<li><p>W. Shin, MaxwellFDFD Webpage, 2015. https://github.com/wsshin/maxwellfdfd
</p>
</li>
</ul>
<p>If you use <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>, here is the <span class="bib">B<sub>i</sub><sub>b</sub><sub></sub></span><span class="tex">T<sub>e</sub>X</span> record for the GitHub page:
</p>
<div class="codeblock">
<div class="blockcontent"><pre>
@webpage{maxwellfdfd-webpage,
Author = {Wonseok Shin},
Note = {{https://github.com/wsshin/maxwellfdfd}},
Title = {{MaxwellFDFD} {W}ebpage},
Year = {2015}
}
</pre></div></div>
<div id="footer">
<div id="footer-text">
Page generated 2020-08-12 00:11:21 EDT, by <a href="https://github.com/wsshin/jemdoc_mathjax" target="blank">jemdoc+MathJax</a>.
</div>
</div>
</td>
</tr>
</table>
</body>
</html>