.. _method-dot_frcg:

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


DOT conjugate gradient optimization method


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

   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                                     | `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-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)



