IBM Release 1.93 manual Structure, Optimization

Page 7

dimensional visualization via VIS5D -Be free for anyone inside IBM to use

and, most importantly,

-Provide a powerful way to optimize structures for a given purpose, e.g. couplers, masks, antennas, and so forth.

To avoid wasted effort, as much as possible of the information generated by the simulation needs to be kept for further use and for sanity checks along the way. It should also be possible to stop an optimization run in the middle and restart it without losing the previous results, using the RESTART command line option (see Section 3.1.1). The current release of POEMS does all of these things.

1.1.2. Structure

POEMS consists of a front-end script that handles all the housekeeping, optimization, and interface duties, a simulation engine, a postprocessor to turn raw values of E and H into useful output, and a visualization system based on VIS5D. The simulation engines are currently TEMPEST, a finite-difference time-domain (FDTD) simulation code developed by Alfred Wong and Tom Pistor at the University of California at Berkeley, whose single- processor form is widely available in C source; and FIDO, a plug-compatible program written from scratch. FIDO accepts the subset of the TEMPEST input file format used by POEMS, with some extensions, so that single-processor simulation can be run on both, and the results compared. FIDO is a significantly more advanced design than TEMPEST, since it precomputes a strategy for the computation instead of just putting a huge switch statement inside a triply-nested for() loop. In addition, it is multithreaded, which allows efficient utilization of symmetric multiprocessor (SMP) machines without additional user effort. On a dual-processor 2.8 GHz Xeon machine running Windows XP, FIDO is about 2.5x faster than TEMPEST on a typical problem--2x for two CPUs, and 25% faster on a per- CPU basis. With this release, FIDO can now run on clusters of Linux, Windows, or OS/2 clusters connected over a TCP/IP network. There is some performance penalty for this, mainly due to communications latency, but for simulations large enough that each time step takes at least 0.5 second, the scaling is excellent.

The user interacts with the front-end script via a high-level input file. Commands in the input file are parsed in the order written. For example, you can’t use a variable at a point above its definition in the file.

1.1.3. Optimization

The POEMS optimizer is currently a vanilla Nelder-Mead downhill simplex algorithm, similar to the Numerical Recipes AMOEBA routine. (A simplex is an N-dimensional figure with N+1 vertices--examples are triangles and tetrahedrons.) Nelder-Mead stays out of trouble pretty well in optimizing continuous functions, unless the simplex gets pathologically long and skinny, in which case it complains. Most of the time, though, we’re optimizing simulation geometry, i.e. which block gets which material. Object dimensions come only in integer multiples of the local cell size, so rounding occurs before the object is generated. Changing the requested size has no effect whatever until it

3

Image 7
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 Front-End Script poems.cmd Program OrganizationScript Operation Postprocessor Empost Fdtd Engine FIDO/TEMPESTCluster Control Visualization System VIS5DParallel Processing Poems Command-Line Options Command ReferenceGlobal Group Hosts FreqLambda FunctionMacdef Which means that the host’s predefined hostname is not usedPrint MacroSET RandomseedSimulator Boundary World GroupTitle VerboseDefine Material GroupBasicstep Xrange YrangeParameters epsReal epsImag muReal muImag Block Object GroupFAN Hollowbox GratingTiledplane 3DCURVE CurveCylinder Source Group Output Group Command GroupWebpage Postprocess GroupField CADFlux FarfieldIntegral Modematch ListMOVIE3D MovieSlice DissipationVariables Optimize GroupGuess Store LimitPenalty Merit Parameters Schedule GroupRange 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 Worked Example Glass Ridge Waveguide to Free Space Coupler Worked Example Doped Silica Waveguide ModePredefined Constants Confine Reserved NamesArithmetic Operators Predefined Mathematical FunctionsAcosh Logical OperatorsABS AcosElintk ATAN2Ceil COSMIN Integral20. LN MAXSign RandomROOT1D RoundMaterial Parameter Functions Analytical Pupil FunctionsFlattop Startup and Steady State Tempest and General Fdtd InformationTime step Page Appendix A. V-Antenna Optimization Run Poems Input DIPOLE2I.PAR END Material END Object END World Subdomain ALLEND Source END CommandEND Output 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 ConfigurationRelease Notes Running Vis5DWish list Beta Release Limitations Page Page Emdenormal Emunderflow IndexMatlab Maxordersources 81 Maxpointsources