|
| subroutine, public | hecmw_mf_numeric::hecmw_mf_numeric_init (graph, sym, tile, blr, eta, fct) |
| | Estimates of the factor and stack sizes from the symbolic structure and the work space; tile is the target tile size in DOFs. With blr and eta > 0 the cluster distance cache for the admissibility test is built from the graph, capped at eta (a serial pass over the symbolic structure, identical on every rank). More...
|
| |
| subroutine, public | hecmw_mf_numeric::hecmw_mf_numeric_finalize (fct) |
| |
| subroutine, public | hecmw_mf_numeric::hecmw_mf_numeric_admis_bcast (fct, root) |
| | Broadcast the admissibility cache from the rank that built it (the distributed driver builds the graph on the root only); bdptr is rebuilt from the per-front sizes. More...
|
| |
| subroutine, public | hecmw_mf_numeric::hecmw_mf_numeric_factor (hecMAT, sym, fct, ierr) |
| | Factor the matrix of hecMAT in the order of sym, in LDLt mode (lower part referenced) or in LU mode when the symmetric flag is off; the mode option overrides either way. ierr is 0 on success, the permuted DOF of a zero pivot (singular matrix), -1 when the block size of hecMAT does not match the structure, or -2 when the structure is not symmetric. More...
|
| |
| subroutine, public | hecmw_mf_numeric::hecmw_mf_numeric_factor_mpi (hecMAT, sym, map, fct, ierr) |
| | Factor the matrix with the supernodes distributed by map: every rank first factors its subtrees with the task-parallel code, then every rank of a rank set walks the upper fronts in ascending order. hecMAT may hold the matrix partially: a rank reads the rows of the own columns of its supernodes only, each block paired with its transposed partner, so a matrix reduced to those pairs (with the index arrays kept full length) factors bitwise like the replicated one. The assembly, the factorization and the storage of an upper front are distributed over its rank set by contribution row tiles (1D row distribution), the fully summed part staying with the master (the owner), which keeps the pivot sequence identical to the sequential factorization. MPI calls stay on the master thread outside the parallel regions because hecmw initializes MPI without a threading level. Sends are isend and are consumed within the phase of their front, so a rank blocked in a receive has already issued every send an earlier front needs, which makes the ascending walk deadlock free. Tags encode 16*supernode+kind, relying on a tag space larger than the MPI minimum of 32767, as every mainstream MPI provides. More...
|
| |
| subroutine, public | hecmw_mf_numeric::hecmw_mf_numeric_solve (sym, fct, b, x) |
| | x = A^-1 b with the factor; b and x are in the original DOF numbering. The forward solve works on the row DOFs (z, indexed by frow), the backward solve on the column DOFs (xx). A front reads the b entries of its own DOFs only; the forward result of the rows beyond its pivots is kept per supernode (dval) and added by the parent, mirroring the extend-add. More...
|
| |
| subroutine, public | hecmw_mf_numeric::hecmw_mf_numeric_solve_mpi (sym, map, fct, b, x) |
| | x = A^-1 b on the supernodes distributed by map; b and x are the replicated global vectors in the original DOF numbering. The solves of the upper fronts follow the 1D row distribution of the factorization: the master runs the fully summed sweeps, every tile owner applies its stored rows, and the forward contributions travel as row slices to the ranks holding the parent rows. In the backward substitution the running right hand side of a tile column travels along the tile owners in ascending order (a token chain), so the reduction keeps the sequential fold order and the solution stays bitwise identical to the sequential solve. The solved pivot values of the owned supernodes are summed over the ranks at the end, which is exact and order independent because every DOF is eliminated on exactly one rank. More...
|
| |
| integer(kind=8) function, public | hecmw_mf_numeric::hecmw_mf_numeric_front_words (fct, s) |
| | Stored panel words of supernode s held on this rank (test support). More...
|
| |
| subroutine, public | hecmw_mf_numeric::hecmw_mf_numeric_print (fct) |
| |