.. _method-dot_frcg:

""""""""
dot_frcg
""""""""


DOT conjugate gradient optimization method


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

   method-dot_frcg-id_method
   method-dot_frcg-output
   method-dot_frcg-final_solutions
   method-dot_frcg-max_iterations
   method-dot_frcg-convergence_tolerance
   method-dot_frcg-constraint_tolerance
   method-dot_frcg-speculative
   method-dot_frcg-max_function_evaluations
   method-dot_frcg-scaling
   method-dot_frcg-model_pointer


**Specification**

- *Alias:* None

- *Arguments:* None


**Child Keywords:**

+-------------------------+--------------------+------------------------------+-----------------------------------------------+
| Required/Optional       | Description of     | Dakota Keyword               | Dakota Keyword Description                    |
|                         | Group              |                              |                                               |
+=========================+====================+==============================+===============================================+
| Optional                                     | `id_method`__                | Name the method block; helpful when there are |
|                                              |                              | multiple                                      |
+----------------------------------------------+------------------------------+-----------------------------------------------+
| Optional                                     | `output`__                   | Control how much method information is        |
|                                              |                              | written to the screen and output file         |
+----------------------------------------------+------------------------------+-----------------------------------------------+
| Optional                                     | `final_solutions`__          | Number of designs returned as the best        |
|                                              |                              | solutions                                     |
+----------------------------------------------+------------------------------+-----------------------------------------------+
| Optional                                     | `max_iterations`__           | Number of iterations allowed for optimizers   |
|                                              |                              | and adaptive UQ methods                       |
+----------------------------------------------+------------------------------+-----------------------------------------------+
| Optional                                     | `convergence_tolerance`__    | Stopping criterion based on objective         |
|                                              |                              | function or statistics convergence            |
+----------------------------------------------+------------------------------+-----------------------------------------------+
| Optional                                     | `constraint_tolerance`__     | Maximum allowable constraint violation still  |
|                                              |                              | considered feasible                           |
+----------------------------------------------+------------------------------+-----------------------------------------------+
| Optional                                     | `speculative`__              | Compute speculative gradients                 |
+----------------------------------------------+------------------------------+-----------------------------------------------+
| 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-dot_frcg-id_method.html
__ method-dot_frcg-output.html
__ method-dot_frcg-final_solutions.html
__ method-dot_frcg-max_iterations.html
__ method-dot_frcg-convergence_tolerance.html
__ method-dot_frcg-constraint_tolerance.html
__ method-dot_frcg-speculative.html
__ method-dot_frcg-max_function_evaluations.html
__ method-dot_frcg-scaling.html
__ method-dot_frcg-model_pointer.html



**Description**


DOT library :cite:p:`Van95` implementation of Fletcher-Reeves conjugate
gradient method for unconstrained optimizaiton.

See :ref:`topic-package_dot` for information common to all ``DOT`` methods.

*DOT requires a separate software license and therefore may not
be available in all versions of Dakota.  CONMIN or OPT++ methods may
be suitable alternatives.*

.. warning::
    In DOT
    Version 4.20, we have noticed inconsistent behavior of this algorithm
    across different versions of Linux. Our best assessment is that it is
    due to different treatments of uninitialized variables. As we do not
    know the intention of the code authors and maintaining DOT source code
    is outside of the Dakota project scope, we have not made nor are we
    recommending any code changes to address this. However, all users who
    use ``dot_frcg`` in DOT Version 4.20 should be aware that
    results may not be reliable.
    
*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-calibration` (when :dakkw:`responses-calibration_terms` are specified)



