# Model Development

Our software uses many mathematical models to simulate physical phenomena. These models rely on established laws of physics or on empirical relationships. Often the models are only approximate in nature or have a limited validity range. Validation of these models includes dynamic, static and formal techniques. Dynamic techniques demonstrate the software's behavior in response to selected inputs and conditions. We use prototyping to verify the hardware response to software events and commands. Dynamic and static testing demonstrates compliance with the engineering and functional specifications. Each test case has a predetermined, expected, explicit and measurable output result. As an example, consider the pressure loss through a pipe bend. The total pressure loss across a bend is a function of bend geometry, the empirical relationship used, the volumetric flowrate of the fluid, the constructional material of the bend (roughness of the inside wall), the fluid physical properties of density, viscosity and phase state. Testing just one of these variables, say bend geometry, means comparing calculated results with research papers, textbook examples and hand calculated values for bends of different angles, R/D ratios, circular, annular and rectangular cross sections and establishing that the pressure loss calculation returns expected results in each case. Testing in this way also enables us to define limitations to accuracy which are then used as warnings within the software. Without this detailed validation it is impossible to specify the limits of accuracy, because they are often unavailable from literature sources. Sometimes textbook examples are incorrect and an element of engineering judgment is necessary to be able to identify this.