Computer simulations are used in a wide variety of practical contexts, such as: • analysis of
air pollutant dispersion using
atmospheric dispersion modeling • As a possible humane alternative to live
animal testing in respect to
animal rights. • design of complex systems such as
aircraft and also
logistics systems. • design of
noise barriers to effect roadway
noise mitigation • modeling of
application performance •
flight simulators to train pilots •
weather forecasting •
Numerical modeling (geology) •
forecasting of risk • simulation of electrical circuits •
Power system simulation • simulation of other computers is
emulation. • forecasting of prices on financial markets (for example
Adaptive Modeler) • behavior of structures (such as buildings and industrial parts) under stress and other conditions • design of industrial processes, such as chemical processing plants •
strategic management and
organizational studies •
reservoir simulation for the petroleum engineering to model the subsurface reservoir • process engineering simulation tools. •
robot simulators for the design of robots and robot control algorithms •
urban simulation models that simulate dynamic patterns of urban development and responses to urban land use and transportation policies. •
traffic engineering to plan or redesign parts of the street network from single junctions over cities to a national highway network to transportation system planning, design and operations. See a more detailed article on
Simulation in Transportation. • modeling car crashes to test safety mechanisms in new vehicle models. •
crop-soil systems in agriculture, via dedicated software frameworks (e.g.
BioMA, OMS3, APSIM) The reliability and the trust people put in computer simulations depends on the
validity of the simulation
model, therefore
verification and validation are of crucial importance in the development of computer simulations. Another important aspect of computer simulations is that of reproducibility of the results, meaning that a simulation model should not provide a different answer for each execution. Although this might seem obvious, this is a special point of attention in
stochastic simulations, where random numbers should actually be semi-random numbers. An exception to reproducibility are human-in-the-loop simulations such as flight simulations and
computer games. Here a human is part of the simulation and thus influences the outcome in a way that is hard, if not impossible, to reproduce exactly.
Vehicle manufacturers make use of computer simulation to test safety features in new designs. By building a copy of the car in a physics simulation environment, they can save the hundreds of thousands of dollars that would otherwise be required to build and test a unique prototype. Engineers can step through the simulation milliseconds at a time to determine the exact stresses being put upon each section of the prototype.
Computer graphics can be used to display the results of a computer simulation.
Animations can be used to experience a simulation in real-time, e.g., in
training simulations. In some cases animations may also be useful in faster than real-time or even slower than real-time modes. For example, faster than real-time animations can be useful in visualizing the buildup of queues in the simulation of humans evacuating a building. Furthermore, simulation results are often aggregated into static images using various ways of
scientific visualization. In debugging, simulating a program execution under test (rather than executing natively) can detect far more errors than the hardware itself can detect and, at the same time, log useful debugging information such as instruction trace, memory alterations and instruction counts. This technique can also detect
buffer overflow and similar "hard to detect" errors as well as produce performance information and
tuning data. == Pitfalls ==