Actual source code: petscmat.h
1: !
2: !
3: ! Include file for Fortran use of the Mat package in PETSc
4: !
5: #include finclude/petscmatdef.h
7: !
8: ! Flag for matrix assembly
9: !
10: PetscEnum MAT_FLUSH_ASSEMBLY
11: PetscEnum MAT_FINAL_ASSEMBLY
13: parameter(MAT_FLUSH_ASSEMBLY=1,MAT_FINAL_ASSEMBLY=0)
14: !
15: !
16: !
17: PetscEnum MAT_FACTOR_NONE
18: PetscEnum MAT_FACTOR_LU
19: PetscEnum MAT_FACTOR_CHOLESKY
20: PetscEnum MAT_FACTOR_ILU
21: PetscEnum MAT_FACTOR_ICC
23: parameter(MAT_FACTOR_NONE=0,MAT_FACTOR_LU=1)
24: parameter(MAT_FACTOR_CHOLESKY=2,MAT_FACTOR_ILU=3)
25: parameter(MAT_FACTOR_ICC=4)
26:
27: !
28: ! Matrix options; must match those in include/petscmat.h
29: !
30: PetscEnum MAT_ROW_ORIENTED
31: PetscEnum MAT_NEW_NONZERO_LOCATIONS
32: PetscEnum MAT_SYMMETRIC
33: PetscEnum MAT_STRUCTURALLY_SYMMETRIC
34: PetscEnum MAT_NEW_DIAGONALS
35: PetscEnum MAT_IGNORE_OFF_PROC_ENTRIES
36: PetscEnum MAT_NEW_NONZERO_LOCATION_ERR
37: PetscEnum MAT_NEW_NONZERO_ALLOCATION_ERR
38: PetscEnum MAT_USE_HASH_TABLE
39: PetscEnum MAT_KEEP_ZEROED_ROWS
40: PetscEnum MAT_IGNORE_ZERO_ENTRIES
41: PetscEnum MAT_USE_INODES
42: PetscEnum MAT_HERMITIAN
43: PetscEnum MAT_SYMMETRY_ETERNAL
44: PetscEnum MAT_USE_COMPRESSEDROW
45: PetscEnum MAT_IGNORE_LOWER_TRIANGULAR
46: PetscEnum MAT_ERROR_LOWER_TRIANGULAR
47: PetscEnum MAT_GETROW_UPPERTRIANGULAR
48: PetscEnum MAT_UNUSED_NONZERO_LOCATION_ERR
50: parameter (MAT_ROW_ORIENTED=0)
51: parameter (MAT_NEW_NONZERO_LOCATIONS=1)
52: parameter (MAT_SYMMETRIC=2,MAT_STRUCTURALLY_SYMMETRIC=3)
53: parameter (MAT_NEW_DIAGONALS=4)
54: parameter (MAT_IGNORE_OFF_PROC_ENTRIES=5)
55: parameter (MAT_NEW_NONZERO_LOCATION_ERR=6)
56: parameter (MAT_NEW_NONZERO_ALLOCATION_ERR=7)
57: parameter (MAT_USE_HASH_TABLE=8)
58: parameter (MAT_KEEP_ZEROED_ROWS=9)
59: parameter (MAT_IGNORE_ZERO_ENTRIES=10)
60: parameter (MAT_USE_INODES=11)
61: parameter (MAT_HERMITIAN=12)
62: parameter (MAT_SYMMETRY_ETERNAL=13)
63: parameter (MAT_USE_COMPRESSEDROW=14)
64: parameter (MAT_IGNORE_LOWER_TRIANGULAR=15)
65: parameter (MAT_ERROR_LOWER_TRIANGULAR=16)
66: parameter (MAT_GETROW_UPPERTRIANGULAR=17)
67: parameter (MAT_UNUSED_NONZERO_LOCATION_ERR=18)
69:
70: !
71: ! MatDuplicateOption
72: !
73: PetscEnum MAT_DO_NOT_COPY_VALUES
74: PetscEnum MAT_COPY_VALUES
75: parameter (MAT_DO_NOT_COPY_VALUES=0,MAT_COPY_VALUES=1)
76: !
77: ! Flags for PCSetOperators()
78: !
79: PetscEnum SAME_NONZERO_PATTERN
80: PetscEnum DIFFERENT_NONZERO_PATTERN
81: PetscEnum SAME_PRECONDITIONER
83: parameter (SAME_NONZERO_PATTERN = 0,DIFFERENT_NONZERO_PATTERN = 1)
84: parameter (SAME_PRECONDITIONER = 2)
86: !
87: ! Note: MAT_INFO_SIZE must equal # elements in MatInfo structure
88: ! (See petsc/include/petscmat.h)
89: !
90: PetscEnum MAT_INFO_SIZE
92: parameter (MAT_INFO_SIZE=10)
94: PetscEnum MAT_INFO_BLOCK_SIZE
95: PetscEnum MAT_INFO_NZ_ALLOCATED
96: PetscEnum MAT_INFO_NZ_USED
97: PetscEnum MAT_INFO_NZ_UNNEEDED
98: PetscEnum MAT_INFO_MEMORY
99: PetscEnum MAT_INFO_ASSEMBLIES
100: PetscEnum MAT_INFO_MALLOCS
101: PetscEnum MAT_INFO_FILL_RATIO_GIVEN
102: PetscEnum MAT_INFO_FILL_RATIO_NEEDED
103: PetscEnum MAT_INFO_FACTOR_MALLOCS
105: parameter (MAT_INFO_BLOCK_SIZE=1,MAT_INFO_NZ_ALLOCATED=2)
106: parameter (MAT_INFO_NZ_USED=3,MAT_INFO_NZ_UNNEEDED=4)
107: parameter (MAT_INFO_MEMORY=5,MAT_INFO_ASSEMBLIES=6)
108: parameter (MAT_INFO_MALLOCS=7,MAT_INFO_FILL_RATIO_GIVEN=8)
109: parameter (MAT_INFO_FILL_RATIO_NEEDED=9)
110: parameter (MAT_INFO_FACTOR_MALLOCS=10)
111: !
112: ! MatReuse
113: !
114: PetscEnum MAT_INITIAL_MATRIX
115: PetscEnum MAT_REUSE_MATRIX
117: parameter (MAT_INITIAL_MATRIX=0,MAT_REUSE_MATRIX=1)
119: !
120: ! MatInfoType
121: !
122: PetscEnum MAT_LOCAL
123: PetscEnum MAT_GLOBAL_MAX
124: PetscEnum MAT_GLOBAL_SUM
126: parameter (MAT_LOCAL=1,MAT_GLOBAL_MAX=2,MAT_GLOBAL_SUM=3)
128: !
129: ! MatCompositeType
130: !
131: PetscEnum MAT_COMPOSITE_ADDITIVE
132: PetscEnum MAT_COMPOSITE_MULTIPLICATIVE
134: parameter (MAT_COMPOSITE_ADDITIVE = 0)
135: parameter (MAT_COMPOSITE_MULTIPLICATIVE = 1)
136: !
137: !
138: ! Note: MAT_FACTORINFO_SIZE must equal # elements in MatFactorInfo structure
139: ! (See petsc/include/petscmat.h)
140: !
141: PetscEnum MAT_FACTORINFO_SIZE
143: parameter (MAT_FACTORINFO_SIZE=11)
145: PetscEnum MAT_FACTORINFO_LEVELS
146: PetscEnum MAT_FACTORINFO_FILL
147: PetscEnum MAT_FACTORINFO_DIAGONAL_FILL
148: PetscEnum MAT_FACTORINFO_DT
149: PetscEnum MAT_FACTORINFO_DTCOL
150: PetscEnum MAT_FACTORINFO_DTCOUNT
151: PetscEnum MAT_FACTORINFO_DAMPING
152: PetscEnum MAT_FACTORINFO_SHIFT
153: PetscEnum MAT_FACTORINFO_ZERO_PIVOT
154: PetscEnum MAT_FACTORINFO_PIVOT_IN_BLOCKS
156: parameter (MAT_FACTORINFO_DAMPING = 1)
157: parameter (MAT_FACTORINFO_SHIFT = 2)
158: parameter (MAT_FACTORINFO_DIAGONAL_FILL = 3)
159: parameter (MAT_FACTORINFO_DT = 4)
160: parameter (MAT_FACTORINFO_DTCOL = 5)
161: parameter (MAT_FACTORINFO_DTCOUNT = 6)
162: parameter (MAT_FACTORINFO_LEVELS = 7)
163: parameter (MAT_FACTORINFO_FILL = 8)
164: parameter (MAT_FACTORINFO_PIVOT_IN_BLOCKS = 9)
165: parameter (MAT_FACTORINFO_ZERO_PIVOT = 10)
168: !
169: ! Options for SOR and SSOR
170: ! MatSorType may be bitwise ORd together, so do not change the numbers
171: !
172: PetscEnum SOR_FORWARD_SWEEP
173: PetscEnum SOR_BACKWARD_SWEEP
174: PetscEnum SOR_SYMMETRIC_SWEEP
175: PetscEnum SOR_LOCAL_FORWARD_SWEEP
176: PetscEnum SOR_LOCAL_BACKWARD_SWEEP
177: PetscEnum SOR_LOCAL_SYMMETRIC_SWEEP
178: PetscEnum SOR_ZERO_INITIAL_GUESS
179: PetscEnum SOR_EISENSTAT
180: PetscEnum SOR_APPLY_UPPER
181: PetscEnum SOR_APPLY_LOWER
183: parameter (SOR_FORWARD_SWEEP=1,SOR_BACKWARD_SWEEP=2)
184: parameter (SOR_SYMMETRIC_SWEEP=3,SOR_LOCAL_FORWARD_SWEEP=4)
185: parameter (SOR_LOCAL_BACKWARD_SWEEP=8)
186: parameter (SOR_LOCAL_SYMMETRIC_SWEEP=12)
187: parameter (SOR_ZERO_INITIAL_GUESS=16,SOR_EISENSTAT=32)
188: parameter (SOR_APPLY_UPPER=64,SOR_APPLY_LOWER=128)
189: !
190: ! MatOperation
191: !
192: PetscEnum MATOP_SET_VALUES
193: PetscEnum MATOP_GET_ROW
194: PetscEnum MATOP_RESTORE_ROW
195: PetscEnum MATOP_MULT
196: PetscEnum MATOP_MULT_ADD
197: PetscEnum MATOP_MULT_TRANSPOSE
198: PetscEnum MATOP_MULT_TRANSPOSE_ADD
199: PetscEnum MATOP_SOLVE
200: PetscEnum MATOP_SOLVE_ADD
201: PetscEnum MATOP_SOLVE_TRANSPOSE
202: PetscEnum MATOP_SOLVE_TRANSPOSE_ADD
203: PetscEnum MATOP_LUFACTOR
204: PetscEnum MATOP_CHOLESKYFACTOR
205: PetscEnum MATOP_RELAX
206: PetscEnum MATOP_TRANSPOSE
207: PetscEnum MATOP_GETINFO
208: PetscEnum MATOP_EQUAL
209: PetscEnum MATOP_GET_DIAGONAL
210: PetscEnum MATOP_DIAGONAL_SCALE
211: PetscEnum MATOP_NORM
212: PetscEnum MATOP_ASSEMBLY_BEGIN
213: PetscEnum MATOP_ASSEMBLY_END
214: PetscEnum MATOP_COMPRESS
215: PetscEnum MATOP_SET_OPTION
216: PetscEnum MATOP_ZERO_ENTRIES
217: PetscEnum MATOP_ZERO_ROWS
218: PetscEnum MATOP_LUFACTOR_SYMBOLIC
219: PetscEnum MATOP_LUFACTOR_NUMERIC
220: PetscEnum MATOP_CHOLESKY_FACTOR_SYMBOLIC
221: PetscEnum MATOP_CHOLESKY_FACTOR_NUMERIC
222: PetscEnum MATOP_SETUP_PREALLOCATION
223: PetscEnum MATOP_ILUFACTOR_SYMBOLIC
224: PetscEnum MATOP_ICCFACTOR_SYMBOLIC
225: PetscEnum MATOP_GET_ARRAY
226: PetscEnum MATOP_RESTORE_ARRAY
228: PetscEnum MATOP_DUPLICATE
229: PetscEnum MATOP_FORWARD_SOLVE
230: PetscEnum MATOP_BACKWARD_SOLVE
231: PetscEnum MATOP_ILUFACTOR
232: PetscEnum MATOP_ICCFACTOR
233: PetscEnum MATOP_AXPY
234: PetscEnum MATOP_GET_SUBMATRICES
235: PetscEnum MATOP_INCREASE_OVERLAP
236: PetscEnum MATOP_GET_VALUES
237: PetscEnum MATOP_COPY
238: PetscEnum MATOP_GET_ROW_MAX
239: PetscEnum MATOP_SCALE
240: PetscEnum MATOP_SHIFT
241: PetscEnum MATOP_DIAGONAL_SHIFT
242: PetscEnum MATOP_ILUDT_FACTOR
243: PetscEnum MATOP_SET_BLOCK_SIZE
245: PetscEnum MATOP_GET_ROW_IJ
246: PetscEnum MATOP_RESTORE_ROW_IJ
247: PetscEnum MATOP_GET_COLUMN_IJ
248: PetscEnum MATOP_RESTORE_COLUMN_IJ
249: PetscEnum MATOP_FDCOLORING_CREATE
250: PetscEnum MATOP_COLORING_PATCH
251: PetscEnum MATOP_SET_UNFACTORED
252: PetscEnum MATOP_PERMUTE
253: PetscEnum MATOP_SET_VALUES_BLOCKED
254: PetscEnum MATOP_GET_SUBMATRIX
255: PetscEnum MATOP_DESTROY
256: PetscEnum MATOP_VIEW
257: PetscEnum MATOP_CONVERT_FROM
258: PetscEnum MATOP_USE_SCALED_FORM
259: PetscEnum MATOP_SCALE_SYSTEM
260: PetscEnum MATOP_UNSCALE_SYSTEM
261: PetscEnum MATOP_SET_LOCAL_TO_GLOBAL_MAP
262: PetscEnum MATOP_SET_VALUES_LOCAL
263: PetscEnum MATOP_ZERO_ROWS_LOCAL
264: PetscEnum MATOP_GET_ROW_MAX_ABS
265: PetscEnum MATOP_GET_ROW_MIN_ABS
266: PetscEnum MATOP_CONVERT
267: PetscEnum MATOP_SET_COLORING
268: PetscEnum MATOP_SET_VALUES_ADIC
269: PetscEnum MATOP_SET_VALUES_ADIFOR
270: PetscEnum MATOP_FD_COLORING_APPLY
271: PetscEnum MATOP_SET_FROM_OPTIONS
272: PetscEnum MATOP_MULT_CON
273: PetscEnum MATOP_MULT_TRANSPOSE_CON
274: PetscEnum MATOP_PERMUTE_SPARSIFY
275: PetscEnum MATOP_MULT_MULTIPLE
276: PetscEnum MATOP_SOLVE_MULTIPLE
277: PetscEnum MATOP_GET_INERTIA
278: PetscEnum MATOP_LOAD
279: PetscEnum MATOP_IS_SYMMETRIC
280: PetscEnum MATOP_IS_HERMITIAN
281: PetscEnum MATOP_IS_STRUCTURALLY_SYMMETRIC
282: PetscEnum MATOP_PB_RELAX
283: PetscEnum MATOP_GET_VECS
284: PetscEnum MATOP_MAT_MULT
285: PetscEnum MATOP_MAT_MULT_SYMBOLIC
286: PetscEnum MATOP_MAT_MULT_NUMERIC
287: PetscEnum MATOP_PTAP
288: PetscEnum MATOP_PTAP_SYMBOLIC
289: PetscEnum MATOP_PTAP_NUMERIC
290: PetscEnum MATOP_MAT_MULT_TRANSPOSE
291: PetscEnum MATOP_MAT_MULT_TRANSPOSE_SYM
292: PetscEnum MATOP_MAT_MULT_TRANSPOSE_NUM
293: PetscEnum MATOP_PTAP_SYMBOLIC_SEQAIJ
294: PetscEnum MATOP_PTAP_NUMERIC_SEQAIJ
295: PetscEnum MATOP_PTAP_SYMBOLIC_MPIAIJ
296: PetscEnum MATOP_PTAP_NUMERIC_MPIAIJ
297: PetscEnum MATOP_CONJUGATE
298: PetscEnum MATOP_SET_SIZES
299: PetscEnum MATOP_SET_VALUES_ROW
300: PetscEnum MATOP_REAL_PART
301: PetscEnum MATOP_IMAG_PART
302: PetscEnum MATOP_GET_ROW_UTRIANGULAR
303: PetscEnum MATOP_RESTORE_ROW_UTRIANGULAR
304: PetscEnum MATOP_MATSOLVE
305: PetscEnum MATOP_GET_REDUNDANTMATRIX
306: PetscEnum MATOP_GET_ROW_MIN
307: PetscEnum MATOP_GET_COLUMN_VEC
308: PetscEnum MATOP_MISSING_DIAGONAL
309: PetscEnum MATOP_MATGETSEQNONZEROSTRUCTURE
310: PetscEnum MATOP_DESTROY_SOLVER
311:
312: parameter(MATOP_SET_VALUES=0)
313: parameter(MATOP_GET_ROW=1)
314: parameter(MATOP_RESTORE_ROW=2)
315: parameter(MATOP_MULT=3)
316: parameter(MATOP_MULT_ADD=4)
317: parameter(MATOP_MULT_TRANSPOSE=5)
318: parameter(MATOP_MULT_TRANSPOSE_ADD=6)
319: parameter(MATOP_SOLVE=7)
320: parameter(MATOP_SOLVE_ADD=8)
321: parameter(MATOP_SOLVE_TRANSPOSE=9)
322: parameter(MATOP_SOLVE_TRANSPOSE_ADD=10)
323: parameter(MATOP_LUFACTOR=11)
324: parameter(MATOP_CHOLESKYFACTOR=12)
325: parameter(MATOP_RELAX=13)
326: parameter(MATOP_TRANSPOSE=14)
327: parameter(MATOP_GETINFO=15)
328: parameter(MATOP_EQUAL=16)
329: parameter(MATOP_GET_DIAGONAL=17)
330: parameter(MATOP_DIAGONAL_SCALE=18)
331: parameter(MATOP_NORM=19)
332: parameter(MATOP_ASSEMBLY_BEGIN=20)
333: parameter(MATOP_ASSEMBLY_END=21)
334: parameter(MATOP_COMPRESS=22)
335: parameter(MATOP_SET_OPTION=23)
336: parameter(MATOP_ZERO_ENTRIES=24)
337: parameter(MATOP_ZERO_ROWS=25)
338: parameter(MATOP_LUFACTOR_SYMBOLIC=26)
339: parameter(MATOP_LUFACTOR_NUMERIC=27)
340: parameter(MATOP_CHOLESKY_FACTOR_SYMBOLIC=28)
341: parameter(MATOP_CHOLESKY_FACTOR_NUMERIC=29)
342: parameter(MATOP_SETUP_PREALLOCATION=30)
343: parameter(MATOP_ILUFACTOR_SYMBOLIC=31)
344: parameter(MATOP_ICCFACTOR_SYMBOLIC=32)
345: parameter(MATOP_GET_ARRAY=33)
346: parameter(MATOP_RESTORE_ARRAY=34)
347: parameter(MATOP_DUPLICATE=35)
348: parameter(MATOP_FORWARD_SOLVE=36)
349: parameter(MATOP_BACKWARD_SOLVE=37)
350: parameter(MATOP_ILUFACTOR=38)
351: parameter(MATOP_ICCFACTOR=39)
352: parameter(MATOP_AXPY=40)
353: parameter(MATOP_GET_SUBMATRICES=41)
354: parameter(MATOP_INCREASE_OVERLAP=42)
355: parameter(MATOP_GET_VALUES=43)
356: parameter(MATOP_COPY=44)
357: parameter(MATOP_GET_ROW_MAX=45)
358: parameter(MATOP_SCALE=46)
359: parameter(MATOP_SHIFT=47)
360: parameter(MATOP_DIAGONAL_SHIFT=48)
361: parameter(MATOP_ILUDT_FACTOR=49)
362: parameter(MATOP_SET_BLOCK_SIZE=50)
363: parameter(MATOP_GET_ROW_IJ=51)
364: parameter(MATOP_RESTORE_ROW_IJ=52)
365: parameter(MATOP_GET_COLUMN_IJ=53)
366: parameter(MATOP_RESTORE_COLUMN_IJ=54)
367: parameter(MATOP_FDCOLORING_CREATE=55)
368: parameter(MATOP_COLORING_PATCH=56)
369: parameter(MATOP_SET_UNFACTORED=57)
370: parameter(MATOP_PERMUTE=58)
371: parameter(MATOP_SET_VALUES_BLOCKED=59)
372: parameter(MATOP_GET_SUBMATRIX=60)
373: parameter(MATOP_DESTROY=61)
374: parameter(MATOP_VIEW=62)
375: parameter(MATOP_CONVERT_FROM=63)
376: parameter(MATOP_USE_SCALED_FORM=64)
377: parameter(MATOP_SCALE_SYSTEM=65)
378: parameter(MATOP_UNSCALE_SYSTEM=66)
379: parameter(MATOP_SET_LOCAL_TO_GLOBAL_MAP=67)
380: parameter(MATOP_SET_VALUES_LOCAL=68)
381: parameter(MATOP_ZERO_ROWS_LOCAL=69)
382: parameter(MATOP_GET_ROW_MAX_ABS=70)
383: parameter(MATOP_GET_ROW_MIN_ABS=71)
384: parameter(MATOP_CONVERT=72)
385: parameter(MATOP_SET_COLORING=73)
386: parameter(MATOP_SET_VALUES_ADIC=74)
387: parameter(MATOP_SET_VALUES_ADIFOR=75)
388: parameter(MATOP_FD_COLORING_APPLY=76)
389: parameter(MATOP_SET_FROM_OPTIONS=77)
390: parameter(MATOP_MULT_CON=78)
391: parameter(MATOP_MULT_TRANSPOSE_CON=79)
392: parameter(MATOP_PERMUTE_SPARSIFY=80)
393: parameter(MATOP_MULT_MULTIPLE=81)
394: parameter(MATOP_SOLVE_MULTIPLE=82)
395: parameter(MATOP_GET_INERTIA=83)
396: parameter(MATOP_LOAD=84)
397: parameter(MATOP_IS_SYMMETRIC=85)
398: parameter(MATOP_IS_HERMITIAN=86)
399: parameter(MATOP_IS_STRUCTURALLY_SYMMETRIC=87)
400: parameter(MATOP_PB_RELAX=88)
401: parameter(MATOP_GET_VECS=89)
402: parameter(MATOP_MAT_MULT=90)
403: parameter(MATOP_MAT_MULT_SYMBOLIC=91)
404: parameter(MATOP_MAT_MULT_NUMERIC=92)
405: parameter(MATOP_PTAP=93)
406: parameter(MATOP_PTAP_SYMBOLIC=94)
407: parameter(MATOP_PTAP_NUMERIC=95)
408: parameter(MATOP_MAT_MULT_TRANSPOSE=96)
409: parameter(MATOP_MAT_MULT_TRANSPOSE_SYM=97)
410: parameter(MATOP_MAT_MULT_TRANSPOSE_NUM=98)
411: parameter(MATOP_PTAP_SYMBOLIC_SEQAIJ=99)
412: parameter(MATOP_PTAP_NUMERIC_SEQAIJ=100)
413: parameter(MATOP_PTAP_SYMBOLIC_MPIAIJ=101)
414: parameter(MATOP_PTAP_NUMERIC_MPIAIJ=102)
415: parameter(MATOP_CONJUGATE=103)
416: parameter(MATOP_SET_SIZES=104)
417: parameter(MATOP_SET_VALUES_ROW=105)
418: parameter(MATOP_REAL_PART=106)
419: parameter(MATOP_IMAG_PART=107)
420: parameter(MATOP_GET_ROW_UTRIANGULAR=108)
421: parameter(MATOP_RESTORE_ROW_UTRIANGULAR=109)
422: parameter(MATOP_MATSOLVE=110)
423: parameter(MATOP_GET_REDUNDANTMATRIX=111)
424: parameter(MATOP_GET_ROW_MIN=112)
425: parameter(MATOP_GET_COLUMN_VEC=113)
426: parameter(MATOP_MISSING_DIAGONAL=114)
427: parameter(MATOP_MATGETSEQNONZEROSTRUCTURE=115)
428: parameter(MATOP_DESTROY_SOLVER=116)
429: !
430: !
431: !
432: PetscEnum MATRIX_BINARY_FORMAT_DENSE
433: parameter (MATRIX_BINARY_FORMAT_DENSE=-1)
434: !
435: ! End of Fortran include file for the Mat package in PETSc
436: !