forked from NanoComp/meep
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
63 lines (41 loc) · 2.1 KB
/
TODO
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
Add support for importing GDSII file format used in
planar lithography.
Output DFT array in readable format rather than as a dump
of internal data structure.
Material and field internal data structure dump/load
(i.e., to enable restarting from pre-loaded data)
Discrete rotational symmetry in cylindrical coordinates.
Near-field to far-field transformations for 2d cell with 1d periodicity
and 3d cell with 2d periodicity.
Gyromagnetic materials via general anisotropic conductivities.
Parallelize grid initialization for user-defined material
function.
Extend second-order accurate subpixel smoothing scheme to
dispersive materials involving complex permittivity.
Finish implementation of active materials (multilevel atoms and
saturable absorption/gain).
Support 3d (r,phi,z) cell, where m is "Bloch wavenumber"
-- gives 6-fold (and n-fold) symmetry as side effect
-- allows computation of bended photonic-crystal waveguides
Implement transparent boundary conditions to back PML layers, so that
glancing-angle waves can be absorbed.
Re-entrant functions: foo(vec&) arguments should be foo(vec&, void*)
where the second argument can be used to pass state (instead of global
vars).
User proper PML for cylindrical coordinates, rather than quasi-PML.
Use more-stable algorithm for dispersive media.
Make sure epsilon and other material properties respect symmetry,
periodic boundaries, etc.?
Remove monitor point class (redundant with HDF5 output, DFT volumes?).
Integrated support for calling MPB mode solver for current distributions.
rename fields::initialize to fields::add_to_fields or something like that,
and allow specifying a geometric_volume.
Support Pade approximates (libpadespectrum) for Fourier and modal analysis.
Check sensitivity to rounding error and if there is a better way to handle:
structure.cpp:555 (PML region boundaries)
vec.cpp:560 (interpolation weights)
anisotropic_averaging: 79 (magnitude of normal vector)
-------------------------
Python & Scheme Interface
Need a way to reset epsilon when restarting, and also phasing support.
Support arbitrary-shaped sources.