Actual source code: dlregismat.c
1: #define PETSCMAT_DLL
3: #include include/private/matimpl.h
5: const char *MatOptions[] = {"ROW_ORIENTED","NEW_NONZERO_LOCATIONS",
6: "SYMMETRIC",
7: "STRUCTURALLY_SYMMETRIC",
8: "NEW_DIAGONALS",
9: "IGNORE_OFF_PROC_ENTRIES",
10: "NEW_NONZERO_LOCATION_ERR",
11: "NEW_NONZERO_ALLOCATION_ERR","USE_HASH_TABLE",
12: "KEEP_ZEROED_ROWS","IGNORE_ZERO_ENTRIES","USE_INODES",
13: "HERMITIAN",
14: "SYMMETRY_ETERNAL",
15: "USE_COMPRESSEDROW",
16: "IGNORE_LOWER_TRIANGULAR","ERROR_LOWER_TRIANGULAR","GETROW_UPPERTRIANGULAR","MatOption","MAT_",0};
18: EXTERN PetscErrorCode MatMFFDInitializePackage(const char[]);
22: /*@C
23: MatInitializePackage - This function initializes everything in the Mat package. It is called
24: from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to MatCreate()
25: when using static libraries.
27: Input Parameter:
28: path - The dynamic library path, or PETSC_NULL
30: Level: developer
32: .keywords: Mat, initialize, package
33: .seealso: PetscInitialize()
34: @*/
35: PetscErrorCode MatInitializePackage(const char path[])
36: {
37: static PetscTruth initialized = PETSC_FALSE;
38: char logList[256];
39: char *className;
40: PetscTruth opt;
41: PetscErrorCode ierr;
44: /* Inialize subpackage */
45: MatMFFDInitializePackage(PETSC_NULL);
46: if (initialized) return(0);
47: initialized = PETSC_TRUE;
48: /* Register Classes */
49: PetscLogClassRegister(&MAT_COOKIE, "Matrix");
50: PetscLogClassRegister(&MAT_FDCOLORING_COOKIE, "Matrix FD Coloring");
51: PetscLogClassRegister(&MAT_PARTITIONING_COOKIE, "Matrix Partitioning");
52: PetscLogClassRegister(&MAT_NULLSPACE_COOKIE, "Matrix Null Space");
53: /* Register Constructors */
54: MatRegisterAll(path);
55: /* Register Events */
114: /* these may be specific to MPIAIJ matrices */
131: /* Turn off high traffic events by default */
133: /* Process info exclusions */
134: PetscOptionsGetString(PETSC_NULL, "-info_exclude", logList, 256, &opt);
135: if (opt) {
136: PetscStrstr(logList, "mat", &className);
137: if (className) {
138: PetscInfoDeactivateClass(MAT_COOKIE);
139: }
140: }
141: /* Process summary exclusions */
142: PetscOptionsGetString(PETSC_NULL, "-log_summary_exclude", logList, 256, &opt);
143: if (opt) {
144: PetscStrstr(logList, "mat", &className);
145: if (className) {
147: }
148: }
149: return(0);
150: }
152: #ifdef PETSC_USE_DYNAMIC_LIBRARIES
156: /*
157: PetscDLLibraryRegister - This function is called when the dynamic library it is in is opened.
159: This one registers all the matrix methods that are in the basic PETSc Matrix library.
161: Input Parameter:
162: path - library path
163: */
164: PetscErrorCode PetscDLLibraryRegister_petscmat(const char path[])
165: {
168: PetscInitializeNoArguments(); if (ierr) return 1;
171: /*
172: If we got here then PETSc was properly loaded
173: */
174: MatInitializePackage(path);
175: return(0);
176: }
180: #endif /* PETSC_USE_DYNAMIC_LIBRARIES */