Simulation - Not Just For Rocket Scientists Anymore!
The Apollo XIII mission might have ended differently had it not been for the invaluable contribution of what was at that time the exotic discipline of Simulation. Since then, simulation has become an integral part of virtually every scientific and engineering endeavor. Personal computers bring the art and science of simulation within common reach. Tools of the trade are plentiful and the choices can often be confusing. A brief perspective on their evolution should help in determining their utility and usefulness for a particular purpose.
Simulation explained... Simulation can be defined as the examination of the behavior of a physical process or system by means of a digital computer. It is essentially a two stage process which consists of building a model and experimentation with that model. In modeling, the physical system is first represented by a mathematical model which is then converted into a form suitable for digital simulation. The latter is typically in the domain of simulation software - a body of concepts, techniques and algorithms - designed to assist the researcher in simulation modeling and analysis while sparing him the effort of reinventing the wheel.
Against the backdrop of dynamic technological advances the relative tranquillity of the simulation software landscape is somewhat puzzling. Perhaps it was the absence of public domain software which would infuse the necessary know-how, much like EISPACK and LINPACK did for programs such as Matlab or Matrixx. It could also be due to the mostly classified aerospace/defense environment which precluded the flow of critical technologies. Whatever the case, software choices boil down to two categories distinguished by the approach used to create the simulation model.
State of affairs in perspective... Aerospace successes inspired creation of a high level Continuous System Simulation Language, sort of a digital equivalent of analog programming. The early 70's saw the emergence of the first commercial CSSL packages which continue their market presence even today. Though often criticized as offering little beside the means to calculate model response (integrate equations of motion), they had enjoyed a monopoly until the mid-eighties appearance of graphic (block diagram) oriented packages. Unfortunately, neither is a complete language -- a deficiency which even costly add-on modules won't cure.
Limitations aside, widespread use of simulation is indicative of its fundamental role in computer aided engineering. Further growth is expected once the problem solving capabilities are expanded beyond the rudimentary provisions of the existing languages. However, leading vendors appear to show little enthusiasm for the structural overhaul of their wares. Yet, the Rubicon will have to be crossed eventually to enable complex experiments which require full control over the model - a feature that is untenable within their monolithic architecture. Consequently, many design problems remain outside their solution range.
Know what's under the hood... In the simulation and modeling business, try to avoid taking the quick way out by opting for packages that come with a panacea of canned models and lofty claims of "No programming required". These tools have their place in your toolkit, however you will also require a solid programming language to build those real world models that never seem to materialize from the canned libraries. You will also find that maintenance of models that exist as a myriad of connected icons is difficult and indeed can quickly become the graphical equivalent of spaghetti code. Keep in mind that there's a reason why Egyptian hieroglyphs ended up in museums, so steer clear of these environments as your exclusive modeling and problem solving domain.
Popular packages such as Mathcad, Mathematica, etc. are often adequate for solving a variety of problems but they can also stall on relatively simple tasks. For instance, an elementary physics problem, reformulated as the search for optimal trajectory, rapidly dispels the myth of a quick and easy solution. The problem is not the optimization or the numerical integration but rather the capacity to cooperatively navigate these components to the desired answer. Tools with embedded special languages touted as the "end of programming" keep coming up short. This simple trajectory case makes a compelling argument for packages like SDX which utilize a standard language and its resources - a quantum improvement in building innovative solutions minus the need for learning yet another proprietary language.
Like computers, simulation is here to stay. Whether it's to become the preeminent technical tool will inextricably depend on how well the (simulation) language spans the experimenter's ideas and the modeling intricacies of the physical world.