Lines Matching refs:sdm
4 static PetscErrorCode DMSNESUnsetFunctionContext_DMSNES(DMSNES sdm) in DMSNESUnsetFunctionContext_DMSNES() argument
7 PetscCall(PetscObjectCompose((PetscObject)sdm, "function ctx", NULL)); in DMSNESUnsetFunctionContext_DMSNES()
8 sdm->functionctxcontainer = NULL; in DMSNESUnsetFunctionContext_DMSNES()
12 static PetscErrorCode DMSNESUnsetJacobianContext_DMSNES(DMSNES sdm) in DMSNESUnsetJacobianContext_DMSNES() argument
15 PetscCall(PetscObjectCompose((PetscObject)sdm, "jacobian ctx", NULL)); in DMSNESUnsetJacobianContext_DMSNES()
16 sdm->jacobianctxcontainer = NULL; in DMSNESUnsetJacobianContext_DMSNES()
232 DMSNES sdm; in DMGetDMSNESWrite() local
236 PetscCall(DMGetDMSNES(dm, &sdm)); in DMGetDMSNESWrite()
237 …PetscCheck(sdm->originaldm, PETSC_COMM_SELF, PETSC_ERR_ARG_WRONGSTATE, "DMSNES has a NULL original… in DMGetDMSNESWrite()
238 if (sdm->originaldm != dm) { /* Copy on write */ in DMGetDMSNESWrite()
239 DMSNES oldsdm = sdm; in DMGetDMSNESWrite()
241 PetscCall(DMSNESCreate(PetscObjectComm((PetscObject)dm), &sdm)); in DMGetDMSNESWrite()
242 PetscCall(DMSNESCopy(oldsdm, sdm)); in DMGetDMSNESWrite()
244 dm->dmsnes = (PetscObject)sdm; in DMGetDMSNESWrite()
245 sdm->originaldm = dm; in DMGetDMSNESWrite()
247 *snesdm = sdm; in DMGetDMSNESWrite()
304 DMSNES sdm; in DMSNESSetFunction() local
308 PetscCall(DMGetDMSNESWrite(dm, &sdm)); in DMSNESSetFunction()
309 if (f) sdm->ops->computefunction = f; in DMSNESSetFunction()
312 PetscCall(PetscContainerCreate(PetscObjectComm((PetscObject)sdm), &ctxcontainer)); in DMSNESSetFunction()
314 PetscCall(PetscObjectCompose((PetscObject)sdm, "function ctx", (PetscObject)ctxcontainer)); in DMSNESSetFunction()
315 sdm->functionctxcontainer = ctxcontainer; in DMSNESSetFunction()
336 DMSNES sdm; in DMSNESSetFunctionContextDestroy() local
340 PetscCall(DMGetDMSNESWrite(dm, &sdm)); in DMSNESSetFunctionContextDestroy()
341 …if (sdm->functionctxcontainer) PetscCall(PetscContainerSetCtxDestroy(sdm->functionctxcontainer, f)… in DMSNESSetFunctionContextDestroy()
347 DMSNES sdm; in DMSNESUnsetFunctionContext_Internal() local
351 PetscCall(DMGetDMSNESWrite(dm, &sdm)); in DMSNESUnsetFunctionContext_Internal()
352 PetscCall(DMSNESUnsetFunctionContext_DMSNES(sdm)); in DMSNESUnsetFunctionContext_Internal()
375 DMSNES sdm; in DMSNESSetMFFunction() local
379 if (func || ctx) PetscCall(DMGetDMSNESWrite(dm, &sdm)); in DMSNESSetMFFunction()
380 if (func) sdm->ops->computemffunction = func; in DMSNESSetMFFunction()
381 if (ctx) sdm->mffunctionctx = ctx; in DMSNESSetMFFunction()
407 DMSNES sdm; in DMSNESGetFunction() local
411 PetscCall(DMGetDMSNES(dm, &sdm)); in DMSNESGetFunction()
412 if (f) *f = sdm->ops->computefunction; in DMSNESGetFunction()
414 …if (sdm->functionctxcontainer) PetscCall(PetscContainerGetPointer(sdm->functionctxcontainer, ctx)); in DMSNESGetFunction()
436 DMSNES sdm; in DMSNESSetObjective() local
440 if (obj || ctx) PetscCall(DMGetDMSNESWrite(dm, &sdm)); in DMSNESSetObjective()
441 if (obj) sdm->ops->computeobjective = obj; in DMSNESSetObjective()
442 if (ctx) sdm->objectivectx = ctx; in DMSNESSetObjective()
468 DMSNES sdm; in DMSNESGetObjective() local
472 PetscCall(DMGetDMSNES(dm, &sdm)); in DMSNESGetObjective()
473 if (obj) *obj = sdm->ops->computeobjective; in DMSNESGetObjective()
474 if (ctx) *(void **)ctx = sdm->objectivectx; in DMSNESGetObjective()
502 DMSNES sdm; in DMSNESSetNGS() local
506 if (f || ctx) PetscCall(DMGetDMSNESWrite(dm, &sdm)); in DMSNESSetNGS()
507 if (f) sdm->ops->computegs = f; in DMSNESSetNGS()
508 if (ctx) sdm->gsctx = ctx; in DMSNESSetNGS()
538 DMSNES sdm; in DMSNESGetNGS() local
542 PetscCall(DMGetDMSNES(dm, &sdm)); in DMSNESGetNGS()
543 if (f) *f = sdm->ops->computegs; in DMSNESGetNGS()
544 if (ctx) *(void **)ctx = sdm->gsctx; in DMSNESGetNGS()
572 DMSNES sdm; in DMSNESSetJacobian() local
576 if (J || ctx) PetscCall(DMGetDMSNESWrite(dm, &sdm)); in DMSNESSetJacobian()
577 if (J) sdm->ops->computejacobian = J; in DMSNESSetJacobian()
580 PetscCall(PetscContainerCreate(PetscObjectComm((PetscObject)sdm), &ctxcontainer)); in DMSNESSetJacobian()
582 PetscCall(PetscObjectCompose((PetscObject)sdm, "jacobian ctx", (PetscObject)ctxcontainer)); in DMSNESSetJacobian()
583 sdm->jacobianctxcontainer = ctxcontainer; in DMSNESSetJacobian()
604 DMSNES sdm; in DMSNESSetJacobianContextDestroy() local
608 PetscCall(DMGetDMSNESWrite(dm, &sdm)); in DMSNESSetJacobianContextDestroy()
609 …if (sdm->jacobianctxcontainer) PetscCall(PetscContainerSetCtxDestroy(sdm->jacobianctxcontainer, f)… in DMSNESSetJacobianContextDestroy()
615 DMSNES sdm; in DMSNESUnsetJacobianContext_Internal() local
619 PetscCall(DMGetDMSNESWrite(dm, &sdm)); in DMSNESUnsetJacobianContext_Internal()
620 PetscCall(DMSNESUnsetJacobianContext_DMSNES(sdm)); in DMSNESUnsetJacobianContext_Internal()
650 DMSNES sdm; in DMSNESGetJacobian() local
654 PetscCall(DMGetDMSNES(dm, &sdm)); in DMSNESGetJacobian()
655 if (J) *J = sdm->ops->computejacobian; in DMSNESGetJacobian()
657 …if (sdm->jacobianctxcontainer) PetscCall(PetscContainerGetPointer(sdm->jacobianctxcontainer, ctx)); in DMSNESGetJacobian()
680 DMSNES sdm; in DMSNESSetPicard() local
684 PetscCall(DMGetDMSNES(dm, &sdm)); in DMSNESSetPicard()
685 if (b) sdm->ops->computepfunction = b; in DMSNESSetPicard()
686 if (J) sdm->ops->computepjacobian = J; in DMSNESSetPicard()
687 if (ctx) sdm->pctx = ctx; in DMSNESSetPicard()
710 DMSNES sdm; in DMSNESGetPicard() local
714 PetscCall(DMGetDMSNES(dm, &sdm)); in DMSNESGetPicard()
715 if (b) *b = sdm->ops->computepfunction; in DMSNESGetPicard()
716 if (J) *J = sdm->ops->computepjacobian; in DMSNESGetPicard()
717 if (ctx) *(void **)ctx = sdm->pctx; in DMSNESGetPicard()