z_bpack_defs Module Reference

Data Types

type  z_acaquant
 **** information used for one ACA iteration More...
 
type  z_basisgroup
 **** cluster of points/indices More...
 
type  z_bdiag
 **** Structure holding block-diagonal approximations as the Schultz initial guess More...
 
type  z_block_ptr
 **** a derived type containing a pointer to a block More...
 
type  z_blockplus
 **** Bplus structure More...
 
type  z_blockplus_md
 **** Bplus structure More...
 
type  z_bmatrix
 
interface  z_BMatVec
 
type  z_butterfly_kerl
 **** one interior factor More...
 
type  z_butterfly_kerl_md
 **** one interior factor at level l (L: l=1,level_butterflyL. R: l=1:level_butterflyR) More...
 
type  z_butterfly_skel
 **** keep track of skeleton columns and rows for one butterfly level More...
 
type  z_butterfly_skel_md
 **** keep track of skeleton columns and rows for one butterfly level More...
 
type  z_butterfly_uv
 **** one outter most factor More...
 
type  z_butterfly_uv_md
 **** one outter most factor More...
 
type  z_butterfly_vec
 **** intermidate vectors for applying a butterfly More...
 
type  z_butterflyindex
 **** index set for one butterfly block More...
 
type  z_butterflymatrix
 **** one rank*rank butterfly block More...
 
interface  z_C_BMatVec
 interface of user-defined Block MatVec routine in C. More...
 
interface  z_C_Compressibility
 interface of user-defined distance compressibility routine in C. groupm,groupn represents groups in the permuted order More...
 
interface  z_C_Compressibility_MD
 interface of user-defined distance compressibility routine in C. groupm,groupn represents groups (multi-dimensional) in the permuted order More...
 
interface  z_C_Dist
 interface of user-defined distance computation routine in C. m,n represents indices in natural order More...
 
interface  z_C_HMatVec
 interface of user-defined HODLR/HODBF/H-LR/H-BF MatVec routine in C. More...
 
interface  z_C_HMatVec_MD
 interface of user-defined HODLR/HODBF/H-LR/H-BF MatVec (tensor) routine in C. More...
 
interface  z_C_Zelem
 interface of user-defined element evaluation routine in C. m,n represents indices in natural order More...
 
interface  z_C_Zelem_block
 interface of user-defined element extraction routine in C. allrows,allcols represents indices in natural order More...
 
interface  z_C_Zelem_MD
 interface of user-defined element evaluation routine in C. m,n represents indices in natural order More...
 
type  z_cascadingfactors
 **** One level in BPACK More...
 
type  z_commquant1d
 **** communication buffer for all to all communication More...
 
type  z_dat_pack
 **** data packet containing 3 integers and 1 complex(kind=8) More...
 
interface  z_F_Compressibility
 interface of user-defined compressibility routine in Fortran. groupm,groupn represents groups in the permuted order More...
 
interface  z_F_Dist
 interface of user-defined distance computation routine in Fortran. m,n represents indices in natural order More...
 
interface  z_F_HMatVec
 interface of user-defined HODLR/HODBF/H-LR/H-BF MatVec routine in Fortran. More...
 
interface  z_F_HMatVec_MD
 interface of user-defined HODLR/HODBF/H-LR/H-BF MatVec (tensor) routine in Fortran. More...
 
interface  z_F_Zelem
 interface of user-defined element evaluation routine in Fortran. m,n represents indices in natural order More...
 
interface  z_F_Zelem_block
 interface of user-defined element extraction routine in Fortran. allrows,allcols represents indices in natural order More...
 
interface  z_F_Zelem_MD
 interface of user-defined element evaluation routine in Fortran. m,n represents (multi-dimensional) indices in natural order More...
 
type  z_grid
 **** hierarchical process z_grid associated with one process node in the process tree (used for parallel recursive LR compression) More...
 
type  z_hmat
 **** Hmatrix structure More...
 
interface  z_HMatVec
 
interface  z_HMatVec_MD
 
