.. _interface-analysis_drivers-direct:

""""""
direct
""""""


Run analysis drivers that are linked-to or compiled-with Dakota


.. toctree::
   :hidden:
   :maxdepth: 1

   interface-analysis_drivers-direct-processors_per_analysis


**Specification**

- *Alias:* None

- *Arguments:* None


**Child Keywords:**

+-------------------------+--------------------+-----------------------------+-----------------------------------------------+
| Required/Optional       | Description of     | Dakota Keyword              | Dakota Keyword Description                    |
|                         | Group              |                             |                                               |
+=========================+====================+=============================+===============================================+
| Optional                                     | `processors_per_analysis`__ | Specify the number of processors per analysis |
|                                              |                             | when Dakota is run in parallel                |
+----------------------------------------------+-----------------------------+-----------------------------------------------+

.. __: interface-analysis_drivers-direct-processors_per_analysis.html



**Description**


Direct interfaces are used to compile/link simulation programs into
Dakota and to invoke Dakota's built-in algebraic test problems.

Direct simulation interfaces communicate variable and response data
in-core instead of through the filesystem.  This typically requires
modification to simulator programs so that they can be linked into
Dakota; however it can be more efficient due to elimination of
external processes and auxilliary simulator output, more accurate due
to higher numerics, and more flexible in terms of MPI parallelism.

Direct interfaces are also used to invoke internal test functions that
perform parameter to response mappings for simple functions as
inexpensively as possible. These problems are compiled directly into
the Dakota executable as part of the direct function interface class
and are used for algorithm testing.

Dakota supports direct interfaces to a few select simulation codes
such as Matlab, Python, and Scilab.  Another example is ModelCenter, a
commercial simulation management framework from Phoenix
Integration. To utilize this interface, a user must first define the
simulation specifics within a ModelCenter session and then save these
definitions to a ModelCenter configuration file. The
``analysis_components`` specification provides the means to communicate
this configuration file to Dakota's ModelCenter interface.



**Examples**


The rosenbrock function is available as an executable, which can be
launched with :dakkw:`interface-analysis_drivers-fork`, and is also
compiled with Dakota. The internal version can be used with:


.. code-block::

    interface
      analysis_drivers = 'rosenbrock'
        direct