Actual source code: testcomponentsI.c
1: #include "petscfwk.h"
4: #undef __FUNCT__
6: PetscErrorCode PetscFwkComponentConfigureTestIA(PetscFwk fwk, PetscInt state, PetscObject *component) {
7: MPI_Comm comm;
8: PetscContainer container;
11: PetscObjectGetComm((PetscObject)fwk, &comm);
12: if(!*component) {
13: PetscContainerCreate(comm, &container);
14: PetscObjectSetName((PetscObject)container, "TestIA");
15: *component = (PetscObject)container;
16: PetscPrintf(comm, "%s: created component\n", __FUNCT__);
17: }
18: else {
19: container = *((PetscContainer*)component);
20: PetscPrintf(comm, "%s: configuring to state %d\n", __FUNCT__, state);
21: }
22: return(0);
23: }/* PetscFwkComponentConfigureTestIA() */
25: #undef __FUNCT__
27: PetscErrorCode PetscFwkComponentConfigureTestIB(PetscFwk fwk, PetscInt state, PetscObject *component) {
28: MPI_Comm comm;
29: PetscContainer container;
32: PetscObjectGetComm((PetscObject)fwk, &comm);
33: if(!*component) {
34: PetscContainerCreate(comm, &container);
35: PetscObjectSetName((PetscObject)container, "TestIB");
36: *component = (PetscObject)container;
37: PetscPrintf(comm, "%s: created component\n", __FUNCT__);
38: PetscPrintf(comm, "%s: registering dependence: TestIB --> TestIA\n", __FUNCT__);
39: PetscFwkRegisterDependence(fwk,
40: "${PETSC_DIR}/${PETSC_ARCH}/lib/libtestcomponents.a:TestIB",
41: "${PETSC_DIR}/${PETSC_ARCH}/lib/libtestcomponents:TestIA");
42: }
43: else {
44: container = *((PetscContainer*)component);
45: PetscPrintf(comm, "%s: configuring to state %d\n", __FUNCT__, state);
46: }
47: return(0);
48: }/* PetscFwkComponentConfigureTestIB() */
49: #undef __FUNCT__
51: PetscErrorCode PetscFwkComponentConfigureTestIC(PetscFwk fwk, PetscInt state, PetscObject *component) {
52: MPI_Comm comm;
53: PetscContainer container;
56: PetscObjectGetComm((PetscObject)fwk, &comm);
57: if(!*component) {
58: PetscContainerCreate(comm, &container);
59: PetscObjectSetName((PetscObject)container, "TestIIB");
60: *component = (PetscObject)container;
61: PetscPrintf(comm, "%s: created component\n", __FUNCT__);
62: }
63: else {
64: container = *((PetscContainer*)component);
65: PetscPrintf(comm, "%s: configuring to state %d\n", __FUNCT__, state);
66: }
67: return(0);
68: }/* PetscFwkComponentConfigureTestIC() */