type  z_hobf
 **** HODLR/HODBF structure More...
 
type  z_hoption
 **** BPACK solver options More...
 
type  z_hssbf
 **** HSS structure More...
 
type  z_hssbf_md
 **** HSS_MD structure More...
 
type  z_hstat
 **** statistics More...
 
type  z_iarray
 **** a derived type containing an integer array More...
 
type  z_intersect
 **** intersections of a block row and column More...
 
type  z_intersect_md
 **** subtensor of a full tensor More...
 
type  z_ipair
 *** a derived type for a pair of integers More...
 
type  z_kernelquant
 **** quantities related to specific matrix kernels More...
 
type  z_matrixblock
 **** butterfly or LR structure More...
 
type  z_matrixblock_md
 **** butterfly or LR structure in tensor format More...
 
type  z_mesh
 **** quantities related to geometries, meshes, unknowns and points More...
 
type  z_nil_md
 **** near-interaction z_list More...
 
type  z_nil_onelevel_md
 **** near-interaction z_list of all groups at one level More...
 
type  z_onelplus
 **** one layer in a Bplus More...
 
type  z_onelplus_md
 **** one layer in a Bplus More...
 
type  z_procgroup
 **** process groups/nodes in the process tree More...
 
type  z_proctree
 **** binary process tree More...
 
type  z_quant_bmat
 
type  z_randomblock
 **** intermidate vectors for applying a butterfly More...
 
type  z_schulz_operand
 **** Structure holding operand in Schulz iteration More...
 
type  z_svd_quant
 
type  z_vectorsblock
 **** input and output vectors for applying a Bplus at one level More...
 
type  z_vectorsblock_onel
 **** input and output vectors for applying a Bplus at all levels More...
 
type  z_vectorset
 **** a vector used to extract one element of a butterfly More...
 
interface  z_Zelem
 
interface  z_Zelem_block
 
type  z_zfpquant
 **** ZFP quantity (used for arrays of ZFP compressed data) More...
 

Functions/Subroutines

subroutine z_iarray_finalizer (lst)
 deallocate all entries of an z_iarray More...
 

Variables

integer, parameter bpack_major_version = 3
 **** the version numbers are automatically replaced with those defined in CMakeList.txt More...
 
integer, parameter bpack_minor_version = 2
 
integer, parameter bpack_patch_version = 0
 
real(kind=8), parameter bpack_pi = 4d0*atan(1d0)
 **** common parameters More...
 
complex(kind=8), parameter bpack_junit = (0d0, 1d0)
 
real(kind=8), parameter bpack_bigvalue = 1d300
 
integer, parameter bpack_bigint = 2147483647
 
real(kind=8), parameter bpack_safeunderflow = 1D-30
 
real(kind=8), parameter bpack_safeeps = 1D-14
 
complex(kind=8), parameter bpack_cone = 1d0
 
complex(kind=8), parameter bpack_czero = 0d0
 
integer, parameter main_id = 0
 Head MPI rank. More...
 
integer, parameter nbslpk = 32
 blacs/scalapack block size More...
 
integer, parameter rows_per_processor = 1
 depreciated More...
 
integer, parameter mpi_header = 11
 number of integers in the MPI header More...
 
integer, parameter index_header = 4
 number of integers in header of Butterfly_index_MPI More...
 
integer, parameter vec_oversample = 5
 number of extra vectors adding onto estimated rank in the randomized scheme More...
 
integer, parameter msg_chunk = 100000
 used to determine message tag and hence the massage size More...
 
integer, parameter ndim_max = 100
 maximum dimension of the inputs More...
 
integer, parameter nsample_min_md = 4
 minimum number of subsamples in MD construction, useful whenrank at previous level or leaf size is too small More...
 
real(kind=8), parameter bpack_cd = 299792458d0
 **** parameters for CEM More...
 
real(kind=8), parameter bpack_eps0 = 1d7/(4d0*BPACK_pi*BPACK_cd**2)
 free-space permittivity More...
 
