Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

9.1 General Simulation Codes in Reaction Kinetics

WINPP/XPP (WINPP/XPP) is a simulation code that can be used within a Windows or X-Window environment. The code can solve several types of differential equations, including systems of ODEs, DAEs and also some partial differential equations. The text input file should contain the differential equation to be solved and the parameters that control the solution. The program can be used for the numerical solution of general differential equations without user programming, but does not provide special support for the simulation of chemical kinetic systems. Therefore, the user must form the rate equations from the chemical reaction steps before use. However, WINPP/XPP is popular among biochemical modellers (Novák et al. 2001; Sedaghat et al. 2002; Fall et al. 2005; Brauer and Castillo-Chavez 2011).

Based on equations (2.5) and (2.6), it is easy to develop a code that generates the kinetic system of differential equations on the basis of the chemical reaction steps and the rate parameters. Starting from the initial concentrations and using a stiff ODE solver, the program calculates the concentration–time curves and provides the results in the form of tables and graphs. Such a simulation code was developed at the National Institute of Science and Technology (NIST), called ACUCHEM , (Braun et al. 1988; ACUCHEM). Other similar simulation codes are Tenua (Tenua) and program DIFF of the KINAL package (Turányi 1990; KINAL).

The computer code KPP (Damian et al. 2002; Sandu et al. 2003; Daescu et al. 2003; KPP) is also a simulation program that is specific to chemical kinetics problems and has been primarily used within the atmospheric chemistry community. The code produces the kinetic system of differential equations from the reaction mechanism by assuming mass action kinetics. The ODEs as well as the system Jacobian can then be exported in various formats including Fortran77, Fortran90, C or Matlab. KPP also provides a range of methods for the effective numerical solution of stiff ODEs including the implementation of sparse matrix routines. It includes a library containing commonly used atmospheric chemical reaction mechanisms as well as the facility for users to add to this library. It is also straightforward to expand the capabilities of the program with new reaction mechanisms and new numerical methods. The application of KPP to various problems in atmospheric chemistry was discussed in Damian et al. (2002), Sandu et al. (2003) and Daescu et al. (2003).

Reaction kinetics simulation codes usually include subroutines for the solution of stiff systems of kinetic differential equations and the related ODEs for the calculation of local sensitivity coefficients. However, the application of the QSSA frequently results in coupled stiff algebraic–differential equation systems and the solution of these is a special numerical problem. In libraries of numerical methods, Fortran and C++ subroutines are available for the solution of coupled stiff algebraic–differential equation systems [see e.g. NAG Fortran Library D02NGF, (NAG 2014)] and the package DASSL was mentioned as a commonly used package in Sect. 7.8.3 (Maly and Petzold 1996). Recently, Matlab has become a widely used programming language within scientific and engineering computing, and therefore, such routines have also been made freely available in the SUNDIALS Matlab program package (SUNDIALS). SUNDIALS is an abbreviation of “SUite of Nonlinear and DIfferential/ALgebraic equation Solvers”. It allows the application of computer codes in Matlab that have previously been widely used within the Fortran environment. Such codes include CVODES (for the solution of stiff ODE systems and sensitivity analysis), IDAS (solution of initial value problems for DAE systems and sensitivity analysis) and KINSOL (solution of nonlinear algebraic systems).

Reaction kinetic models can be simulated not only by solving the kinetic system of differential equations but also via simulating the equivalent stochastic models. Computer codes are available that solve the stochastic kinetic equations. One of these is the Chemical Kinetics Simulator (CKS) program that was developed at IBM’s Almaden Research Centre. It provides a rapid, interactive method for the accurate simulation of chemical reactions. CKS is a good tool for teaching the principles of stochastic reaction kinetics to students and trainees.

9.2 Simulation of Gas Kinetics Systems

The computer codes described above are able to simulate spatially homogeneous reaction kinetics systems, which are either characterised by spatially and temporally constant rate coefficients or utilise user-defined functions for the rate parameters (e.g. in the case of KPP). For the simulation of high-temperature gas kinetic systems, such as combustion, pyrolytic and other chemical engineering problems, the rate coefficients may change substantially as a function of temperature and pressure and maybe also as a function of gas composition. Typically, the temperature and pressure is not constant during such simulations due to heat release, and their change has to be calculated during the course of the reaction. Several computer codes are available for such types of simulations.

