ParGeMSLR
|
The GEMSLR options on each level. More...
#include <gemslr.hpp>
Public Member Functions | |
GemslrLevelSetupStruct () | |
The constructor, set the default values. More... | |
void | SetDefault () |
Set to default value. More... | |
GemslrLevelSetupStruct (const GemslrLevelSetupStruct< DataType > &str) | |
The copy constructor, set the default values. More... | |
GemslrLevelSetupStruct (GemslrLevelSetupStruct< DataType > &&str) | |
The move constructor, set the default values. More... | |
GemslrLevelSetupStruct< DataType > & | operator= (const GemslrLevelSetupStruct< DataType > &str) |
The operator =. More... | |
GemslrLevelSetupStruct< DataType > & | operator= (GemslrLevelSetupStruct< DataType > &&str) |
The operator =. More... | |
Public Attributes | |
int | _lr_option1_setup |
Set the Arnoldi iteration option for building the low-rank correction on the top level. More... | |
int | _lr_option2_setup |
Set the Arnoldi iteration option for building the low-rank correction on other levels. More... | |
int | _lr_optionA_setup |
Set the Arnoldi iteration option for building the low-rank correction on A. More... | |
bool | _lr_rand_init_setup |
Set to true to use random initial guess, otherwise use the unit vector. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_rank_factor1_setup |
The factor for extra low-rank terms on the top level. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_rank_factor2_setup |
The factor for extra low-rank terms on other levels. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_rank_factorA_setup |
The factor for extra low-rank terms on A. More... | |
int | _lr_rank1_setup |
Set the target number of low-rank terms we keep on the top level. More... | |
int | _lr_rank2_setup |
Set the target number of low-rank terms we keep on other levels. More... | |
int | _lr_rankA_setup |
Set the target number of low-rank terms we keep for the A. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_arnoldi_factor1_setup |
Set the maximum steps of the Arnoldi iteration on the top level. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_arnoldi_factor2_setup |
Set the maximum steps of the Arnoldi iteration on other levels. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_arnoldi_factorA_setup |
Set the maximum steps of the Arnoldi iteration on A. More... | |
int | _lr_maxits1_setup |
Set the maximum number of restart if thick-restart Arnoldi is used on the top level. More... | |
int | _lr_maxits2_setup |
Set the maximum number of restart if thick-restart Arnoldi is used on other levels. More... | |
int | _lr_maxitsA_setup |
Set the maximum number of restart if thick-restart Arnoldi is used on A. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_tr_factor_setup |
The thick-restart factor. Portion of thick-resratr length comparing to the entire width. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_tol_eig1_setup |
The tolorance for eigenvalues on the top level. Eigenvalues with Schur vector smaller than it will be kept. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_tol_eig2_setup |
The tolorance for eigenvalues on other levels. Eigenvalues with Schur vector smaller than it will be kept. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_tol_eigA_setup |
The tolorance for eigenvalues on A. Eigenvalues with Schur vector smaller than it will be kept. More... | |
int | _B_solve_option1 |
Choose the B solve option on the first several levels. More... | |
int | _B_solve_option1_levels |
From level 0 to this level (exclude) we apply B_solve option 1. More... | |
int | _B_solve_option2 |
Choose the B solve option before the last level. More... | |
int | _B_smooth_option1 |
Choose the B smooth option before the last level. More... | |
bool | _C_lr_pslr |
Use power low-rank? More... | |
int | _C_solve_option |
Choose the C solve option for the last level. More... | |
int | _ilu_residual_iters |
Should we apply residual iteration in the setup phase? More... | |
bool | _ilu_complex_shift |
Should we turn on complex shift? More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _B_ilu_tol_setup |
The global droptol for ILUT. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _C_ilu_tol_setup |
The droptol for ILUT on the last level. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _S_ilu_tol_setup |
The droptol for ILUT on the S part. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _EF_ilu_tol_setup |
The droptol for ILUT on the EF part. More... | |
int | _B_ilu_max_row_nnz_setup |
The global MaxFil for ILUT. More... | |
int | _C_ilu_max_row_nnz_setup |
The global MaxFil for ILUT on the last level. More... | |
int | _S_ilu_max_row_nnz_setup |
The global MaxFil for ILUT on the S part. More... | |
int | _B_ilu_fill_level_setup |
The global level of fill for ILUK. More... | |
int | _C_ilu_fill_level_setup |
The global level of fill for ILUK on the last level. More... | |
int | _B_poly_order |
The order for poly for the B blocks. More... | |
int | _lr_option1_B_setup |
Set the Arnoldi iteration option for building the low-rank correction on the top level. More... | |
int | _lr_option2_B_setup |
Set the Arnoldi iteration option for building the low-rank correction on other levels. More... | |
bool | _lr_rand_init_B_setup |
Set to true to use random initial guess, otherwise use the unit vector. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_rank_factor1_B_setup |
The factor for extra low-rank terms on the top level. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_rank_factor2_B_setup |
The factor for extra low-rank terms on other levels. More... | |
int | _lr_rank1_B_setup |
Set the target number of low-rank terms we keep on the top level. More... | |
int | _lr_rank2_B_setup |
Set the target number of low-rank terms we keep on other levels. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_arnoldi_factor1_B_setup |
Set the maximum steps of the Arnoldi iteration on the top level. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_arnoldi_factor2_B_setup |
Set the maximum steps of the Arnoldi iteration on other levels. More... | |
int | _lr_maxits1_B_setup |
Set the maximum number of restart if thick-restart Arnoldi is used on the top level. More... | |
int | _lr_maxits2_B_setup |
Set the maximum number of restart if thick-restart Arnoldi is used on other levels. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_tr_factor_B_setup |
The thick-restart factor. Portion of thick-resratr length comparing to the entire width. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_tol_eig1_B_setup |
The tolorance for eigenvalues on the top level. Eigenvalues with Schur vector smaller than it will be kept. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _lr_tol_eig2_B_setup |
The tolorance for eigenvalues on other levels. Eigenvalues with Schur vector smaller than it will be kept. More... | |
int | _B_solve_option1_B |
Choose the B solve option on the first several levels. More... | |
int | _B_solve_option1_levels_B |
From level 0 to this level (exclude) we apply B_solve option 1. More... | |
int | _B_solve_option2_B |
Choose the B solve option before the last level. More... | |
int | _C_solve_option_B |
Choose the C solve option for the last level. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _B_ilu_tol_B_setup |
The global droptol for ILUT. More... | |
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | _C_ilu_tol_B_setup |
The droptol for ILUT on the last level. More... | |
int | _B_ilu_max_row_nnz_B_setup |
The global MaxFil for ILUT. More... | |
int | _C_ilu_max_row_nnz_B_setup |
The global MaxFil for ILUT on the last level. More... | |
int | _B_ilu_fill_level_B_setup |
The global level of fill for ILUK. More... | |
int | _C_ilu_fill_level_B_setup |
The global level of fill for ILUK on the last level. More... | |
int | _B_poly_order_B |
The order for poly for the B blocks. More... | |
The GEMSLR options on each level.
template pargemslr::GemslrLevelSetupStruct< DataType >::GemslrLevelSetupStruct | ( | ) |
The constructor, set the default values.
pargemslr::GemslrLevelSetupStruct< DataType >::GemslrLevelSetupStruct | ( | const GemslrLevelSetupStruct< DataType > & | str | ) |
The copy constructor, set the default values.
pargemslr::GemslrLevelSetupStruct< DataType >::GemslrLevelSetupStruct | ( | GemslrLevelSetupStruct< DataType > && | str | ) |
The move constructor, set the default values.
GemslrLevelSetupStruct< DataType > & pargemslr::GemslrLevelSetupStruct< DataType >::operator= | ( | const GemslrLevelSetupStruct< DataType > & | str | ) |
The operator =.
GemslrLevelSetupStruct< DataType > & pargemslr::GemslrLevelSetupStruct< DataType >::operator= | ( | GemslrLevelSetupStruct< DataType > && | str | ) |
The operator =.
template void pargemslr::GemslrLevelSetupStruct< DataType >::SetDefault | ( | ) |
Set to default value.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_ilu_fill_level_B_setup |
The global level of fill for ILUK.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_ilu_fill_level_setup |
The global level of fill for ILUK.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_ilu_max_row_nnz_B_setup |
The global MaxFil for ILUT.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_ilu_max_row_nnz_setup |
The global MaxFil for ILUT.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_B_ilu_tol_B_setup |
The global droptol for ILUT.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_B_ilu_tol_setup |
The global droptol for ILUT.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_poly_order |
The order for poly for the B blocks.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_poly_order_B |
The order for poly for the B blocks.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_smooth_option1 |
Choose the B smooth option before the last level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_solve_option1 |
Choose the B solve option on the first several levels.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_solve_option1_B |
Choose the B solve option on the first several levels.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_solve_option1_levels |
From level 0 to this level (exclude) we apply B_solve option 1.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_solve_option1_levels_B |
From level 0 to this level (exclude) we apply B_solve option 1.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_solve_option2 |
Choose the B solve option before the last level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_B_solve_option2_B |
Choose the B solve option before the last level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_C_ilu_fill_level_B_setup |
The global level of fill for ILUK on the last level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_C_ilu_fill_level_setup |
The global level of fill for ILUK on the last level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_C_ilu_max_row_nnz_B_setup |
The global MaxFil for ILUT on the last level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_C_ilu_max_row_nnz_setup |
The global MaxFil for ILUT on the last level.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_C_ilu_tol_B_setup |
The droptol for ILUT on the last level.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_C_ilu_tol_setup |
The droptol for ILUT on the last level.
bool pargemslr::GemslrLevelSetupStruct< DataType >::_C_lr_pslr |
Use power low-rank?
int pargemslr::GemslrLevelSetupStruct< DataType >::_C_solve_option |
Choose the C solve option for the last level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_C_solve_option_B |
Choose the C solve option for the last level.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_EF_ilu_tol_setup |
The droptol for ILUT on the EF part.
bool pargemslr::GemslrLevelSetupStruct< DataType >::_ilu_complex_shift |
Should we turn on complex shift?
int pargemslr::GemslrLevelSetupStruct< DataType >::_ilu_residual_iters |
Should we apply residual iteration in the setup phase?
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_arnoldi_factor1_B_setup |
Set the maximum steps of the Arnoldi iteration on the top level.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_arnoldi_factor1_setup |
Set the maximum steps of the Arnoldi iteration on the top level.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_arnoldi_factor2_B_setup |
Set the maximum steps of the Arnoldi iteration on other levels.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_arnoldi_factor2_setup |
Set the maximum steps of the Arnoldi iteration on other levels.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_arnoldi_factorA_setup |
Set the maximum steps of the Arnoldi iteration on A.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_maxits1_B_setup |
Set the maximum number of restart if thick-restart Arnoldi is used on the top level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_maxits1_setup |
Set the maximum number of restart if thick-restart Arnoldi is used on the top level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_maxits2_B_setup |
Set the maximum number of restart if thick-restart Arnoldi is used on other levels.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_maxits2_setup |
Set the maximum number of restart if thick-restart Arnoldi is used on other levels.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_maxitsA_setup |
Set the maximum number of restart if thick-restart Arnoldi is used on A.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_option1_B_setup |
Set the Arnoldi iteration option for building the low-rank correction on the top level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_option1_setup |
Set the Arnoldi iteration option for building the low-rank correction on the top level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_option2_B_setup |
Set the Arnoldi iteration option for building the low-rank correction on other levels.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_option2_setup |
Set the Arnoldi iteration option for building the low-rank correction on other levels.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_optionA_setup |
Set the Arnoldi iteration option for building the low-rank correction on A.
bool pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rand_init_B_setup |
Set to true to use random initial guess, otherwise use the unit vector.
bool pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rand_init_setup |
Set to true to use random initial guess, otherwise use the unit vector.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rank1_B_setup |
Set the target number of low-rank terms we keep on the top level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rank1_setup |
Set the target number of low-rank terms we keep on the top level.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rank2_B_setup |
Set the target number of low-rank terms we keep on other levels.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rank2_setup |
Set the target number of low-rank terms we keep on other levels.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rank_factor1_B_setup |
The factor for extra low-rank terms on the top level. Compute k*rank_factor eigenvalues, and pick k "best" out of them.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rank_factor1_setup |
The factor for extra low-rank terms on the top level. Compute k*rank_factor eigenvalues, and pick k "best" out of them.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rank_factor2_B_setup |
The factor for extra low-rank terms on other levels. Compute k*rank_factor eigenvalues, and pick k "best" out of them.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rank_factor2_setup |
The factor for extra low-rank terms on other levels. Compute k*rank_factor eigenvalues, and pick k "best" out of them.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rank_factorA_setup |
The factor for extra low-rank terms on A. Compute k*rank_factor eigenvalues, and pick k "best" out of them.
int pargemslr::GemslrLevelSetupStruct< DataType >::_lr_rankA_setup |
Set the target number of low-rank terms we keep for the A.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_tol_eig1_B_setup |
The tolorance for eigenvalues on the top level. Eigenvalues with Schur vector smaller than it will be kept.
Set to less than TR_TOL_EIG will enable the lock convergenced Schur vector function. Convergence vectors will be locked.
If this value is larger than TR_TOL_EIG, more convergenced eigenvalues with more number of restarts is not guaranteed.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_tol_eig1_setup |
The tolorance for eigenvalues on the top level. Eigenvalues with Schur vector smaller than it will be kept.
More convergenced eigenvalues with more number of restarts is not guaranteed.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_tol_eig2_B_setup |
The tolorance for eigenvalues on other levels. Eigenvalues with Schur vector smaller than it will be kept.
Set to less than TR_TOL_EIG will enable the lock convergenced Schur vector function. Convergence vectors will be locked.
If this value is larger than TR_TOL_EIG, more convergenced eigenvalues with more number of restarts is not guaranteed.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_tol_eig2_setup |
The tolorance for eigenvalues on other levels. Eigenvalues with Schur vector smaller than it will be kept.
More convergenced eigenvalues with more number of restarts is not guaranteed.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_tol_eigA_setup |
The tolorance for eigenvalues on A. Eigenvalues with Schur vector smaller than it will be kept.
More convergenced eigenvalues with more number of restarts is not guaranteed.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_tr_factor_B_setup |
The thick-restart factor. Portion of thick-resratr length comparing to the entire width.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_lr_tr_factor_setup |
The thick-restart factor. Portion of thick-resratr length comparing to the entire width.
int pargemslr::GemslrLevelSetupStruct< DataType >::_S_ilu_max_row_nnz_setup |
The global MaxFil for ILUT on the S part.
std::conditional<PargemslrIsDoublePrecision<DataType>::value, double, float>::type pargemslr::GemslrLevelSetupStruct< DataType >::_S_ilu_tol_setup |
The droptol for ILUT on the S part.