During the development of a computer experiment, we can identify three major phases, each with its own challenges: Modelling Phase The first step to simulation is the development of an abstract model of the real-world system under study. Strange enough there are hardly any formal methods of modelling which supports completeness, correctness, and efficiency. The lack of such methods might harm the success of this research field significantly. There are complete journals and internet sites dedicated to the compilation of the consequences of using insufficient, incorrect and inefficient models. For instance some flight simulation experiments were reported where the underlying simulator worked perfectly, but where deficiencies in the CAD/CAM model resulted in catastrophic misinterpretation of the simulations. Some promising new approaches in this field are the use of structural interactive modelling methods (such as presented in STELLA) and the concept of bond graph modelling used in control systems design or object-oriented modelling. Simulation Phase Solvers form the kernel of simulation systems. Here we refer to mathematical methods that make the underlying real-world models discrete. A rough distinction can be made between solvers for discrete (event) systems and solvers for continuous systems. Solvers for discrete event systems are event-set algorithms, which ensure that the events occur in the proper order and at the proper time. The model system is tracked in time. The conventional solvers for continuous systems are finite difference, finite element/volume, and a large class of linear algebra solvers. Also of special interest are the new results obtained with particle methods. Figure 1.5 shows how various phases in modelling and simulation are bound together.
Figure 1.5: Overview of conceptual steps in simulation and modelling cycle.
Computational Phase In this phase we concentrate on the mapping of the different solvers to the machine architecture. Since the type of problems we are interested in are computationally very demanding, much research effort is going on in the efficient use of modern architectures (parallel computer systems) for simulation. As an example, Fig. 1.6 shows the memory requirements (in Words) and computational performance (in Floating-Point Operations per Second) needed to investigate a number of challenging problems by simulation.
Figure 1.6: Examples of challenging computational real-world research topics and their computational requirements.
In Fig. 1.7 we summarise the various conceptual steps required to map a real-world system onto a computer.
Figure 1.7: Summary of the various conceptual stages in the development of a computer experiment.
The computation specific model consists of representing the derived conceptual model into a language that can be implemented. One of the things that often goes wrong in these stages is that the scientist tends to confuse his code with a conceptual model or even worse, with the real-world system itself. This is a situation we should be prepared for and try to avoid at all costs. One way to maintain a critical attitude is to carefully design and test sub stages in the modelling and simulation cycle and to add primitives to the simulation that constantly monitor for "unrealistic" results.
|