Finite Difference Time Domain

Wiki

Introduction

This wiki is primarily a description of the forms to control the Finite Difference Time Domain program. In the left side panel of each form are (1) labels showing the parent forms in the hierarchy, (2) a link to the appropriate section of this wiki for the current form, and (3) navigation links to parent forms (back references). Error and status messages generated while processing the forms will appear below the main section of the forms.

The input data for the program is divided into nine main groups: Title, Yee Cells, PECs, Materials, Boundaries, Sources, Probes, Visuals, and Timing. Several of these main groups have one or more subgroups. Each group and subgroup is given a name. This scheme allows the user to build a library of materials, structures, sources, etc.

The top level of the input data is a project name. A project consists of one or more runs. A run consists of a set of names, one for each of the nine main groups. This scheme allows the user to quickly set up a parametric study, where input data in only one or perhaps a few of the groups or subgroups is changed from run to run.

When creating a new project, group names are autogenerated based on the project name and an autogenerated run number. The autogenerated names can be edited to a more descriptive name or to the name of a previously created data group.

A set of example projects is stored in the data base and can be accessed by simply not logging in. You will be able to browse the input data and run the examples. However, you will not be able to change or add to any data elements. You must login to setup, store and run your own projects.

Form Hierarchy

Form Descriptions

Project Selection

This is the main project control form. It contains: a New button to create a new project; a drop down list box to select a previously created project; an Edit button to alter or review a previously saved project; a Run button to check the input data of a project (first step in the run process), a Status button to run the finite difference time domain algorithm for the project (second step of the run process) if not already started, and check the progress of the run, a Viewer button to display the outputs for a project, and a Delete button to remove a project.

The Run button should be selected at least once before selecting the Status or Viewer buttons in order to use the latest modifications of the input data.

The Delete button does not automatically delete the subgroups and runs that make up a project. The runs of a project must be deleted before a project can be deleted (see Run Selection). The subgroups of a run do not need to be deleted. This allows building of data libraries, while preventing orphaning of runs (runs do not have names, only id numbers).

CAUTION: The Delete button action is immediate.

New Project

Start creating a new project by entering a project name in the text input box on this form. Selecting the Save button stores the project name in a database under your login name, and then launches a New Run form.

New Run

For convenience, the New Run form is prefilled with autogenerated group names. Required groups have an autogenerated name based on the project name and run number. Optional groups have an autogenerated name of none. Select Save to accept the autogenerated group names or edit the group names first and then select Save. You will return to the Run Selection form where the new run will be listed along with any previously created runs for the current project.

Run Selection

This form lists all runs for the current project by run number, using a two columns per run format. The first column shows the names of the nine main groups for each run. Selecting the run number in the Edit Run row launches the Group Selection form where these names can be changed. Selecting the run number in the Delete Run row deletes the run. The second column for a run shows the number of data blocks in those groups that can have more than one data block (i.e. more than one material, or more than one PEC region). This provides an indication of the completeness of the input data.

Selecting the New button (located below the list of runs) launches the New Run form, where a new run can be created.

The project name can also be edited on this page. Make changes to the project name in the text box, and save the changes by selecting the Rename button. The run selection form will be redisplayed with a confirmation message. This process does not create a new project, it simply renames an existing project. Group names are not altered by renaming the project.

Group Selection

The Group Selection form has a drop down list box and four control buttons for each of the nine main input data groups. The current project and run is shown at the left side of the form. The list boxes initially show the group names associated with the current project and run.

To create a new input data group, select the New button. The new group will automatically be associated with the current project and run.

To associate a different group name with the current project and current run, simply select a name from a list box and then select Update.

To edit the parameters of a group, select a name from a list box (or use the current selection), then select the Edit button. If editing a data group that is not currently associated with the current project and run, it will not automatically be associated. This allows editing the entire library of data groups without having to return to the Project Selection or Run Selection forms. If you wish to associate the newly edited data group with the current project and run, do not forget to select it from the list box and make it current with the Update button.

To delete a group, select a name from a list box, then select the Delete button. If the group is associated with one or more runs from any project (is still being used) it will not be deleted. NB: For multi-record groups such as the PECs group and the Probes group, all members of the group (each PEC or Probe, respectively) will be deleted along with the group name. If only one or several members of the group are to be deleted (but not all), use the Delete button on the Selection form for the group (i.e. PEC Selection or Probe Selection)

New Title Group

Enter a name for the new Title group in the Title Group box.

The software version should normally be left at the default value.

The Memory Limit is in bytes. The program will stop if this limit is reached. It is normally set to slightly less than the RAM size of the computer running the program. Setting it to a larger value to accomodate a large project may result in a significant slowdown in run speed (depends on disk speed for virtual memory page swaps).

The Title will appear on all output from the program.

Select Save to store the data under the name entered in the Title Group box. The new Title group will automatically become the current Title group for the current project and current run. The Group Selection form will automatically be displayed. If you do not want to use the new Title group for the current project and current run, use the list box and Update button to change the current Title group.

Edit Title Group

Previously entered values (if any) for the Title group data are shown in the boxes. The name of the Title group being edited is shown above the data entry boxes. If the current project and run are also shown at the top of the form, the Title group being edited is the current Title group associated with the current project and run. See Group Selection for more information.

To change one or more values, edit the data in the boxes and select Save when done. The new data will be stored under the Title group name (shown above the data entry boxes). The Group Selection form will automatically be displayed. If the Title group just edited was not the current Title group, it can be made current by selecting it in the list box of the Group Selection form and then selecting the update button.

New Timing Group

Enter a name for the new Timing group in the Timing Group box.

Time Step Size is the time between successive samples of the E-field values (or H-field values) in units of seconds. The H-field samples are offset from the E-field samples by one-half a time step in the FDTD technique.

Start Output Time and Output Interval are in units of time steps. These are normally set to 0 and 1 respectively, but can be set to larger integer values to reduce the quantity of output. The total amount of time simulated is the Number of Time Steps times the Time Step Size.

See New Title Group for a description of the Save button operation.

Edit Timing Group

See New Timing Group for a description of the various data elements.

See Edit Title Group for a description of the Save button operation.

New Yee Cells Group

Enter a name for the new Yee Cells group in the Yee Cells Group box.

Yee Cell Size is the length (in meters) of (a side of, or an edge of) a Yee Cell. For the one dimensional case, propagation is along the x-axis (y and z quantities are not used). For two dimensions, propagation is in the xy-plane (z quantities are not used). The x and y sides are equal length in this version of the program. For three dimensions, the x, y, and z edges are all equal.

Node Type is the type of Yee Cell node at the extremities of the simulated region. For one dimensional fields, the extremities are at x=Xs and x=Xf, with Xs being the closest to the origin and Xf the farthest from the origin, and so on for 2 and 3 dimensions. The node type is either E or H and is named after which field is inverted at the boundary. E type nodes invert the electric field. H type nodes invert the magnetic field.

Field Type is: TMz, TEz or TEMx for one dimension; TMz or TEz for two dimensions; and TMz or TEz for three dimensions. For the three dimensional case, Field Type is only used in connection with TFSF planewave sources.

Print Yee Coefficients is set to 1 to dump the Yee Cell coefficient values, or 0 to suppress the output.

See New Title Group for a description of the Save button operation.

Edit Yee Cells Group

See New Yee Cells Group for a description of the various data elements.

See Edit Title Group for a description of the Save button operation.

New Boundaries Group

Enter a name for the new Boundaries group in the Boundaries Group box.

The boundary type at the extremities of the simulated region is one of the following: Dirichlet (perfect reflection), Neumann, first order absorbing, or second order absorbing. Future versions of the program will implement additional types of high performance absorbing boundaries. NB: Mixing boundary types for the 2 and 3 dimensional cases may result in unexpected reflections from the corners where different boundary types meet.

See New Yee Cells Group for additional discussion of the boundary at the extremities of the simulated region.

Print Coefficients is set to 1 to dump the boundary coefficient values (if any), or 0 to suppress the output.

See New Title Group for a description of the Save button operation.

Edit Boundaries Group

See New Boundaries Group for a description of the various data elements.

See Edit Title Group for a description of the Save button operation.

New PECs Group

Enter a name for the new PECs group in the PECs Group box.

The remaining six elements define the location and size of a box-shaped PEC. The scale for these elements is from 1 to the number of Yee Cells in each coordinate axis. Xs, Ys and Zs are closest to the origin of the coordinate system. Xf, Yf and Zf are farthest from the origin. The box includes Yee Cells from x=Xs to Xf, y=Ys to Yf, and z=Zs to Zf. For the one dimensional case, only x quantities are used (the box has infinite width in the y and z directions). For the two dimensional case, only x and y quantities are used (the box has infinite width in the z direction).

A PECs group can have more than one PEC (this is a multi-record group and each record has multiple elements). This allows the construction of complex shapes, one Yee Cell at a time, if necessary. To add an additional PEC to a PECs group, use the New button on the PEC Selection form.

PEC Selection

Select an Edit PEC Id button to edit that PEC.

Select the New button to add a PEC to the current PECs group.

Select a Delete PEC Id button to delete that PEC.

NB: The PEC Id is a serial number assigned by the mysql database system. When a PEC is deleted, its Id number is released and may be used for subsequently created PECs.

New PEC

See New PECs Group for a description of the various data elements.

Edit PEC

See New PECs Group for a description of the various data elements.

New Materials Group

Enter a name for the new Materials group in the Materials Group box.

Enter names for the material type and the material location(s) in the remaining two boxes. This defines the first material of the new Materials group. Additional materials can be added to the Materials group using the New button on the Materials Selection form.

Materials Selection

Each material of the Materials group is listed on a separate line.

Select an Edit Material Id button to edit that material.

Select the New button to add a material to the current Materials group.

Select a Delete Material Id button to delete that material from the Materials group.

NB: The Material Id is a serial number assigned by the mysql database system. When a material is deleted, its Id number is released and may be used for subsequently created materials.

New Material

Enter names for the material type and the material location(s) in the two boxes.

Material Selection

The Material Selection form has a drop down list box and four control buttons for each of the two input data subgroups (Material Type, Materials Locations). The current Project, Run, Materials group and Material Id are shown at the top of the form. The list boxes initially show the subgroup names associated with the current Material Id.

To create a new input data subgroup, select the New button. The new subgroup will automatically be associated with the current Material Id.

To associate a different subgroup name with the current Material Id, simply select a name from a list box and then select Update.

To edit the parameters of a subgroup, select a name from a list box (or use the current selection), then select the Edit button. If editing a data subgroup that is not currently associated with the current Material Id, it will not automatically be associated. This allows editing the entire library of data subgroups without having to return to the Materials Selection form. If you wish to associate the newly edited data subgroup with the current Material Id, do not forget to select it from the list box and make it current with the Update button.

To delete a subgroup, select a name from a list box, then select the Delete button. If the group is associated with one or more Material Ids from any Materials group (is still being used) it will not be deleted.

New Material Type Group

Enter the name of the new Material Type group in the first box.

The remaining parameters are the electrical properties of the material. Sigma is the conductivity (mhos/meter). Epsilon is the permittivity (farad/meter). Rho Prime is the magnetic resistivity (ohm/meter). Mu is the permeability (henry/meter). Frequency dependent electrical properties are not modelled in this version of the software.

Edit Material Type Group

See New Material Type Group for definitions of the parameters.

New Material Locations Group

Enter the name of the new Material Locations group in the first box.

The remaining boxes define the first material location of the new Material Locations group. Additional material locations can be added to the Material Locations group using the New button on the Material Location Selection form.

The six elements (Start X, Finish X, Start Y, Finish Y, Start Z, Finish Z) define the location and size of a box-shaped piece of material. The scale for these elements is from 1 to the number of Yee Cells in each coordinate axis. Start X, Start Y and Start Z are closest to the origin of the coordinate system. Finish X, Finish Y and Finish Z are farthest from the origin. The box includes Yee Cells from x=Start X to Finish X, y=Start Y to Finish Y, and z=Start Z to Finish Z. For the one dimensional case, only x quantities are used (the box has infinite width in the y and z directions). For the two dimensional case, only x and y quantities are used (the box has infinite width in the z direction).

Material Location Selection

Select an Edit Material Location Id button to edit that Material Location.

Select the New button to add a Material Location to the current Material Locations group.

Select a Delete Material Location Id button to delete that Material Location.

NB: The Material Location Id is a serial number assigned by the mysql database system. When a Material Location is deleted, its Id number is released and may be used for subsequently created Material Locations.

New Material Location

See New Material Locations Group for a description of the various data elements.

Edit Material Location

See New Material Locations Group for a description of the various data elements.

New Sources Group

Enter a name for the new Sources group in the Sources Group box.

The remaining boxes define the first source of the new Sources group. Additional sources can be added to the Sources group using the New button on the Source Selection form.

