**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 ddcg
context)trks
is a Total Reuse of Krylov Search Space algorithm;
srks
is a Selective reuse of Krylov Search Space algorithm
MPCG solver (whithin
***iterative_solver dd_mpcg
,dd_mpcg_adaptive_local
,dd_mpcg_adaptive_local
context)trks
is a Total Reuse of Krylov Search Space algorithm;
geneo
is 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_size
szwhere sz is a integer defining the maximum dimension of the reused search space. Default value is \(100\).
*queue_treatment
treatmentdefines how the reused search space is updated when no free space is available. For the moment two values are possible. The first one is
fifo
meaning fist-in-first-out. The second one islast_only
meaning that the search directions are only reused for the next linear solve. Default value isfifo
.*threshold
eps- , where eps is a float that drives the
selection process (if any). Default value depends on the type of algorithm.
*validity
validitydefines how long a search direction can be reused. For the moment three values are possible. The first one,
previous_iter
means that only search directions provided by the previous resolution (in the same Newton time step) may be reused. The second one,all_iter
means that all search directions provided in the same in the same Newton time step may be reused. The third one,all_incr
means that there is no explicit limitation. The default value isprevious_iter
.*verbose
enables optional output.
The following keyword is specific to srks
.
[ *criterion
type ]
*criterion
specifies how the search direction are selected. The two possibilities are
stagnation
andlargest
. Both algorithm works on the Ritz values of the Hessemberg matrix. The choicelargest
triggers 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
]
*contraction
specifies the search space is compressed before selection. The first possibility is
simple
, it is a simple summation.The second one is
optimal
which add a weights based on the coefficient in the MPCG algorithm.*threshold_correction
enables a correction of the threshold for the selection. Basically it divided the threshold by the number of neighbors of the current subdomain.
sort_eigen_values
enables a sort of the eigen values to select the most useful search directions.
weighted_sort
enables weights for the sort.