real(kind=8), parameter bpack_mu0 = BPACK_pi*4d-7
 free-space permeability More...
 
real(kind=8), parameter bpack_gamma = 1.781072418d0
 BPACK_gamma constant. More...
 
real(kind=8), parameter bpack_impedence0 = sqrt(BPACK_mu0/BPACK_eps0)
 free-space wave impedance More...
 
integer, parameter direct = 1
 **** solver parameters More...
 
integer, parameter noprecon = 2
 use compressed BPACK as fast matvec More...
 
integer, parameter bpackprecon = 3
 use factored BPACK as preconditioner More...
 
integer, parameter lplusmax = 10
 
integer, parameter hodlr = 1
 use hodlr/hodbf solver More...
 
integer, parameter hmat = 2
 use H matrix (lr/bf) solver More...
 
integer, parameter hss = 3
 use hss_bf/shnbf solver More...
 
integer, parameter hss_md = 4
 use hss_bf_md/shn_bf_md solver More...
 
integer, parameter blr = 5
 use single-level matrix (lr/bf) solver More...
 
integer, parameter svd = 1
 **** construction parameters More...
 
integer, parameter rrqr = 2
 
integer, parameter aca = 3
 
integer, parameter baca = 4
 
integer, parameter bacanover = 5
 
integer, parameter ps = 6
 
integer, parameter acanmerge = 7
 
integer, parameter natural = 0
 natural order More...
 
integer, parameter ckd = 1
 cartesian kd tree More...
 
integer, parameter tm = 2
 cobble-like ordering More...
 
integer, parameter tm_gram = 3
 gram distance-based cobble-like ordering, the behaviour is undefined if matrix is not SPD, HPD, general symmetric or general hermitian More...
 
real(kind=8) time_tmp
 *** need to further work on the following: More...
 
real(kind=8) time_tmp1
 
real(kind=8) time_tmp2
 
real(kind=8) time_tmp3
 
real(kind=8) time_tmp4
 
real(kind=8) time_tmp5
 

Function/Subroutine Documentation

◆ z_iarray_finalizer()