Energy Threshold is number between 0 and 1 that represents the fraction of energy of the source waveform that is within the Courant limit. This is used to check the time and spatial step sizes. A warning message is generated if less energy than the threshold is within the Courant limit.

Source E is the amplitude of the field (volts/meter) for a hard or TFSF source, and the relative field amplitude for a soft source.

Source Type defines the type and polarization of the source. Select one of the values from the drop down list box.

Source Mode defines the waveform for the source. Select one of the values from the drop down list box.

Source Mode Parameters is the name of a group of waveform parameters. Enter the name in the box. The actual parameters are entered later from the Edit Source Mode Parameters form.

Source Locations is the name of a group of locations for the source (can refer to just one location). Enter the name in the box. The actual locations are entered later from the Edit Source Location form.

Source Selection

Select an Edit Source Id button to edit that Source.

Select the New button to add a Source to the current Sources group.

Select a Delete Source Id button to delete that Source.

NB: The Source Id is a serial number assigned by the mysql database system. When a Source is deleted, its Id number is released and may be used for subsequently created Sources.

New Source Group

See the New Sources Group form for definitions of the various parameters.

The source id (not shown on this form) for the new source group is autogenerated when the new source parameters are saved. This form returns to the Source Selection form where the new id and parameters are displayed.

Edit Source Group

See the New Sources Group form for definitions of the various parameters.

New Source Mode Parameters

(tbd)

Edit Source Mode Parameters

(tbd)

New Frequencies Group

(tbd)

Frequencies Selection

(tbd)

New Frequency

(tbd)

Edit Frequency

(tbd)

New Source Locations Group

(tbd)

Source Location Selection

(tbd)

New Source Location

(tbd)

Edit Source Location

(tbd)

New Probes Group

Enter a name for the new Probes group in the Probes Group box.

The remaining six elements define the location and size of a box-shaped Probe. The scale for these elements is from 1 to the number of Yee Cells in each coordinate axis. Xs, Ys and Zs are closest to the origin of the coordinate system. Xf, Yf and Zf are farthest from the origin. The box includes Yee Cells from x=Xs to Xf, y=Ys to Yf, and z=Zs to Zf. For the one dimensional case, only Xs and Xf are used. For the two dimensional case, only Xs, Xf, Ys and Yf are used.

A Probes group can have more than one Probe (this is a multi-record group and each record has multiple elements). To add an additional Probe to a Probes group, use the New button on the Probe Selection form.

Probe Selection

Select an Edit Probe Id button to edit that Probe.

Select the New button to add a Probe to the current Probes group.

Select a Delete Probe Id button to delete that Probe.

NB: The Probe Id is a serial number assigned by the mysql database system. When a Probe is deleted, its Id number is released and may be used for subsequently created Probes.

New Probe

See New Probes Group for a description of the various data elements.

Edit Probe

See New Probes Group for a description of the various data elements.

New Visuals Group

Enter a name for the new Visuals group in the Visuals Group box.

The next six elements define the location and size of a box-shaped region to be visualized. The scale for these elements is from 1 to the number of Yee Cells in each coordinate axis. X Start, Y Start and Z Start are closest to the origin of the coordinate system. X Finish, Y Finish and Z Finish are farthest from the origin. The box includes Yee Cells from x=X Start to X Finish, y=Y Start to Y Finish, and z=Z Start to Z Finish. For the one dimensional case, only X Start and X Finish are used. For the two dimensional case, only X Start, X Finish, Y Start and Y Finish are used.

A Visuals group can have more than one visualization type. The name of the list of visualization types is entered in the Visual Types box. To create or edit the parameters of the list of visualization types, use the New or Edit buttons on the Edit Visuals Group form.

Edit Visuals Group

See the New Visuals Group form for a description of X Start, Y Start, Z Start, X Finish, Y Finish and Z Finish. Use the Save button to store any changes to these six parameters under the current Visuals Group name.

The New, Edit, Update, and Delete buttons work in conjunction with the Visual Types list box. Select the New button to add a name to the list box (See New Visual Types Group). Select the Edit button to change the parameters of the visualization types associated with the name selected in the list box (See Visual Type Selection). Select Update to associate the name selected in the list box with the current Visuals group. Select the Delete button to remove a name from the list box.

New Visual Types Group

Enter the name for the new Visual Types group in the Visual Types Group box. The remaining four elements establish the first visual type for the new Visual Types group. Additional visual types can be added to the new Visual Types group by using the New button on the Visual Type Selection form.

