.. _method-ncsu_direct: """"""""""" ncsu_direct """"""""""" DIviding RECTangles method **Topics** global_optimization_methods .. toctree:: :hidden: :maxdepth: 1 method-ncsu_direct-solution_target method-ncsu_direct-min_boxsize_limit method-ncsu_direct-volume_boxsize_limit method-ncsu_direct-convergence_tolerance method-ncsu_direct-max_iterations method-ncsu_direct-max_function_evaluations method-ncsu_direct-scaling method-ncsu_direct-model_pointer **Specification** - *Alias:* None - *Arguments:* None **Child Keywords:** +-------------------------+--------------------+------------------------------+---------------------------------------------+ | Required/Optional | Description of | Dakota Keyword | Dakota Keyword Description | | | Group | | | +=========================+====================+==============================+=============================================+ | Optional | `solution_target`__ | Specifies a globally optimal value toward | | | | which the optimizer should track | +----------------------------------------------+------------------------------+---------------------------------------------+ | Optional | `min_boxsize_limit`__ | Stopping Criterion based on shortest edge | | | | of hyperrectangle | +----------------------------------------------+------------------------------+---------------------------------------------+ | Optional | `volume_boxsize_limit`__ | Stopping criterion based on volume of | | | | search space | +----------------------------------------------+------------------------------+---------------------------------------------+ | Optional | `convergence_tolerance`__ | Stopping criterion based on objective | | | | function or statistics convergence | +----------------------------------------------+------------------------------+---------------------------------------------+ | Optional | `max_iterations`__ | Number of iterations allowed for optimizers | | | | and adaptive UQ methods | +----------------------------------------------+------------------------------+---------------------------------------------+ | Optional | `max_function_evaluations`__ | Number of function evaluations allowed for | | | | optimizers | +----------------------------------------------+------------------------------+---------------------------------------------+ | Optional | `scaling`__ | Turn on scaling for variables, responses, | | | | and constraints | +----------------------------------------------+------------------------------+---------------------------------------------+ | Optional | `model_pointer`__ | Identifier for model block to be used by a | | | | method | +----------------------------------------------+------------------------------+---------------------------------------------+ .. __: method-ncsu_direct-solution_target.html __ method-ncsu_direct-min_boxsize_limit.html __ method-ncsu_direct-volume_boxsize_limit.html __ method-ncsu_direct-convergence_tolerance.html __ method-ncsu_direct-max_iterations.html __ method-ncsu_direct-max_function_evaluations.html __ method-ncsu_direct-scaling.html __ method-ncsu_direct-model_pointer.html **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)