Blurb::
Specifies how variables are mapped into a set of responses
Description::
A model is comprised of a mapping from variables, through an
interface, to responses.

*Model Group 1*
The type of model can be:


- ``single`` (default)
- ``surrogate``
- ``nested``
- ``subspace``
- ``random_field``

The input file must specify one of these types. If the type is not
specified, Dakota will assume a single model.

*Block Pointers and ID*

Each of these model types supports ``variables_pointer`` and
``responses_pointer`` strings for identifying the variables and responses
specifications used in constructing the model by cross-referencing
with ``id_variables`` and ``id_responses`` strings from particular
variables and responses keyword specifications.

These pointers are valid for each model type since each model contains
a set of variables that is mapped into a set of responses -- only the
specifics of the mapping differ.

Additional pointers are used for each model type for
constructing the components of the variable to response mapping.  As an
environment specification identifies a top-level method and a method
specification identifies a model, a model specification identifies
variables, responses, and (for some types) interface specifications.
This top-down flow specifies all of the object interrelationships.
Topics::
block
Examples::
The first example shows a minimal specification for a ``single`` model,
which is the default model when no models are explicitly specified
by the user.


.. code-block::

    model
      single


The next example displays a surrogate model specification which
selects a quadratic polynomial from among the global approximation
methods. It uses a pointer to a design of experiments method for
generating the data needed for building the global approximation, reuses
any old data available for the current approximation region, and
employs the first-order multiplicative approach to correcting the
approximation each time correction is requested.


.. code-block::

    model,
      id_model = 'M1'
      variables_pointer = 'V1'
      responses_pointer = 'R1'
      surrogate
        global
          polynomial quadratic
          dace_method_pointer = 'DACE'
          reuse_samples region
          correction multiplicative first_order

This example demonstrates the use of identifiers and pointers. It
provides the optional model independent specifications for model
identifier, variables pointer, and responses pointer
as well as model dependent specifications for
global surrogates (see :dakkw:`model-surrogate-global`).

Finally, an advanced nested model example would be

.. code-block::

    model
      id_model = 'M1'
      variables_pointer = 'V1'
      responses_pointer = 'R1'
      nested
        optional_interface_pointer = 'OI1'
          optional_interface_responses_pointer = 'OIR1'
         sub_method_pointer = 'SM1'
           primary_variable_mapping  = '' '' 'X'   'Y'
           secondary_variable_mapping = '' '' 'mean' 'mean'
           primary_response_mapping  = 1. 0. 0. 0. 0. 0. 0. 0. 0.
           secondary_response_mapping = 0. 0. 0. 1. 3. 0. 0. 0. 0.
                                        0. 0. 0. 0. 0. 0. 1. 3. 0.

This example illustrates controls for model
identifier, variables pointer, and responses pointer
and for specifying details of the nested mapping.
Theory::

Faq::

See_Also::
