|
cyqlone
develop
Fast, parallel and vectorized solver for linear systems with optimal control structure.
|
Solvers for block tridiagonal linear systems.
Classes | |
| struct | cyqlone::TricyqleParams< T > |
| Parameters and settings for the Tricyqle block-tridiagonal solver. More... | |
| struct | cyqlone::TricyqleSolver< VL, T, DefaultOrder, Ctx > |
| Solver for block-tridiagonal systems using cyclic reduction (CR), parallel cyclic reduction (PCR), and preconditioned conjugate gradient (PCG) methods. More... | |
Enumerations | |
| enum class | cyqlone::SolveMethod { cyqlone::SolveMethod::StairPCG , cyqlone::SolveMethod::JacobiPCG , cyqlone::SolveMethod::PCR } |
| Defines how to solve the small linear system that remains after cyclic reduction. More... | |
| struct cyqlone::TricyqleParams |
| Class Members | ||
|---|---|---|
| typedef T | value_type T | |
| Class Members | ||
|---|---|---|
| bool | enable_prefetching = true | Use prefetching during the reverse CR solve phase. |
| index_t | pcg_max_iter = 100 | Maximum number of preconditioned conjugate gradient iterations. |
| value_type | pcg_tolerance = std::numeric_limits<value_type>::epsilon() / 10 | Tolerance for the preconditioned conjugate gradient solver. |
| bool | pcg_print_resid = false | Enable printing of the residuals during PCG. |
| SolveMethod | solve_method = SolveMethod::StairPCG | Algorithm to use for solving the final reduced block tridiagonal system. |
| double | pcr_max_update_fraction = 0.6 |
Tuning parameter for deciding when to update or re-factor the PCR factorization. If the update rank exceeds this fraction of nx, the PCR factorization is recomputed |
| double | cr_max_update_fraction_Y0 = 0.9 |
Tuning parameter for deciding when to update or re-factor the last subdiagonal blocks in the CR factorization. If the update rank exceeds this fraction of nx, the last subdiagonal blocks are recomputed. |
| index_t | parallel_solve_cr_threshold = 10 | Threshold on nx for switching to a serial implementation of the reverse CR solve. |
| index_t | parallel_factor_pcr_threshold = 20 | Threshold on nx for switching to a serial implementation of the PCR factorization. |
|
strong |
#include <cyqlone/cyqlone-params.hpp>
Defines how to solve the small linear system that remains after cyclic reduction.
Definition at line 11 of file cyqlone-params.hpp.