IBM Release 1.93 manual Program Organization, Front-End Script poems.cmd, Script Operation

Page 10

2. HOW POEMS WORKS

2.1. Program Organization

The POEMS system consists of six parts: the front-end script (poems.cmd), which controls the whole process, communicating with the user, doing the less CPU-intensive tasks (such as CAD file generation) and controlling the rest; the FDTD simulation engine (FIDO or TEMPEST), which takes a simulation description file and produces binary files of simulated E and H field values; the postprocessor (EMPOST), which takes those huge binary files and produces secondary binary data and pictures, including VIS5D interactive visualizations; Vis5D itself, an open-source data visualization program running under the X Window system; and, optionally, a cluster control script (fidossh) that distributes parameters, starts the simulator instances, and collects data afterwards. We’ll examine these in turn.

2.2. The Front-End Script: poems.cmd

The front end script poems.cmd is the part of POEMS that the user will interact with (almost exclusively). It parses the input file, performs error checking, and handles all the symbols and equations. It generates the intermediate files that are used as input by FIDO/TEMPEST and EMPOST, and produces log files and console output to keep the user informed as to the progress of the run. The script is written in REXX, whose advanced parsing capabilities and very flexible stem processing made it a natural choice. Speed is not a serious issue, since only a tiny part of the run time is spent in the REXX code; almost all is used in the FDTD simulation.

2.2.1. Script Operation

The concept underlying the script’s design is that the user should be able to optimize or step anything he likes, in any combination. Therefore, user-defined functions, expressions, and variables are accepted anywhere an argument is required; as in a math program, these variables and functions can depend on each other in any fashion consistent with top-to-bottom parsing of the input file. This is straightforward in a single simulation run, but is a little more involved where stepping and optimization is being used: the program cannot make any assumptions about which simulation parameters can depend on the controlling variables. Accordingly, an optimization or stepping run is organized as follows.

a.Enter SETUP mode

b.Parse the input file and set all the variables. Note which variables are to be stepped or optimized (the controlling variables).

c.Enter OPTIMIZE or STEP mode. For each iteration,

(i)Update the controlling variables for the current iteration

(ii)Parse the input file, setting all the variables except the controlling ones. This preserves all the dependencies.

(iii)Generate the intermediate files for FIDO/TEMPEST and EMPOST, based on the current values of all the variables.

(iv)Run FIDO/TEMPEST, capturing its console output to a file.

(v)If FIDO/TEMPEST fails, stop. If it succeeds, call EMPOST to generate the inputs to the

6

Image 10
Contents IBM T. J. Watson Research Center Yorktown Heights, NY Page IBM T. J. Watson Research Center Yorktown Heights, NY Using Poems HOW Poems WorksChapter Introduction MotivationPhilosophy Structure OptimizationPage Poems system organization Front-End Script poems.cmd Program OrganizationScript Operation Fdtd Engine FIDO/TEMPEST Postprocessor EmpostVisualization System VIS5D Cluster ControlParallel Processing Poems Command-Line Options Command ReferenceGlobal Group Function FreqLambda HostsWhich means that the host’s predefined hostname is not used MacdefMacro PrintSET RandomseedSimulator Verbose World GroupTitle BoundaryXrange Yrange Material GroupBasicstep DefineParameters epsReal epsImag muReal muImag Block Object GroupFAN Hollowbox GratingTiledplane 3DCURVE CurveCylinder Source Group Command Group Output GroupCAD Postprocess GroupField WebpageFlux FarfieldIntegral List ModematchMovie MOVIE3DDissipation SliceVariables Optimize GroupGuess Store LimitPenalty Merit Parameters Schedule GroupRange Computational Domain SymmetryObjects Perfectly-Matched Layers MaterialsPlane Waves Page Beam Sources Optimization Merit FunctionsPhase uniformity across a plane Worked Example Optimizing a V Antenna 10 Optimized V antenna refractivePage Worked Example Glass Ridge Waveguide to Free Space Coupler Worked Example Doped Silica Waveguide ModePredefined Constants Reserved Names ConfinePredefined Mathematical Functions Arithmetic OperatorsAcos Logical OperatorsABS AcoshCOS ATAN2Ceil ElintkMAX Integral20. LN MINRound RandomROOT1D SignMaterial 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 World Subdomain ALL END ObjectEND Source END CommandEND Output END Optimize Phaseex END Postprocess AmplexPage Page Page END Tempest Input File DIPOLE2I.PAR.IN Written by Phil Hobbs Pages of pointsource statements omitted DIPOLE2IEXI Postprocessor orders DIPOLE2I.ORDERSALL DIPOLE2IEXQDIPOLE2IEZI DIPOLE2IEYIDIPOLE2IEYQ DIPOLE2IEZQArray Amplex MiddlefluxPOSTPROC.1.NAME POSTPROC.1.PARMSTRINGPOSTPROC.2.PARMSTRING DIPOLE2IPHASEEXArray FF2Array Poyntingz DIPOLE2IPXPOSTPROC.6.NAME DIPOLE2IPZPOSTPROC.11.NAME POSTPROC.9.PARMSTRINGPOSTPROC.10.PARMSTRING Slice IndexnDIPOLE2IPZXY0.BMP Slice PoyntingzPOSTPROC.13.COMPARISONDOMAIN POSTPROC.14.NAMEPOSTPROC.17.NAME POSTPROC.16.COMPARISONDOMAINDIPOLE2IPXZX0.BMP Slice AmplexPOSTPROC.20.COMPARISONDOMAIN DIPOLE2IPHASEEXXY0.BMPDIPOLE2IPHASEEXZX0.BMP DIPOLE2IDISSZX0.BMPPOSTPROC.24.COMPARISONDOMAIN DIPOLE2IEXQZX0.BMPRun Results DIPOLE2I.SIMPLEX Page Page Page Page Page Fdtd and Tempest Tempest patchesAdvice common to all or most Fdtd programs Tempest limitationsWindow System Configuration Sample X11 ConfigurationRelease Notes Running Vis5DWish list Beta Release Limitations Page Page Emdenormal Emunderflow IndexMatlab Maxordersources 81 Maxpointsources