Actual source code: testcomponentsII.c
1: #include "petscfwk.h"
3: #undef __FUNCT__
5: PetscErrorCode PetscFwkComponentConfigureTestIIA(PetscFwk fwk, PetscInt state, PetscObject *component) {
6: MPI_Comm comm;
7: PetscContainer container;
10: PetscObjectGetComm((PetscObject)fwk, &comm);
11: if(!*component) {
12: PetscContainerCreate(comm, &container);
13: PetscObjectSetName((PetscObject)container, "TestIIA");
14: *component = (PetscObject)container;
15: PetscPrintf(comm, "%s: created component\n", __FUNCT__);
16: }
17: else {
18: container = *((PetscContainer*)component);
19: PetscPrintf(comm, "%s: configuring to state %d\n", __FUNCT__, state);
20: }
21: return(0);
22: }/* PetscFwkComponentConfigureTestIIA() */
24: #undef __FUNCT__
26: PetscErrorCode PetscFwkComponentConfigureTestIIB(PetscFwk fwk, PetscInt state, PetscObject *component) {
27: MPI_Comm comm;
28: PetscContainer container;
31: PetscObjectGetComm((PetscObject)fwk, &comm);
32: if(!*component) {
33: PetscContainerCreate(comm, &container);
34: PetscObjectSetName((PetscObject)container, "TestIIB");
35: *component = (PetscObject)container;
36: PetscPrintf(comm, "%s: created component\n", __FUNCT__);
37: PetscPrintf(comm, "%s: registering dependency: TestIIB --> TestIIA\n", __FUNCT__);
38: PetscFwkRegisterDependence(fwk,
39: "${PETSC_DIR}/${PETSC_ARCH}/lib/libtestcomponents.a:TestIIB",
40: "${PETSC_DIR}/${PETSC_ARCH}/lib/libtestcomponents:TestIIA");
41: }
42: else {
43: container = *((PetscContainer*)component);
44: PetscPrintf(comm, "%s: configuring to state %d\n", __FUNCT__, state);
45: }
46: return(0);
47: }/* PetscFwkComponentConfigureTestIIB() */
49: #undef __FUNCT__
51: PetscErrorCode PetscFwkComponentConfigureTestIIC(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: }/* PetscFwkComponentConfigureTestIIC() */