Lines Matching refs:lag

858   PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data;  in PetscDualSpaceDestroy_Lagrange()  local
861 if (lag->symperms) { in PetscDualSpaceDestroy_Lagrange()
862 PetscInt **selfSyms = lag->symperms[0]; in PetscDualSpaceDestroy_Lagrange()
865 PetscInt i, **allocated = &selfSyms[-lag->selfSymOff]; in PetscDualSpaceDestroy_Lagrange()
867 for (i = 0; i < lag->numSelfSym; i++) PetscCall(PetscFree(allocated[i])); in PetscDualSpaceDestroy_Lagrange()
870 PetscCall(PetscFree(lag->symperms)); in PetscDualSpaceDestroy_Lagrange()
872 if (lag->symflips) { in PetscDualSpaceDestroy_Lagrange()
873 PetscScalar **selfSyms = lag->symflips[0]; in PetscDualSpaceDestroy_Lagrange()
877 PetscScalar **allocated = &selfSyms[-lag->selfSymOff]; in PetscDualSpaceDestroy_Lagrange()
879 for (i = 0; i < lag->numSelfSym; i++) PetscCall(PetscFree(allocated[i])); in PetscDualSpaceDestroy_Lagrange()
882 PetscCall(PetscFree(lag->symflips)); in PetscDualSpaceDestroy_Lagrange()
884 PetscCall(Petsc1DNodeFamilyDestroy(&lag->nodeFamily)); in PetscDualSpaceDestroy_Lagrange()
885 PetscCall(PetscLagNodeIndicesDestroy(&lag->vertIndices)); in PetscDualSpaceDestroy_Lagrange()
886 PetscCall(PetscLagNodeIndicesDestroy(&lag->intNodeIndices)); in PetscDualSpaceDestroy_Lagrange()
887 PetscCall(PetscLagNodeIndicesDestroy(&lag->allNodeIndices)); in PetscDualSpaceDestroy_Lagrange()
888 PetscCall(PetscFree(lag)); in PetscDualSpaceDestroy_Lagrange()
906 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeView_Ascii() local
909 …"%s %s%sLagrange dual space\n", lag->continuous ? "Continuous" : "Discontinuous", lag->tensorSpace… in PetscDualSpaceLagrangeView_Ascii()
967 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceDuplicate_Lagrange() local
978 if (lag->nodeFamily) { in PetscDualSpaceDuplicate_Lagrange()
981 PetscCall(Petsc1DNodeFamilyReference(lag->nodeFamily)); in PetscDualSpaceDuplicate_Lagrange()
982 lagnew->nodeFamily = lag->nodeFamily; in PetscDualSpaceDuplicate_Lagrange()
1442 PetscDualSpace_Lag *lag; in PetscDualSpaceLagrangeCreateAllNodeIdx() local
1446 lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeCreateAllNodeIdx()
1447 verti = lag->vertIndices; in PetscDualSpaceLagrangeCreateAllNodeIdx()
1464 PetscCall(PetscArraycpy(ni->nodeIdx, lag->intNodeIndices->nodeIdx, spintdim * nodeIdxDim)); in PetscDualSpaceLagrangeCreateAllNodeIdx()
1465 PetscCall(PetscArraycpy(ni->nodeVec, lag->intNodeIndices->nodeVec, spintdim * Nk)); in PetscDualSpaceLagrangeCreateAllNodeIdx()
1478 lag->allNodeIndices = ni; in PetscDualSpaceLagrangeCreateAllNodeIdx()
1981 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceSetUp_Lagrange() local
2011 if (sp->Nc <= 0 && lag->numCopies > 0) sp->Nc = Nk * lag->numCopies; in PetscDualSpaceSetUp_Lagrange()
2014 if (lag->numCopies <= 0) lag->numCopies = Nc / Nk; in PetscDualSpaceSetUp_Lagrange()
2015 Ncopies = lag->numCopies; in PetscDualSpaceSetUp_Lagrange()
2021 …if (lag->trimmed && !formDegree) lag->trimmed = PETSC_FALSE; /* trimmed spaces are the same as ful… in PetscDualSpaceSetUp_Lagrange()
2022 if (lag->nodeType == PETSCDTNODES_DEFAULT) { in PetscDualSpaceSetUp_Lagrange()
2023 lag->nodeType = PETSCDTNODES_GAUSSJACOBI; in PetscDualSpaceSetUp_Lagrange()
2024 lag->nodeExponent = 0.; in PetscDualSpaceSetUp_Lagrange()
2026 lag->endNodes = lag->trimmed ? PETSC_FALSE : PETSC_TRUE; in PetscDualSpaceSetUp_Lagrange()
2029 if (lag->numNodeSkip < 0) lag->numNodeSkip = (lag->trimmed && lag->endNodes) ? 1 : 0; in PetscDualSpaceSetUp_Lagrange()
2030 numNodeSkip = lag->numNodeSkip; in PetscDualSpaceSetUp_Lagrange()
2031 …PetscCheck(!lag->trimmed || order, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "Cannot have zeroth … in PetscDualSpaceSetUp_Lagrange()
2032 …if (lag->trimmed && PetscAbsInt(formDegree) == dim) { /* convert trimmed n-forms to untrimmed of o… in PetscDualSpaceSetUp_Lagrange()
2035 lag->trimmed = PETSC_FALSE; in PetscDualSpaceSetUp_Lagrange()
2037 trimmed = lag->trimmed; in PetscDualSpaceSetUp_Lagrange()
2038 if (!order || PetscAbsInt(formDegree) == dim) lag->continuous = PETSC_FALSE; in PetscDualSpaceSetUp_Lagrange()
2039 continuous = lag->continuous; in PetscDualSpaceSetUp_Lagrange()
2054 lag->tensorCell = tensorCell; in PetscDualSpaceSetUp_Lagrange()
2055 if (dim < 2 || !lag->tensorCell) lag->tensorSpace = PETSC_FALSE; in PetscDualSpaceSetUp_Lagrange()
2056 tensorSpace = lag->tensorSpace; in PetscDualSpaceSetUp_Lagrange()
2057 …if (!lag->nodeFamily) PetscCall(Petsc1DNodeFamilyCreate(lag->nodeType, lag->nodeExponent, lag->end… in PetscDualSpaceSetUp_Lagrange()
2058 nodeFamily = lag->nodeFamily; in PetscDualSpaceSetUp_Lagrange()
2086 if (continuous && !lag->interiorOnly) { in PetscDualSpaceSetUp_Lagrange()
2191 lag->vertIndices = lagc->vertIndices; in PetscDualSpaceSetUp_Lagrange()
2194 lag->intNodeIndices = lagc->allNodeIndices; in PetscDualSpaceSetUp_Lagrange()
2195 lag->allNodeIndices = lagc->allNodeIndices; in PetscDualSpaceSetUp_Lagrange()
2204 if (!tensorCell) PetscCall(PetscLagNodeIndicesCreateSimplexVertices(dm, &lag->vertIndices)); in PetscDualSpaceSetUp_Lagrange()
2213 …xNodeMat(nodeFamily, dim, sum, Nk, numNodeSkip, &sp->intNodes, &sp->intMat, &lag->intNodeIndices)); in PetscDualSpaceSetUp_Lagrange()
2227 …xNodeMat(nodeFamily, dim, sum, Nk, numNodeSkip, &sp->intNodes, &sp->intMat, &lag->intNodeIndices)); in PetscDualSpaceSetUp_Lagrange()
2235 PetscCall(PetscLagNodeIndicesReference(lag->intNodeIndices)); in PetscDualSpaceSetUp_Lagrange()
2236 lag->allNodeIndices = lag->intNodeIndices; in PetscDualSpaceSetUp_Lagrange()
2259 lag->intNodeIndices = trimmedlag->allNodeIndices; in PetscDualSpaceSetUp_Lagrange()
2293 PetscCall(PetscLagNodeIndicesDestroy(&lag->intNodeIndices)); in PetscDualSpaceSetUp_Lagrange()
2294 … PetscCall(PetscLagNodeIndicesDuplicate(trimmedlag->allNodeIndices, &lag->intNodeIndices)); in PetscDualSpaceSetUp_Lagrange()
2296 PetscInt nNodes = lag->intNodeIndices->nNodes; in PetscDualSpaceSetUp_Lagrange()
2297 PetscReal *newNodeVec = lag->intNodeIndices->nodeVec; in PetscDualSpaceSetUp_Lagrange()
2344 … PetscCall(PetscLagNodeIndicesCreateTensorVertices(dm, tracel->vertIndices, &lag->vertIndices)); in PetscDualSpaceSetUp_Lagrange()
2371 …if (!lag->vertIndices) PetscCall(PetscLagNodeIndicesCreateTensorVertices(dm, tracel->vertIndices, … in PetscDualSpaceSetUp_Lagrange()
2428 lag->intNodeIndices = intNodeIndices; in PetscDualSpaceSetUp_Lagrange()
2445 lag->allNodeIndices = intNodeIndices; in PetscDualSpaceSetUp_Lagrange()
2451 if (lag->useMoments) { in PetscDualSpaceSetUp_Lagrange()
2466 PetscDualSpace_Lag *lag; in PetscDualSpaceCreateInteriorSymmetryMatrix_Lagrange() local
2484 lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceCreateInteriorSymmetryMatrix_Lagrange()
2485 vertIndices = lag->vertIndices; in PetscDualSpaceCreateInteriorSymmetryMatrix_Lagrange()
2486 intNodeIndices = lag->intNodeIndices; in PetscDualSpaceCreateInteriorSymmetryMatrix_Lagrange()
2671 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceGetSymmetries_Lagrange() local
2678 if (!lag->symComputed) { /* store symmetries */ in PetscDualSpaceGetSymmetries_Lagrange()
2701 …if (spintdim && 0 < dim && dim < 3 && (lag->tensorSpace == lag->tensorCell)) { /* compute self sym… in PetscDualSpaceGetSymmetries_Lagrange()
2705 PetscInt nCopies = Nc / lag->intNodeIndices->nodeVecDim; in PetscDualSpaceGetSymmetries_Lagrange()
2706 PetscInt nNodes = lag->intNodeIndices->nNodes; in PetscDualSpaceGetSymmetries_Lagrange()
2708 lag->numSelfSym = 2 * numFaces; in PetscDualSpaceGetSymmetries_Lagrange()
2709 lag->selfSymOff = numFaces; in PetscDualSpaceGetSymmetries_Lagrange()
2715 …PetscCheck(lag->intNodeIndices->nodeVecDim * nCopies == Nc, PETSC_COMM_SELF, PETSC_ERR_PLIB, "Node… in PetscDualSpaceGetSymmetries_Lagrange()
2799 lag->symperms = symperms; in PetscDualSpaceGetSymmetries_Lagrange()
2800 lag->symflips = symflips; in PetscDualSpaceGetSymmetries_Lagrange()
2801 lag->symComputed = PETSC_TRUE; in PetscDualSpaceGetSymmetries_Lagrange()
2803 if (perms) *perms = (const PetscInt ***)lag->symperms; in PetscDualSpaceGetSymmetries_Lagrange()
2804 if (flips) *flips = (const PetscScalar ***)lag->symflips; in PetscDualSpaceGetSymmetries_Lagrange()
2810 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeGetContinuity_Lagrange() local
2815 *continuous = lag->continuous; in PetscDualSpaceLagrangeGetContinuity_Lagrange()
2821 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeSetContinuity_Lagrange() local
2825 lag->continuous = continuous; in PetscDualSpaceLagrangeSetContinuity_Lagrange()
2880 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeGetTensor_Lagrange() local
2883 *tensor = lag->tensorSpace; in PetscDualSpaceLagrangeGetTensor_Lagrange()
2889 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeSetTensor_Lagrange() local
2892 lag->tensorSpace = tensor; in PetscDualSpaceLagrangeSetTensor_Lagrange()
2898 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeGetTrimmed_Lagrange() local
2901 *trimmed = lag->trimmed; in PetscDualSpaceLagrangeGetTrimmed_Lagrange()
2907 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeSetTrimmed_Lagrange() local
2910 lag->trimmed = trimmed; in PetscDualSpaceLagrangeSetTrimmed_Lagrange()
2916 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeGetNodeType_Lagrange() local
2919 if (nodeType) *nodeType = lag->nodeType; in PetscDualSpaceLagrangeGetNodeType_Lagrange()
2920 if (boundary) *boundary = lag->endNodes; in PetscDualSpaceLagrangeGetNodeType_Lagrange()
2921 if (exponent) *exponent = lag->nodeExponent; in PetscDualSpaceLagrangeGetNodeType_Lagrange()
2927 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeSetNodeType_Lagrange() local
2931 lag->nodeType = nodeType; in PetscDualSpaceLagrangeSetNodeType_Lagrange()
2932 lag->endNodes = boundary; in PetscDualSpaceLagrangeSetNodeType_Lagrange()
2933 lag->nodeExponent = exponent; in PetscDualSpaceLagrangeSetNodeType_Lagrange()
2939 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeGetUseMoments_Lagrange() local
2942 *useMoments = lag->useMoments; in PetscDualSpaceLagrangeGetUseMoments_Lagrange()
2948 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeSetUseMoments_Lagrange() local
2951 lag->useMoments = useMoments; in PetscDualSpaceLagrangeSetUseMoments_Lagrange()
2957 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeGetMomentOrder_Lagrange() local
2960 *momentOrder = lag->momentOrder; in PetscDualSpaceLagrangeGetMomentOrder_Lagrange()
2966 PetscDualSpace_Lag *lag = (PetscDualSpace_Lag *)sp->data; in PetscDualSpaceLagrangeSetMomentOrder_Lagrange() local
2969 lag->momentOrder = momentOrder; in PetscDualSpaceLagrangeSetMomentOrder_Lagrange()
3245 PetscDualSpace_Lag *lag; in PetscDualSpaceCreate_Lagrange() local
3249 PetscCall(PetscNew(&lag)); in PetscDualSpaceCreate_Lagrange()
3250 sp->data = lag; in PetscDualSpaceCreate_Lagrange()
3252 lag->tensorCell = PETSC_FALSE; in PetscDualSpaceCreate_Lagrange()
3253 lag->tensorSpace = PETSC_FALSE; in PetscDualSpaceCreate_Lagrange()
3254 lag->continuous = PETSC_TRUE; in PetscDualSpaceCreate_Lagrange()
3255 lag->numCopies = PETSC_DEFAULT; in PetscDualSpaceCreate_Lagrange()
3256 lag->numNodeSkip = PETSC_DEFAULT; in PetscDualSpaceCreate_Lagrange()
3257 lag->nodeType = PETSCDTNODES_DEFAULT; in PetscDualSpaceCreate_Lagrange()
3258 lag->useMoments = PETSC_FALSE; in PetscDualSpaceCreate_Lagrange()
3259 lag->momentOrder = 0; in PetscDualSpaceCreate_Lagrange()