I have specialized in writing and using simulation software for most of my career and I understand the theory, practice, and architecture of both continuous and discrete-event simulations at a deep level. I have written simulations from scratch and built tools to build simulations in an automated, consistent way. I have built simulation software as a sole practitioner and as a member of small and large teams.
The simulations have been used in many applications in a number of different industries on a project and program basis.
- My first formal encounter with simulation was in my first engineering job in the paper industry, where I used a commercial package to perform heat and material balances as part of designing turnkey thermomechanical pulping systems. I also wrote several support utilities in Pascal.
- I really learned the craft when I wrote single phase/single component and multi-phase/multi-component thermo-hydraulic models for full-scope nuclear power plant training simulators. The main code was written in FORTRAN while I wrote a series of utilities and a simulation test bed in Pascal.
- A little after that I wrote thermodynamic and material handling simulations for real-time supervisory control systems for steel reheat furnaces. Some of that software was also used for furnace design and light operations research. During this period I wrote software in Pascal and Delphi, C, C++, and FORTRAN.
- Next I learned how to write discrete-event simulations in a dedicated language called SLX. I used that language to build a tool to simulate medical offices. This included a UI and control wrapper written in C++.
- I traveled to a number of airports around the United States to collect data for an inspection process simulation. The purpose of the system was to determine daily staff requirements for all major airports based on airline flight and passenger data downloaded from the SABRE system.
- During those years I also visited land border ports of entry all over the United States, Canada, and Mexico. I collected data, built and ran port models, and performed analysis and design activities using a series of in-house tools called BorderWizard, CanSim, and SimFronteras. I did the main discovery and requirements management for the latter two products and wrote all of the design, user, and data collection manuals.
- I also worked with a team that built a framework to create grid-based evacuation and ingress control simulations for a number of customers. One version was a lightweight tool that field agents could use to quickly model a site in support of event planning, crowd control, and safety. Another tool was used for mass evacuation planning of sports arenas and stadiums. Another tool was part of an optimization system that routed building occupants around airborne threats. This system involved chemical sensors, atmospheric simulations, evacuation simulations and optimizations, real-time man-in-the-loop situation updates, and outputs that effected mitigating actions by the HVAC system and directional go/no-go lighting that showed the safe routes to take out of the building. I did most of the on-site data collection, system interconnection management and implementation, and design of entity and room characteristics to be modeled, along with screen mockups for the parametric controls.
- At my last company I worked on a team supporting a simulation framework used to investigate the operation, maintenance, logistics, and supply activities associated with operating collections of fixed- and rotary-winged military aircraft. It is used for reliability engineering, risk assessment, support planning, cost savings, and mission planning. The simulation is built on a thirty-year-old code base written in GPSS (and is the largest, most complex system ever written in that language) and wrapped in a UI written in C#. I collected and managed various parts of the input data and modified and build tools to handle the output data and generate reports and statistical characterizations. I had to understand all of the operations inside the model even though I didn't modify the code very much, and was continuously engaged in assessing how the system could be reworked for greater accuracy, completeness, and transparency. I performed studies for five years and continually updated user, technical, and governance documentation. I also prepared presentations and reported findings.
- I worked on a system that calculated staff requirements for a large agency conducting inspections and land, air, and sea ports of entry all over the United States.
The great thing about simulation is that you learn how to judge what needs to be represented, what can be abstracted, and what does not need to be included. You gain an appreciation for the importance of collecting accurate data. You learn how to characterize and parameterize entities and processes.