**** BPACK solver options More...
Public Attributes | |
integer | format |
HODLR, HMAT, HSS, HSS_MD, BLR. More... | |
integer | verbosity |
printlevel -1: no printing except error and warning. 0: default printing. 1: print info for each high-level operation 2: print information for each low-level operation More... | |
integer | lrlevel |
The top LRlevel level blocks are butterfly or Bplus. More... | |
integer | lnobp |
the bottom lnoBP levels are either Butterfly or LR, but not Bplus More... | |
integer | bp_cnt_lr |
only print the rank in the top-layer butterfly of a Bplus More... | |
integer | twolayeronly |
restrict Bplus as Butterfly + LR More... | |
real(kind=8) | touch_para |
parameters used to determine whether one patch is closer to seperator More... | |
real(kind=8) | sample_para |
parameters used for linear-complexity ID-butterfly, # of row/columns samples is sample_para*2*butterfly_rank More... | |
real(kind=8) | sample_para_outer |
parameters used for linear-complexity ID-butterfly, # of row/columns samples is sample_para*2*butterfly_rank More... | |
integer | pat_comp |
pattern of entry-evaluation-based butterfly compression: 1 from right to left, 2 from left to right, 3 from outer to inner More... | |
integer | use_zfp |
1: use zfp for the dense blocks (zfp must be used to install ButterflyPACK) 0: do not use zfp More... | |
integer | hextralevel |
HMAT: extra levels for top partitioning of the H matrix based on MPI counts. BLR: Maxlevel-hextralevel is the level for defining B-LR/B-BF blocks. More... | |
integer | forwardn15flag |
1 use N^1.5 algorithm. 0: use NlogN pseudo skeleton algorithm. 2: use NlogN first, if not accurate enough, switch to N^1.5 More... | |
real(kind=8) | tol_comp |
matrix construction tolerance More... | |
integer | nmin_leaf |
leaf sizes of BPACK tree More... | |
integer | nogeo |
1: no geometrical information available to BPACK, use NATUTAL or TM_GRAM clustering 0: geometrical points are available for TM or CKD clustering 2: no geometrical information available, but a user-defined distance function and compressibility function is provided. 3: no geometrical information available, but an array of knn*N indicating the knn neighbours of each element is provided. 4: geometrical information available for TM or CKD clustering, and an array of knn*N indicating the knn neighbours of each element is provided More... | |
integer | per_geo |
1: the geomerical points are periodical. 0: the points are not periodical More... | |
real(kind=8), dimension(ndim_max) | periods |
the periods in each dimension (currently only supports maximum of 3 dimensions) of the geometry points when per_geo=1 More... | |
integer | xyzsort |
clustering methods given geometrical points: CKD: cartesian kd tree SKD: spherical kd tree (only for 3D points) TM: (2 mins no recursive) More... | |
integer | reclr_leaf |
bottom level operations in a recursive merge-based LR compression: SVD, RRQR, ACA, BACA More... | |
real(kind=8) | near_para |
parameters used to determine whether two groups are nearfield or farfield pair More... | |
real(kind=8) | knn_near_para |
parameters used to determine whether two groups are nearfield or farfield pair, used for knn search More... | |
real(kind=8) | scale_factor |
parameters used to scale matrix entries More... | |
integer | rmax |
maximum rank truncation More... | |
integer | elem_extract |
1: use user-defined element extraction 0: use user-defined formula More... | |
integer | cpp |
1: use user-defined c/cpp functions 0: use user-defined fortran functions More... | |
integer | knn |
number of nearest neighbour points for each point More... | |
integer | fastsample_tensor |
0: uniformly sample each dimension. 1: uniformly sample the rows of the unfolded matrices on top of 0. 2: use translation invariance More... | |
real(kind=8) | tol_ls |
tolerance in pseudo inverse More... | |
real(kind=8) | tol_rdetect |
tolerance to detect numerical ranks More... | |
real(kind=8) | tol_rand |
tolerance for randomized contruction, mostly used in matrix inversion More... | |
real(kind=8) | jitter |
jittering for dense diagonal blocks More... | |
integer | powiter |
order of power iteration in randomized LR More... | |
integer | less_adapt |
0 for rank adaptation for all BF levels, 1 for rank adaptation for the outtermost BF levels More... | |
integer | schulzorder |
order (>=2) of schultz iteration More... | |
integer | schulzhardstart |
1: use X0=alphaA^* as the initial guess 0: use block-diagonal approximation of A with recursive inversion as the intial guess More... | |
integer | schulzsplitlevel |
number of levels to split A for block-diagonal approximation More... | |
integer | schulzlevel |
(I+B)^-1 is computed by schultz iteration for butterfly with more than schulzlevel levels More... | |
integer | rank0 |
intial guess of ranks More... | |
real(kind=8) | rankrate |
increasing rate of rank estimates per iteration More... | |
integer | itermax |
max number of iteration in randomized schemes More... | |
integer | ilu |
only perform LU on dense diagonal blocks, used only in the context of H-LU More... | |
integer | nbundle |
multiply Nbundle sets of vectors together in randomized schemes More... | |
real(kind=8) | tol_itersol |
tolerance for iterative solvers More... | |
integer | n_iter |
maximum number of iterations for iterative solver More... | |
integer | precon |
DIRECT: use factored BPACK as direct solver, BPACKPRECON: use factored BPACK as preconditioner, NOPRECON: use forward BPACK as fast matvec,. More... | |
integer | level_check |
check compression quality by picking random entries at level_check (only work for nmpi=1 now) More... | |
integer | errfillfull |
check compression quality by computing all block elements More... | |
integer | errsol |
check solution quality by using artificially generated true solution vector More... | |
integer | baca_batch |
batch size in batch ACA More... | |
integer | lr_blk_num |
sqrt of number of bottom-level subblocks in blocked LR More... | |
**** BPACK solver options
integer z_bpack_defs::z_hoption::baca_batch |
batch size in batch ACA
integer z_bpack_defs::z_hoption::bp_cnt_lr |
only print the rank in the top-layer butterfly of a Bplus
integer z_bpack_defs::z_hoption::cpp |
1: use user-defined c/cpp functions 0: use user-defined fortran functions
integer z_bpack_defs::z_hoption::elem_extract |
1: use user-defined element extraction 0: use user-defined formula
integer z_bpack_defs::z_hoption::errfillfull |
check compression quality by computing all block elements
integer z_bpack_defs::z_hoption::errsol |
check solution quality by using artificially generated true solution vector
integer z_bpack_defs::z_hoption::fastsample_tensor |
0: uniformly sample each dimension. 1: uniformly sample the rows of the unfolded matrices on top of 0. 2: use translation invariance
integer z_bpack_defs::z_hoption::format |
HODLR, HMAT, HSS, HSS_MD, BLR.
integer z_bpack_defs::z_hoption::forwardn15flag |
1 use N^1.5 algorithm. 0: use NlogN pseudo skeleton algorithm. 2: use NlogN first, if not accurate enough, switch to N^1.5
integer z_bpack_defs::z_hoption::hextralevel |
HMAT: extra levels for top partitioning of the H matrix based on MPI counts. BLR: Maxlevel-hextralevel is the level for defining B-LR/B-BF blocks.
integer z_bpack_defs::z_hoption::ilu |
only perform LU on dense diagonal blocks, used only in the context of H-LU
integer z_bpack_defs::z_hoption::itermax |
max number of iteration in randomized schemes
real(kind=8) z_bpack_defs::z_hoption::jitter |
jittering for dense diagonal blocks
integer z_bpack_defs::z_hoption::knn |
number of nearest neighbour points for each point
real(kind=8) z_bpack_defs::z_hoption::knn_near_para |
parameters used to determine whether two groups are nearfield or farfield pair, used for knn search
integer z_bpack_defs::z_hoption::less_adapt |
0 for rank adaptation for all BF levels, 1 for rank adaptation for the outtermost BF levels
integer z_bpack_defs::z_hoption::level_check |
check compression quality by picking random entries at level_check (only work for nmpi=1 now)
integer z_bpack_defs::z_hoption::lnobp |
the bottom lnoBP levels are either Butterfly or LR, but not Bplus
integer z_bpack_defs::z_hoption::lr_blk_num |
sqrt of number of bottom-level subblocks in blocked LR
integer z_bpack_defs::z_hoption::lrlevel |
The top LRlevel level blocks are butterfly or Bplus.
integer z_bpack_defs::z_hoption::n_iter |
maximum number of iterations for iterative solver
integer z_bpack_defs::z_hoption::nbundle |
multiply Nbundle sets of vectors together in randomized schemes
real(kind=8) z_bpack_defs::z_hoption::near_para |
parameters used to determine whether two groups are nearfield or farfield pair
integer z_bpack_defs::z_hoption::nmin_leaf |
leaf sizes of BPACK tree
integer z_bpack_defs::z_hoption::nogeo |
1: no geometrical information available to BPACK, use NATUTAL or TM_GRAM clustering 0: geometrical points are available for TM or CKD clustering 2: no geometrical information available, but a user-defined distance function and compressibility function is provided. 3: no geometrical information available, but an array of knn*N indicating the knn neighbours of each element is provided. 4: geometrical information available for TM or CKD clustering, and an array of knn*N indicating the knn neighbours of each element is provided
integer z_bpack_defs::z_hoption::pat_comp |
pattern of entry-evaluation-based butterfly compression: 1 from right to left, 2 from left to right, 3 from outer to inner
integer z_bpack_defs::z_hoption::per_geo |
1: the geomerical points are periodical. 0: the points are not periodical
real(kind=8), dimension(ndim_max) z_bpack_defs::z_hoption::periods |
the periods in each dimension (currently only supports maximum of 3 dimensions) of the geometry points when per_geo=1
integer z_bpack_defs::z_hoption::powiter |
order of power iteration in randomized LR
integer z_bpack_defs::z_hoption::precon |
DIRECT: use factored BPACK as direct solver, BPACKPRECON: use factored BPACK as preconditioner, NOPRECON: use forward BPACK as fast matvec,.
integer z_bpack_defs::z_hoption::rank0 |
intial guess of ranks
real(kind=8) z_bpack_defs::z_hoption::rankrate |
increasing rate of rank estimates per iteration
integer z_bpack_defs::z_hoption::reclr_leaf |
bottom level operations in a recursive merge-based LR compression: SVD, RRQR, ACA, BACA
integer z_bpack_defs::z_hoption::rmax |
maximum rank truncation
real(kind=8) z_bpack_defs::z_hoption::sample_para |
parameters used for linear-complexity ID-butterfly, # of row/columns samples is sample_para*2*butterfly_rank
real(kind=8) z_bpack_defs::z_hoption::sample_para_outer |
parameters used for linear-complexity ID-butterfly, # of row/columns samples is sample_para*2*butterfly_rank
real(kind=8) z_bpack_defs::z_hoption::scale_factor |
parameters used to scale matrix entries
integer z_bpack_defs::z_hoption::schulzhardstart |
1: use X0=alphaA^* as the initial guess 0: use block-diagonal approximation of A with recursive inversion as the intial guess
integer z_bpack_defs::z_hoption::schulzlevel |
(I+B)^-1 is computed by schultz iteration for butterfly with more than schulzlevel levels
integer z_bpack_defs::z_hoption::schulzorder |
order (>=2) of schultz iteration
integer z_bpack_defs::z_hoption::schulzsplitlevel |
number of levels to split A for block-diagonal approximation
real(kind=8) z_bpack_defs::z_hoption::tol_comp |
matrix construction tolerance
real(kind=8) z_bpack_defs::z_hoption::tol_itersol |
tolerance for iterative solvers
real(kind=8) z_bpack_defs::z_hoption::tol_ls |
tolerance in pseudo inverse
real(kind=8) z_bpack_defs::z_hoption::tol_rand |
tolerance for randomized contruction, mostly used in matrix inversion
real(kind=8) z_bpack_defs::z_hoption::tol_rdetect |
tolerance to detect numerical ranks
real(kind=8) z_bpack_defs::z_hoption::touch_para |
parameters used to determine whether one patch is closer to seperator
integer z_bpack_defs::z_hoption::twolayeronly |
restrict Bplus as Butterfly + LR
integer z_bpack_defs::z_hoption::use_zfp |
1: use zfp for the dense blocks (zfp must be used to install ButterflyPACK) 0: do not use zfp
integer z_bpack_defs::z_hoption::verbosity |
printlevel -1: no printing except error and warning. 0: default printing. 1: print info for each high-level operation 2: print information for each low-level operation
integer z_bpack_defs::z_hoption::xyzsort |
clustering methods given geometrical points: CKD: cartesian kd tree SKD: spherical kd tree (only for 3D points) TM: (2 mins no recursive)