/usr/include/dmumps_struc.h is in libmumps-dev 4.10.0.dfsg-4+b2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 | !
! This file is part of MUMPS 4.10.0, built on Tue May 10 12:56:32 UTC 2011
!
!
! This version of MUMPS is provided to you free of charge. It is public
! domain, based on public domain software developed during the Esprit IV
! European project PARASOL (1996-1999). Since this first public domain
! version in 1999, research and developments have been supported by the
! following institutions: CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT,
! INRIA, and University of Bordeaux.
!
! The MUMPS team at the moment of releasing this version includes
! Patrick Amestoy, Maurice Bremond, Alfredo Buttari, Abdou Guermouche,
! Guillaume Joslin, Jean-Yves L'Excellent, Francois-Henry Rouet, Bora
! Ucar and Clement Weisbecker.
!
! We are also grateful to Emmanuel Agullo, Caroline Bousquet, Indranil
! Chowdhury, Philippe Combes, Christophe Daniel, Iain Duff, Vincent Espirat,
! Aurelia Fevre, Jacko Koster, Stephane Pralet, Chiara Puglisi, Gregoire
! Richard, Tzvetomila Slavova, Miroslav Tuma and Christophe Voemel who
! have been contributing to this project.
!
! Up-to-date copies of the MUMPS package can be obtained
! from the Web pages:
! http://mumps.enseeiht.fr/ or http://graal.ens-lyon.fr/MUMPS
!
!
! THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
! EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
!
!
! User documentation of any code that uses this software can
! include this complete notice. You can acknowledge (using
! references [1] and [2]) the contribution of this package
! in any scientific publication dependent upon the use of the
! package. You shall use reasonable endeavours to notify
! the authors of the package of this publication.
!
! [1] P. R. Amestoy, I. S. Duff, J. Koster and J.-Y. L'Excellent,
! A fully asynchronous multifrontal solver using distributed dynamic
! scheduling, SIAM Journal of Matrix Analysis and Applications,
! Vol 23, No 1, pp 15-41 (2001).
!
! [2] P. R. Amestoy and A. Guermouche and J.-Y. L'Excellent and
! S. Pralet, Hybrid scheduling for the parallel solution of linear
! systems. Parallel Computing Vol 32 (2), pp 136-156 (2006).
!
INCLUDE 'dmumps_root.h'
TYPE DMUMPS_STRUC
SEQUENCE
!
! This structure contains all parameters
! for the interface to the user, plus internal
! information from the solver
!
! *****************
! INPUT PARAMETERS
! *****************
! -----------------
! MPI Communicator
! -----------------
INTEGER COMM
! ------------------
! Problem definition
! ------------------
! Solver (SYM=0 unsymmetric,SYM=1 symmetric Positive Definite,
! SYM=2 general symmetric)
! Type of parallelism (PAR=1 host working, PAR=0 host not working)
INTEGER SYM, PAR
INTEGER JOB
! --------------------
! Order of Input matrix
! --------------------
INTEGER N
!
! ----------------------------------------
! Assembled input matrix : User interface
! ----------------------------------------
INTEGER NZ
DOUBLE PRECISION, DIMENSION(:), POINTER :: A
INTEGER, DIMENSION(:), POINTER :: IRN, JCN
DOUBLE PRECISION, DIMENSION(:), POINTER :: COLSCA, ROWSCA, pad0
!
! ------------------------------------
! Case of distributed assembled matrix
! matrix on entry:
! ------------------------------------
INTEGER NZ_loc, pad1
INTEGER, DIMENSION(:), POINTER :: IRN_loc, JCN_loc
DOUBLE PRECISION, DIMENSION(:), POINTER :: A_loc, pad2
!
! ----------------------------------------
! Unassembled input matrix: User interface
! ----------------------------------------
INTEGER NELT, pad3
INTEGER, DIMENSION(:), POINTER :: ELTPTR
INTEGER, DIMENSION(:), POINTER :: ELTVAR
DOUBLE PRECISION, DIMENSION(:), POINTER :: A_ELT, pad4
!
! ---------------------------------------------
! Symmetric permutation :
! PERM_IN if given by user (optional)
! ---------------------------------------------
INTEGER, DIMENSION(:), POINTER :: PERM_IN
!
!
! ******************
! INPUT/OUTPUT data
! ******************
! --------------------------------------------------------
! RHS / SOL_loc
! -------------
! right-hand side and solution
! -------------------------------------------------------
DOUBLE PRECISION, DIMENSION(:), POINTER :: RHS, REDRHS
DOUBLE PRECISION, DIMENSION(:), POINTER :: RHS_SPARSE
DOUBLE PRECISION, DIMENSION(:), POINTER :: SOL_loc
INTEGER, DIMENSION(:), POINTER :: IRHS_SPARSE
INTEGER, DIMENSION(:), POINTER :: IRHS_PTR
INTEGER, DIMENSION(:), POINTER :: ISOL_loc
INTEGER LRHS, NRHS, NZ_RHS, LSOL_loc, LREDRHS
INTEGER pad5
! ----------------------------
! Control parameters,
! statistics and output data
! ---------------------------
INTEGER ICNTL(40)
INTEGER INFO(40)
INTEGER INFOG(40)
DOUBLE PRECISION COST_SUBTREES
DOUBLE PRECISION CNTL(15)
DOUBLE PRECISION RINFO(40)
DOUBLE PRECISION RINFOG(40)
! ---------------------------------------------------------
! Permutations computed during analysis:
! SYM_PERM: Symmetric permutation
! UNS_PERM: Column permutations (optionnal)
! ---------------------------------------------------------
INTEGER, DIMENSION(:), POINTER :: SYM_PERM, UNS_PERM
!
! -----
! Schur
! -----
INTEGER NPROW, NPCOL, MBLOCK, NBLOCK
INTEGER SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
INTEGER SIZE_SCHUR
DOUBLE PRECISION, DIMENSION(:), POINTER :: SCHUR
DOUBLE PRECISION, DIMENSION(:), POINTER :: SCHUR_CINTERFACE
INTEGER, DIMENSION(:), POINTER :: LISTVAR_SCHUR
! -------------------------------------
! Case of distributed matrix on entry:
! DMUMPS potentially provides mapping
! -------------------------------------
INTEGER, DIMENSION(:), POINTER :: MAPPING
! --------------
! Version number
! --------------
CHARACTER(LEN=14) VERSION_NUMBER
! -----------
! Out-of-core
! -----------
CHARACTER(LEN=255) :: OOC_TMPDIR
CHARACTER(LEN=63) :: OOC_PREFIX
! ------------------------------------------
! To save the matrix in matrix market format
! ------------------------------------------
CHARACTER(LEN=255) WRITE_PROBLEM
CHARACTER(LEN=5) :: pad8
!
!
! **********************
! INTERNAL Working data
! *********************
INTEGER(8) :: KEEP8(150), MAX_SURF_MASTER
INTEGER INST_Number
! For MPI
INTEGER COMM_NODES, MYID_NODES, COMM_LOAD
INTEGER MYID, NPROCS, NSLAVES
INTEGER ASS_IRECV
INTEGER LBUFR
INTEGER LBUFR_BYTES
INTEGER, DIMENSION(:), POINTER :: POIDS
INTEGER, DIMENSION(:), POINTER :: BUFR
! IS is used for the factors + workspace for contrib. blocks
INTEGER, DIMENSION(:), POINTER :: IS
! IS1 (maxis1) contains working arrays computed
! and used only during analysis
INTEGER, DIMENSION(:), POINTER :: IS1
! For analysis/facto/solve phases
INTEGER MAXIS1, Deficiency
INTEGER KEEP(500)
! The following data/arrays are computed during the analysis
! phase and used during the factorization and solve phases.
INTEGER LNA
INTEGER NBSA
INTEGER,POINTER,DIMENSION(:)::STEP, NE_STEPS, ND_STEPS
! Info for pruning tree
INTEGER,POINTER,DIMENSION(:)::Step2node
! ---------------------
INTEGER,POINTER,DIMENSION(:)::FRERE_STEPS, DAD_STEPS
INTEGER,POINTER,DIMENSION(:)::FILS, PTRAR, FRTPTR, FRTELT
INTEGER,POINTER,DIMENSION(:)::NA, PROCNODE_STEPS
! The two pointer arrays computed in facto and used by the solve
! (except the factors) are PTLUST_S and PTRFAC.
INTEGER, DIMENSION(:), POINTER :: PTLUST_S
INTEGER(8), DIMENSION(:), POINTER :: PTRFAC
! main real working arrays for factorization/solve phases
DOUBLE PRECISION, DIMENSION(:), POINTER :: S
! Information on mapping
INTEGER, DIMENSION(:), POINTER :: PROCNODE
! Input matrix ready for numerical assembly
! -arrowhead format in case of assembled matrix
! -element format otherwise
INTEGER, DIMENSION(:), POINTER :: INTARR
DOUBLE PRECISION, DIMENSION(:), POINTER :: DBLARR
! Element entry: internal data
INTEGER NELT_loc, LELTVAR, NA_ELT, pad11
INTEGER, DIMENSION(:), POINTER :: ELTPROC
! Candidates and node partitionning
INTEGER, DIMENSION(:,:), POINTER :: CANDIDATES
INTEGER, DIMENSION(:), POINTER :: ISTEP_TO_INIV2
INTEGER, DIMENSION(:), POINTER :: FUTURE_NIV2
INTEGER, DIMENSION(:,:), POINTER :: TAB_POS_IN_PERE
LOGICAL, DIMENSION(:), POINTER :: I_AM_CAND
! For heterogeneous architecture
INTEGER, DIMENSION(:), POINTER :: MEM_DIST
! Compressed RHS
INTEGER, DIMENSION(:), POINTER :: POSINRHSCOMP
DOUBLE PRECISION, DIMENSION(:), POINTER :: RHSCOMP
! Info on the subtrees to be used during factorization
DOUBLE PRECISION, DIMENSION(:), POINTER :: MEM_SUBTREE
DOUBLE PRECISION, DIMENSION(:), POINTER :: COST_TRAV
INTEGER, DIMENSION(:), POINTER :: MY_ROOT_SBTR
INTEGER, DIMENSION(:), POINTER :: MY_FIRST_LEAF
INTEGER, DIMENSION(:), POINTER :: MY_NB_LEAF
INTEGER, DIMENSION(:), POINTER :: DEPTH_FIRST
INTEGER, DIMENSION(:), POINTER :: DEPTH_FIRST_SEQ
INTEGER, DIMENSION(:), POINTER :: SBTR_ID
DOUBLE PRECISION, DIMENSION(:), POINTER :: WK_USER
INTEGER :: NBSA_LOCAL
INTEGER :: LWK_USER
! Internal control array
DOUBLE PRECISION DKEEP(30)
! For simulating parallel out-of-core stack.
DOUBLE PRECISION, DIMENSION(:),POINTER ::CB_SON_SIZE, pad12
! Instance number used/managed by the C/F77 interface
INTEGER INSTANCE_NUMBER
! OOC management data that must persist from factorization to solve.
INTEGER OOC_MAX_NB_NODES_FOR_ZONE
INTEGER, DIMENSION(:,:), POINTER :: OOC_INODE_SEQUENCE, pad13
INTEGER(8),DIMENSION(:,:), POINTER :: OOC_SIZE_OF_BLOCK
INTEGER(8), DIMENSION(:,:), POINTER :: OOC_VADDR
INTEGER,DIMENSION(:), POINTER :: OOC_TOTAL_NB_NODES
INTEGER,DIMENSION(:), POINTER :: OOC_NB_FILES
CHARACTER,DIMENSION(:,:), POINTER :: OOC_FILE_NAMES
INTEGER,DIMENSION(:), POINTER :: OOC_FILE_NAME_LENGTH
! Indices of nul pivots
INTEGER,DIMENSION(:), POINTER :: PIVNUL_LIST
! Array needed to manage additionnal candidate processor
INTEGER, DIMENSION(:,:), POINTER :: SUP_PROC, pad14
! ------------------------
! Root structure(internal)
! ------------------------
TYPE (DMUMPS_ROOT_STRUC) :: root
END TYPE DMUMPS_STRUC
|