IBM Release 1.93 manual Fdtd Engine FIDO/TEMPEST, Postprocessor Empost

Page 11

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 E 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 E and H 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

Image 11
Contents IBM T. J. Watson Research Center Yorktown Heights, NY Page IBM T. J. Watson Research Center Yorktown Heights, NY HOW Poems Works Using PoemsMotivation Chapter IntroductionPhilosophy Optimization StructurePage Poems system organization Script Operation Program OrganizationFront-End Script poems.cmd Postprocessor Empost Fdtd Engine FIDO/TEMPESTCluster Control Visualization System VIS5DParallel Processing Global Group Command ReferencePoems Command-Line Options Hosts FreqLambda FunctionMacdef Which means that the host’s predefined hostname is not usedPrint MacroSimulator RandomseedSET Boundary World GroupTitle VerboseDefine Material GroupBasicstep Xrange YrangeParameters epsReal epsImag muReal muImag FAN Object GroupBlock Tiledplane GratingHollowbox Cylinder Curve3DCURVE Source Group Output Group Command GroupWebpage Postprocess GroupField CADIntegral FarfieldFlux Modematch ListMOVIE3D MovieSlice DissipationGuess Optimize GroupVariables Penalty Merit LimitStore Range Schedule GroupParameters Symmetry Computational DomainObjects Materials Perfectly-Matched LayersPlane Waves Page Beam Sources Merit Functions OptimizationPhase uniformity across a plane 10 Optimized V antenna refractive Worked Example Optimizing a V AntennaPage Predefined Constants Worked Example Doped Silica Waveguide ModeWorked Example Glass Ridge Waveguide to Free Space Coupler Confine Reserved NamesArithmetic Operators Predefined Mathematical FunctionsAcosh Logical OperatorsABS AcosElintk ATAN2Ceil COSMIN Integral20. LN MAXSign RandomROOT1D RoundFlattop Analytical Pupil FunctionsMaterial Parameter Functions Time step Tempest and General Fdtd InformationStartup and Steady State Page Appendix A. V-Antenna Optimization Run Poems Input DIPOLE2I.PAR END Material END Object END World Subdomain ALLEND Output END CommandEND Source END Optimize END Postprocess Amplex PhaseexPage Page Page END Tempest Input File DIPOLE2I.PAR.IN Written by Phil Hobbs Pages of pointsource statements omitted DIPOLE2IEXQ Postprocessor orders DIPOLE2I.ORDERSALL DIPOLE2IEXIDIPOLE2IEZQ DIPOLE2IEYIDIPOLE2IEYQ DIPOLE2IEZIPOSTPROC.1.PARMSTRING MiddlefluxPOSTPROC.1.NAME Array AmplexFF2 DIPOLE2IPHASEEXArray POSTPROC.2.PARMSTRINGDIPOLE2IPZ DIPOLE2IPXPOSTPROC.6.NAME Array PoyntingzSlice Indexn POSTPROC.9.PARMSTRINGPOSTPROC.10.PARMSTRING POSTPROC.11.NAMEPOSTPROC.14.NAME Slice PoyntingzPOSTPROC.13.COMPARISONDOMAIN DIPOLE2IPZXY0.BMPSlice Amplex POSTPROC.16.COMPARISONDOMAINDIPOLE2IPXZX0.BMP POSTPROC.17.NAMEDIPOLE2IDISSZX0.BMP DIPOLE2IPHASEEXXY0.BMPDIPOLE2IPHASEEXZX0.BMP POSTPROC.20.COMPARISONDOMAINDIPOLE2IEXQZX0.BMP POSTPROC.24.COMPARISONDOMAINRun Results DIPOLE2I.SIMPLEX Page Page Page Page Page Tempest patches Fdtd and TempestTempest limitations Advice common to all or most Fdtd programsSample X11 Configuration Window System ConfigurationWish list Running Vis5DRelease Notes Beta Release Limitations Page Page Matlab IndexEmdenormal Emunderflow Maxordersources 81 Maxpointsources