**acceleration#
Description#
This keyword enables the reuse of search space across Newton steps and/or iterations. It may save computational time for evolutionary problem.
Note
This command is only available within dd_feti and dd_mpfeti
solvers contexts. Available acceleration depends on the
linear_solver and the iterative_solver. For the moment, it is
only available for symmetric positive definite solver (CG and
multipreconditioned CG).
Syntax#
The acceleration command has the following syntax:
**acceleration type
where type may have different value depending on the type of iterative solver used.
CG solver (within
***iterative_solver ddcgcontext)trksis a Total Reuse of Krylov Search Space algorithm;
srksis a Selective reuse of Krylov Search Space algorithm
MPCG solver (whithin
***iterative_solver dd_mpcg,dd_mpcg_adaptive_local,dd_mpcg_adaptive_localcontext)trksis a Total Reuse of Krylov Search Space algorithm;
geneois a Geneo Ritz algorithm
All subsequent commands are optional and default values are automatically set, which may be different depending on the iterative solver used.
The following keywords are common to all acceleration algorithms.
[ *max_size max_size ]
[ *queue_treatment treatment ]
[ *threshold eps ]
[ *validity validity ]
[ *verbose ]
*max_sizeszwhere sz is a integer defining the maximum dimension of the reused search space. Default value is \(100\).
*queue_treatmenttreatmentdefines how the reused search space is updated when no free space is available. For the moment two values are possible. The first one is
fifomeaning fist-in-first-out. The second one islast_onlymeaning that the search directions are only reused for the next linear solve. Default value isfifo.*thresholdeps- , where eps is a float that drives the
selection process (if any). Default value depends on the type of algorithm.
*validityvaliditydefines how long a search direction can be reused. For the moment three values are possible. The first one,
previous_itermeans that only search directions provided by the previous resolution (in the same Newton time step) may be reused. The second one,all_itermeans that all search directions provided in the same in the same Newton time step may be reused. The third one,all_incrmeans that there is no explicit limitation. The default value isprevious_iter.*verboseenables optional output.
The following keyword is specific to srks.
[ *criterion type ]
*criterionspecifies how the search direction are selected. The two possibilities are
stagnationandlargest. Both algorithm works on the Ritz values of the Hessemberg matrix. The choicelargesttriggers the selection of vectors associated with Ritz eigen values greater than the threshold (in that case, the default threshold is \(10^3\)). Withstagnation, only vectors associated with converged Ritz Eigen values are selected (in that case the default threshold is \(10^{-10}\).
The following keyword is specific to geneo. The Geneo Ritz algorithm
is based on the solution of local Generalized Eigen values problems in
parallel. With this method, each subdomains provides search directions.
More information can be found in the paper of Michael Leistner et al.
2018.
[ *contraction type ]
[ *threshold_correction type ]
[ *sort_eigen_values ]
[ *weighted_sort ]
*contractionspecifies the search space is compressed before selection. The first possibility is
simple, it is a simple summation.The second one is
optimalwhich add a weights based on the coefficient in the MPCG algorithm.*threshold_correctionenables a correction of the threshold for the selection. Basically it divided the threshold by the number of neighbors of the current subdomain.
sort_eigen_valuesenables a sort of the eigen values to select the most useful search directions.
weighted_sortenables weights for the sort.