.. _method-multilevel_function_train-adapt_rank:

""""""""""
adapt_rank
""""""""""


Activate adaptive procedure for determining best rank representation


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



**Specification**

- *Alias:* None

- *Arguments:* None

- *Default:* false


**Description**


The adaptive algorithm proceeds as follows:


1. Start from rank ``start_rank`` and form an approximation
2. Adapt the current approximation by searching for a solution with lower rank that achieves L2 accuracy within epsilon tolerance of the reference.
3. If a lower rank solution is found with comparable accuracy, then stop.  If not, increase the rank by an amount specified by ``kick_rank``.
4. Return to step 2 and continue until either ``max_rank`` is reached or a converged rank (rank less than current reference with comparable accuracy) is found.

*Default Behavior*

No cross validation for rank.



**Examples**


This example shows specification of a rank adaptation starting at rank 2,
incrementing by 2, and limited at rank 10.

.. code-block::

    model,
     id_model = 'FT'
     surrogate global function_train
       start_order = 5
       adapt_rank  start_rank = 2  kick_rank = 2  max_rank = 10
       solver_tolerance   = 1e-12
       rounding_tolerance = 1e-12
     dace_method_pointer = 'SAMPLING'


Note that ``adapt_rank`` and ``adapt_order`` can either be combined or
used separately.