Lines Matching refs:ce

7 static PetscErrorCode PetscConvEstSetTS_Private(PetscConvEst ce, PetscObject solver)  in PetscConvEstSetTS_Private()  argument
12 PetscCall(PetscObjectGetClassId(ce->solver, &id)); in PetscConvEstSetTS_Private()
13 …PetscCheck(id == TS_CLASSID, PetscObjectComm((PetscObject)ce), PETSC_ERR_ARG_WRONG, "Solver was no… in PetscConvEstSetTS_Private()
14 PetscCall(TSGetDM((TS)ce->solver, &ce->idm)); in PetscConvEstSetTS_Private()
18 static PetscErrorCode PetscConvEstInitGuessTS_Private(PetscConvEst ce, PetscInt r, DM dm, Vec u) in PetscConvEstInitGuessTS_Private() argument
21 PetscCall(TSComputeInitialCondition((TS)ce->solver, u)); in PetscConvEstInitGuessTS_Private()
25 static PetscErrorCode PetscConvEstComputeErrorTS_Private(PetscConvEst ce, PetscInt r, DM dm, Vec u,… in PetscConvEstComputeErrorTS_Private() argument
27 TS ts = (TS)ce->solver; in PetscConvEstComputeErrorTS_Private()
39 for (f = 1; f < ce->Nf; ++f) errors[f] = errors[0]; in PetscConvEstComputeErrorTS_Private()
45 PetscCall(DMComputeL2FieldDiff(dm, t, ce->exactSol, ce->ctxs, u, errors)); in PetscConvEstComputeErrorTS_Private()
50 static PetscErrorCode PetscConvEstGetConvRateTS_Temporal_Private(PetscConvEst ce, PetscReal alpha[]) in PetscConvEstGetConvRateTS_Temporal_Private() argument
52 TS ts = (TS)ce->solver; in PetscConvEstGetConvRateTS_Temporal_Private()
55 PetscInt Ns, oNs, Nf = ce->Nf, f, Nr = ce->Nr, r; in PetscConvEstGetConvRateTS_Temporal_Private()
66 dt[r] = dt[r - 1] / ce->r; in PetscConvEstGetConvRateTS_Temporal_Private()
67 Ns = PetscCeilReal(Ns * ce->r); in PetscConvEstGetConvRateTS_Temporal_Private()
74 PetscCall(PetscConvEstComputeInitialGuess(ce, r, NULL, u)); in PetscConvEstGetConvRateTS_Temporal_Private()
77 PetscCall(PetscLogEventBegin(ce->event, ce, 0, 0, 0)); in PetscConvEstGetConvRateTS_Temporal_Private()
78 PetscCall(PetscConvEstComputeError(ce, r, ce->idm, u, &ce->errors[r * Nf])); in PetscConvEstGetConvRateTS_Temporal_Private()
79 PetscCall(PetscLogEventEnd(ce->event, ce, 0, 0, 0)); in PetscConvEstGetConvRateTS_Temporal_Private()
81 ce->dofs[r * Nf + f] = 1.0 / dt[r]; in PetscConvEstGetConvRateTS_Temporal_Private()
82 PetscCall(PetscLogEventSetDof(ce->event, f, ce->dofs[r * Nf + f])); in PetscConvEstGetConvRateTS_Temporal_Private()
83 PetscCall(PetscLogEventSetError(ce->event, f, ce->errors[r * Nf + f])); in PetscConvEstGetConvRateTS_Temporal_Private()
86 PetscCall(PetscConvEstMonitorDefault(ce, r)); in PetscConvEstGetConvRateTS_Temporal_Private()
94 y[r] = PetscLog10Real(ce->errors[r * Nf + f]); in PetscConvEstGetConvRateTS_Temporal_Private()
110 PetscCall(PetscConvEstComputeInitialGuess(ce, 0, NULL, u0)); in PetscConvEstGetConvRateTS_Temporal_Private()
116 static PetscErrorCode PetscConvEstGetConvRateTS_Spatial_Private(PetscConvEst ce, PetscReal alpha[]) in PetscConvEstGetConvRateTS_Spatial_Private() argument
118 TS ts = (TS)ce->solver; in PetscConvEstGetConvRateTS_Spatial_Private()
123 PetscInt Nr = ce->Nr, r, Nf = ce->Nf, f, dim, oldlevel, oldnlev; in PetscConvEstGetConvRateTS_Spatial_Private()
130 …etscCheck(ce->r == 2.0, PetscObjectComm((PetscObject)ce), PETSC_ERR_SUP, "Only refinement factor 2… in PetscConvEstGetConvRateTS_Spatial_Private()
131 PetscCall(DMGetDimension(ce->idm, &dim)); in PetscConvEstGetConvRateTS_Spatial_Private()
132 PetscCall(DMGetApplicationContext(ce->idm, &ctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
133 PetscCall(DMPlexSetRefinementUniform(ce->idm, PETSC_TRUE)); in PetscConvEstGetConvRateTS_Spatial_Private()
134 PetscCall(DMGetRefineLevel(ce->idm, &oldlevel)); in PetscConvEstGetConvRateTS_Spatial_Private()
140 dm[0] = ce->idm; in PetscConvEstGetConvRateTS_Spatial_Private()
152 if (!ce->noRefine) { in PetscConvEstGetConvRateTS_Spatial_Private()
164 PetscCall(DMCopyTransform(ce->idm, dm[r])); in PetscConvEstGetConvRateTS_Spatial_Private()
199 PetscCall(PetscConvEstComputeInitialGuess(ce, r, dm[r], u)); in PetscConvEstGetConvRateTS_Spatial_Private()
202 PetscCall(PetscLogEventBegin(ce->event, ce, 0, 0, 0)); in PetscConvEstGetConvRateTS_Spatial_Private()
203 PetscCall(PetscConvEstComputeError(ce, r, dm[r], u, &ce->errors[r * Nf])); in PetscConvEstGetConvRateTS_Spatial_Private()
204 PetscCall(PetscLogEventEnd(ce->event, ce, 0, 0, 0)); in PetscConvEstGetConvRateTS_Spatial_Private()
213 …PetscCallMPI(MPIU_Allreduce(&lsize, &ce->dofs[r * Nf + f], 1, MPIU_INT, MPI_SUM, PetscObjectComm((… in PetscConvEstGetConvRateTS_Spatial_Private()
214 PetscCall(PetscLogEventSetDof(ce->event, f, ce->dofs[r * Nf + f])); in PetscConvEstGetConvRateTS_Spatial_Private()
215 PetscCall(PetscLogEventSetError(ce->event, f, ce->errors[r * Nf + f])); in PetscConvEstGetConvRateTS_Spatial_Private()
218 PetscCall(PetscConvEstMonitorDefault(ce, r)); in PetscConvEstGetConvRateTS_Spatial_Private()
241 x[r] = PetscLog10Real(ce->dofs[r * Nf + f]); in PetscConvEstGetConvRateTS_Spatial_Private()
242 y[r] = PetscLog10Real(ce->errors[r * Nf + f]); in PetscConvEstGetConvRateTS_Spatial_Private()
262 …PetscCall(DMSetRefineLevel(ce->idm, oldlevel)); /* The damn DMCoarsen() calls in PCMG can reset th… in PetscConvEstGetConvRateTS_Spatial_Private()
264 PetscCall(TSSetDM(ts, ce->idm)); in PetscConvEstGetConvRateTS_Spatial_Private()
265 PetscCall(DMTSSetBoundaryLocal(ce->idm, DMPlexTSComputeBoundary, ctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
266 if (ifunc) PetscCall(DMTSSetIFunctionLocal(ce->idm, ifunc, fctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
267 if (ijac) PetscCall(DMTSSetIJacobianLocal(ce->idm, ijac, jctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
268 if (rhsfunc) PetscCall(DMTSSetRHSFunctionLocal(ce->idm, rhsfunc, rctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
274 PetscCall(PetscConvEstComputeInitialGuess(ce, 0, NULL, uInitial)); in PetscConvEstGetConvRateTS_Spatial_Private()
279 PetscErrorCode PetscConvEstUseTS(PetscConvEst ce, PetscBool checkTemporal) in PetscConvEstUseTS() argument
282 PetscValidHeaderSpecific(ce, PETSC_OBJECT_CLASSID, 1); in PetscConvEstUseTS()
283 ce->ops->setsolver = PetscConvEstSetTS_Private; in PetscConvEstUseTS()
284 ce->ops->initguess = PetscConvEstInitGuessTS_Private; in PetscConvEstUseTS()
285 ce->ops->computeerror = PetscConvEstComputeErrorTS_Private; in PetscConvEstUseTS()
287 ce->ops->getconvrate = PetscConvEstGetConvRateTS_Temporal_Private; in PetscConvEstUseTS()
289 ce->ops->getconvrate = PetscConvEstGetConvRateTS_Spatial_Private; in PetscConvEstUseTS()