Lapas attēli
PDF
ePub

on the rectangle (0,1)x(0,1.2) for 0<t<1 general PDEs could be solved. In 1986 with initial condition a "Basic System" was officially available as a product from Hitachi. This

T(0,x,y) = 100 exp{-[(x-0.5)2+ y2]} included the ability to solve linear partial

and boundary conditions

ǝT/ǝn = 0 T = 200

for x=0 and x=1 for y=0

ƏT/ǝn - λT =μ for y=1.2

ELLPACK, an American project. These systems have many overt similarities. Both are preprocessor based; they read very-high-level descriptions of PDE problems and solution algorithms and produce a Fortran 77 program as output. When linked with their respective run-time libraries and executed, the generated programs will solve the given PDE problem. Both support graphical output. Linear second-order steady-state PDE problems in fairly general domains in two or three spatial dimensions are the most straightforward to solve using each system. Nonlinear problems, time- DEQSOL dependent problems, and systems of equations are also solvable, but doing so requires more of the user. There are, of course, many differences between DEQSOL and ELLPACK. In what follows we will try to give you a feeling for these two projects in more detail.

To illustrate the use of the two packages, we will present programs designed to solve two simple problems. (Note that V2 represents the Laplacian in cartesian coordinates, i.e., V2 = 2/ ǝx2 + ǝ2/ǝy2.)

for the constants a=0.62, λ=0.8, and μ=50.

The DEQSOL project, headed by Dr. Yukio Umetani, is based at the Central Research Laboratory of Hitachi Ltd. The laboratory employs about 1,300 people in a heavily wooded park-like setting about 30 minutes by local train from central Tokyo. Contributions to the system have also been made by staff at Hitachi VLSI Engineering Ltd. From the outset, the goal of the DEQSOL project was to develop an easy-to-use system in which practical PDE models could be expressed and solved while

Problem 1: Stress distribution in a thin taking the best advantage possible of plate containing a hole.

The domain for this problem is the square (-2,2)x(-2,2) with a circle of radius 1 removed from its center. The stress function satisfies

[ocr errors]

on the plate, with 4=1 at the outside edge and 4-0 at the edge of the hole. Due to symmetry we need only consider the region x>0, y>0, with

the supercomputer performance possible using Hitachi's vector processors.

The project began in 1980, with language design. Umetani set to work on DEQSOL after many years developing vectorizing compilers for Hitachi. Thus he had a language designer's understanding of how user Fortran needed to be structured in order for it to compile into efficient vectorizable code. He also felt that Fortran was too low level a language to allow scientists to express concepts that would vectorize and parallelize easily, and that a higher level language would not only make it easier for scientists to develop Problem 2: Thermal diffusion problem. algorithms but also make it easier for algorithms but also make it easier for compilers to generate efficient code. The earliest version (1982) only dealt with two-dimensional diffusion problems on rectangular grids, but by 1983 three-dimensional problems and more

aplan = 0, for x=0 and y=0

:

Find the function T(t,x,y) that satisfies

[ocr errors]

differential equations using either finite difference or finite element methods. A separate "Enhanced System" with many additional features was released in 1987. Solution functions to support the solution of fluid flow problems were added to the Enhanced System in 1989 and 1990.

The DEQSOL project currently has more than 20 people involved in research, development, and commercialization. DEQSOL runs on Hitachi's M680 and S810 supercomputers, for which approximately 70 copies of the package have been sold, all in Japan. Umetani claims that it would be very easy to modify the DEQSOL source to generate efficient Fortran for other vector computers, but that it would require more work to take advantage of multiprocessors.

DEQSOL's Basic System is designed to automatically solve linear elliptic problems on fairly general two- and three-dimensional domains with general linear boundary conditions. The system easily handles problems with material interfaces. Nonlinear problems and time-dependent problems may also be solved, but the user must program an iterative scheme to solve the problem. This is quite natural to do in DEQSOL.

The language syntax allows differential equations to be expressed in a natural mathematical syntax. Scalar, vector, and tensor variables are supported, and differential operators such as first partial derivatives (DX, DY, DZ), the normal derivative (NGRAD), the Laplacian (LAPL), the divergence (DIV), and the gradient (GRAD) are defined on them. A variety of declaration statements allow users to specify the problem geometry (e.g., DOMAIN, POINT, REGION, FREGION), the finite difference or finite element mesh (MESH), problem variables and

constants (e.g., VAR, VEC, CONST), initial conditions (ICOND), and boundary conditions (BCOND). The solution algorithm is specified in the SCHEME block, which comprises the executable portion of a DEQSOL program.

Both finite difference (FDM) and finite element (FEM) discretizations are supported. For finite differences, boundaries must be made up of straight lines (or planes in three dimensions) parallel to the coordinate axes. Secondorder accurate differences are supported for general linear differential operators. For finite elements, boundaries in two dimensions (2D) may be made up of straight lines, circular arcs, or cubic splines. In three dimensions (3D), boundaries can be built using cubic or tetrahedral parts. The problem is discretized using the Galerkin method on linear triangular elements.