The CHEMKIN program package has historically played (and still plays) a central role in the simulation of high-temperature gas kinetics systems . CHEMKIN was first developed by a group from the Sandia National Laboratory for internal research usage in 1975. Based on experience obtained from using the first version, the code was entirely rewritten in 1985, with the new version called CHEMKIN-II (Kee et al. 1989). In the early 1990s, this program package was distributed freely and was used by a large number of combustion researchers around the world. The centre of the CHEMKIN-II program package is a Fortran subroutine library that facilitates incorporating complex chemical kinetics into simulations of reacting flow under various modelling scenarios. Based on this subroutine library, the CHEMKIN-II package contains a series of simulation codes including SENKIN (spatially homogeneous simulations and local sensitivity analysis), PSR (perfectly stirred reactor simulations), PREMIX (stationary, 1D premixed flames, both freely propagating and burner stabilised), OPPDIFF (opposed-flow diffusion flames), SHOCK (shock tubes) and EQUIL (thermodynamic equilibrium calculations). As Fig. 9.1 shows, these basic CHEMKIN-II simulation codes cover the conditions of most of the usual laboratory combustion experiments. The CHEMKIN-II package includes thermodynamics and transport coefficient databases. The great advantage of the CHEMKIN-II package was that the source code was freely available and it accepted any general reaction mechanism based on a given format. The user inputs consisted of a reaction mechanism and temperature- and pressure-dependent rate coefficients without the need to develop the resulting rate equations which was performed internally. It was used by thousands of people all over the world, and therefore it was checked many times and any errors found were corrected in the code. The list of errors found is documented in the beginning of each simulation code.

Fig. 9.1
figure 1

The relation between the measured quantity, the experimental setup, the modelling approach and the corresponding CHEMKIN-II simulation code. Adapted from Olm et al. (2014) with permission from Elsevier

In 1995, the Sandia National Laboratory transferred the rights of CHEMKIN to a company called Reaction Design (ReactionDesign). This company started to further develop CHEMKIN as a commercial code, and as a result the source codes of newer versions are no longer available. The first commercial version, CHEMKIN 3, was only a graphical interface to CHEMKIN-II. CHEMKIN 4 represented significant developments, including new reactor types and the possibility of interconnecting these reactors. The recent CHEMKIN-PRO version offers further possibilities such as the application of significantly more robust numerical methods and the possibility for global uncertainty analysis and reaction flux analysis. For applications in combustion, it also includes a model fuel library and a plug-in chemistry solver that can be linked to other commercial computational software packages, such as ANSYS’ FLUENT CFD software. This allows the chemistry submodel to be used within reactive flow models within a computational fluid dynamics (CFD) environment (Reaction-Design 2014).

CHEMKIN-II was very important in combustion simulations because it was widely used and reliable. Many people still use it although it can no longer be legally distributed. When CHEMKIN became a commercial package, several similar free codes were elaborated. However, the reaction mechanism encoding format of CHEMKIN-II became a de facto standard and is widely used for exchanging reaction mechanisms between different research groups. Almost all recent gas kinetics simulation programs are able to read this format.

The PrIMe initiative (Frenklach 2007) suggested a different type of mechanism definition (PrIMe). The PrIMe Chemical Model does not contain any data in itself but includes all information necessary to assemble a chemical model. It includes species-related identifiers to the thermodynamic and optionally transport data records and a list of chemical reactions to be taken into account, with rate coefficient record identifiers. Whilst a CHEMKIN mechanism is a stand-alone data file which can be interpreted by the user as a text file, the PrIMe Chemical Model is assembled at the point of simulation from the data stored in the PrIMe database, which might be a reason whilst this format is not yet widely used.

