Lines Matching +full:- +full:r

12   PetscCall(PetscObjectGetClassId(ce->solver, &id));  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()
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() local
64 for (r = 0; r <= Nr; ++r) { in PetscConvEstGetConvRateTS_Temporal_Private()
65 if (r > 0) { 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()
71 PetscCall(TSSetTimeStep(ts, dt[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()
92 for (r = 0; r <= Nr; ++r) { in PetscConvEstGetConvRateTS_Temporal_Private()
93 x[r] = PetscLog10Real(dt[r]); in PetscConvEstGetConvRateTS_Temporal_Private()
94 y[r] = PetscLog10Real(ce->errors[r * Nf + f]); in PetscConvEstGetConvRateTS_Temporal_Private()
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() local
130 …cCheck(ce->r == 2.0, PetscObjectComm((PetscObject)ce), PETSC_ERR_SUP, "Only refinement factor 2 is… 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()
141 for (r = 0; r <= Nr; ++r) { in PetscConvEstGetConvRateTS_Spatial_Private()
147 …tscCall(PetscSNPrintf(stageName, PETSC_MAX_PATH_LEN - 1, "ConvEst Refinement Level %" PetscInt_FMT… in PetscConvEstGetConvRateTS_Spatial_Private()
151 if (r > 0) { in PetscConvEstGetConvRateTS_Spatial_Private()
152 if (!ce->noRefine) { in PetscConvEstGetConvRateTS_Spatial_Private()
153 PetscCall(DMRefine(dm[r - 1], MPI_COMM_NULL, &dm[r])); in PetscConvEstGetConvRateTS_Spatial_Private()
154 PetscCall(DMSetCoarseDM(dm[r], dm[r - 1])); in PetscConvEstGetConvRateTS_Spatial_Private()
158 PetscCall(DMClone(dm[r - 1], &dm[r])); in PetscConvEstGetConvRateTS_Spatial_Private()
159 PetscCall(DMCopyDisc(dm[r - 1], dm[r])); in PetscConvEstGetConvRateTS_Spatial_Private()
160 PetscCall(DMGetCoordinateDM(dm[r - 1], &cdm)); in PetscConvEstGetConvRateTS_Spatial_Private()
161 PetscCall(DMGetCoordinateDM(dm[r], &rcdm)); in PetscConvEstGetConvRateTS_Spatial_Private()
164 PetscCall(DMCopyTransform(ce->idm, dm[r])); in PetscConvEstGetConvRateTS_Spatial_Private()
165 PetscCall(PetscObjectGetName((PetscObject)dm[r - 1], &dmname)); in PetscConvEstGetConvRateTS_Spatial_Private()
166 PetscCall(PetscObjectSetName((PetscObject)dm[r], dmname)); in PetscConvEstGetConvRateTS_Spatial_Private()
170 PetscCall(DMGetNullSpaceConstructor(dm[r - 1], f, &nspconstr)); in PetscConvEstGetConvRateTS_Spatial_Private()
171 PetscCall(DMSetNullSpaceConstructor(dm[r], f, nspconstr)); in PetscConvEstGetConvRateTS_Spatial_Private()
174 PetscCall(DMViewFromOptions(dm[r], NULL, "-conv_dm_view")); in PetscConvEstGetConvRateTS_Spatial_Private()
176 PetscCall(DMCreateGlobalVector(dm[r], &u)); in PetscConvEstGetConvRateTS_Spatial_Private()
177 PetscCall(DMGetField(dm[r], 0, NULL, &disc)); in PetscConvEstGetConvRateTS_Spatial_Private()
182 PetscCall(TSSetDM(ts, dm[r])); in PetscConvEstGetConvRateTS_Spatial_Private()
183 PetscCall(DMTSSetBoundaryLocal(dm[r], DMPlexTSComputeBoundary, ctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
184 if (r > 0) { in PetscConvEstGetConvRateTS_Spatial_Private()
185 PetscCall(DMTSGetIFunctionLocal(dm[r - 1], &ifunc, &fctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
186 PetscCall(DMTSGetIJacobianLocal(dm[r - 1], &ijac, &jctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
187 PetscCall(DMTSGetRHSFunctionLocal(dm[r - 1], &rhsfunc, &rctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
188 if (ifunc) PetscCall(DMTSSetIFunctionLocal(dm[r], ifunc, fctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
189 if (ijac) PetscCall(DMTSSetIJacobianLocal(dm[r], ijac, jctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
190 if (rhsfunc) PetscCall(DMTSSetRHSFunctionLocal(dm[r], rhsfunc, rctx)); 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()
210 PetscCall(DMGetLocalSection(dm[r], &s)); 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()
219 if (!r) { in PetscConvEstGetConvRateTS_Spatial_Private()
233 PetscCall(DMTSGetIFunctionLocal(dm[r - 1], &ifunc, &fctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
234 PetscCall(DMTSGetIJacobianLocal(dm[r - 1], &ijac, &jctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
235 PetscCall(DMTSGetRHSFunctionLocal(dm[r - 1], &rhsfunc, &rctx)); in PetscConvEstGetConvRateTS_Spatial_Private()
236 for (r = 1; r <= Nr; ++r) PetscCall(DMDestroy(&dm[r])); in PetscConvEstGetConvRateTS_Spatial_Private()
240 for (r = 0; r <= Nr; ++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()
245 /* Since h^{-dim} = N, lg err = s lg N + b = -s dim lg h + b */ in PetscConvEstGetConvRateTS_Spatial_Private()
246 alpha[f] = -slope * dim; 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()
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()