d. Adjustments to the postprocessor: (i) Figure out how to eliminate the spurious
negative dissipations at the edges of material blocks; (ii) Optionally produce bitmaps and
mode files unfolded along the symmetry planes. This will make the bitmaps easier to
read and will make modefile sources more flexible.
e. Allow modefile sources to have a different cell size than the current simulation. We’re
summing over several-block regions anyway, so there’s no reason we can’t interpolate as
well.
f. Transient simulations and frequency responses via FFT methods on the transient.
g. Change to a response surface optimizer, where the values are fitted to some surface
(e.g. a spline) and the surface minimum is found at each step. This can probably be done
as a relatively simple mod of Nelder-Mead.
h. Generate incident-field information so that we can figure out the scattered field alone.
Either a one-turn TEMPEST simulation with high accuracy enabled, or some analytical
solution that ignores the boundaries. (Or maybe both--both are useful.)
i. Further improvement of the memory utilization behaviour of the postprocessor.
Although the postprocessor tries to avoid holding everything in memory at once, big
simulations with complicated output files (e.g. Vis5D files with >7 variables) may cause
32-bit machines to run out of virtual address space. This occurs when the total size of all
the arrays gets too large (between 2 and 4 GB depending on the operating system and
compiler).
j. (Fairly far out) Addition of a beam-propagation method (BPM) code to allow POEMS to
simulate and optimize larger structures. This won’t happen unless there’s significant user
interest.
B.4.2. Beta Release Limitations
The POEMS beta release has the following known limitations:
a. Parameter stepping isn’t yet implemented.
b. Generalized cylinders and bends aren’t yet implemented, so you’ll have to make do
with fans, blocks, and grating lines of rectangular cross-section for now. It’s easy to
synthesize simple curves using the FAN statement if desired.
c. Illumination beams of arbitrary pupil functions aren’t implemented yet.
d. The current optimizer is an unconstrained Nelder-Mead downhill simplex method.
This needs to be replaced with a modern response surface optimizer that allows limits.
Right now, the LIMIT keyword isn’t implemented, so in some cases the optimizer will
just step off a cliff (e.g. specifying a line with a negative width) and crash. Since you can
specify whatever merit function you like, in simple cases like this you can fold the
domain, e.g. by squaring or taking the absolute value of the parameter before using it to
85