z_bpack_defs::z_hoption Type Reference

**** 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_maxperiods
 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...
 

Detailed Description

**** BPACK solver options

Member Data Documentation

◆ baca_batch

integer z_bpack_defs::z_hoption::baca_batch

batch size in batch ACA

◆ bp_cnt_lr

integer z_bpack_defs::z_hoption::bp_cnt_lr

only print the rank in the top-layer butterfly of a Bplus

◆ cpp

integer z_bpack_defs::z_hoption::cpp

1: use user-defined c/cpp functions 0: use user-defined fortran functions

◆ elem_extract

integer z_bpack_defs::z_hoption::elem_extract

1: use user-defined element extraction 0: use user-defined formula

◆ errfillfull

integer z_bpack_defs::z_hoption::errfillfull

check compression quality by computing all block elements

◆ errsol

integer z_bpack_defs::z_hoption::errsol

check solution quality by using artificially generated true solution vector

◆ fastsample_tensor

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

◆ format

integer z_bpack_defs::z_hoption::format

HODLR, HMAT, HSS, HSS_MD, BLR.

◆ forwardn15flag

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

◆ hextralevel

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.

◆ ilu

integer z_bpack_defs::z_hoption::ilu

only perform LU on dense diagonal blocks, used only in the context of H-LU

◆ itermax

integer z_bpack_defs::z_hoption::itermax

max number of iteration in randomized schemes

◆ jitter

real(kind=8) z_bpack_defs::z_hoption::jitter

jittering for dense diagonal blocks

◆ knn

integer z_bpack_defs::z_hoption::knn

number of nearest neighbour points for each point

◆ knn_near_para

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

◆ less_adapt

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

◆ level_check

integer z_bpack_defs::z_hoption::level_check

check compression quality by picking random entries at level_check (only work for nmpi=1 now)

◆ lnobp

integer z_bpack_defs::z_hoption::lnobp

the bottom lnoBP levels are either Butterfly or LR, but not Bplus

◆ lr_blk_num

integer z_bpack_defs::z_hoption::lr_blk_num

sqrt of number of bottom-level subblocks in blocked LR

◆ lrlevel

integer z_bpack_defs::z_hoption::lrlevel

The top LRlevel level blocks are butterfly or Bplus.

◆ n_iter

integer z_bpack_defs::z_hoption::n_iter

maximum number of iterations for iterative solver

◆ nbundle

integer z_bpack_defs::z_hoption::nbundle

multiply Nbundle sets of vectors together in randomized schemes

◆ near_para

real(kind=8) z_bpack_defs::z_hoption::near_para

parameters used to determine whether two groups are nearfield or farfield pair

◆ nmin_leaf

integer z_bpack_defs::z_hoption::nmin_leaf

leaf sizes of BPACK tree

◆ nogeo

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

◆ pat_comp

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

◆ per_geo

integer z_bpack_defs::z_hoption::per_geo

1: the geomerical points are periodical. 0: the points are not periodical

◆ periods

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

◆ powiter

integer z_bpack_defs::z_hoption::powiter

order of power iteration in randomized LR

◆ precon

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,.

◆ rank0

integer z_bpack_defs::z_hoption::rank0

intial guess of ranks

◆ rankrate

real(kind=8) z_bpack_defs::z_hoption::rankrate

increasing rate of rank estimates per iteration

◆ reclr_leaf

integer z_bpack_defs::z_hoption::reclr_leaf

bottom level operations in a recursive merge-based LR compression: SVD, RRQR, ACA, BACA

◆ rmax

integer z_bpack_defs::z_hoption::rmax

maximum rank truncation

◆ sample_para

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

◆ sample_para_outer

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

◆ scale_factor

real(kind=8) z_bpack_defs::z_hoption::scale_factor

parameters used to scale matrix entries

◆ schulzhardstart

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

◆ schulzlevel

integer z_bpack_defs::z_hoption::schulzlevel

(I+B)^-1 is computed by schultz iteration for butterfly with more than schulzlevel levels

◆ schulzorder

integer z_bpack_defs::z_hoption::schulzorder

order (>=2) of schultz iteration

◆ schulzsplitlevel

integer z_bpack_defs::z_hoption::schulzsplitlevel

number of levels to split A for block-diagonal approximation

◆ tol_comp

real(kind=8) z_bpack_defs::z_hoption::tol_comp

matrix construction tolerance

◆ tol_itersol

real(kind=8) z_bpack_defs::z_hoption::tol_itersol

tolerance for iterative solvers

◆ tol_ls

real(kind=8) z_bpack_defs::z_hoption::tol_ls

tolerance in pseudo inverse

◆ tol_rand

real(kind=8) z_bpack_defs::z_hoption::tol_rand

tolerance for randomized contruction, mostly used in matrix inversion

◆ tol_rdetect

real(kind=8) z_bpack_defs::z_hoption::tol_rdetect

tolerance to detect numerical ranks

◆ touch_para

real(kind=8) z_bpack_defs::z_hoption::touch_para

parameters used to determine whether one patch is closer to seperator

◆ twolayeronly

integer z_bpack_defs::z_hoption::twolayeronly

restrict Bplus as Butterfly + LR

◆ use_zfp

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

◆ verbosity

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

◆ xyzsort

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)


The documentation for this type was generated from the following file: