Lines Matching refs:subdm
234 …lds, const PetscInt fields[], const PetscInt numComps[], const PetscInt comps[], IS *is, DM *subdm) in DMSelectFields_Private() argument
243 PetscCall(PetscFree2((*subdm)->nullspaceConstructors, (*subdm)->nearnullspaceConstructors)); in DMSelectFields_Private()
244 …PetscCall(PetscCalloc2(numFields, &(*subdm)->nullspaceConstructors, numFields, &(*subdm)->nearnull… in DMSelectFields_Private()
251 PetscCall(DMSetLocalSection(*subdm, subsection)); in DMSelectFields_Private()
253 …if (dm->nullspaceConstructors) (*subdm)->nullspaceConstructors[field] = dm->nullspaceConstructors[… in DMSelectFields_Private()
258 PetscCall(DMSetNumFields(*subdm, 1)); in DMSelectFields_Private()
262 PetscCall(DMSetField(*subdm, 0, NULL, (PetscObject)fvNew)); in DMSelectFields_Private()
264 PetscCall(DMCreateDS(*subdm)); in DMSelectFields_Private()
268 PetscCall(DMGetField(*subdm, field, NULL, &disc)); in DMSelectFields_Private()
276 PetscCall(PetscDSCopyConstants(dm->probs[field].ds, (*subdm)->probs[0].ds)); in DMSelectFields_Private()
277 PetscCall(PetscDSCopyBoundary(dm->probs[field].ds, 1, fnum, (*subdm)->probs[0].ds)); in DMSelectFields_Private()
278 PetscCall(PetscDSSelectEquations(dm->probs[field].ds, 1, fnum, (*subdm)->probs[0].ds)); in DMSelectFields_Private()
280 if ((*subdm)->nullspaceConstructors && (*subdm)->nullspaceConstructors[0] && is) { in DMSelectFields_Private()
283 PetscCall((*(*subdm)->nullspaceConstructors[0])(*subdm, 0, 0, &nullSpace)); in DMSelectFields_Private()
287 …if (dm->coarseMesh) PetscCall(DMCreateSubDM(dm->coarseMesh, numFields, fields, NULL, &(*subdm)->co… in DMSelectFields_Private()
291 PetscCall(DMSetLocalSection(*subdm, subsection)); in DMSelectFields_Private()
294 PetscCall(DMSetNumFields(*subdm, numFields)); in DMSelectFields_Private()
299 PetscCall(DMSetField(*subdm, f, NULL, disc)); in DMSelectFields_Private()
302 PetscCall(DMCreateDS(*subdm)); in DMSelectFields_Private()
306 PetscCall(DMGetField(*subdm, 0, NULL, &disc)); in DMSelectFields_Private()
318 for (d = 0, e = 0; d < dm->Nds && e < (*subdm)->Nds; ++d) { in DMSelectFields_Private()
331 PetscCall(PetscDSCopyConstants(dm->probs[d].ds, (*subdm)->probs[e].ds)); in DMSelectFields_Private()
332 PetscCall(PetscDSCopyBoundary(dm->probs[d].ds, numFields, fields, (*subdm)->probs[e].ds)); in DMSelectFields_Private()
355 …scretizations(dm->probs[0].ds, nf, fidx, PETSC_DETERMINE, PETSC_DETERMINE, (*subdm)->probs[0].ds)); in DMSelectFields_Private()
356 PetscCall(PetscDSSelectEquations(dm->probs[0].ds, nf, fidx, (*subdm)->probs[0].ds)); in DMSelectFields_Private()
362 PetscCall(PetscDSCopyConstants(dm->probs[0].ds, (*subdm)->probs[0].ds)); in DMSelectFields_Private()
363 PetscCall(PetscDSCopyBoundary(dm->probs[0].ds, PETSC_DETERMINE, NULL, (*subdm)->probs[0].ds)); in DMSelectFields_Private()
364 …ions(dm->probs[0].ds, numFields, fields, PETSC_DETERMINE, PETSC_DETERMINE, (*subdm)->probs[0].ds)); in DMSelectFields_Private()
365 PetscCall(PetscDSSelectEquations(dm->probs[0].ds, numFields, fields, (*subdm)->probs[0].ds)); in DMSelectFields_Private()
370 (*subdm)->nullspaceConstructors[f] = dm->nullspaceConstructors[fields[f]]; in DMSelectFields_Private()
371 if ((*subdm)->nullspaceConstructors[f]) { in DMSelectFields_Private()
381 PetscCall((*(*subdm)->nullspaceConstructors[nf])(*subdm, of, nf, &nullSpace)); in DMSelectFields_Private()
385 …if (dm->coarseMesh) PetscCall(DMCreateSubDM(dm->coarseMesh, numFields, fields, NULL, &(*subdm)->co… in DMSelectFields_Private()
412 …lds, const PetscInt fields[], const PetscInt numComps[], const PetscInt comps[], IS *is, DM *subdm) in DMCreateSectionSubDM() argument
427 …if (subdm) PetscCall(DMSelectFields_Private(dm, section, numFields, fields, numComps, comps, is, s… in DMCreateSectionSubDM()