DCG(ID:6936/dcg002)


Differential equation solver


References:
  • ENGQUIST, B., AND SMEDSAAS, T DCG--A system for automatic code generation for hyperbolic problems Dep Comput. SCL, Umv Uppsala, Sweden, 1975 view details
  • Machura, Marek and Roland A. Sweet "A Survey of Software for Partial Differential Equations" pp461-488 view details Extract: DCG
    DCG
    This program, written by Engquist and Smedsaas [17], was designed to provide software for the numerical solution of hyperbolic systems in one-space dimension. The user'specifies symbolically the equation
    u, = f(x, t, u, ux),
    where a < x < b, and u E R". Initial conditions, boundary conditions, and certain characteristics of the problem, for example, uniform or nonuniform grid in space, or that some particular terms should be considered stiff (and, therefore, integrated implicitly in time} are also specified. These specifications are accepted by the first part of DCG, the analyzer. A syntactical analysis of the equations and boundary conditions is performed to detect errors in the specification, and the problem is classified by linearity, time and space dependence of coefficients, etc. The principal symbol, that is, the matrix Of/Oux, is examined to determine, as far as possible symbolically, whether the correct number of boundary conditions have been specified. Fortran code is prepared to compute the eigenvalue and eigenvectors during execution, if necessary. (This part of the program is the analysis of the matrix analogous to the matrix A in eq. (11.1).) Difference methods and boundary strategies, that is, which variables should be extrapolated at the boundaries, are selected according to the preceding analysis and user'specification, and a solution algorithm is determined. This algorithm is then optimized. The second part of DCG, the synthesizer, accepts the algorithm, and, using a library of Fortran codes, constructs a Fortran program to solve the given problem. This program contains output statements that save all intermediate execution output on a disk. After execution, a graphics program operates interactively with the user to provide graphs of any of the variables as functions of space or time. As alluded to above, the approximation is done by finite differences using different types of second- and fourth-order differencing, Leapfrog, Crank-Nicolson, or semi-implicit integration, all of which are energy conserving. However, the user may specify dissipation if desired.
    DCG seems to be a fairly thorough treatment of the one-space-dimension problem, but its availability may be limited by the fact that the analyzer is written in SIMULA, a language not generally available in numerical computation centers.
          in ACM Transactions on Mathematical Software (TOMS) 6(4) December 1980 view details