FlexPDE is a script-driven system. It reads a description of the equations, domain, auxiliary definitions and graphical output requests from a text file referred to as a "problem descriptor" or "script".
The problem descriptor file can be created either with the editor facility in FlexPDE, or with any other ASCII text editor. A word processor can be used only if there is an optional "pure text" output, in which formatting codes have been stripped from the file.
Problem descriptors use an easy to learn natural language originally developed by Robert G. Nelson for use in the PDS2 system at Lawrence Livermore National Lab and later in the PDEase2 system from Macsyma, Inc. The language is also described in Dr. Gunnar Backstrom's book, "Simple Fields of Physics by Finite Element Analysis".
As FlexPDE has evolved, a number of extensions have been added to extend its processing capabilities. The language as currently implemented in FlexPDE is described in this document.
While similar in some ways to a computer programming language, FlexPDE scripting language is more natural, and is oriented to the description of PDE systems. Most intermediate level college students, engineers, and scientists who have had at least an introductory course in partial differential equations can quickly master the language well enough to prepare simple problem descriptor files and begin solving problems of their own devising.
The FlexPDE problem descriptor language can be viewed as a shorthand language for creating Finite Element models. The statements of the descriptor provide the information necessary for FlexPDE to assemble a numerical process to solve the problem.
It is important to understand that the language of FlexPDE problem descriptors is not a procedural one. The user describes how the various components of the system relate to one another. He does not describe a sequence of steps to be followed in forming the solution, as would be done in a procedural programming language such as C or FORTRAN. Based on the relations between problem elements, FlexPDE decides on the sequence of steps needed in finding the solution.
FlexPDE makes various assumptions about the elements of the problem descriptor.
For example, if a variable is named in the VARIABLES section, it is assumed that:
|•||the variable is a scalar or vector field which takes on values over the domain of the problem,|
|•||it will be approximated by a finite element interpolation between the nodes of a computation mesh,|
|•||the values of the variable are continuous over the domain, and|
|•||a partial differential equation will be defined describing the behavior of the variable.|
If a definition appears in the DEFINITIONS section, it is assumed that the named quantity
|•||is ancillary to the PDE system,|
|•||may be discontinuous over the domain,|
|•||does not (necessarily) obey any PDE.|
In the chapters that follow, we describe in detail the rules for constructing problem descriptors.