Actual source code: igacreate.c

  1: #include <private/igaimpl.h>    /*I   "petscdmiga.h"   I*/

  5: PetscErrorCode  DMSetFromOptions_IGA(DM dm)
  6: {
  7:   /* DM_IGa       *iga = (DM_IGA *) dm->data; */
  8:   char           typeName[256];
  9:   PetscBool      flg;

 14:   PetscOptionsBegin(((PetscObject) dm)->comm, ((PetscObject) dm)->prefix, "DMIGA Options", "DMIGA");
 15:     /* Handle associated vectors */
 16:     if (!VecRegisterAllCalled) {VecRegisterAll(PETSC_NULL);}
 17:     PetscOptionsList("-dm_vec_type", "Vector type used for created vectors", "DMSetVecType", VecList, dm->vectype, typeName, 256, &flg);
 18:     if (flg) {
 19:       DMSetVecType(dm, typeName);
 20:     }
 21:     /* process any options handlers added with PetscObjectAddOptionsHandler() */
 22:     PetscObjectProcessOptionsHandlers((PetscObject) dm);
 23:   PetscOptionsEnd();
 24:   return(0);
 25: }

 27: /* External function declarations here */
 35: #if 0
 38: #endif

 45: PetscErrorCode DMCreate_IGA(DM dm)
 46: {
 47:   DM_IGA        *iga;

 52:   PetscNewLog(dm, DM_IGA, &iga);
 53:   dm->data = iga;

 55:   /* TODO */
 56:   iga->Ux  = 0; iga->Uy  = 0; iga->Uz  = 0;
 57:   iga->bdX = 0; iga->bdY = 0; iga->bdZ = 0;

 59:   PetscStrallocpy(VECSTANDARD, &dm->vectype);
 60:   dm->ops->view               = DMView_IGA;
 61:   dm->ops->setfromoptions     = DMSetFromOptions_IGA;
 62:   dm->ops->setup              = 0;
 63:   dm->ops->createglobalvector = DMCreateGlobalVector_IGA;
 64:   dm->ops->createlocalvector  = DMCreateLocalVector_IGA;
 65:   dm->ops->createlocaltoglobalmapping      = 0 /* DMCreateLocalToGlobalMapping_IGA */;
 66:   dm->ops->createlocaltoglobalmappingblock = 0;

 68:   dm->ops->getcoloring        = 0;
 69:   dm->ops->getmatrix          = DMGetMatrix_IGA;
 70:   dm->ops->getinterpolation   = 0 /* DMGetInterpolation_IGA */;
 71:   dm->ops->getaggregates      = 0;
 72:   dm->ops->getinjection       = 0;

 74:   dm->ops->refine             = 0;
 75:   dm->ops->coarsen            = 0;
 76:   dm->ops->refinehierarchy    = 0;
 77:   dm->ops->coarsenhierarchy   = 0;

 79:   dm->ops->forminitialguess   = 0;
 80:   dm->ops->formfunction       = 0;

 82:   dm->ops->globaltolocalbegin = DMGlobalToLocalBegin_IGA;
 83:   dm->ops->globaltolocalend   = DMGlobalToLocalEnd_IGA;
 84:   dm->ops->localtoglobalbegin = DMLocalToGlobalBegin_IGA;
 85:   dm->ops->localtoglobalend   = DMLocalToGlobalEnd_IGA;

 87:   dm->ops->initialguess       = 0;
 88:   dm->ops->function           = 0;
 89:   dm->ops->functionj          = 0;
 90:   dm->ops->jacobian           = 0;

 92:   dm->ops->destroy            = DMDestroy_IGA;
 93:   return(0);
 94: }

 99: /*@
100:   DMIGACreate - Creates a DMIGA object.

102:   Collective on MPI_Comm

104:   Input Parameter:
105: . comm - The communicator for the DMIGA object

107:   Output Parameter:
108: . iga  - The DMIGA object

110:   Level: beginner

112: .keywords: DMIGA, create
113: @*/
114: PetscErrorCode  DMIGACreate(MPI_Comm comm, DM *iga)
115: {

120:   DMCreate(comm, iga);
121:   DMSetType(*iga, DMIGA);
122:   return(0);
123: }