Graphical output is available via the SGRAF postprocessor. SGRAF allows users to obtain output in various forms including contour plots, surface plots, vector plots, and intensity plots. Plots of domains with superimposed grids may also be obtained; color output is supported.

DEQSOL's Enhanced System provides a number of additional capabilities in geometry processing, types of equations handled, and numerical techniques supported. Among these improvements are:

A boundary-fitted coordinate transformation method (BFM) permits general domains to be automatically mapped to rectangular ones where FDM techniques may be applied.

• An interface to a computer-aided design (CAD) system allows easier description of complex domains for the FEM.

[blocks in formation]

I1 (0.5,0.8660),
12=(0.8660,0.5);

REGION AB=LN (A, B), BC=LN (B,C),

CD=LN(C,D), AF=LN(A,F),

DE=ARC (D,12,E),
EF=ARC (E,11,F),
BE=LN(B,E),

ABEF=QUAD (AB, BE, EF, AF),
CBED=(CB, BE, ED, CD);

FREGION ABEF+CBED;
BOUND

AB+BC+CD+DE+EF+AF;

BCOND

SCHEME;

BOTTOM=(*,0),

TOP=(*,1.2), TOTAL=(*,*);

TEMP=100*EXP(-(X-0.5)**2

-Y**2) AT TOTAL;

DX (TEMP)=0 AT RIGHT+LEFT,
TEMP=200 AT BOTTOM,
DY(TEMP)=LM*TEMP+MU_AT

TOP;

ITER NT UNTIL NT GT 50;
TOLD TEMP;

SOLVE TEMP OF (TEMP-TOLD)/DLT

= A*LAPL (TEMP) BY ILUBCG'; PRINT TEMP EVERY 10 TIMES; END ITER;

END SCHEME; END;

The Fortran code to discretize the problem is generated by the DEQSOL preprocessor. This code is expressed in such a way as to be easily vectorized by Hitachi vector processors. Solution of linear equations in implicit equations (the SOLVE statement) is done by calling library routines; several methods are available, including banded Gauss elimination and preconditioned conjugate gradient iteration. The library routines are also highly vectorized. DEQSOL does not have any explicit method to allow the user to indicate parallelism in the problem description, but Umetani and other Hitachi colleagues are also working on a new programming language PARAGRAM that does. At the moment DEQSOL and PARAGRAM are independent projects.

Considerable effort has been expended to apply DEQSOL to realistic mathematical models in a variety of application areas. Some of these include (the number of spatial dimensions and the solution method are given in parentheses):

⚫ impurity distribution analysis in LSI process CAD (2D-FDM)

⚫ device simulation of well layer in LSI (2D-FDM)

⚫ magnetic analysis for Japanese Institution of Electrical Engineers (JIEE) model (3D-FDM)

⚫ flow analysis of chemical vapor deposition (3D-FDM)

⚫ magnetic field analysis of a disk head (3D-FEM)

Some of the models were quite complex, requiring hundreds of lines of DEQSOL input. The resulting Fortran programs were highly vectorized (more than 90% of the loops vectorized in each case).

In addition, DEQSOL has been evaluated by its authors for several application problems for which handcoded Fortran programs exist. DEQSOL programs were 1/10th the size of these hand-coded Fortran programs, illustrating the potential for increased programmer productivity using DEQSOL. In some cases the DEQSOL programs ran faster than the hand-coded programs due to the high level of vectorizaion in the DEQSOL-produced codes.

The equations representing the velocity vector (u,v) and the pressure p are the steady-state Stokes equations,

-ǝp/əx + V2u = 0

-ap/ǝy + V2 = 0 ǝu/əx + əv/əy = 0

The DEQSOL program for this problem, shown below, illustrates the ease with which simultaneous linear timeindependent equations may be solved in DEQSOL. Note that DEQSOL assumes no-flux boundary conditions for all variables where boundary conditions are left unspecified. It also illustrates how finite element basis functions may be selected (linear for p, quadratic for u and v). A triangular mesh is automatically generated by DEQSOL; users control the meshing by specifying boundary nodes in the MESH statement. The phrase CF-R(C,3,1.1) inserts three nodes on the segment DE such that the ratio of distances between successive points is 1.1 (geometric series). The function D is used to specify equispaced nodes.

[blocks in formation]

An example of a moderately difficult problem that is easily expressed using DEQSOL's Enhanced System follows. The model is of viscous (low METHOD FEM; Reynold's number) incompressible fluid flow from a channel to a larger cavity in two dimensions (see Figure 1).

⚫ air cooling analysis for a baseball dome (2D-BFM)

[blocks in formation]

DOMAIN X = [0:50], Y=[0,30]; POINT A = (0,30), B = ( 0,20), C = (20,20), D = (20, 0),

