Lines Matching refs:X0

21   Vec       X0, X, Xdot;  member
29 static PetscErrorCode TSDiscGradGetX0AndXdot(TS ts, DM dm, Vec *X0, Vec *Xdot) in TSDiscGradGetX0AndXdot() argument
34 if (X0) { in TSDiscGradGetX0AndXdot()
35 if (dm && dm != ts->dm) PetscCall(DMGetNamedGlobalVector(dm, "TSDiscGrad_X0", X0)); in TSDiscGradGetX0AndXdot()
36 else *X0 = ts->vec_sol; in TSDiscGradGetX0AndXdot()
45 static PetscErrorCode TSDiscGradRestoreX0AndXdot(TS ts, DM dm, Vec *X0, Vec *Xdot) in TSDiscGradRestoreX0AndXdot() argument
48 if (X0) { in TSDiscGradRestoreX0AndXdot()
49 if (dm && dm != ts->dm) PetscCall(DMRestoreNamedGlobalVector(dm, "TSDiscGrad_X0", X0)); in TSDiscGradRestoreX0AndXdot()
66 Vec X0, Xdot, X0_c, Xdot_c; in DMRestrictHook_TSDiscGrad() local
69 PetscCall(TSDiscGradGetX0AndXdot(ts, fine, &X0, &Xdot)); in DMRestrictHook_TSDiscGrad()
71 PetscCall(MatRestrict(restrct, X0, X0_c)); in DMRestrictHook_TSDiscGrad()
75 PetscCall(TSDiscGradRestoreX0AndXdot(ts, fine, &X0, &Xdot)); in DMRestrictHook_TSDiscGrad()
89 Vec X0, Xdot, X0_sub, Xdot_sub; in DMSubDomainRestrictHook_TSDiscGrad() local
92 PetscCall(TSDiscGradGetX0AndXdot(ts, dm, &X0, &Xdot)); in DMSubDomainRestrictHook_TSDiscGrad()
95 PetscCall(VecScatterBegin(gscat, X0, X0_sub, INSERT_VALUES, SCATTER_FORWARD)); in DMSubDomainRestrictHook_TSDiscGrad()
96 PetscCall(VecScatterEnd(gscat, X0, X0_sub, INSERT_VALUES, SCATTER_FORWARD)); in DMSubDomainRestrictHook_TSDiscGrad()
101 PetscCall(TSDiscGradRestoreX0AndXdot(ts, dm, &X0, &Xdot)); in DMSubDomainRestrictHook_TSDiscGrad()
113 if (!dg->X0) PetscCall(VecDuplicate(ts->vec_sol, &dg->X0)); in TSSetUp_DiscGrad()
169 PetscCall(VecDestroy(&dg->X0)); in TSReset_DiscGrad()
230 if (!ts->steprollback) PetscCall(VecCopy(ts->vec_sol, dg->X0)); in TSStep_DiscGrad()
237 PetscCall(VecCopy(dg->X0, dg->X)); in TSStep_DiscGrad()
245 PetscCall(VecAXPBYPCZ(dg->Xdot, -shift, shift, 0, dg->X0, dg->X)); in TSStep_DiscGrad()
250 PetscCall(VecCopy(dg->X0, ts->vec_sol)); in TSStep_DiscGrad()
291 Vec X0, Xdot, Xp, Xdiff; in SNESTSFormFunction_DiscGrad() local
322 PetscCall(TSDiscGradGetX0AndXdot(ts, dm, &X0, &Xdot)); in SNESTSFormFunction_DiscGrad()
323 PetscCall(VecAXPBYPCZ(Xdot, -shift, shift, 0, X0, x)); /* Xdot = shift (x - X0) */ in SNESTSFormFunction_DiscGrad()
325 PetscCall(VecAXPBYPCZ(Xp, -1, 2, 0, X0, x)); /* Xp = 2*x - X0 + (0)*Xp */ in SNESTSFormFunction_DiscGrad()
326 PetscCall(VecAXPBYPCZ(Xdiff, -1, 1, 0, X0, Xp)); /* Xdiff = xp - X0 + (0)*Xdiff */ in SNESTSFormFunction_DiscGrad()
328 PetscCall(PetscObjectSetName((PetscObject)X0, "X0")); in SNESTSFormFunction_DiscGrad()
330 PetscCall(VecViewFromOptions(X0, NULL, "-X0_view")); in SNESTSFormFunction_DiscGrad()
352 PetscCall(VecAXPBYPCZ(Xquad, xi, xim1, 1.0, X0, Xp)); in SNESTSFormFunction_DiscGrad()
363 PetscCall((*dg->Ffunc)(ts, dg->stage_time, X0, &F0, dg->funcCtx)); in SNESTSFormFunction_DiscGrad()
393 PetscCall(TSDiscGradRestoreX0AndXdot(ts, dm, &X0, &Xdot)); in SNESTSFormFunction_DiscGrad()