A newly available simulation code for gas-phase kinetics is Kintecus (2014), which is a commercial code, but with a free licence available for academic research or education. Kintecus primarily communicates with the user through an Excel table, although Excel is not required to run Kintecus, since it can be run from a command line. Kintecus is a chemical modelling software package for the simulation of combustion, nuclear, biological, enzyme, atmospheric and many other chemical kinetic and equilibrium processes. It uses CHEMKIN-type mechanism formulations and thermodynamic databases (e.g. based on the NASA polynomials discussed in Sect. 2.2.3). The spatially homogeneous systems are similar to those handled by SENKIN, with options including isothermal, non-isothermal, adiabatic constant volume, constant pressure, programmed volume, programmed temperature and programmed species concentration systems, with or without heterogeneous chemistry. Other available options of Kintecus are similar to the EQUILIB code of CHEMKIN-II (thermodynamic equilibrium calculations; performing stability plots of systems over ranges of temperatures, pressures, volumes and concentrations of other species) and the PSR code (simulation of continuous stirred tank reactors with multiple inlets and outlets). Kintecus is also able to perform optimisations of rate coefficients, initial concentrations, Lindemann, Troe and SRI parameters (see Sect. 2.2.3), enhanced third-body factors, initial temperature, residence time and activation energy on the user’s experimental dataset(s), which makes it of great value for the analysis of kinetics experiments. Another option of Kintecus is performing uncertainty analysis based on Monte Carlo sampling (see Sect. 5.5.2) by assuming Gaussian, Poisson or uniform distributions for the parameters. The Atropos software is an addition to Kintecus for mechanism reduction. It calculates normalised local sensitivity coefficients and then carries out principal component analysis (PCA). The simulation results for the original and the reduced models can then be plotted together in order to visualise the success of the reduction strategy.

Although Kintecus is free for academic research, its source code is not made available. Therefore, another useful free alternative to CHEMKIN–II called Cantera (Cantera) is worthy of consideration since its source code is also made available. Cantera is an open-source code and a community is participating in its further development (Cantera). Cantera is a suite of object-oriented software tools for problems involving chemical kinetics, thermodynamics and/or transport processes. The fields of application of Cantera include combustion (flames structures, detonations), electrochemical energy conversion and storage (fuel cells, batteries), electrode reactions, various types of plasmas and chemical vapour deposition. The reactor types include spatially homogeneous systems, internal combustion engine models, continuously stirred tank reactor networks, one-dimensional flows, and burner-stabilised and adiabatic propagating flat flames. Cantera can also interpret CHEMKIN-II format data files.

The code FlameMaster (FlameMaster) is another alternative to the CHEMKIN simulation codes. It is a free computer program for 0D combustion and 1D laminar flame calculations with local sensitivity analysis. FlameMaster can carry out homogeneous reactor and perfectly stirred reactor calculations, and is able to simulate freely propagating premixed flames and steady counterflow diffusion flames with potential flow or plug flow boundary conditions.

Computer code laminarSMOKE is another freely available program for the numerical modelling of laminar reacting flows with CHEMKIN format detailed kinetic mechanisms (Cuoci et al. 2013a, b; laminarSMOKE Web site 2014). The code was built on the OpenFOAM framework and it was extended to manage not only homogeneous reactions but also heterogeneous reactions on catalytic surfaces.

The LOGEsoft suite of codes has also been developed by Lund Combustion Engineering and is of particular use to researchers in the area of fuel development and combustion engineering (LOGE 2014). It contains a large number of features including stochastic models of internal combustion engines, tabulated chemistry libraries, surface chemistry modules and a range of other features of use in modelling practical combustion devices.

In Sect. 3.1 we discussed the possible merits of data collaboration for the development of consistent chemical mechanisms for future applications. Since mechanisms are becoming ever more complex, the sharing of data and in particular the evaluation of data (e.g. thermochemical and thermodynamic parameters) become a difficult task. Currently different mechanisms intended to describe similar kinetic processes may contain inconsistencies which could be reduced by fostering more effective collaborations. Such collaboration of academic researchers from all over the world could be enhanced by using the principles of informatics implemented through the Web. An early example designed to promote collaboration between the US National Laboratories and some US universities was explored in the “Collaboratory for Multi-Scale Chemical Sciences” (CMCS) project. Unfortunately the tools developed during this project are only of limited availability to external research groups and seem to be not currently available on the web(Schuchardt et al. 2005, 2007).

