Blurb::
DIviding RECTangles method
Description::
North Carolina State University (NCSU) has an implementation of the
DIRECT algorithm (DIviding RECTangles algorithm that is outlined in
the SCOLIB method section above). This version is documented in
:cite:p:`Gab01` We have found that the NCSU DIRECT
implementation works better and is more robust for some problems than
``coliny_direct``. Currently, we maintain both versions of DIRECT in
Dakota; in the future, we may deprecate one.

The NCSU DIRECT method is selected with ``ncsu_direct``. We have tried
to maintain consistency between the keywords in SCOLIB and NCSU
implementation of DIRECT, but the algorithms have different
parameters, so the keywords sometimes have slightly different meaning.

*Stopping Criteria*

The algorithm stops based on:


- :dakkw:`method-ncsu_direct-max_iterations` - number of iterations
- :dakkw:`method-ncsu_direct-max_function_evaluations` - number of function evaluations
- :dakkw:`method-ncsu_direct-solution_target` and :dakkw:`method-ncsu_direct-convergence_tolerance`
- :dakkw:`method-ncsu_direct-min_boxsize_limit`
- :dakkw:`method-ncsu_direct-volume_boxsize_limit`

This method will always strictly respect the number of iterations, but
may slightly exceed the number of function evaluations, as it will
always explore all sub-rectangles at the current level.


*Expected HDF5 Output*

If Dakota was built with HDF5 support and run with the
:dakkw:`environment-results_output-hdf5` keyword, this method
writes the following results to HDF5:


- :ref:`hdf5_results-best_params`
- :ref:`hdf5_results-best_obj_fncs` (when :dakkw:`responses-objective_functions`) are specified)
- :ref:`hdf5_results-best_constraints`
- :ref:`hdf5_results-calibration` (when :dakkw:`responses-calibration_terms` are specified)
Topics::
global_optimization_methods
Examples::

Theory::

Faq::

See_Also::
