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() */