Simulation software. Simulation software is based on the process of modeling a real phenomenon with a set of mathematical formulas. It is, essentially, a program that allows the user to observe an operation through simulation without actually performing that operation. Simulation software is used widely to design equipment so that the final product will be as close to design specs as possible without expensive in process modification. Simulation software with real-time response is often used in gaming, but it also has important industrial applications. When the penalty for improper operation is costly, such as airplane pilots, nuclear power plant operators, or chemical plant operators, a mock up of the actual control panel is connected to a real-time simulation of the physical response, giving valuable training experience without fear of a disastrous outcome.

Advanced computer programs can simulate power system behavior, weather conditions, electronic circuits, chemical reactions, mechatronics, heat pumps, feedback control systems, atomic reactions, light, daylight even complex biological processes. In theory, any phenomena that can be reduced to mathematical data and equations can be simulated on a computer. Simulation can be difficult because most natural phenomena are subject to an almost infinite number of influences or unknown source of cause, for example, rainfall. One of the tricks to developing useful simulations is to determine which are the most important factors that affect the goals of the simulation.

In addition to imitating processes to see how they behave under different conditions, simulations are also used to test new theories. After creating a theory of causal relationships, the theorist can codify the relationships in the form of a computer program. If the program then behaves in the same way as the real process, there is a good chance that the proposed relationships are correct.

General simulation
General simulation packages fall into two categories: discrete event and continuous simulation. Discrete event simulations are used to model statistical events such as customers arriving in queues at a bank. By properly correlating arrival probabilities with observed behavior, a model can determine optimal queue count to keep queue wait times at a specified level. Continuous simulators are used to model a wide variety of physical phenomena like ballistic trajectories, human respiration, electric motor response, radio frequency data communication, steam turbine power generation etc. Simulations are used in initial system design to optimize component selection and controller gains, as well as in Model Based Design systems to generate embedded control code. Real-time operation of continuous simulation is used for operator training and off-line controller tuning.

There are four main renowned simulation approaches: Event-Scheduling method, Activity Scanning, Process- Interaction, and Three-Phase approach, in comparison, the following can be noted:

The Event-Scheduling method is simpler and only has two phases so there is no Cs and Bs, this allow the program to run faster since there are no scanning for the conditional events. All these advantages also tells us something about the disadvantages of the method since there are only two phase then all events are mixed (no Bs and Cs) then the method is not parsimony, which means it is very hard to enhance (Pidd, 1998).  The Activity Scanning approach is also simpler than the Three-Phase method since it has no calendar, and it support the parsimonious modeling. However this approach is much slower than Three-Phase since it treats all activities are treated as conditional. On the other hand, the executive has two phases. Usually this approach is confused with the Three-Phase method (Pidd, 1998).  The Process- Interaction “share two common advantages first; they avoid programs that are slow to run. Second, they avoid the need to think through all possible logical consequences of an event” (Pidd, 1998). Yet, as (Pidd, 1998) claims this approach suffers from DEADLOCK problem, but this approach is very attractive for novice modelers. Although, (Schriber et al, 2003). Says “process interaction was understood only by an elite group of individuals and was beyond the reach of ordinary programmers”. In fact (Schriber et al, 2003).adds “. Multi- threaded applications were talked about in computer science classes, but rarely used in the broader community”. Which indicates that the implementation of Process-Interaction was very difficult to implement. The obvious contradiction, in the previous quote is due to the mix up between the Process Interaction approach and the Transaction-flow approach. To see the complete idea of the origins of Transaction-Flow best stated by (Schriber et al, 2003): This was the primordial soup out of which the Gordon Simulator arose. Gordon’s transaction flow world-view was a cleverly disguised form of process interaction that put the process interaction approach within the grasp of ordinary users. . Gordon did one of the great packaging jobs of all time. He devised a set of building blocks that could be put together to build a flowchart that graphically depicted the operation of a system. Under this modeling paradigm, the flow of elements through a system was readily visible, because that was the focus of the whole approach.  The Three-Phase approach allows to “simulate  parallelism, whilst avoiding deadlock” (Pidd and Cassel, 1998). Yet, Three-Phase has to scan through the schedule for bound activities, and then scans through all conditional activities which slow it down. Yet many forgo the time spent in return for solving the deadlock problem. In fact, Three-Phase is used in distributed systems whether talking about operating systems, databases, etc, under different names among them Three-Phase commit see (Tanenbaum and Steen, 2002).

