Lines Matching refs:sp
3 static PetscErrorCode PetscSpaceSetFromOptions_WXY(PetscSpace sp, PetscOptionItems PetscOptionsObject)
11 static PetscErrorCode PetscSpacePolynomialView_Ascii(PetscSpace sp, PetscViewer v)
14 PetscCall(PetscViewerASCIIPrintf(v, "WXY space of degree %" PetscInt_FMT "\n", sp->degree));
18 static PetscErrorCode PetscSpaceView_WXY(PetscSpace sp, PetscViewer viewer)
23 PetscValidHeaderSpecific(sp, PETSCSPACE_CLASSID, 1);
26 if (isascii) PetscCall(PetscSpacePolynomialView_Ascii(sp, viewer));
30 static PetscErrorCode PetscSpaceDestroy_WXY(PetscSpace sp)
32 PetscSpace_WXY *wxy = (PetscSpace_WXY *)sp->data;
39 static PetscErrorCode PetscSpaceSetUp_WXY(PetscSpace sp)
41 PetscSpace_WXY *wxy = (PetscSpace_WXY *)sp->data;
45 PetscCheck(sp->degree >= 0, PetscObjectComm((PetscObject)sp), PETSC_ERR_ARG_OUTOFRANGE, "Negative degree %" PetscInt_FMT " invalid", sp->degree);
46 sp->maxDegree = sp->degree;
51 static PetscErrorCode PetscSpaceGetDimension_WXY(PetscSpace sp, PetscInt *dim)
58 static PetscErrorCode PetscSpaceEvaluate_WXY(PetscSpace sp, PetscInt npoints, const PetscReal points[], PetscReal B[], PetscReal D[], PetscReal H[])
60 PetscSpace_WXY *wxy = (PetscSpace_WXY *)sp->data;
61 PetscInt dim = sp->Nv;
67 PetscCall(PetscSpaceSetUp(sp));
68 PetscCall(PetscSpaceEvaluate(sp, npoints, points, B, D, H));
71 PetscCheck((sp->Nc == 3) && (sp->Nv == 3), PETSC_COMM_SELF, PETSC_ERR_PLIB, "WXY space must have 3 variables and 3 components");
359 static PetscErrorCode PetscSpaceGetHeightSubspace_WXY(PetscSpace sp, PetscInt height, PetscSpace *subsp)
361 SETERRQ(PetscObjectComm((PetscObject)sp), PETSC_ERR_SUP, "Do not know how to do this");
364 static PetscErrorCode PetscSpaceInitialize_WXY(PetscSpace sp)
367 sp->ops->setfromoptions = PetscSpaceSetFromOptions_WXY;
368 sp->ops->setup = PetscSpaceSetUp_WXY;
369 sp->ops->view = PetscSpaceView_WXY;
370 sp->ops->destroy = PetscSpaceDestroy_WXY;
371 sp->ops->getdimension = PetscSpaceGetDimension_WXY;
372 sp->ops->evaluate = PetscSpaceEvaluate_WXY;
373 sp->ops->getheightsubspace = PetscSpaceGetHeightSubspace_WXY;
391 PETSC_EXTERN PetscErrorCode PetscSpaceCreate_WXY(PetscSpace sp)
396 PetscValidHeaderSpecific(sp, PETSCSPACE_CLASSID, 1);
398 sp->data = wxy;
399 sp->degree = 2;
401 PetscCall(PetscSpaceInitialize_WXY(sp));