Lines Matching refs:patch

72   PC_PATCH   *patch = (PC_PATCH *)pc->data;  in PCSetUp_PATCH_Nonlinear()  local
78 PetscCall(PetscMalloc1(patch->npatch, &patch->solver)); in PCSetUp_PATCH_Nonlinear()
80 PetscCall(PetscSectionGetChart(patch->gtolCounts, &pStart, NULL)); in PCSetUp_PATCH_Nonlinear()
81 for (i = 0; i < patch->npatch; ++i) { in PCSetUp_PATCH_Nonlinear()
88 patch->solver[i] = (PetscObject)snes; in PCSetUp_PATCH_Nonlinear()
90 PetscCall(PetscSectionGetDof(patch->gtolCountsWithAll, i + pStart, &dof)); in PCSetUp_PATCH_Nonlinear()
93 PetscCall(VecDuplicate(patch->localUpdate, &patch->localState)); in PCSetUp_PATCH_Nonlinear()
94 PetscCall(VecDuplicate(patch->patchRHS, &patch->patchResidual)); in PCSetUp_PATCH_Nonlinear()
95 PetscCall(VecDuplicate(patch->patchUpdate, &patch->patchState)); in PCSetUp_PATCH_Nonlinear()
97 PetscCall(VecCreateSeq(PETSC_COMM_SELF, maxDof, &patch->patchStateWithAll)); in PCSetUp_PATCH_Nonlinear()
98 PetscCall(VecSetUp(patch->patchStateWithAll)); in PCSetUp_PATCH_Nonlinear()
100 for (i = 0; i < patch->npatch; ++i) { in PCSetUp_PATCH_Nonlinear()
101 SNES snes = (SNES)patch->solver[i]; in PCSetUp_PATCH_Nonlinear()
103 PetscCall(SNESSetFunction(snes, patch->patchResidual, SNESPatchComputeResidual_Private, pc)); in PCSetUp_PATCH_Nonlinear()
104 …PetscCall(SNESSetJacobian(snes, patch->mat[i], patch->mat[i], SNESPatchComputeJacobian_Private, pc… in PCSetUp_PATCH_Nonlinear()
106 if (!pc->setupcalled && patch->optionsSet) in PCSetUp_PATCH_Nonlinear()
107 for (i = 0; i < patch->npatch; ++i) PetscCall(SNESSetFromOptions((SNES)patch->solver[i])); in PCSetUp_PATCH_Nonlinear()
113 PC_PATCH *patch = (PC_PATCH *)pc->data; in PCApply_PATCH_Nonlinear() local
117 patch->currentPatch = i; in PCApply_PATCH_Nonlinear()
121 PetscCall(PetscSectionGetChart(patch->gtolCounts, &pStart, NULL)); in PCApply_PATCH_Nonlinear()
122 …PetscCall(PCPatch_ScatterLocal_Private(pc, i + pStart, patch->localState, patch->patchState, INSER… in PCApply_PATCH_Nonlinear()
123 …PetscCall(PCPatch_ScatterLocal_Private(pc, i + pStart, patch->localState, patch->patchStateWithAll… in PCApply_PATCH_Nonlinear()
125 PetscCall(MatGetLocalSize(patch->mat[i], NULL, &n)); in PCApply_PATCH_Nonlinear()
126 patch->patchState->map->n = n; in PCApply_PATCH_Nonlinear()
127 patch->patchState->map->N = n; in PCApply_PATCH_Nonlinear()
133 PetscCall(VecCopy(patch->patchState, patchUpdate)); in PCApply_PATCH_Nonlinear()
135 PetscCall(SNESSolve((SNES)patch->solver[i], patchRHS, patchUpdate)); in PCApply_PATCH_Nonlinear()
137 PetscCall(VecAXPY(patchUpdate, -1.0, patch->patchState)); in PCApply_PATCH_Nonlinear()
145 PC_PATCH *patch = (PC_PATCH *)pc->data; in PCReset_PATCH_Nonlinear() local
149 if (patch->solver) { in PCReset_PATCH_Nonlinear()
150 for (i = 0; i < patch->npatch; ++i) PetscCall(SNESReset((SNES)patch->solver[i])); in PCReset_PATCH_Nonlinear()
153 PetscCall(VecDestroy(&patch->patchResidual)); in PCReset_PATCH_Nonlinear()
154 PetscCall(VecDestroy(&patch->patchState)); in PCReset_PATCH_Nonlinear()
155 PetscCall(VecDestroy(&patch->patchStateWithAll)); in PCReset_PATCH_Nonlinear()
157 PetscCall(VecDestroy(&patch->localState)); in PCReset_PATCH_Nonlinear()
163 PC_PATCH *patch = (PC_PATCH *)pc->data; in PCDestroy_PATCH_Nonlinear() local
167 if (patch->solver) { in PCDestroy_PATCH_Nonlinear()
168 for (i = 0; i < patch->npatch; ++i) PetscCall(SNESDestroy((SNES *)&patch->solver[i])); in PCDestroy_PATCH_Nonlinear()
169 PetscCall(PetscFree(patch->solver)); in PCDestroy_PATCH_Nonlinear()
176 PC_PATCH *patch = (PC_PATCH *)pc->data; in PCUpdateMultiplicative_PATCH_Nonlinear() local
179 …PetscCall(PCPatch_ScatterLocal_Private(pc, i + pStart, patch->patchUpdate, patch->localState, ADD_… in PCUpdateMultiplicative_PATCH_Nonlinear()
185 SNES_Patch *patch = (SNES_Patch *)snes->data; in SNESSetUp_Patch() local
193 PetscCall(PCSetDM(patch->pc, dm)); in SNESSetUp_Patch()
198 PetscCall(PCSetOperators(patch->pc, dummy, dummy)); in SNESSetUp_Patch()
200 PetscCall(PCSetUp(patch->pc)); in SNESSetUp_Patch()
207 SNES_Patch *patch = (SNES_Patch *)snes->data; in SNESReset_Patch() local
210 PetscCall(PCReset(patch->pc)); in SNESReset_Patch()
216 SNES_Patch *patch = (SNES_Patch *)snes->data; in SNESDestroy_Patch() local
220 PetscCall(PCDestroy(&patch->pc)); in SNESDestroy_Patch()
227 SNES_Patch *patch = (SNES_Patch *)snes->data; in SNESSetFromOptions_Patch() local
232 PetscCall(PetscObjectSetOptionsPrefix((PetscObject)patch->pc, prefix)); in SNESSetFromOptions_Patch()
233 PetscCall(PCSetFromOptions(patch->pc)); in SNESSetFromOptions_Patch()
239 SNES_Patch *patch = (SNES_Patch *)snes->data; in SNESView_Patch() local
246 PetscCall(PCView(patch->pc, viewer)); in SNESView_Patch()
253 SNES_Patch *patch = (SNES_Patch *)snes->data; in SNESSolve_Patch() local
254 PC_PATCH *pcpatch = (PC_PATCH *)patch->pc->data; in SNESSolve_Patch()
302 PetscCall(PCApply(patch->pc, rhs, update)); in SNESSolve_Patch()
335 SNES_Patch *patch; in SNESCreate_Patch() local
340 PetscCall(PetscNew(&patch)); in SNESCreate_Patch()
357 snes->data = (void *)patch; in SNESCreate_Patch()
358 PetscCall(PCCreate(PetscObjectComm((PetscObject)snes), &patch->pc)); in SNESCreate_Patch()
359 PetscCall(PCSetType(patch->pc, PCPATCH)); in SNESCreate_Patch()
361 patchpc = (PC_PATCH *)patch->pc->data; in SNESCreate_Patch()
375 SNES_Patch *patch = (SNES_Patch *)snes->data; in SNESPatchSetDiscretisationInfo() local
381 PetscCall(PCSetDM(patch->pc, dm)); in SNESPatchSetDiscretisationInfo()
382 …PetscCall(PCPatchSetDiscretisationInfo(patch->pc, nsubspaces, dms, bs, nodesPerCell, cellNodeMap, … in SNESPatchSetDiscretisationInfo()
388 SNES_Patch *patch = (SNES_Patch *)snes->data; in SNESPatchSetComputeOperator() local
391 PetscCall(PCPatchSetComputeOperator(patch->pc, func, ctx)); in SNESPatchSetComputeOperator()
397 SNES_Patch *patch = (SNES_Patch *)snes->data; in SNESPatchSetComputeFunction() local
400 PetscCall(PCPatchSetComputeFunction(patch->pc, func, ctx)); in SNESPatchSetComputeFunction()
406 SNES_Patch *patch = (SNES_Patch *)snes->data; in SNESPatchSetConstructType() local
409 PetscCall(PCPatchSetConstructType(patch->pc, ctype, func, ctx)); in SNESPatchSetConstructType()
415 SNES_Patch *patch = (SNES_Patch *)snes->data; in SNESPatchSetCellNumbering() local
418 PetscCall(PCPatchSetCellNumbering(patch->pc, cellNumbering)); in SNESPatchSetCellNumbering()