The four elements of a visual type are as follows:

Visual Type Selection

Select an Edit Visual Types Id button to edit that Visual Type.

Select the New button to add a Visual Type to the current Visual Types group.

Select a Delete Visual Types Id button to delete that Visual Type.

NB: The Visual Types Id is a serial number assigned by the mysql database system. When a Visual Type is deleted, its Id number is released and may be used for subsequently created Visual Types.

New Visual Type

See New Visual Types Group for a description of the various data elements.

Edit Visual Type

See New Visual Types Group for a description of the various data elements.

Input Check Wizard

This is not actually an input form. It summaries the results of an input data check, and allows you to go back and correct any errors (select the Edit button), or proceed and run the project (select the Continue button). CAUTION: Once the Continue button is selected, any old files from a previous run with the same project name are discarded. If you want to keep old projects available for review, be sure to change the project name (append a serial number, etc).

Status

This form shows the run status of a project. When the project is finished running, select the Viewer button to display the output of the project. If the project is still running, you can select Back to Project Selection to work on another project, or wait and select your browser refresh button to update the status page. Projects are run from a simple first-in first-out scheduler in batches every half hour.

Viewer

Results from the JFDTD program are grouped into seven categories: sources, materials, coefficients, probes, visuals, inputs, and run log. Select a category to show the results for that category.

To review the results of another project, select Back to Project Selection to return to the main form. From there, select a project from the drop down list box and then select the Viewer button to return to this form.

View Run Log

This is a dump of the log generated by JFDTD as it is running. It shows some additional diagnostic data pertaining to the Courant condition, detailed memory usage statistics, and run time information.

If File Not Found is shown, the project has not finished running.

View Inputs

This is a dump of the flat file generated from the input form data. It shows all input data fed into JFDTD. The various group/subgroup names, database ids, and labels are stripped off.

If File Not Found is shown, the project has not been started. See Input Check Wizard for how to start a project.

View Coefficients

This page shows a table of the coefficients of each yee cell, including the coefficients of boundaries, if any.

If File Not Found is shown, the project has not finished running.

View Materials

This page shows graphs of the materials spatial distribution. The column labelled View Materials lists a set of controls for selecting various view options. For the 1D and 2D cases, the controls are: Text, Plot, and All. For the 3D case, Plot is replaced by X-Plane Cut, Y-Plane Cut, and Z-Plane Cut. Each of the cut boxes has three controls: a Previous button, a drop down list box for directly selecting a plane, and a Next button. The default view is a z-plane cut at the center of the simulated volume. Only one view is shown at a time.

The graph contains a color coded legend. Free space is always shown as blue, PEC (perfect electric conductor) is always shown as black. Other materials are assigned colors in the order they are encountered in the database. The colors may change as materials are added or deleted.

If File Not Found is shown, the project has not finished running.

View Sources

This page shows graph(s) of the time history of the source waveform(s). The data can also be viewed as a table by selecting the Text button. Select the All button to view both the graphs and the tables.

If File Not Found is shown, the project has not finished running.

View Probes

This page shows the time history of field values of all probes.

If File Not Found is shown, the project has not finished running.

View Visuals

This page shows the time history of field values for each visual. The column labelled View Visuals lists a set of controls for selecting various view options.

For the 1D case, the controls are: Text, Waterfall, Standing Wave, Iteration, and All. The Iteration box has three controls: a Previous button, a drop down list box for directly selecting an iteration, and a Next button. The units for iteration is time step size. The Iteration graphic shows a snapshot of the fields at one instant of time. Selecting All shows the text tables, Waterfall and Standing Wave graphs and the snapshot graph for the iteration currently selected.

For the 2D case, the controls are: Text, Iteration, and All. The Iteration box operates the same way as the 1D case. Selecting All shows the text tables, and the snapshot graph for the iteration currently selected.

For the 3D case, the controls are: Text, X-Plane Cut, Y-Plane Cut, Z-Plane Cut, and Iteration. Each of the cut boxes has three controls: a Previous button, a drop down list box for directly selecting a viewing plane, and a Next button. The default view is a z-plane cut at the center of the simulated volume and at the first outputted iteration. Only one view is shown at a time. The Iteration control sets the time of the snapshot for the plane cut graphs.

If File Not Found is shown, the project has not finished running.