/*@C PetscDSInitializePackage - This function initializes everything in the DS package. It is called from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to PetscDSCreate() when using static libraries. Level: developer .keywords: PetscDS, initialize, package .seealso: PetscInitialize() @*/ PetscErrorCode PetscDSInitializePackage(void) { char logList[256]; PetscBool opt,pkg; PetscErrorCode ierr; PetscFunctionBegin; if (PetscDSPackageInitialized) PetscFunctionReturn(0); PetscDSPackageInitialized = PETSC_TRUE; /* Register Classes */ ierr = PetscClassIdRegister("Discrete System", &PETSCDS_CLASSID);CHKERRQ(ierr); /* Register Constructors */ ierr = PetscDSRegisterAll();CHKERRQ(ierr); /* Register Events */ /* Process info exclusions */ ierr = PetscOptionsGetString(NULL,NULL,"-info_exclude",logList,sizeof(logList),&opt);CHKERRQ(ierr); if (opt) { ierr = PetscStrInList("ds",logList,',',&pkg);CHKERRQ(ierr); if (pkg) {ierr = PetscInfoDeactivateClass(PETSCDS_CLASSID);CHKERRQ(ierr);} } /* Process summary exclusions */ ierr = PetscOptionsGetString(NULL,NULL,"-log_exclude",logList,sizeof(logList),&opt);CHKERRQ(ierr); if (opt) { ierr = PetscStrInList("ds",logList,',',&pkg);CHKERRQ(ierr); if (pkg) {ierr = PetscLogEventExcludeClass(PETSCDS_CLASSID);CHKERRQ(ierr);} } /* Register package finalizer */ ierr = PetscRegisterFinalize(PetscDSFinalizePackage);CHKERRQ(ierr); PetscFunctionReturn(0); }
/*@C PetscDSInitializePackage - This function initializes everything in the DS package. It is called from PetscDLLibraryRegister() when using dynamic libraries, and on the first call to PetscDSCreate() when using static libraries. Level: developer .keywords: PetscDS, initialize, package .seealso: PetscInitialize() @*/ PetscErrorCode PetscDSInitializePackage(void) { char logList[256]; char *className; PetscBool opt; PetscErrorCode ierr; PetscFunctionBegin; if (PetscDSPackageInitialized) PetscFunctionReturn(0); PetscDSPackageInitialized = PETSC_TRUE; /* Register Classes */ ierr = PetscClassIdRegister("Discrete System", &PETSCDS_CLASSID);CHKERRQ(ierr); /* Register Constructors */ ierr = PetscDSRegisterAll();CHKERRQ(ierr); /* Register Events */ /* Process info exclusions */ ierr = PetscOptionsGetString(NULL, "-info_exclude", logList, 256, &opt);CHKERRQ(ierr); if (opt) { ierr = PetscStrstr(logList, "ds", &className);CHKERRQ(ierr); if (className) {ierr = PetscInfoDeactivateClass(PETSCDS_CLASSID);CHKERRQ(ierr);} } /* Process summary exclusions */ ierr = PetscOptionsGetString(NULL, "-log_summary_exclude", logList, 256, &opt);CHKERRQ(ierr); if (opt) { ierr = PetscStrstr(logList, "ds", &className);CHKERRQ(ierr); if (className) {ierr = PetscLogEventDeactivateClass(PETSCDS_CLASSID);CHKERRQ(ierr);} } ierr = PetscRegisterFinalize(PetscDSFinalizePackage);CHKERRQ(ierr); PetscFunctionReturn(0); }