subroutine z_bpack_defs::z_iarray_finalizer ( type(z_iarray lst)

deallocate all entries of an z_iarray

Variable Documentation

◆ aca

integer, parameter z_bpack_defs::aca = 3

◆ acanmerge

integer, parameter z_bpack_defs::acanmerge = 7

◆ baca

integer, parameter z_bpack_defs::baca = 4

◆ bacanover

integer, parameter z_bpack_defs::bacanover = 5

◆ blr

integer, parameter z_bpack_defs::blr = 5

use single-level matrix (lr/bf) solver

◆ bpack_bigint

integer, parameter z_bpack_defs::bpack_bigint = 2147483647

◆ bpack_bigvalue

real(kind=8), parameter z_bpack_defs::bpack_bigvalue = 1d300

◆ bpack_cd

real(kind=8), parameter z_bpack_defs::bpack_cd = 299792458d0

**** parameters for CEM

free-space speed of light

◆ bpack_cone

complex(kind=8), parameter z_bpack_defs::bpack_cone = 1d0

◆ bpack_czero

complex(kind=8), parameter z_bpack_defs::bpack_czero = 0d0

◆ bpack_eps0

real(kind=8), parameter z_bpack_defs::bpack_eps0 = 1d7/(4d0*BPACK_pi*BPACK_cd**2)

free-space permittivity

◆ bpack_gamma

real(kind=8), parameter z_bpack_defs::bpack_gamma = 1.781072418d0

BPACK_gamma constant.

◆ bpack_impedence0

real(kind=8), parameter z_bpack_defs::bpack_impedence0 = sqrt(BPACK_mu0/BPACK_eps0)

free-space wave impedance

◆ bpack_junit

complex(kind=8), parameter z_bpack_defs::bpack_junit = (0d0, 1d0)

◆ bpack_major_version

integer, parameter z_bpack_defs::bpack_major_version = 3

**** the version numbers are automatically replaced with those defined in CMakeList.txt

◆ bpack_minor_version

integer, parameter z_bpack_defs::bpack_minor_version = 2

◆ bpack_mu0

real(kind=8), parameter z_bpack_defs::bpack_mu0 = BPACK_pi*4d-7

free-space permeability

◆ bpack_patch_version

integer, parameter z_bpack_defs::bpack_patch_version = 0

◆ bpack_pi

real(kind=8), parameter z_bpack_defs::bpack_pi = 4d0*atan(1d0)

**** common parameters

◆ bpack_safeeps

real(kind=8), parameter z_bpack_defs::bpack_safeeps = 1D-14

◆ bpack_safeunderflow

real(kind=8), parameter z_bpack_defs::bpack_safeunderflow = 1D-30

◆ bpackprecon

integer, parameter z_bpack_defs::bpackprecon = 3

use factored BPACK as preconditioner

◆ ckd

integer, parameter z_bpack_defs::ckd = 1

cartesian kd tree

◆ direct

integer, parameter z_bpack_defs::direct = 1

**** solver parameters

use factored BPACK as direct solver

◆ hmat

integer, parameter z_bpack_defs::hmat = 2

use H matrix (lr/bf) solver

◆ hodlr

integer, parameter z_bpack_defs::hodlr = 1

use hodlr/hodbf solver

◆ hss

integer, parameter z_bpack_defs::hss = 3

use hss_bf/shnbf solver

◆ hss_md

integer, parameter z_bpack_defs::hss_md = 4

use hss_bf_md/shn_bf_md solver

◆ index_header

integer, parameter z_bpack_defs::index_header = 4

number of integers in header of Butterfly_index_MPI

◆ lplusmax

integer, parameter z_bpack_defs::lplusmax = 10

◆ main_id

integer, parameter z_bpack_defs::main_id = 0

Head MPI rank.

◆ mpi_header

integer, parameter z_bpack_defs::mpi_header = 11

number of integers in the MPI header

◆ msg_chunk

integer, parameter z_bpack_defs::msg_chunk = 100000

used to determine message tag and hence the massage size

◆ natural

integer, parameter z_bpack_defs::natural = 0

natural order

◆ nbslpk

integer, parameter z_bpack_defs::nbslpk = 32

blacs/scalapack block size

◆ ndim_max

integer, parameter z_bpack_defs::ndim_max = 100

maximum dimension of the inputs

◆ noprecon

integer, parameter z_bpack_defs::noprecon = 2

use compressed BPACK as fast matvec

◆ nsample_min_md

integer, parameter z_bpack_defs::nsample_min_md = 4

minimum number of subsamples in MD construction, useful whenrank at previous level or leaf size is too small

◆ ps

integer, parameter z_bpack_defs::ps = 6

◆ rows_per_processor

integer, parameter z_bpack_defs::rows_per_processor = 1

depreciated

◆ rrqr

integer, parameter z_bpack_defs::rrqr = 2

◆ svd

integer, parameter z_bpack_defs::svd = 1

**** construction parameters

◆ time_tmp

real(kind=8) z_bpack_defs::time_tmp

*** need to further work on the following:

◆ time_tmp1

real(kind=8) z_bpack_defs::time_tmp1

◆ time_tmp2

real(kind=8) z_bpack_defs::time_tmp2

◆ time_tmp3

real(kind=8) z_bpack_defs::time_tmp3

◆ time_tmp4

real(kind=8) z_bpack_defs::time_tmp4

◆ time_tmp5

real(kind=8) z_bpack_defs::time_tmp5

◆ tm

integer, parameter z_bpack_defs::tm = 2

cobble-like ordering

◆ tm_gram

integer, parameter z_bpack_defs::tm_gram = 3

gram distance-based cobble-like ordering, the behaviour is undefined if matrix is not SPD, HPD, general symmetric or general hermitian

◆ vec_oversample

integer, parameter z_bpack_defs::vec_oversample = 5

number of extra vectors adding onto estimated rank in the randomized scheme