On the other hand, the PrIMe collaboration (Frenklach 2007) is open to the whole research community, and following user registration, combustion measurement data and related software tools can be downloaded from its website (PrIMe). The primary objective of PrIMe is to promote data collaboration among researchers (Feeley et al. 2006) . PrIMe (Process Informatics Model) is a new approach for developing predictive models of chemical reaction systems that are based on the scientific collaboratory paradigm. The primary goals of PrIMe are collecting and storing data, validating the data and quantifying uncertainties, and assembling the data into predictive models with quantified uncertainties to meet specific user requirements. The principal components of PrIMe include a data depository, which is a repository of data provided by the community; a data library for storage of evaluated data; and a set of computer-based tools to process data and to assemble data into predictive models. One of the principles of PrIMe is that all submitted data, tools and models remain in the public domain.

9.3 Analysis of Reaction Mechanisms

Many of the methods described in this book are immediately applicable using the KINALC (KINALC) program. KINALC uses the data and output files of the CHEMKIN package and offers 17 different methods for the analysis of reaction mechanisms. KINALC was programmed in the style of CHEMKIN-II, i.e. the various methods are activated using the keywords of the control data file and further keywords parameterise these methods. When using KINALC, the simulations have to be carried out using a CHEMKIN simulation code (CHEMKIN-II, CHEMKIN 3 or 4), which calculates the concentrations and sensitivity functions. The KINALC program contains methods for the identification of redundant species on the basis of the investigation of the Jacobian (CONNECT, see Sect. 7.2), the PCAS and PCAF methods for the identification of redundant reactions (PCAS and PCAF, see Sect. 7.3), local uncertainty analysis (UNC_ANAL, see Sect. 5.6.3), calculation of the local error of the QSSA (QSSAS and QSSAG, see Sect. 7.8.3) and assessment of the dimension of the slow manifold based on the eigenvalue–eigenvector decomposition of the Jacobian (ILDM, see Sect. 6.5). The words with uppercase letters in the parentheses show the corresponding keywords of the KINALC program. KINALC contains other methods for the analysis of reaction mechanisms such as making ordered lists of local sensitivities (SENS and HSENS, see Sect. 5.2), element flux analysis (ATOMFLOW, see Sect. 4.1), rate-of-production analysis presented in detailed and abbreviated forms (ROPAD and ROPAB), the calculation of species lifetimes (LIFETIME, see Sect. 6.2) and CSP analysis (CSP, see Sect. 6.4).

One of the drawbacks of the KINALC program is that the results are given in text files and it is not able to automatically create plots. The Java code FluxViewer (FluxViewer) is an extension to KINALC and is an interactive code for the visual presentation of element fluxes. For example, Fig. 4.1 was created with FluxViewer. The names of the species appear on small rectangles and the element fluxes are represented as arrows interconnecting these rectangles. The widths of the arrows are proportional to the logarithm of the element fluxes. Using the “drag-and-drop” method, the rectangles can be moved around on the screen together with their interconnecting arrows. In this way the element flux figures can be better organised and a representation of the chemical essence of processes can be achieved. Another feature of FluxViewer is that a movie depicting the changes of element fluxes can be created for the inspection of how the fluxes change in time (in spatially homogeneous, temporally changing systems) or along the spatial dimension (in stationary, flat flames).

The figure produced by FluxViewer can be compared to the reaction path diagram obtained by the Reaction Path Analyzer of the CHEMKIN-PRO package (CHEMKIN/CHEMKIN-PRO Visualization manual, CK-VIS-10101-0810-UG-1 2010). The reaction path diagram displays species as well as reaction pathways connecting the species. The relative sizing of the connecting pathways is related to the relative contribution of that pathway to the net rate of production of the species. The thinnest and thickest lines correspond to the minimum and maximum rates of production, respectively, whilst the intermediate line thicknesses are determined on a log scale.

Many CHEMKIN format mechanism files can be downloaded from the Internet for a large number of gas kinetics reactions. Unfortunately the format is sometimes not exactly what is needed and the systematic modification of the format is a time-consuming process. It can be automated using the program MECHMOD (MECHMOD). MECHMOD can change the units of the rate parameters (which depend on the order of the reaction), may convert reversible reaction steps to pairs of irreversible reaction steps and can delete species from the mechanism and modify the enthalpies of formation of the species in the thermodynamic data.

