![]() |
FrontISTR
6.0.0
Large-scale structural analysis program with finit element method
|
Go to the source code of this file.
Modules | |
| module | hecmw_mf_kernel |
| Dense kernels of the multifrontal solver, symmetric (LDLt) and unsymmetric (LU) mode. | |
Functions/Subroutines | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_ldlt (n, lda, a, zero, info) |
| In place LDLt of the lower triangle of a(n,n) without pivoting; info is the index of the first pivot whose magnitude is not above zero, 0 on success. More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_trsm (m, n, ldl, l, lda, a) |
| a(m,n) <- a * L^-T * D^-1 with L, D taken from the factored tile l(n,n) (1x1 pivots only). More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_panel_nopiv (m, n, lda, a, u, zero, info) |
| Factor the panel a(m,n) (leading n x n block LDLt, rows below by the panel solve) without pivoting and check the threshold u afterwards: info is 0 when every pivot magnitude is above zero and every entry of L is bounded by 1/u, otherwise the first column that fails. More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_panel_piv (m, n, lda, a, blk, u, alpha, zero, allow_delay, wk, npiv, perm, ptype, dsub, nswap, n2x2, info) |
| Factor the panel a(m,n) with 1x1 and 2x2 pivots chosen among its n columns. A column is accepted as a 1x1 pivot when it satisfies the threshold u against the whole column; else a partner is searched, first among the columns of the same block (blk), then among the others, and the Bunch-Kaufman rule with alpha decides between a 1x1 pivot on the partner and a 2x2 pivot, the latter accepted when the entries of L stay bounded by 1/u. Columns without an acceptable pivot are moved to the end of the panel (allow_delay) or stop the factorization (info = column). On return the first npiv columns are factored, perm(j) is the original column at position j, and blk is permuted alike. wk holds 2*m words. More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_scale (m, n, ldl, l, ptype, dsub, lda, a, w) |
| w(m,n) <- a * D with the block diagonal D of the factored tile l(n,n). More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_gemm (m, n, k, ldw, w, ldb, b, ldc, c) |
| c(m,n) <- c - w(m,k) * b(n,k)^T More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_trsv (n, ldl, l, x) |
| x <- L^-1 x with the unit lower triangle of the tile l(n,n). More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_trsv_t (n, ldl, l, x) |
| x <- L^-T x with the unit lower triangle of the tile l(n,n). More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_dsolve (n, ldl, l, ptype, dsub, x) |
| x <- D^-1 x with the block diagonal D of the factored tile l(n,n). More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_gemv (m, n, lda, a, x, y) |
| y(m) <- y - a(m,n) * x(n) More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_gemv_t (m, n, lda, a, x, y) |
| y(n) <- y - a(m,n)^T * x(m) More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_lu (n, lda, a, ldb, b, zero, info) |
| In place LU of the n x n block held in a (diagonal and below) and b (above, transposed) without pivoting; info is the index of the first pivot whose magnitude is not above zero, 0 on success. More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_trsm_rt (m, n, ldt, t, unit, lda, a) |
| a(m,n) <- a * T^-T with the lower triangle of t(n,n), unit diagonal when unit. More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_panel_lu_nopiv (m, n, lda, a, ldb, b, u, zero, info) |
| LU of the panel a(m,n), b(m,n) (leading n x n block, rows below by the panel solves) without pivoting and the threshold check afterwards, as panel_nopiv. The diagonal of b receives the diagonal of U. More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_panel_lu_piv (m, n, lda, a, ldb, b, blk, blkr, u, zero, allow_delay, npiv, permc, permr, nswap, info) |
| LU of the panel a(m,n), b(m,n) with threshold partial pivoting among its n rows: column p takes the row of largest magnitude among the rows of the same block (blkr against blk(p)), else among the other panel rows, when it reaches u times the largest magnitude of the whole column. Rows are exchanged, columns are not. Columns without an acceptable pivot are moved with their rows to the end of the panel (allow_delay) or stop the factorization (info = column). On return the first npiv columns are factored, permc(j) and permr(j) are the original column and row at position j, and blk, blkr are permuted alike. More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_usolve (n, ldl, l, ldu, ut, x) |
| x <- U^-1 x with the diagonal of U on the diagonal of l(n,n) and its strictly upper part transposed in the strictly lower part of ut(n,n). More... | |
| logical function, public | hecmw_mf_kernel::hecmw_mf_kernel_blr_available () |
| Whether the BLR compression is available (LAPACK build). More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_compress (m, n, lda, a, eps, ldv, v, rank, rcap) |
| Truncated rank revealing QR of a(m,n) with the truncation |R(k,k)| <= eps |R(1,1)|: on success the leading rank columns of a hold U and v(n,rank) holds V with a ~ U V^T. rank is -1, with a destroyed, when the low rank form would not take fewer than m*n words (the caller keeps its full rank copy) or without LAPACK. The column pivoted Householder QR stops right at the truncation or at the word bound, so the cost is O(m*n*rank) where dgeqp3 pays the full decomposition. The pivot column is selected by downdated norms with the dgeqp3 recomputation guard, but the truncation is decided on the freshly computed norm so a stale estimate cannot end the sweep early. rcap tightens the word bound: the sweep gives up (rank = -1) beyond min(rlim, rcap). The pivoted sweep with the downdated column norms is adapted from LAPACK's dlaqp2 (with the norm recomputation guard of LAPACK Working Note 176) and the explicit formation of the Q columns follows dorg2r. LAPACK is distributed under the modified BSD license: More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_mult_nn (m, n, k, lda, a, ldb, b, ldc, c) |
| c(m,n) <- a(m,k) * b(k,n) More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_mult_tn (m, n, k, lda, a, ldb, b, ldc, c) |
| c(m,n) <- a(k,m)^T * b(k,n) More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_mult_tv (m, n, lda, a, x, y) |
| y(n) <- a(m,n)^T * x(m) More... | |
| subroutine, public | hecmw_mf_kernel::hecmw_mf_kernel_scale_rows (n, r, ldl, l, ptype, dsub, ldv, v, ldw, w) |
| w(n,r) <- D * v(n,r) with the block diagonal D of the factored tile l(n,n). More... | |