What's New With LC Version 2.7


Non-uniform mesh cell sizes

A new type of block can be created to refine or coarsen the mesh used during the FDTD simulation. Subgrid blocks specify a new mesh cell size, which overrides the cell size specified in the Mesh Parameters frame of the Define Model Parameters dialog. Each subgrid block sets the cell size along one axis. The cell sizes along the other two axes are not effected by the the subgrid block. Its placement within the model space along this axis defines the zone in which the cell size is modified. The block's defined size in the other two dimensions is not used; the block is implicitly the size of the model space in these dimensions.

Subgrid block editing window

For example, a subgrid block is defined here which refines the mesh to a cell size of 0.5 mm in the Z direction from z=0 to z=5. The block's dimensions in the X and Y directions are not relevant, and can be set to any value.

Subgrid block model view

In the simple microstrip model shown, the microstrip (viewed end-on) is shown in green on top of a purple dielectric layer (er=4). A blue ground plane appears below the dielectric layer. The area above the microstrip is fill with air. The microstrip is excited by a voltage source (shown in red) placed between the microstrip and the ground plane.

The original simulation size was 50 x 20 x 20 cells, with a cell size of 1 mm. The subgrid block was created within the zone highlighted with a red/white border, redefining the Z-axis cell size to 0.5 mm. The new simulation size is 50 x 20 x 25.

Subgrid simulation results

A comparison was run of the microstrip model with the original uniform grid of cell size 1 mm, and of the non-uniform grid with the subgridzone cell size of 0.5 mm.

The source pulse rise time of 100 picoseconds is well represented by the 1 mm mesh, however, it results in a substantial reflection from the mesh boundary. With the 0.5 mm refined mesh, the reflection is noticably reduced.

One effect of mesh refinement is that the mesh size, and thus the memory requirement, is increased. Conversely, mesh coarsening saves memory.

Another consequence is that the FDTD simulation time step size is set to accommodate the smallest cell size, resulting in the smallest time step size. Thus, more time step iterations are required to complete a given simulation. In the example given above, the mesh was refined by a factor of 2, and thus the time step size was reduced by a factor of 2 as well. Therefore, 1000 time step iterations were required for the non-uniform simulation, while only 500 time step iterations were required for the uniform simulation.

Caveats

Currently, the non-uniform mesh is only functional with the first order Mur absorbing boundary condition (the default ABC). Work is underway on a new implementation of the PML ABC which will make it compatible with non-uniform meshes.

The non-uniform mesh is compatible with most of the other features of LC, including dielectric and permeable materials, all forms of sources and loads, and far field calculations. However, not all combinations of features have been tested, so consider the non-uniform mesh feature to be experimental. If you use non-uniform meshing, please post your experiences to the lc-users mailing list.


Sqrt(l/c) impedance and propagation delay pulse calculations

Two new calculations have been added to the Plot Pulses dialog, impedance calculated by the sqrt(l/c) method, and propagation delay calculated by the sqrt(l*c). Both of these new output types require all four of the probe values, voltage, current, charge, and magnetic flux, to be available. The advantage of the sqrt(l/c) impedance over the simple v/i impedance is that it gives more accurate impedance in dynamic environments and complex model geometries.

These are the same quantities that are available through the Step Pulses dialog, but in a graphical form.


First derivative Gaussian pulse source waveform

Plot of gaussian pulse first derivative A new source waveform is available, a first derivative of a Gaussian pulse. The pulse shown here was defined with a 100 ps rise time. This waveform is similar to the modulated Gaussian in that it has a controlled bandwidth but has no DC component.


Edit Clip dialog

Edit Clip dialog The Edit Clip dialog clips blocks to a region. Blocks completely outside of the region are deleted, blocks which intersect the region boundary are clipped, and blocks completely contained by the region are unchanged.

By default, the clipping is performed to all six limits. Each limit can be deselected, and then no clip will be performed for that limit.

If Clip To Active Block is selected, then the clipping region is initialized to the limits of the block displayed in the main window block editing area. The clip limits may be manually entered or changed as well.

By default, all of the blocks of the model are clipped. If Clip Selected Blocks Only is selected, then only the selected blocks are clipped, and any unselected blocks are not modified.

This feature is useful for reducing a model's simulation size by focusing on a portion of the model. A high resolution simulation could be run on a subset of a model, and a coarser simulation could then be run on the entire model.


Other Changes and Bug Fixes

Added parameterized error message support.
Many error messages are much more precise and descriptive than before, and point you closer to the source of the problem. As time permts, more error messages will be converted from the generic error message format.
Added plot label editing to plot dialog.
Now the plot labels, as well as the title and axis labels, can be modified in an X-Y plot. This is handy for creating nice looking graphics for a document or a web page.
Added diagonal block creation for DXF converter.
The DXF translator can now read blocks rotated within a plane (X, Y or Z). Multiple axis rotations are not handled. Note that this feature is experimental, as I have no way to test it! Let me know if you try it out.
Added line for limit marker drag.
This is just a nice visual feedback during a limit drag pointer operation in a model viewport.
Added positive & negative nodes for spice ports.
Now SPICE ports can be referenced from an arbitrary SPICE node, rather than from ground (node 0).
Added voltage bias offset for spice ports.
If an output from a SPICE circuit has an unwanted DC bias, the bias can be removed from the output voltage before it is applied to the FDTD model. This is handy to avoid sharp transient level changes.
Fixed disabled plane wave still calling SETPLANE() bug.
If a plane wave source was created, but disabled, it still had a potential to change the simulation results due to a bug. Now diabled plane wave sources are entirely inert during a simulation.
Fixed crash caused by missing load SPICE file with several loads.
If a circuit had several SPICE loads, and one of the circuit files could not be accessed, LC crashed and the simulation failed.
Fixed far field phase values to degrees instead of radians to match plot label.
Far field phase plots were labelled as degrees, but plotted as radians. Now the phase values are converted to degrees before they are plotted.
Fixed available memory display in Run Simulation for memory size >= 2GB.
On computers with memory sizes larger than 2 gigabytes, LC showed the wrong available memory size (usually unlimited).
Fixed Movie cylinder twice the correct diameter bug.
Fixed noisy debug messages for surface probes with cylinders/spheres.
Fixed rise sigma = 0 for new sources bug.
If a new source was created, the default value of sigma should be 3, for compatibility with previous versions of LC. However, a blank field was taken as zero, causing the source waveform to degenerate.
Fixed -X/+X view position limit marker elimination.
Fixed File->Open dialog ok callback parameter order bug.
Opening a file caused LC to crash.
Fixed plane wave rise/fall sigma save bug.
The rise and fall sigma values were not being saved properly for plane wave sources with Gaussian pulse waveforms.
Fixed empty "planes" segment bug.
If a plane wave source was created, deleted, then the model saved, LC would crash the next time the model file was read.

Return to What's New


LC Home
Copyright © Cray Inc.
Maintained by Kevin Thomas (kjt@cray.com).
Last modified Mon Dec 21 13:29:47 CST 1998