The SEM program package (Nagy and Turányi 2009; Nagy 2009) is able to detect effectively the redundant species and reactions within a reaction mechanism using the principle of simulation error minimisation (see Sect. 7.2.4). Programs SEM-CM and SEM-PCAF read CHEMKIN format mechanism files and carry out an automatic reduction.

CARM is a software package developed by Prof. J.-Y. Chen of UC, Berkeley, that automatically creates reduced chemical kinetic mechanisms starting with a detailed mechanism and a set of input problems representing the conditions under which the mechanism is to be used (Reaction-Engineering-International 2014). CARM is an acronym of “Computer Assisted Reduction Method”. The output of CARM is a Fortran subroutine that gives the chemical source terms for each species in the reduced mechanism as a function of the temperature, pressure and species mass fractions. This subroutine can be used in a CFD code or in simpler applications such as those associated with the CHEMKIN package. Application of CARM was reported by Sung et al. (2001).

Program rkmGen was developed by Gokulakrishnan et al. (2013). This program can be coupled with Cantera and used for fitting the parameters of a several-step reduced scheme to target data generated from either a detailed model or by experiment. Code rkmGen employs the simulated annealing stochastic optimisation algorithm (Kirkpatrick 1983; Ingber and Rosen 1992).

Fischer and Riedel (2013) recommend the program Mechacut. This program identifies redundant reactions and species within a mechanism for the conditions of a given simulation. Reaction groups are formed from reaction steps related to species having small maximum mole fractions. These groups are eliminated from the mechanism, and the resulting reduced mechanism is accepted if concentration profiles of the important species are predicted within predefined thresholds of those from the original mechanism.

Recently Nagy et al. (2012) elaborated a Mathematica package called reaction kinetics. A strong feature of the code is that all built-in functions of Wolfram Mathematica (Wolfram) can be applied for the analysis of kinetic mechanisms. This code is able to carry out mechanism analyses that are not within the scope of other programs. The features include deterministic and stochastic model simulations, parameter scannings, testing the detailed balance of the mechanism, symbolic manipulations of the mechanism and plotting a Vol’pert graph (Vol’pert 1972) (which is also called “Petri net”).

9.4 Investigation of Biological Reaction Kinetic Systems

Biological reaction systems, such as metabolic, gene regulation, molecular signal transduction and cell cycle reaction networks are usually simulated as constant temperature, spatially homogeneous chemical kinetic reaction systems. This is a much simpler task than, e.g., a flame or an engine simulation, and this is the reason why many researchers have historically performed calculations in these fields using their own codes. One disadvantage of this is that the data files and resulting outputs of these computer programs are not compatible with each other.

The SBML (Systems Biology Markup Language) data format was created in 2000 in order to promote exchange between different systems biology models (SBML). The SBML data format now plays a similar role in systems biology modelling, as the CHEMKIN format has done in gas kinetics. The SBML format is continuously being developed with the latest version being the “level 3” format. These formats are downward compatible, i.e. the newer SBML standards are able to define more complicated models, but the simulation codes can also handle earlier SBML versions. Figure 9.2 shows that the total number of SBML-compatible software packages is increasing each year and the current (as of June 2014) number is 263. The list of these simulation codes is available from the website of the SBML portal (SBML). Most of these codes are commercial but also include several very powerful, freely available simulation and model analysis codes.

Fig. 9.2
figure 2

