1 #include <petsc/private/regressorimpl.h> 2 3 static PetscBool PetscRegressorPackageInitialized = PETSC_FALSE; 4 5 /*@C 6 PetscRegressorInitializePackage - Initialize `PetscRegressor` package 7 8 Logically Collective 9 10 Level: developer 11 12 .seealso: `PetscRegressorFinalizePackage()` 13 @*/ 14 PetscErrorCode PetscRegressorInitializePackage(void) 15 { 16 PetscFunctionBegin; 17 if (PetscRegressorPackageInitialized) PetscFunctionReturn(PETSC_SUCCESS); 18 PetscRegressorPackageInitialized = PETSC_TRUE; 19 /* Register Class */ 20 PetscCall(PetscClassIdRegister("Regressor", &PETSCREGRESSOR_CLASSID)); 21 /* Register Constructors */ 22 PetscCall(PetscRegressorRegisterAll()); 23 /* Register Events */ 24 PetscCall(PetscLogEventRegister("PetscRegressorSetUp", PETSCREGRESSOR_CLASSID, &PetscRegressor_SetUp)); 25 PetscCall(PetscLogEventRegister("PetscRegressorFit", PETSCREGRESSOR_CLASSID, &PetscRegressor_Fit)); 26 PetscCall(PetscLogEventRegister("PetscRegressorPredict", PETSCREGRESSOR_CLASSID, &PetscRegressor_Predict)); 27 /* Process Info */ 28 { 29 PetscClassId classids[1]; 30 31 classids[0] = PETSCREGRESSOR_CLASSID; 32 PetscCall(PetscInfoProcessClass("petscregressor", 1, classids)); 33 } 34 /* Register package finalizer */ 35 PetscCall(PetscRegisterFinalize(PetscRegressorFinalizePackage)); 36 PetscFunctionReturn(PETSC_SUCCESS); 37 } 38 39 /*@C 40 PetscRegressorFinalizePackage - Finalize `PetscRegressor` package; it is called from `PetscFinalize()` 41 42 Logically Collective 43 44 Level: developer 45 46 .seealso: `PetscRegressorInitializePackage()` 47 @*/ 48 PetscErrorCode PetscRegressorFinalizePackage(void) 49 { 50 PetscFunctionBegin; 51 PetscCall(PetscFunctionListDestroy(&PetscRegressorList)); 52 PetscRegressorPackageInitialized = PETSC_FALSE; 53 PetscRegressorRegisterAllCalled = PETSC_FALSE; 54 PetscFunctionReturn(PETSC_SUCCESS); 55 } 56