/usr/include/smumps_struc.h is in libmumps-dev 4.9.2.dfsg-7build1.
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 | !
! This file is part of MUMPS 4.9.2, built on Thu Nov 5 07:05:08 UTC 2009
!
!
! 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) by CERFACS, ENSEEIHT-IRIT and RAL.
! Since this first public domain version in 1999, the developments are
! supported by the following institutions: CERFACS, CNRS, INPT(ENSEEIHT)-
! IRIT, and INRIA.
!
! Current development team includes Patrick Amestoy, Alfredo Buttari,
! Abdou Guermouche, Jean-Yves L'Excellent, Bora Ucar.
!
! 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 'smumps_root.h'
TYPE SMUMPS_STRUC
SEQUENCE
!
! This structure contains all parameters
! for the interface to the user, plus internal
! information
!
! *****************
! 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
REAL, DIMENSION(:), POINTER :: A
INTEGER, DIMENSION(:), POINTER :: IRN, JCN
REAL, DIMENSION(:), POINTER :: COLSCA, ROWSCA, pad0
!
! ------------------------------------
! Case of distributed assembled matrix
! matrix on entry:
! ------------------------------------
INTEGER NZ_loc, pad1
INTEGER, DIMENSION(:), POINTER :: IRN_loc, JCN_loc
REAL, DIMENSION(:), POINTER :: A_loc, pad2
!
! ----------------------------------------
! Unassembled input matrix: User interface
! ----------------------------------------
INTEGER NELT, pad3
INTEGER, DIMENSION(:), POINTER :: ELTPTR
INTEGER, DIMENSION(:), POINTER :: ELTVAR
REAL, 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
! -------------------------------------------------------
REAL, DIMENSION(:), POINTER :: RHS, REDRHS
REAL, DIMENSION(:), POINTER :: RHS_SPARSE
REAL, 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)
REAL COST_SUBTREES
REAL CNTL(15)
REAL RINFO(20)
REAL RINFOG(20)
! ---------------------------------------------------------
! Permutations computed during analysis:
! SYM_PERM: Symmetric permutation
! UNS_PERM: Column permutations (optionnal)
! ---------------------------------------------------------
INTEGER, DIMENSION(:), POINTER :: SYM_PERM, UNS_PERM
!
! -------------------------------------
! Case of distributed matrix on entry:
! SMUMPS potentially provides mapping
! -------------------------------------
INTEGER, DIMENSION(:), POINTER :: MAPPING
!
! -------------------------------
! Deficiency and null space basis
! -------------------------------
REAL, DIMENSION(:,:), POINTER :: NULL_SPACE
INTEGER Deficiency, pad6
! -----
! Schur
! -----
INTEGER NPROW, NPCOL, MBLOCK, NBLOCK
INTEGER SCHUR_MLOC, SCHUR_NLOC, SCHUR_LLD
INTEGER SIZE_SCHUR
INTEGER, DIMENSION(:), POINTER :: LISTVAR_SCHUR
REAL, DIMENSION(:), POINTER :: SCHUR
REAL, DIMENSION(:), POINTER :: SCHUR_CINTERFACE
! --------------
! 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
!
!
! **********************
! INTERNAL Working data
! *********************
INTEGER INST_Number
! For MPI
INTEGER COMM_NODES, MYID_NODES, COMM_LOAD
INTEGER MYID, NPROCS, NSLAVES
INTEGER ASS_IRECV
INTEGER, DIMENSION(:), POINTER :: POIDS
INTEGER LBUFR
INTEGER LBUFR_BYTES
INTEGER, DIMENSION(:), POINTER :: BUFR
! For analysis/facto/solve phases
INTEGER MAXIS1, pad7
INTEGER KEEP(500)
INTEGER*8 KEEP8(150)
! 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
! 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
REAL, 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
REAL, DIMENSION(:), POINTER :: DBLARR
! Element entry: internal data
INTEGER NELT_LOC, LELTVAR, NA_ELT, pad8
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
REAL, DIMENSION(:), POINTER :: RHSCOMP
! For C interface
! Info on the subtrees to be used during factorization
DOUBLE PRECISION, DIMENSION(:), POINTER :: MEM_SUBTREE
INTEGER, DIMENSION(:), POINTER :: MY_ROOT_SBTR
INTEGER, DIMENSION(:), POINTER :: MY_FIRST_LEAF
INTEGER, DIMENSION(:), POINTER :: MY_NB_LEAF
INTEGER, DIMENSION(:), POINTER :: DEPTH_FIRST
DOUBLE PRECISION, DIMENSION(:), POINTER :: COST_TRAV
INTEGER NBSA_LOCAL
INTEGER(8) :: MAX_SURF_MASTER
INTEGER :: LWK_USER
REAL, DIMENSION(:), POINTER :: WK_USER
! For simulating parallel out-of-core stack.
DOUBLE PRECISION, DIMENSION(:),POINTER ::CB_SON_SIZE
! 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
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
! Internal control array
REAL DKEEP(30)
! Array needed to manage additionnal candidate processor
INTEGER, DIMENSION(:,:), POINTER :: SUP_PROC
! ------------------------
! Root structure(internal)
! ------------------------
TYPE (SMUMPS_ROOT_STRUC) :: root
END TYPE SMUMPS_STRUC
|