Справочник Пользователя для IBM Release 1.93

Скачать
Страница из 93
merit function, plus any binary file, list, or slice bitmaps requested. Doing this on each
iteration takes little time and helps in supervising the run’s progress.
(vi)Based on the computed merit function, update the optimization simplex. If
convergence has occurred, exit. Otherwise, compute new values of the controlling
variables for the next iteration and keep iterating. If the current point is the best so far,
save all the bitmap, list, and mode files under another name.
Of course, in order for this to do anything useful, you have to specify a merit function (or
penalty function for pessimists) that depends on the simulation output.
2.3. The FDTD Engine:
FIDO
/
TEMPEST
POEMS
started out life using
TEMPEST
as its main component.
TEMPEST
is a more or less
vanilla single-processor FDTD engine, written originally for simulation of phase-shift
masks, but quite widely used for a variety of applications. It is described in its own
documents, which accompany the
POEMS
distribution. Due to the limitations of
TEMPEST
,
in particular its lack of subgridding and multiprocessor capabilities,
POEMS
now relies
principally on a specially written FDTD engine called
FIDO
, for FInite difference time
DOmain. In broad outline, each of these programs parses an input file containing
human-readable, hard-coded specifications of the simulation domain, boundaries,
materials, objects, sources, and binary output files; constructs and runs a FDTD
simulation as specified, stopping when the specified degree of convergence has been
attained or the maximum cycles exceeded, and producing large binary files full of and
H
values.
TEMPEST
comes with Matlab scripts to plot these simulated fields and do
simple manipulations on them. Section A.2 has an example of a
FIDO
/
TEMPEST
input file
generated by
poems.cmd
.
TEMPEST
also has some more advanced capabilities, e.g. Fourier boundary conditions, far-
field computation (via the
orders
output command), and more complicated source
shapes, that
POEMS
ignores in favour of its own more general versions. This was done for
reasons of usability and to avoid being tied too tightly to one particular simulator engine.
One additional (and most important) attribute of
TEMPEST
is that it is well validated.
Besides having been tested on problems whose analytical solution is known, it has done a
good job for lots of people over several years. For this reason,
FIDO
was written to be a
plug-compatible superset of
TEMPEST
: it takes the same input files, and can do the same
simulations, but
FIDO
is about 50% faster on a per-processor basis and can do subgridded
and clusterized simulations as well. Thus in new situations we can test our simulations
using
TEMPEST
and then refine them using
FIDO
.
2.4. The Postprocessor:
EMPOST
Large binary files full of and values are not very useful by themselves. The tool set
provided by
POEMS
requires a lot of CPU-intensive calculations and binary manipulations
that are much better done in C++ than in REXX. Accordingly,
POEMS
uses a
postprocessor written in C++ to do most of its numerical work.
EMPOST
takes a human-
readable but quite rigidly formatted orders file that specifies what is to be done on what
data. An example is shown in Section A.3.
It is occasionally useful to run the postprocessor manually, e.g. when we want to change
7