Mesh Objects

The Mesh Data consist of four objects, shown below along with the header files in which the objects are declared. The toplevel definition of the Mesh is in dataset.h

The Mesh Objects are created when the input file is read by calling the following IPlotDataSet functions. The above functions allocate space for the various lists. The lists are then filled in with data from input file by the following functions. The Mesh List is actually created larger than it needs to be, in all likelyhood, but this is an upper bound on its size. While the Point, Elem and Edge Lists create space once, the Solution List function creates space once for enough names and a few properties, and then must create space for enough solution values at every mesh point.

Point List

The Point List is filled by basically dumping the data straight in.

Edge List

The Edge List is created from the Point List and the Element List simply to speed up the plotting of the mesh. The algorithm creates an array of size Number of Mesh Points squared. It then builds the Edge List such that no edges are duplicated outright, or are duplicated by reversing the order of the points. Mesh Plots are carried out then, by plotting every edge in this list.

Element List

The Element List is hard coded to have 3 points per element. The function first sets the element type of each element and then that type is passed to each of the three points. The points are found by number and the element does not maintain pointers to its points.

There is, however, one complication to setting the material types of the points. When multiple materials meet at a single point in physical space, we can end up with several points that have the same coordinates, but need to have different material types. The point indeces which define the elements, however, always specify the point number of the first point structure that was defined for each set of coordinates.

In other words, if Silicon and Silicon Oxide share a border, then the points along the border are duplicated in the IPlot Data Point List, once for Si and once for SiO2. The point indeces that define the Si and SiO2 elements, however, will not be distinct for points that lie on this border. Therefore we must search through the IPlot Data Point List for a point whose material type either matches the element's material type, or whose material value has not yet been set.

If the point's material type = -1 If the point's material type != the element material type If the point's material type = the element material type

Important Note!

Due to the structure of the above algorithm and the algorithm which returns data about a specific point during Node Plots, Points in the IPlot Data Point List must be set so that points with identical coordinates lie in a contiguous space within the list of points ( See Things To Do )

Solution List

The Fill Mesh Solution List function is called once for each solution. The function GetParameters looks up several parameters based on the name of the solution. Then all of the points in the Mesh Point List are given values for that particular solution. Note: In the case of a 1D Cross Section it is the points in the Geometry Point List which will hold the solution values. ( See 1D Cross Sections )


IPlot Home Page Technical Doc's User's Guide
IPlot and its accompanying WWW pages were written by Gene McKenna
a member of Stanford University's famous TCAD Group