What Is FlexPDE?
FlexPDE is a "scripted finite element model builder and numerical solver".
By this we mean that from a script written by the user, FlexPDE performs the operations necessary to turn a description of a partial differential equations system into a finite element model, solve the system, and present graphical and tabular output of the results.
FlexPDE is also a "problem solving environment".
It performs the entire range of functions necessary to solve partial differential equation systems: an editor for preparing scripts, a mesh generator for building finite element meshes, a finite element solver to find solutions, and a graphics system to plot results. The user can edit the script, run the problem and observe the output, then re-edit and re-run repeatedly without leaving the FlexPDE application environment.
FlexPDE has no pre-defined problem domain or equation list.
The choice of partial differential equations is totally up to the user.
The FlexPDE scripting language is a "natural" language.
It allows the user to describe the mathematics of his partial differential equations system and the geometry of his problem domain in a format similar to the way he might describe it to a co-worker.
For instance, there is an EQUATIONS section in the script, in which Laplace's equation would be presented as
Div(grad(u)) = 0.
Similarly, there is a BOUNDARIES section in the script, where the geometric boundaries of a two-dimensional problem domain are presented merely by walking around the perimeter:
Start(x1,y1) line to (x2,y1) to (x2,y2) to (x1,y2) to close
This scripted form has many advantages
|•||The script completely describes the equation system and problem domain, so there is no uncertainty about what equations are being solved, as might be the case with a fixed-application program.|
|•||New variables, new equations or new terms may be added at will, so there is never a case of the software being unable to represent a different loss term, or a different physical effect.|
|•||Many different problems can be solved with the same software, so there is not a new learning curve for each problem|
There is also a corollary requirement with the scripted model:
|•||The user must be able to pose his problem in mathematical form. |
In an educational environment, this is good. It's what the student wants to learn.
In an industrial environment, a single knowledgeable user can prepare scripts which can be used and modified by less skilled workers. And a library of application scripts can show how it is done.