The PCBCAT Preprocessor

The PCBCAT preprocessor is the user interface to the analysis codes. It reads a plain text file that contains commands and arguments that describe a circuit board model. Though this text-based user interface is somewhat old fashioned by the standards of modern computer packages, the preprocessor commands provide a simple and relatively free form language with which a user describes the physical features, prescribes the flow type, and controls the execution of the analysis programs.

The initial objective in developing the preprocessor was to eliminate the need to rewrite the codes for each new physical problem to be analyzed. This required that the analysis codes be structured to accept a variety of boundary conditions, flow orientations, and flow regimes. Such flexibility demands a substantial amount of input data in order to completely specify all of the free parameters that determine the flow. The data needed just to define the computational grid, for example, can become unwieldy for a problem with complex geometric details. Large input data sets do allow flexibility, but also are a liability since it can make the analysis tool difficult to use, and it can increase the likelihood of data entry errors.

In recognition of the tension between flexibility and complexity, a fundamental design criteria for the preprocessor was established. Any feature or option requested by the user should be specified in the most compact way possible, while at the same time giving user complete control. This lead to the development of what I call an object-based problem description. In this context an object is any physical entity with geometric, thermophysical, hydrodynamic or thermal properties that affect the solution. (This use of the word object is not to be confused with object-oriented programming or object oriented software design. The current version of the PCBCAT is written in ANSI C using procedural algorithms and conventional data structures.)

The following additional criteria were used in the preprocessor development: the preprocessor should be extensible; it should contain error checking, and when an error is encountered the code should print a meaningful error message and stop in a controlled way; it should allow relatively free-form input; and it should be capable of being modified or even replaced with minimal impact on the analysis codes. These criteria lead to a substantial software development effort resulting in the current version of the PCBCAT.


[Return to PCBCAT Home Page]


Gerald Recktenwald <gerry@me.pdx.edu>
Portland State University, Portland, OR