Here we see a tree that represents the choices made in
developing an analysis code. For instance, in the case of the
seeker assembly, we might start at the highest level with a
general model of continuum mechanics. To create a rigid body
dynamics model, we simplify the continuum model by assuming that
bodies are rigid, i.e., that the distance between each pair of
points in a rigid body is constant. Having chosen this simpler
model, we may then choose a means of representing the position of
a body, e.g., a unit quaternion for orientation and an element of
for translation. We might then choose a formulation of dynamics,
say Newton-Euler or Lagrangian. Next we choose a numerical method
for time integration, say 4th order Runga-Kutta. Other choices
provide a means of modeling position constraints, perhaps using
Lagrange multipliers, etc. Finally, all of these decisions must
be implemented in a computer program, perhaps written in C or
FORTRAN.
On the other hand, a different path results in our elasticity code. In this case, our simplifying assumption is not rigidity, but rather staticity - we assume that the body is not moving. We then choose a particular constitutive relation, say plain strain, shape functions (assuming we're going to create a finite element analysis), a sparse matrix representation scheme, numerical method for solving the linear system, and finally, we create a program in C or FORTRAN to computer displacements or forces.
Clearly each of these derivations represents an enormous amount of work. We would like to make sure that as much as possible of the work can be reused. But currently, the only trace of all this work is in the resulting C or FORTRAN codes. That is, we currently have computer support for only the bottom level of the tree. It is our goal to raise the level of computer support, bringing the computer to bear on each of these tasks.
By doing thsi, many of the symbolic steps can be carried out by the computer. Most importantly, because the entire process (all simpligying assumptions and choices) is represented, a change in an alalysis means only a local change - the rest of the tree can be automatically constructed.