Lines Matching refs:fvm

946 PetscErrorCode PetscFVSetType(PetscFV fvm, PetscFVType name)  in PetscFVSetType()  argument
952 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVSetType()
953 PetscCall(PetscObjectTypeCompare((PetscObject)fvm, name, &match)); in PetscFVSetType()
958 …PetscCheck(r, PetscObjectComm((PetscObject)fvm), PETSC_ERR_ARG_UNKNOWN_TYPE, "Unknown PetscFV type… in PetscFVSetType()
960 PetscTryTypeMethod(fvm, destroy); in PetscFVSetType()
961 fvm->ops->destroy = NULL; in PetscFVSetType()
963 PetscCall((*r)(fvm)); in PetscFVSetType()
964 PetscCall(PetscObjectChangeTypeName((PetscObject)fvm, name)); in PetscFVSetType()
983 PetscErrorCode PetscFVGetType(PetscFV fvm, PetscFVType *name) in PetscFVGetType() argument
986 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVGetType()
989 *name = ((PetscObject)fvm)->type_name; in PetscFVGetType()
1028 PetscErrorCode PetscFVView(PetscFV fvm, PetscViewer v) in PetscFVView() argument
1031 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVView()
1032 if (!v) PetscCall(PetscViewerASCIIGetStdout(PetscObjectComm((PetscObject)fvm), &v)); in PetscFVView()
1033 PetscTryTypeMethod(fvm, view, v); in PetscFVView()
1052 PetscErrorCode PetscFVSetFromOptions(PetscFV fvm) in PetscFVSetFromOptions() argument
1059 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVSetFromOptions()
1060 if (!((PetscObject)fvm)->type_name) defaultType = PETSCFVUPWIND; in PetscFVSetFromOptions()
1061 else defaultType = ((PetscObject)fvm)->type_name; in PetscFVSetFromOptions()
1064 PetscObjectOptionsBegin((PetscObject)fvm); in PetscFVSetFromOptions()
1067 PetscCall(PetscFVSetType(fvm, name)); in PetscFVSetFromOptions()
1068 } else if (!((PetscObject)fvm)->type_name) { in PetscFVSetFromOptions()
1069 PetscCall(PetscFVSetType(fvm, defaultType)); in PetscFVSetFromOptions()
1071 …ents", "Compute cell gradients", "PetscFVSetComputeGradients", fvm->computeGradients, &fvm->comput… in PetscFVSetFromOptions()
1072 PetscTryTypeMethod(fvm, setfromoptions); in PetscFVSetFromOptions()
1074 PetscCall(PetscObjectProcessOptionsHandlers((PetscObject)fvm, PetscOptionsObject)); in PetscFVSetFromOptions()
1075 PetscCall(PetscLimiterSetFromOptions(fvm->limiter)); in PetscFVSetFromOptions()
1077 PetscCall(PetscFVViewFromOptions(fvm, NULL, "-petscfv_view")); in PetscFVSetFromOptions()
1093 PetscErrorCode PetscFVSetUp(PetscFV fvm) in PetscFVSetUp() argument
1096 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVSetUp()
1097 PetscCall(PetscLimiterSetUp(fvm->limiter)); in PetscFVSetUp()
1098 PetscTryTypeMethod(fvm, setup); in PetscFVSetUp()
1114 PetscErrorCode PetscFVDestroy(PetscFV *fvm) in PetscFVDestroy() argument
1119 if (!*fvm) PetscFunctionReturn(PETSC_SUCCESS); in PetscFVDestroy()
1120 PetscValidHeaderSpecific(*fvm, PETSCFV_CLASSID, 1); in PetscFVDestroy()
1122 if (--((PetscObject)*fvm)->refct > 0) { in PetscFVDestroy()
1123 *fvm = NULL; in PetscFVDestroy()
1126 ((PetscObject)*fvm)->refct = 0; in PetscFVDestroy()
1128 for (i = 0; i < (*fvm)->numComponents; i++) PetscCall(PetscFree((*fvm)->componentNames[i])); in PetscFVDestroy()
1129 PetscCall(PetscFree((*fvm)->componentNames)); in PetscFVDestroy()
1130 PetscCall(PetscLimiterDestroy(&(*fvm)->limiter)); in PetscFVDestroy()
1131 PetscCall(PetscDualSpaceDestroy(&(*fvm)->dualSpace)); in PetscFVDestroy()
1132 PetscCall(PetscFree((*fvm)->fluxWork)); in PetscFVDestroy()
1133 PetscCall(PetscQuadratureDestroy(&(*fvm)->quadrature)); in PetscFVDestroy()
1134 PetscCall(PetscTabulationDestroy(&(*fvm)->T)); in PetscFVDestroy()
1136 PetscTryTypeMethod(*fvm, destroy); in PetscFVDestroy()
1137 PetscCall(PetscHeaderDestroy(fvm)); in PetscFVDestroy()
1156 PetscErrorCode PetscFVCreate(MPI_Comm comm, PetscFV *fvm) in PetscFVCreate() argument
1161 PetscAssertPointer(fvm, 2); in PetscFVCreate()
1173 *fvm = f; in PetscFVCreate()
1190 PetscErrorCode PetscFVSetLimiter(PetscFV fvm, PetscLimiter lim) in PetscFVSetLimiter() argument
1193 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVSetLimiter()
1195 PetscCall(PetscLimiterDestroy(&fvm->limiter)); in PetscFVSetLimiter()
1197 fvm->limiter = lim; in PetscFVSetLimiter()
1216 PetscErrorCode PetscFVGetLimiter(PetscFV fvm, PetscLimiter *lim) in PetscFVGetLimiter() argument
1219 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVGetLimiter()
1221 *lim = fvm->limiter; in PetscFVGetLimiter()
1238 PetscErrorCode PetscFVSetNumComponents(PetscFV fvm, PetscInt comp) in PetscFVSetNumComponents() argument
1241 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVSetNumComponents()
1242 if (fvm->numComponents != comp) { in PetscFVSetNumComponents()
1245 for (i = 0; i < fvm->numComponents; i++) PetscCall(PetscFree(fvm->componentNames[i])); in PetscFVSetNumComponents()
1246 PetscCall(PetscFree(fvm->componentNames)); in PetscFVSetNumComponents()
1247 PetscCall(PetscCalloc1(comp, &fvm->componentNames)); in PetscFVSetNumComponents()
1249 fvm->numComponents = comp; in PetscFVSetNumComponents()
1250 PetscCall(PetscFree(fvm->fluxWork)); in PetscFVSetNumComponents()
1251 PetscCall(PetscMalloc1(comp, &fvm->fluxWork)); in PetscFVSetNumComponents()
1270 PetscErrorCode PetscFVGetNumComponents(PetscFV fvm, PetscInt *comp) in PetscFVGetNumComponents() argument
1273 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVGetNumComponents()
1275 *comp = fvm->numComponents; in PetscFVGetNumComponents()
1293 PetscErrorCode PetscFVSetComponentName(PetscFV fvm, PetscInt comp, const char *name) in PetscFVSetComponentName() argument
1296 PetscCall(PetscFree(fvm->componentNames[comp])); in PetscFVSetComponentName()
1297 PetscCall(PetscStrallocpy(name, &fvm->componentNames[comp])); in PetscFVSetComponentName()
1317 PetscErrorCode PetscFVGetComponentName(PetscFV fvm, PetscInt comp, const char *name[]) in PetscFVGetComponentName() argument
1320 *name = fvm->componentNames[comp]; in PetscFVGetComponentName()
1337 PetscErrorCode PetscFVSetSpatialDimension(PetscFV fvm, PetscInt dim) in PetscFVSetSpatialDimension() argument
1340 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVSetSpatialDimension()
1341 fvm->dim = dim; in PetscFVSetSpatialDimension()
1360 PetscErrorCode PetscFVGetSpatialDimension(PetscFV fvm, PetscInt *dim) in PetscFVGetSpatialDimension() argument
1363 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVGetSpatialDimension()
1365 *dim = fvm->dim; in PetscFVGetSpatialDimension()
1382 PetscErrorCode PetscFVSetComputeGradients(PetscFV fvm, PetscBool computeGradients) in PetscFVSetComputeGradients() argument
1385 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVSetComputeGradients()
1386 fvm->computeGradients = computeGradients; in PetscFVSetComputeGradients()
1405 PetscErrorCode PetscFVGetComputeGradients(PetscFV fvm, PetscBool *computeGradients) in PetscFVGetComputeGradients() argument
1408 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVGetComputeGradients()
1410 *computeGradients = fvm->computeGradients; in PetscFVGetComputeGradients()
1427 PetscErrorCode PetscFVSetQuadrature(PetscFV fvm, PetscQuadrature q) in PetscFVSetQuadrature() argument
1430 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVSetQuadrature()
1432 PetscCall(PetscQuadratureDestroy(&fvm->quadrature)); in PetscFVSetQuadrature()
1433 fvm->quadrature = q; in PetscFVSetQuadrature()
1452 PetscErrorCode PetscFVGetQuadrature(PetscFV fvm, PetscQuadrature *q) in PetscFVGetQuadrature() argument
1455 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVGetQuadrature()
1457 if (!fvm->quadrature) { in PetscFVGetQuadrature()
1461 PetscCall(PetscQuadratureCreate(PETSC_COMM_SELF, &fvm->quadrature)); in PetscFVGetQuadrature()
1462 PetscCall(PetscCalloc1(fvm->dim, &points)); in PetscFVGetQuadrature()
1465 PetscCall(PetscQuadratureSetData(fvm->quadrature, fvm->dim, 1, 1, points, weights)); in PetscFVGetQuadrature()
1467 *q = fvm->quadrature; in PetscFVGetQuadrature()
1484 PetscErrorCode PetscFVCreateDualSpace(PetscFV fvm, DMPolytopeType ct) in PetscFVCreateDualSpace() argument
1490 PetscCall(PetscFVGetSpatialDimension(fvm, &dim)); in PetscFVCreateDualSpace()
1491 PetscCall(PetscFVGetNumComponents(fvm, &Nc)); in PetscFVCreateDualSpace()
1492 PetscCall(PetscDualSpaceCreate(PetscObjectComm((PetscObject)fvm), &fvm->dualSpace)); in PetscFVCreateDualSpace()
1493 PetscCall(PetscDualSpaceSetType(fvm->dualSpace, PETSCDUALSPACESIMPLE)); in PetscFVCreateDualSpace()
1495 PetscCall(PetscDualSpaceSetNumComponents(fvm->dualSpace, Nc)); in PetscFVCreateDualSpace()
1496 PetscCall(PetscDualSpaceSetDM(fvm->dualSpace, K)); in PetscFVCreateDualSpace()
1498 PetscCall(PetscDualSpaceSimpleSetDimension(fvm->dualSpace, Nc)); in PetscFVCreateDualSpace()
1509 PetscCall(PetscDualSpaceSimpleSetFunctional(fvm->dualSpace, c, qc)); in PetscFVCreateDualSpace()
1512 PetscCall(PetscDualSpaceSetUp(fvm->dualSpace)); in PetscFVCreateDualSpace()
1534 PetscErrorCode PetscFVGetDualSpace(PetscFV fvm, PetscDualSpace *sp) in PetscFVGetDualSpace() argument
1537 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVGetDualSpace()
1539 if (!fvm->dualSpace) { in PetscFVGetDualSpace()
1542 PetscCall(PetscFVGetSpatialDimension(fvm, &dim)); in PetscFVGetDualSpace()
1543 PetscCall(PetscFVCreateDualSpace(fvm, DMPolytopeTypeSimpleShape(dim, PETSC_FALSE))); in PetscFVGetDualSpace()
1545 *sp = fvm->dualSpace; in PetscFVGetDualSpace()
1565 PetscErrorCode PetscFVSetDualSpace(PetscFV fvm, PetscDualSpace sp) in PetscFVSetDualSpace() argument
1568 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVSetDualSpace()
1570 PetscCall(PetscDualSpaceDestroy(&fvm->dualSpace)); in PetscFVSetDualSpace()
1571 fvm->dualSpace = sp; in PetscFVSetDualSpace()
1572 PetscCall(PetscObjectReference((PetscObject)fvm->dualSpace)); in PetscFVSetDualSpace()
1598 PetscErrorCode PetscFVGetCellTabulation(PetscFV fvm, PetscTabulation *T) in PetscFVGetCellTabulation() argument
1604 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVGetCellTabulation()
1606 PetscCall(PetscQuadratureGetData(fvm->quadrature, NULL, NULL, &npoints, &points, NULL)); in PetscFVGetCellTabulation()
1607 if (!fvm->T) PetscCall(PetscFVCreateTabulation(fvm, 1, npoints, points, 1, &fvm->T)); in PetscFVGetCellTabulation()
1608 *T = fvm->T; in PetscFVGetCellTabulation()
1638 PetscErrorCode PetscFVCreateTabulation(PetscFV fvm, PetscInt nrepl, PetscInt npoints, const PetscRe… in PetscFVCreateTabulation() argument
1650 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVCreateTabulation()
1653 PetscCall(PetscFVGetSpatialDimension(fvm, &cdim)); in PetscFVCreateTabulation()
1654 PetscCall(PetscFVGetNumComponents(fvm, &Nc)); in PetscFVCreateTabulation()
1700 PetscErrorCode PetscFVComputeGradient(PetscFV fvm, PetscInt numFaces, PetscScalar dx[], PetscScalar… in PetscFVComputeGradient() argument
1703 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVComputeGradient()
1704 PetscTryTypeMethod(fvm, computegradient, numFaces, dx, grad); in PetscFVComputeGradient()
1731 PetscErrorCode PetscFVIntegrateRHSFunction(PetscFV fvm, PetscDS prob, PetscInt field, PetscInt Nf, … in PetscFVIntegrateRHSFunction() argument
1734 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVIntegrateRHSFunction()
1735 …PetscTryTypeMethod(fvm, integraterhsfunction, prob, field, Nf, fgeom, neighborVol, uL, uR, fluxL, … in PetscFVIntegrateRHSFunction()
1854 static PetscErrorCode PetscFVDestroy_Upwind(PetscFV fvm) in PetscFVDestroy_Upwind() argument
1856 PetscFV_Upwind *b = (PetscFV_Upwind *)fvm->data; in PetscFVDestroy_Upwind()
1907 static PetscErrorCode PetscFVIntegrateRHSFunction_Upwind(PetscFV fvm, PetscDS prob, PetscInt field,… in PetscFVIntegrateRHSFunction_Upwind() argument
1911 PetscScalar *flux = fvm->fluxWork; in PetscFVIntegrateRHSFunction_Upwind()
1922 PetscCall(PetscFVGetSpatialDimension(fvm, &dim)); in PetscFVIntegrateRHSFunction_Upwind()
1923 PetscCall(PetscFVGetNumComponents(fvm, &pdim)); in PetscFVIntegrateRHSFunction_Upwind()
1934 static PetscErrorCode PetscFVInitialize_Upwind(PetscFV fvm) in PetscFVInitialize_Upwind() argument
1937 fvm->ops->setfromoptions = NULL; in PetscFVInitialize_Upwind()
1938 fvm->ops->view = PetscFVView_Upwind; in PetscFVInitialize_Upwind()
1939 fvm->ops->destroy = PetscFVDestroy_Upwind; in PetscFVInitialize_Upwind()
1940 fvm->ops->computegradient = PetscFVComputeGradient_Upwind; in PetscFVInitialize_Upwind()
1941 fvm->ops->integraterhsfunction = PetscFVIntegrateRHSFunction_Upwind; in PetscFVInitialize_Upwind()
1953 PETSC_EXTERN PetscErrorCode PetscFVCreate_Upwind(PetscFV fvm) in PetscFVCreate_Upwind() argument
1958 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVCreate_Upwind()
1960 fvm->data = b; in PetscFVCreate_Upwind()
1962 PetscCall(PetscFVInitialize_Upwind(fvm)); in PetscFVCreate_Upwind()
1968 static PetscErrorCode PetscFVDestroy_LeastSquares(PetscFV fvm) in PetscFVDestroy_LeastSquares() argument
1970 PetscFV_LeastSquares *ls = (PetscFV_LeastSquares *)fvm->data; in PetscFVDestroy_LeastSquares()
1973 PetscCall(PetscObjectComposeFunction((PetscObject)fvm, "PetscFVLeastSquaresSetMaxFaces_C", NULL)); in PetscFVDestroy_LeastSquares()
2108 static PetscErrorCode PetscFVLeastSquaresDebugCell_Static(PetscFV fvm, PetscInt cell, DM dm, DM dmF…
2151 static PetscErrorCode PetscFVComputeGradient_LeastSquares(PetscFV fvm, PetscInt numFaces, const Pet… in PetscFVComputeGradient_LeastSquares() argument
2153 PetscFV_LeastSquares *ls = (PetscFV_LeastSquares *)fvm->data; in PetscFVComputeGradient_LeastSquares()
2163 PetscCall(PetscFVGetSpatialDimension(fvm, &dim)); in PetscFVComputeGradient_LeastSquares()
2189 static PetscErrorCode PetscFVIntegrateRHSFunction_LeastSquares(PetscFV fvm, PetscDS prob, PetscInt … in PetscFVIntegrateRHSFunction_LeastSquares() argument
2193 PetscScalar *flux = fvm->fluxWork; in PetscFVIntegrateRHSFunction_LeastSquares()
2204 PetscCall(PetscFVGetSpatialDimension(fvm, &dim)); in PetscFVIntegrateRHSFunction_LeastSquares()
2205 PetscCall(PetscFVGetNumComponents(fvm, &pdim)); in PetscFVIntegrateRHSFunction_LeastSquares()
2216 static PetscErrorCode PetscFVLeastSquaresSetMaxFaces_LS(PetscFV fvm, PetscInt maxFaces) in PetscFVLeastSquaresSetMaxFaces_LS() argument
2218 PetscFV_LeastSquares *ls = (PetscFV_LeastSquares *)fvm->data; in PetscFVLeastSquaresSetMaxFaces_LS()
2222 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVLeastSquaresSetMaxFaces_LS()
2223 PetscCall(PetscFVGetSpatialDimension(fvm, &dim)); in PetscFVLeastSquaresSetMaxFaces_LS()
2236 static PetscErrorCode PetscFVInitialize_LeastSquares(PetscFV fvm) in PetscFVInitialize_LeastSquares() argument
2239 fvm->ops->setfromoptions = NULL; in PetscFVInitialize_LeastSquares()
2240 fvm->ops->view = PetscFVView_LeastSquares; in PetscFVInitialize_LeastSquares()
2241 fvm->ops->destroy = PetscFVDestroy_LeastSquares; in PetscFVInitialize_LeastSquares()
2242 fvm->ops->computegradient = PetscFVComputeGradient_LeastSquares; in PetscFVInitialize_LeastSquares()
2243 fvm->ops->integraterhsfunction = PetscFVIntegrateRHSFunction_LeastSquares; in PetscFVInitialize_LeastSquares()
2255 PETSC_EXTERN PetscErrorCode PetscFVCreate_LeastSquares(PetscFV fvm) in PetscFVCreate_LeastSquares() argument
2260 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVCreate_LeastSquares()
2262 fvm->data = ls; in PetscFVCreate_LeastSquares()
2271 PetscCall(PetscFVSetComputeGradients(fvm, PETSC_TRUE)); in PetscFVCreate_LeastSquares()
2272 PetscCall(PetscFVInitialize_LeastSquares(fvm)); in PetscFVCreate_LeastSquares()
2273 …PetscCall(PetscObjectComposeFunction((PetscObject)fvm, "PetscFVLeastSquaresSetMaxFaces_C", PetscFV… in PetscFVCreate_LeastSquares()
2290 PetscErrorCode PetscFVLeastSquaresSetMaxFaces(PetscFV fvm, PetscInt maxFaces) in PetscFVLeastSquaresSetMaxFaces() argument
2293 PetscValidHeaderSpecific(fvm, PETSCFV_CLASSID, 1); in PetscFVLeastSquaresSetMaxFaces()
2294 PetscTryMethod(fvm, "PetscFVLeastSquaresSetMaxFaces_C", (PetscFV, PetscInt), (fvm, maxFaces)); in PetscFVLeastSquaresSetMaxFaces()