# Overview¶

In this section, the use and function of a specialized collection of Surrogate Modeling and Analysis nodes will be provided. The nodes are intended to help users in the creation of surrogate models, also known as response surfaces or emulators. Surrogate models are often employed to represent complex computational science and engineering models where direct analysis is too computationally expensive. The basic outline of surrogate modelling and analysis is sketched in the figure below.

Essentially, there are four basic steps outlined below to highlight specific nodes of the toolset:

- First, sampling must be performed over the input parameter phase space that will be interrogated during the final analysis. This is represented in the sketch by an ordered (factorial) sampling design. Input variable sampling methods are contained in the Design of Experiments node along with some metrics to assess the samples.
- Next, the full model is evaluated at each of the sampling points. The system response quantity or quantity of interest (SRQoI) is collected at each sampling point. This step is application specific, therefore, there is no specific node for the model evaluation. Throughout the documentation, a generic code node–which executes python code–will be used extensively. Additionally, Nodeworks was developed to operate within the MFiX GUI which can be readily used for full model evaluation. For instruction on the use of Nodeworks within MFiX please see (LINK TO NODEWORKS-MFIX DOCS).
- Then, a surrogate model is created to approximate the full model’s output. The resulting response surface maps continuous input parameters to a continuous (approximate) model response. The Response Surface node contains surrogate modeling options collected from several python libraries ranging from simple linear interpolation to Gaussian process models.
- Finally, the function or map is considered a surrogate model for the full model and the desired analysis is carried out on the computationally efficient substitute. Our analysis nodes are primarily geared towards optimization and uncertainty quantification including the General Optimizer, Sensitivity Analysis, Forward Propagation, and Emulator nodes.

Instruction on the use of the nodes listed above is provided in the following sections along with the Node Wizard Capability, a quick access feature to populate Surrogate Modeling and Analysis workflows. The section is concluded with some basic Examples.