xref: /petsc/src/vec/is/sf/interface/dlregissf.c (revision 95fce210c9a5323d60d47a8c3b992a28141ecb57)
1*95fce210SBarry Smith #include <petsc-private/sfimpl.h>
2*95fce210SBarry Smith 
3*95fce210SBarry Smith PetscClassId PETSCSF_CLASSID;
4*95fce210SBarry Smith 
5*95fce210SBarry Smith static PetscBool PetscSFPackageInitialized = PETSC_FALSE;
6*95fce210SBarry Smith 
7*95fce210SBarry Smith PetscBool PetscSFRegisterAllCalled;
8*95fce210SBarry Smith 
9*95fce210SBarry Smith #undef __FUNCT__
10*95fce210SBarry Smith #define __FUNCT__ "PetscSFInitializePackage"
11*95fce210SBarry Smith /*@C
12*95fce210SBarry Smith    PetscSFInitializePackage - Initialize SF package
13*95fce210SBarry Smith 
14*95fce210SBarry Smith    Logically Collective
15*95fce210SBarry Smith 
16*95fce210SBarry Smith    Input Arguments:
17*95fce210SBarry Smith .  path - the dynamic library path or NULL
18*95fce210SBarry Smith 
19*95fce210SBarry Smith    Level: developer
20*95fce210SBarry Smith 
21*95fce210SBarry Smith .seealso: PetscSFFinalizePackage()
22*95fce210SBarry Smith @*/
23*95fce210SBarry Smith PetscErrorCode PetscSFInitializePackage(const char *path)
24*95fce210SBarry Smith {
25*95fce210SBarry Smith   PetscErrorCode ierr;
26*95fce210SBarry Smith 
27*95fce210SBarry Smith   PetscFunctionBegin;
28*95fce210SBarry Smith   if (PetscSFPackageInitialized) PetscFunctionReturn(0);
29*95fce210SBarry Smith   PetscSFPackageInitialized = PETSC_TRUE;
30*95fce210SBarry Smith 
31*95fce210SBarry Smith   ierr = PetscClassIdRegister("Bipartite Graph",&PETSCSF_CLASSID);CHKERRQ(ierr);
32*95fce210SBarry Smith   ierr = PetscSFRegisterAll(path);CHKERRQ(ierr);
33*95fce210SBarry Smith   ierr = PetscRegisterFinalize(PetscSFFinalizePackage);CHKERRQ(ierr);
34*95fce210SBarry Smith   PetscFunctionReturn(0);
35*95fce210SBarry Smith }
36*95fce210SBarry Smith 
37*95fce210SBarry Smith #undef __FUNCT__
38*95fce210SBarry Smith #define __FUNCT__ "PetscSFFinalizePackage"
39*95fce210SBarry Smith /*@C
40*95fce210SBarry Smith    PetscSFFinalizePackage - Finalize PetscSF package, it is called from PetscFinalize()
41*95fce210SBarry Smith 
42*95fce210SBarry Smith    Logically Collective
43*95fce210SBarry Smith 
44*95fce210SBarry Smith    Level: developer
45*95fce210SBarry Smith 
46*95fce210SBarry Smith .seealso: PetscSFInitializePackage()
47*95fce210SBarry Smith @*/
48*95fce210SBarry Smith PetscErrorCode PetscSFFinalizePackage(void)
49*95fce210SBarry Smith {
50*95fce210SBarry Smith 
51*95fce210SBarry Smith   PetscFunctionBegin;
52*95fce210SBarry Smith   PetscSFPackageInitialized = PETSC_FALSE;
53*95fce210SBarry Smith   PetscFunctionReturn(0);
54*95fce210SBarry Smith }
55