Electronics
Electronics simulation software utilizes mathematical models to replicate the behaviour of an actual electronic device or circuit.  Essentially, it is a computer program that converts a computer into a fully functioning electronics laboratory.  Electronics simulators integrate a schematic editor, SPICE simulator and onscreen waveforms and make “what-if” scenarios easy and instant. By simulating a circuit’s behaviour before actually building it greatly improves efficiency and provides insights into the behavior and stability of electronics circuit designs. Most simulators use a SPICE engine that simulates analog, digital and mixed  circuits for exceptional power and accuracy. They also typically contain extensive model and device libraries.  While these simulators typically have printed circuit board (PCB) export capabilities, they are not essential for design and testing of circuits, which is the primary application of electronic circuit simulation.

While there are strictly analog electronics circuit simulators include both analog and event-driven digital simulation capabilities, and are known as mixed-mode simulators. This means that any simulation may contain components that are analog, event driven (digital or sampled-data), or a combination of both. An entire mixed signal analysis can be driven from one integrated schematic. All the digital models in mixed-mode simulators provide accurate specification of propagation time and rise/fall time delays.

The event driven algorithm provided by mixed-mode simulators is general
purpose and supports non-digital types of data. For example, elements can use real or integer values to simulate DSP functions or sampled data filters. Because the event driven algorithm is faster than the standard SPICE matrix solution simulation time is greatly reduced for circuits that use event driven models in place of analog models.

Mixed-mode simulation is handled on three levels; (a) with primitive digital elements that use timing models and the built-in 12 or 16 state digital logic simulator, (b) with subcircuit models that use the actual transistor topology of the integrated circuit, and finally, (c) with In-line Boolean logic expressions.

Exact representations are used mainly in the analysis of transmission line and signal integrity problems where a close inspection of an IC’s I/O characteristics is needed. Boolean logic expressions are delay-less functions that are used to provide efficient logic signal processing in an analog environment. These two modeling techniques use SPICE to solve a problem while the third method, digital primitives, use mixed mode capability. Each of these methods has its merits and target applications. In fact, many simulations (particularly those which use A/D technology) call for the combination of all three approaches. No one approach alone is sufficient.

Programmable logic controllers
In order to properly understand the operation of a programmable logic controller (PLC), it is necessary to spend considerable time programming, testing, and debugging PLC programs. PLC systems are inherently expensive, and down-time is often very costly. In addition, if a PLC is programmed incorrectly it can result in lost productivity and dangerous conditions.  PLC simulation software is a valuable tool in the understanding and learning of PLCs and to keep this knowledge refreshed and up to date. PLC simulation provides users with the ability to write, edit and debug programs written using a tag-based format.  Many of the most popular PLCs use tags, which are a powerful method of programming PLCs but also more complex.  PLC simulation integrates tag-based ladder logic programs with 3D interactive animations to enhance the user’s learning experience.  These interactive animations include traffic lights, batch processing, and bottling lines.

By using PLC simulation, PLC programmers have the freedom to try all the "what-if" scenarios  changing ladder logic instructions and programs, then re-running the simulation  to see how changes affect the PLC's operation and performance. This type of testing is often not feasible using hardwired operating PLCs that control processes often worth hundreds of thousands – or millions of dollars.

Sheet metal forming
Sheet metal forming simulation software utilizes mathematical models to replicate the behavior of an actual metal sheet manufacturing process.  Essentially, it is a computer program that converts a computer into a fully functioning metal manufacturing prediction unit.  Sheet metal forming simulation prevents metal factories from defects in their production lines and reduces testing and expensive mistakes improving efficiency in the metal forming process.

Metal casting
Metal casting simulation is currently performed by Finite Element Method simulation software designed as a defect-prediction tool for the foundry engineer, in order to correct and/or improve his/her casting process, even before prototype trials are produced. The idea is to use information to analyze and predict results in a simple and effective manner to simulate processes such as:

Gravity sand casting
Gravity  die casting
Gravity tilt pouring
Low pressure die casting

The software would normally have the following specifications:

Graphical interface and mesh tools
Mould filling solver
Solidification and cooling solver: Thermal and thermo-mechanical (Casting shrinkage).

Network protocols
The interaction between the network entities is defined by various communication protocols. Network simulation software simulates behavior of networks on a protocol level. Network Protocol Simulation software can be used to develop test scenarios, understand the network behavior against certain protocol messages, compliance of new protocol stack implementation, Protocol Stack Testing. These simulators are based on telecommunications protocol architecture specifications developed by international standards body such as the ITU-T, IEEE, and so on. The output of protocol simulation software can be detailed packet traces, events logs etc.

See also

 Computer simulation
 List of computer simulation software
 List of discrete event simulation software
 Application Simulation Software
 Electronic circuit simulation
 Full system simulator
 Instruction set simulator
 Logic simulation
 Microarchitecture Simulation
 Network simulation
 Process simulation
 Training Simulation
 Business simulation
 Virtual prototyping

References

 
Electronic design automation
Simulation programming languages