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: }