1: #include <petsc/private/regressorimpl.h> 3: static PetscBool PetscRegressorPackageInitialized = PETSC_FALSE; 5: /*@C 6: PetscRegressorInitializePackage - Initialize `PetscRegressor` package 8: Logically Collective 10: Level: developer 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]; 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: } 39: /*@C 40: PetscRegressorFinalizePackage - Finalize `PetscRegressor` package; it is called from `PetscFinalize()` 42: Logically Collective 44: Level: developer 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: }