Poman P.M. So and Wolfgang J.R. Hoefer
A general design framework for a multi-purpose electromagnetic field simulation tool is presented in this report. This framework allows stand-alone programs to be executed independently of each other as well as in collaboration with each other via a master program to form a simulation tool. A prototype simulator based on this framework is presented at the end of this report.
Figure 1 depicts a collection of programs and shows how they can work together in a sequential manner. The graphical editor produces a high level structure description file for the structure to be analysed. The mesh generator translates that file to a lower level structure description syntax which can be used by the field solver directly. With the data stored in a file provided by the signal generator, the field solver can then perform the required computation and store the result in an output file. This output file can then be used by the signal processor.
The four description languages (SDL, LLSDL, EDL and RDL) depicted in Figure 1 are provisions to incorporate third party software into the simulation tool. These languages must be very high level and easy to understand so that the user of the tool can either produce these files with the provided programs or with other professional third party programs.
The programs in Figure 1 can also work together concurrently; if the intermediate data files are replaced by pipes, then the interactions among these programs can be controlled by a master program. The gray circle in Figure 1 represents such a master program.
The graphical editor takes human input via the mouse and keyboard and produces an SDL output file in either the ASCII or a binary format. It must be user friendly and powerful enough to handle highly complex three-dimensional structures.
Figure 2. depicts such a graphical editor with it various components. The event processor responds interactively to human input via the input devices attached to the computer. The processor also directs other components of the graphical editor to perform element editing, storing as well as displaying the elements stored in the element stacks on the drawing windows.
The mesh generator of this simulator must be powerful enough to handle structures of highly irregular three-dimensional geometry. Figure 3 depicts such a mesh generator with some of its components.
After reading in the SDL input, the mesh generator must extract and discretize the geometrical data in order to produce an input data file for the field solver. Because the SDL file can be produced by using an external ASCII editor or other third party programs, the mesh generator must verify the correctness of this file. The grayed path in Figure 3 is an error handling mechanism; instead of creating incorrect output data, the mesh generator invokes an external error handling module. This module can be provided by a third party package so that its SDL data producing program can be notified if error is detected.
In general, it is quite impossible to recover from errors without causing problems down the simulation path. Therefore, a simple way to handle error is to report it to the user and then terminate the execution of the mesh generator and/or the simulator.
The signal generator accepts human input from the mouse and keyboard then produces EDL output data in either the ASCII or a binary format. Once the EDL output is produced, execution of the signal generator can be terminated. Figure 4 shows some of the components of this signal generator.
The function selector and attribute selector behave like the event processor of the graphical editor; they respond interactively to human input to determine the appropriate function and its attributes (such as magnitude, frequency, etc.) the user has selected. The information is passed on to the function sampler which generates a discrete version of the function based on the time step of simulation provided internally by the simulation tool and produces the appropriate EDL output file.
The signal generator should provide as many functions as possible, but there is no way to determine and implement all the functions one would like to use to excite the structure under study. Therefore, the function selector should provide a mathematical expression parser option to allow the user to specify some uncommon expressions.
The field solver must take advantages of the existing well proven time domain methods such as TLM and FDTD as well as analytical methods, so that the best of these methods can be combined whenever and wherever possible. Figure 5 depicts such a field solver with its various analytical and numerical methods. These methods should be able to work independently as well as seamlessly together with each other.
A method selection mechanism must be implemented to select the appropriate method whenever possible. It must also provide an option to the user to override its selection.
Because the SDL and EDL input can be produced by third party software, the field solver must verify the correctness of these inputs. The grayed path in Figure 5 is an error handling mechanism; instead of creating incorrect output data, the field solver invokes an external error handling module. This module can be provided by a third party package so that its LLSDL and EDL data producing program can be notified if error is detected. However, a simple way to handle error is to terminate the execution of the field solver.
The signal processor of this simulator must be able to show the computed responses in the time, frequency as well as spatial domains. It must also have some advanced filtering capabilities in these domains so that unwanted signals can be eliminated from the responses. Figure 6 shows such a processor with its various internal components.
The output selector in Figure 6 allows the user to select the type or types of outputs to be displayed. Once a complete set of RDL input is received, this signal processor should be able to function independently of the field solver. In the other words, the signal processor should perform all the required computations with the current RDL input and store the computed result in its internal buffer for interactive viewing and processing. The signal transformation blocks in the figure should contain a null (i.e. no operation, just let the signal pass through with no transformation) and a Fourier transform function. Whereas, the signal filtering blocks should contain a null as well as some practical filtering functions.
This simulator incorporates a lot of the advanced concepts and procedures for the TLM method using the object-oriented programming paradigm. The connections between the graphical interface and the numerical computation modules are carefully designed so that other compatible numerical methods such as finite difference time domain (FDTD), finite difference (FD) and finite elements (FE) methods can be easily integrated into this simulator.
This simulator is based on a document-view programming model. The document part of the model contains C++ objects which encapsulate the data and procedures of the TLM method. The view part of the model contains various C++ graphical interface objects to display the geometry of the structure under study as well as its responses to the applied electromagnetic excitations. Because of this clean separation between the document and its associated views, compatible numerical methods can be easily integrated into the document object by simply deriving new methods from a common base method. This idea is depicted in Figure 7.
The graphical interface front end of this simulator consists of a main window and five types of subwindows (each subwindow has an associated view object): Editor, Generator, Analyzer, Animator and Johns-Matrix, Figure 8 depicts the main control window together with the editor and its associated tool boxes.
The main window of the simulator has a menu system and a button bar which allow users to enter commonly used commands. The other subwindows mimic various kinds of instruments that microwave engineers would normally find in their laboratories, such as drafting table, generator, scope and network analyzer, as well as a hard-to-find instrument - the field animator.
The Editor window, mimics the drafting table, allowing users to input the geometry of the structure to be studied via a mouse-based user-friendly drawing mechanism. The tool boxes on the right of the Editor window allow users to select the desired drawing element. Once the geometry is entered, the Editor can discretize the structure to various degrees of coarseness as specified by users. This feature allows problems to be solved with successively finer meshes, and the results can be used in the Richardson extrapolation procedure to estimate the result one would obtain from an infinitely fine mesh.
The Generator window models the signal generator one would find in the microwave laboratory. It allows users to specify the characteristics of the excitation waveform. The Analyzer window models the oscilloscope. It lets users measure the electrical response of the structure. The Animator window (there is nothing like it in the microwave laboratory) allows users to visualize the field evolution in the structure to be studied; it thus enriches the user's perception of electromagnetic wave propagation to an extent rarely achieved by any other tool in the microwave laboratory. The Johns-Matrix window models a high quality matched load. It lets users terminate the structure to be studied with a minimum reflection at the input and output planes. These windows are shown in Figure 9.
A design framework for a multi-purpose electromagnetic simulation tool as well as a prototype simulator based on the framework have been presented in this report. The framework and the prototype simulator demonstrated that advanced TLM features and techniques can be easily integrated into a well designed tool.