The total number of SBML-compatible software packages available in each year since 2001 (source: http://sbml.org/SBML_Software_Guide)

The COPASI program (COmplex PAthway SImulator) is an open-source software application for creating and solving mathematical models of biological processes such as metabolic networks, cell-signalling pathways, regulatory networks, infectious diseases, etc. COPASI (Hoops et al. 2006; COPASI) is a successor of the code Gepasi that was developed up until 2002 (GEPASI; Mendes 1993, 1997; Mendes and Kell 1998). COPASI can be run on several operating systems (Windows, Linux, Mac OS X, Solaris). It has a widely applicable graphical model builder module and the model created can be saved in SBML format. The system of differential equations of the model can also be saved in the form of a C source code and therefore linked with external numerical packages. COPASI is able to handle the model as a deterministic one (based on the numerical solution of the corresponding differential equations) or as a stochastic one. The chemical reactions may occur in a single homogeneous space or in series of interconnected homogeneous spaces. COPASI offers a series of methods for the analysis of models, including stability analysis of stationary systems, local sensitivity analysis, stoichiometric analysis and the investigation of timescale separation. The program also offers parameter scans and the estimation of model parameters on the basis of experimental data, applying any user-defined objective function. The experimental data may originate from several different sources. The calculated results can be presented as tables, figures or histograms.

Pre-compiled programs like COPASI facilitate easy use, but many modellers may wish to check and/or modify the source code of the simulation program. This is one of the reasons why several Matlab-based programs are distributed for the simulation and analysis of mathematical models. SBML- SAT is an SBML-based sensitivity analysis tool (Zi et al. 2008; SBML-SAT) available in Matlab format. This tool was designed to implement a variety of simulation and analysis techniques for ODE-based biological models including biophysical models, signalling pathways, gene regulation networks and metabolic pathways. SBML-SAT offers not only simulations but steady-state analysis, robustness analysis, and local and global sensitivity analyses. The latter includes multiparametric sensitivity analysis, partial rank correlation coefficient analysis, Sobol's method and the calculation of the weighted average of local sensitivities (see Sect. 5.5). Zi et al. also developed an SBML-based parameter estimation tool in scalar code (SBML-PET) and parallelised code (SBML-PET-MPI) versions (Zi and Klipp 2006; Zi 2011).

In a rather confusing way, three Matlab toolboxes with similar names are offered for SBML-based simulations. The “official” SBML-based toolbox, distributed as an option of Matlab, is called “SimBiology”, whilst the free, academic versions are called “Systems Biology Toolbox for Matlab” and “SBMLToolbox”. The “SimBiology” (SimBiology) toolbox provides a graphical environment and programmatic tools to model, simulate and analyse dynamical systems, focusing on pharmacokinetic/pharmacodynamic (PK/PD) and systems biology applications. It provides a block diagram editor for building models. SimBiology uses ODE and stochastic solvers to simulate the time-dependent profile of drug exposure, drug efficiency, and enzyme and metabolite levels. It is also possible to investigate system dynamics and to carry out parameter sweeps, sensitivity analysis and parameter estimation. Parameter sweep (also called parameter scan) means that the value of a parameter is changed in stages by sweeping the parameter value through a user-defined range, whilst the values of all other parameters are kept constant. A new simulation is carried out for each parameter set and thus allows the systematic exploration of the effect of changing a single parameter on the simulation results.

The “Systems Biology Toolbox for Matlab” (SBtoolbox; Schmidt and Jirstrand 2006) (the newest version is called “Systems Biology Toolbox 2” or SBTOOLBOX2) offers systems biologists an open and user extensible environment. This toolbox also features a wide variety of specialised simulation and analysis tools, like SBML import and export, deterministic and stochastic simulations, visualisations, steady-state and stability analysis, metabolic control analysis, stoichiometric analysis, local and global sensitivity analyses, determination of moiety conservations, bifurcation analysis, and global and local optimisation. The SBPD is an extension package for the Systems Biology Toolbox 2 (sbtoolbox2), which allows the combination of models, experiments and measurement data to projects, automatic generation of C-code simulation models, multiple experiment and multiple measurement parameter estimation, parameter tuning, analysis of residuals and model reduction.

The other freely distributed program, called “SBMLToolbox” (Keating et al. 2006; SBMLToolbox), is not intended to be a complete Systems Biology Toolbox for Matlab, but a platform for getting SBML in and out of Matlab and serves as a starting point from which users can develop their own functionality.

The PottersWheel (Maiwald and Timmer 2008; PottersWheel) is another Matlab toolbox that is free for academic research. PottersWheel imports and exports SBML models, but it is applicable also to any ODE-based modelling. The most useful feature of this code is that it fits the parameters of a model to several datasets (multiple experiments) at once whilst determining parameter identifiability and confidence intervals.

The Systems Biology Workbench (SBW) (SBW; Bergmann and Sauro 2006) is a software framework that allows heterogeneous applications, written in different programming languages and running on different platforms to communicate via a simple network protocol.

9.5 Global Uncertainty Analysis

Several freely downloadable programs can be applied for global uncertainty and sensitivity analyses (see Sect. 5.5). A Matlab-based toolbox for the application of HDMR-based global sensitivity analysis is available using the GUI- HDMR program (GUI-HDMR). As its name suggests, this is a graphical user interface (GUI) that allows the application of random sampling HDMR methods (see Sect. 5.5.3) for the calculation of up to second-order global sensitivity indices and component functions based on user supplied sets of input/output data. The component functions are approximated by up to tenth-order orthonormal polynomials. The resulting first- and second-order sensitivity indices can be used for the interpretation of the relationships between the inputs and outputs of any numerical model and for the assessment of the importance and interaction of parameters. The component functions can be visualised and used to explore any nonlinearities in the responses to parameter changes. The HDMR method can also be used for the generation of a metamodel that approximates the simulation results as a function of parameters. The methodology adopted is described in Ziehn and Tomlin (2009).

More recently a similar package called SobolHDMR has been developed by Kucherenko (2013) and is available on request from the author. In common with the GUI- HDMR program, it can develop metamodels based on quasi-random inputs but also includes a metamodelling method based on the use of radial basis functions and derivative-based sensitivity methods. Explore HD is a third HDMR-based software package developed by Aerodyne Research based on the methods of the Princeton Group that were discussed in Sect. 5.5.3 (Aerodyne-Research 2014). This code is available at a low cost to research groups and offers the ability to handle not only output from computational simulations but also experimental data. It is also able to fit up to third-order metamodels (Li et al. 2010).

DAKOTA (DAKOTA) is a GNU GPL-licenced program package developed at Sandia National Laboratories. DAKOTA is the abbreviation of its longer name “Design Analysis Kit for Optimization and Terascale Applications”. A calculation is called “terascale” if 1012 operations per second (teraflop) are carried out on 1012 bytes (terabyte) data. DAKOTA allows the optimisation of models using gradient and gradient-free methods, and is able to carry out sensitivity and uncertainty analyses using several methods including the polynomial chaos method described in Sect. 5.5.2.

SimLab is another comprehensive program package (Simlab 2011) for global uncertainty analysis. SimLab has been developed at the EC Joint Research Centre (EC-JRC) in Ispra, Italy. The predecessor of SimLab was a Fortran code called PREP- SPOP , which was developed from 1985 onwards. This program first (in the PREP phase) generates parameter sets according to various parameter probability density functions. The user then has to carry out model simulations using these parameter sets and the results of the simulations are processed (SPOP) in order to provide sensitivity measures. Based on the earlier PREP-SPOP code, the development of SimLab started in 1999. The first versions of SimLab (up until version 2.2, 2003) are executable Windows application codes. Similarly to PREP-SPOP, the first step is the generation of parameter sets. As a second step, for simple algebraic models the program evaluates the simulation results, whilst for more complex models the user is allowed to generate the simulation results using an external code. The third step is the processing of the simulation results and the visualisation of the outcome of uncertainty/sensitivity analyses. SimLab 2.2 is an eye-catching, easy-to-use code that is excellent for educational purposes. On the other hand, being a Windows application, it limits the possibilities for an advanced user.

The newer versions of SimLab (from version 3.0, 2004) are program libraries that can be called from Fortran, Python, C++ or Matlab environments. This arrangement may not be as intuitive for a beginner as the earlier versions were, but allows more freedom for advanced users. These new versions include a wider variety of methods for uncertainty analysis. For example, the parameter sets can be generated randomly, using Latin hypercube sampling, or according to the FAST, Morris and Sobol' methods (see Sect. 5.5). Also, the processing of the simulation results in order to provide sensitivities includes a series of approaches, including the FAST, Morris and Sobol' methods.

SaSAT (Hoare et al. 2008; SaSAT) is a Matlab code for sensitivity and uncertainty analysis. Similarly to the previous codes, SaSAT can generate parameter sets that correspond to the probability density functions of the parameters. It can generate random, complete factorial and Latin hypercube samples. Simulations are then carried out using these samples, and SaSAT calculates the sensitivity indices or the Pearson, Spearman or partial rank correlation coefficients. The program is able to approximate the simulation results with a polynomial as a function of the input parameters (i.e. a metamodel generation). The user is assisted with a graphical program interface and Excel compatibility, and is able to visualise input–output relationships using a variety of methods including scatter plots and response surfaces.