E = (50, 0), F = (50,20), G = (50,30), H = (20,30); REGION AB = LN (A, B),

[blocks in formation]

E

[blocks in formation]

FREGION ABCH + CFGH + CDEF;

BOUND AB BC + CD + DE + EF

MESH

VAR

+ FG+GH + AH;

AB = D(A,2), CH = D(C,2),
FG = D(G,2),

DE = R(D,3,1.1),
AH = R(A, 2,0.9),
CD = R(D,3,0.9),
GH = R(H,3,1.1),
BC= R(B, 2,0.9),
EF= R(E,3,0.9),
CF = R(C,3,1.1),
INSIDE=AUTOS IM;
U, V, P;

ELMTYPE LINEAR FOR P

[blocks in formation]

ELLPACK

The ELLPACK project began in 1975 as a cooperative research project among Purdue University, the University of Texas at Austin, Yale University, and others. Headed by Professor John Rice of Purdue, the aim was to develop a research tool to evaluate and compare mathematical software for solving elliptic PDE problems. The idea was to create a system where individuals could contribute software modules that either completely solved a class of PDE problems or performed one of the major steps in a numerical method, e.g., discretization or linear algebraic equation solution. All the software would operate in a rigidly defined environment. Some 40 researchers and programmers have been associated with the project in one form or another since its outset. The development of the system was supported by the National Science Foundation, the Department of Energy, the Office of Naval Research, as well as many of the participants' institutions.

Considerable efforts to make the system easy to use led to the development of the ELLPACK language and its preprocessor at Purdue. The resulting flexibility and ease-of-use of the system has made it a popular tool not only for the comparison of methods but also for education and actual problem solving. The first release of the ELLPACK occurred in 1978; the system was completely redesigned and re-released in 1984.

The ELLPACK system routinely solves linear elliptic equations with general linear boundary conditions in two and three dimensions. Arbitrary two-dimensional domains may be specified by describing the boundary in

parametric form; holes and slits in the domain are allowed. Only rectangular boxes are supported in three dimensions. Unequally spaced rectangular grids are supported.

The equation to be solved, the domain, and the boundary conditions are expressed using a natural mathematical syntax. The reserved word U is defined to be the unknown function, and UX, UY, UZ, UXX, UXY, and so on are its partial derivatives. Expressions use Fortran syntax, and any Fortran or user-defined functions may be part of an expression.

Users specify the solution algorithm by simply naming a DISCRETIZATION module and a linear equation SOLUTION module or by naming a combination discretization-solution module (called TRIPLE modules, these are used to implement fast solvers for special problems). Other types of modules implement various utility tasks such as computing the eigenvalues of discretization matrices, displaying their non-zero structure, or reordering their rows and columns to provide for more efficient solution. Many problemsolving modules are available: 11 DISCRETIZATION, 18 SOLUTION, 13 TRIPLE, and 18 other. These may be easily combined in many ways to provide alternate PDE solution algorithms. Functions U(X,Y), UX(X,Y), etc. are automatically available after SOLUTION or TRIPLE modules execute to evaluate the solution or its derivatives. Both tabular and graphical output are supported. Graphics primitives are defined that allow ELLPACK to easily interface to a wide variety of graphical display systems.

One feature that considerably extends the range of applicability of ELLPACK is the fact that users may

[merged small][merged small][merged small][merged small][merged small][ocr errors][merged small][merged small][merged small][merged small][merged small][ocr errors][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small][merged small]

Rice and Boisvert (1985). It was designed to be easy to modify and enhance, and others are free to do so. ELLPACK is distributed in source form for a nominal charge by the Purdue University Research Foundation. Since 1984 about 100 copies have been distributed in the United States and about 60 outside the United States. Proceeds from the distribution help to maintain a small staff that provides a nominal level of support for the system at Purdue.

The ELLPACK system is being used at Purdue as the basis for ongoing research in the design of problem-solving environments for scientific computing. Three such systems are currently under development: XELLPACK, Parallel ELLPACK, and Elliptic Expert.

The XELLPACK project has two goals: (1) to develop an interactive, graphical interface to ELLPACK for the X11 window system; and (2) to adapt the internal operation of the system to facilitate distributed computation. In XELLPACK problem-solving modules run as a separate processes, possibly on different machines. The X11 interface provides menu-based dialogue, with interactive grid generation and function plotting, XELLPACK is expected to be available for external distribution by early 1991.

The goal of the Parallel ELLPACK (//ELLPACK) project is to design a uniform programming environment for implementing parallel multiple instruction/multiple data (MIMD) PDE solvers. A new user interface based upon X11 facilities for composing, editing, and executing //ELLPACK programs is being developed. These include graphics-oriented tools to specify the problem domain, to generate a grid, to decompose it for parallel execution, and to visualize the solution and data about the performance of parallel solution algorithms. General three-dimensional domains will be supported in this version. The user

« iepriekšējāTurpināt »