You are previewing Building Software for Simulation: Theory and Algorithms, with Applications in C++.
O'Reilly logo
Building Software for Simulation: Theory and Algorithms, with Applications in C++

Book Description

A unique guide to the design and implementation of simulation software

This book offers a concise introduction to the art of building simulation software, collecting the most important concepts and algorithms in one place. Written for both individuals new to the field of modeling and simulation as well as experienced practitioners, this guide explains the design and implementation of simulation software used in the engineering of large systems while presenting the relevant mathematical elements, concept discussions, and code development.

The book approaches the topic from the perspective of Zeigler's theory of modeling and simulation, introducing the theory's fundamental concepts and showing how to apply them to engineering problems. Readers will learn five necessary skills for building simulations of complicated systems:

  • Working with fundamental abstractions for simulating dynamic systems

  • Developing basic simulation algorithms for continuous and discrete event models

  • Combining continuous and discrete event simulations into a coherent whole

  • Applying strategies for testing a simulation

  • Understanding the theoretical foundations of the modeling constructs and simulation algorithms

  • The central chapters of the book introduce, explain, and demonstrate the elements of the theory that are most important for building simulation tools. They are bracketed by applications to robotics, control and communications, and electric power systems; these comprehensive examples clearly illustrate how the concepts and algorithms are put to use. Readers will explore the design of object-oriented simulation programs, simulation using multi-core processors, and the integration of simulators into larger software systems.

    The focus on software makes this book particularly useful for computer science and computer engineering courses in simulation that focus on building simulators. It is indispensable reading for undergraduate and graduate students studying modeling and simulation, as well as for practicing scientists and engineers involved in the development of simulation tools.

    Table of Contents

    1. Cover
    2. Half Title page
    3. Title page
    4. Copyright page
    5. Preface
    6. Chapter 1: Introduction
      1. 1.1 Elements of a Software Architecture
      2. 1.2 Systems Concepts as an Architectural Foundation
      3. 1.3 Summary
      4. 1.4 Organization of the Book
    7. Chapter 2: First Example: Simulating A Robotic Tank
      1. 2.1 Functional Modeling
      2. 2.2 A Robotic Tank
      3. 2.3 Design of the Tank Simulator
      4. 2.4 Experiments
      5. 2.5 Summary
    8. Chapter 3: Discrete-Time Systems
      1. 3.1 Atomic Models
      2. 3.2 Network Models
      3. 3.3 A Simulator for Discrete-Time Systems
      4. 3.4 Mealy/Moore-Type Systems
      5. 3.5 Cellular Automata
      6. 3.6 Summary
    9. Chapter 4: Discrete-Event Systems
      1. 4.1 Atomic Models
      2. 4.2 Network Models
      3. 4.3 A Simulator for Discrete-Event Systems
      4. 4.4 The Computer in the Tank
      5. 4.5 Cellular Automata Revisited
      6. 4.6 Summary
    10. Chapter 5: Hybrid systems
      1. 5.1 An Elementary Hybrid System
      2. 5.2 Networks of Continuous Systems
      3. 5.3 Hybrid Models as Discrete-Event Systems
      4. 5.4 Numerical Simulation of Hybrid Systems
      5. 5.5 A Simulator for Hybrid Systems
      6. 5.6 Interactive Simulation of the Robotic Tank
      7. 5.7 Approximating Continuous Interaction Between Hybrid Models
      8. 5.8 A Final Comment on Cellular Automata
      9. 5.9 Summary
    11. Chapter 6: Applications
      1. 6.1 Control Through a Packet-Switched Network
      2. 6.2 Frequency Regulation in an Electrical Power System
      3. 6.3 Summary
    12. Chapter 7: The Future
      1. 7.1 Simulation Programming Languages
      2. 7.2 Parallel Computing and Discrete-Event Simulation
      3. 7.3 The Many Forms of Discrete Systems and their Simulators
      4. 7.4 Other Facets of Modeling and Simulation
    13. Appendix A: Design and Test of Simulations
      1. A.1 Decomposing A Model
      2. A.2 Input and Output Objects
      3. A.3 Reducing Execution Time
    14. Appendix B: Parallel Discrete-Event Simulation
      1. B.1 A Conservative Algorithm
      2. B.2 Implementing the Algorithm with OpenMP
      3. B.3 Demonstration of Gustafson’s And Amdahl’s Laws
    15. Appendix C: Mathematical Topics
      1. C.1 System Homomorphisms
      2. C.2 Sinusoidal State-Steady Analysis
    16. References
    17. Index