Lines Matching refs:pseudo

61   TS_Pseudo       *pseudo = (TS_Pseudo *)ts->data;  in TSPseudoComputeFunction()  local
71 if (Xstate != pseudo->Xstate || pseudo->fnorm < 0) { in TSPseudoComputeFunction()
72 PetscCall(VecZeroEntries(pseudo->xdot)); in TSPseudoComputeFunction()
73 PetscCall(TSComputeIFunction(ts, ts->ptime, solution, pseudo->xdot, pseudo->func, PETSC_FALSE)); in TSPseudoComputeFunction()
74 pseudo->Xstate = Xstate; in TSPseudoComputeFunction()
75 PetscCall(VecNorm(pseudo->func, NORM_2, &pseudo->fnorm)); in TSPseudoComputeFunction()
77 if (residual) *residual = pseudo->func; in TSPseudoComputeFunction()
78 if (fnorm) *fnorm = pseudo->fnorm; in TSPseudoComputeFunction()
84 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSStep_Pseudo() local
91 if (ts->steps == 0) pseudo->dt_initial = ts->time_step; in TSStep_Pseudo()
93 pseudo->status = TS_STEP_INCOMPLETE; in TSStep_Pseudo()
94 while (!ts->reason && pseudo->status != TS_STEP_COMPLETE) { in TSStep_Pseudo()
101 pseudo->fnorm = -1; /* The current norm is no longer valid */ in TSStep_Pseudo()
107 pseudo->status = TS_STEP_PENDING; in TSStep_Pseudo()
109 pseudo->status = accept ? TS_STEP_COMPLETE : TS_STEP_INCOMPLETE; in TSStep_Pseudo()
132 if (fnorm < pseudo->fatol) { in TSStep_Pseudo()
134 …", converged since fnorm %g < fatol %g\n", ts->steps, (double)pseudo->fnorm, (double)pseudo->frtol… in TSStep_Pseudo()
137 if (fnorm / pseudo->fnorm_initial < pseudo->frtol) { in TSStep_Pseudo()
139 …_initial %g < frtol %g\n", ts->steps, (double)pseudo->fnorm, (double)pseudo->fnorm_initial, (doubl… in TSStep_Pseudo()
147 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSReset_Pseudo() local
150 PetscCall(VecDestroy(&pseudo->func)); in TSReset_Pseudo()
151 PetscCall(VecDestroy(&pseudo->xdot)); in TSReset_Pseudo()
170 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSPseudoGetXdot() local
173 *Xdot = pseudo->xdot; in TSPseudoGetXdot()
204 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in SNESTSFormFunction_Pseudo() local
222 if (Xstate == pseudo->Xstate && snes_it == 1) { in SNESTSFormFunction_Pseudo()
224 if (ifunction) PetscCall(VecCopy(pseudo->func, Y)); in SNESTSFormFunction_Pseudo()
226 else PetscCall(VecWAXPY(Y, 1, pseudo->func, pseudo->xdot)); in SNESTSFormFunction_Pseudo()
228 PetscCall(VecAXPBYPCZ(pseudo->xdot, -mdt, mdt, 0, ts->vec_sol0, X)); in SNESTSFormFunction_Pseudo()
229 PetscCall(TSComputeIFunction(ts, ts->ptime + ts->time_step, X, pseudo->xdot, Y, PETSC_FALSE)); in SNESTSFormFunction_Pseudo()
256 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSSetUp_Pseudo() local
259 PetscCall(VecDuplicate(ts->vec_sol, &pseudo->func)); in TSSetUp_Pseudo()
260 PetscCall(VecDuplicate(ts->vec_sol, &pseudo->xdot)); in TSSetUp_Pseudo()
266 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSPseudoMonitorDefault() local
272 …T " dt %g time %g fnorm %g\n", step, (double)ts->time_step, (double)ptime, (double)pseudo->fnorm)); in TSPseudoMonitorDefault()
279 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSSetFromOptions_Pseudo() local
290 flg = pseudo->increment_dt_from_initial_dt; in TSSetFromOptions_Pseudo()
292 pseudo->increment_dt_from_initial_dt = flg; in TSSetFromOptions_Pseudo()
293 …ent", "Ratio to increase dt", "TSPseudoSetTimeStepIncrement", pseudo->dt_increment, &pseudo->dt_in… in TSSetFromOptions_Pseudo()
294 …seudo_max_dt", "Maximum value for dt", "TSPseudoSetMaxTimeStep", pseudo->dt_max, &pseudo->dt_max, … in TSSetFromOptions_Pseudo()
295 …nsReal("-ts_pseudo_fatol", "Tolerance for norm of function", "", pseudo->fatol, &pseudo->fatol, NU… in TSSetFromOptions_Pseudo()
296 …ts_pseudo_frtol", "Relative tolerance for norm of function", "", pseudo->frtol, &pseudo->frtol, NU… in TSSetFromOptions_Pseudo()
308 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSView_Pseudo() local
309 …ASCIIPrintf(viewer, " frtol - relative tolerance in function value %g\n", (double)pseudo->frtol)); in TSView_Pseudo()
310 …ASCIIPrintf(viewer, " fatol - absolute tolerance in function value %g\n", (double)pseudo->fatol)); in TSView_Pseudo()
311 …PetscCall(PetscViewerASCIIPrintf(viewer, " dt_initial - initial timestep %g\n", (double)pseudo->d… in TSView_Pseudo()
312 …r, " dt_increment - increase in timestep on successful step %g\n", (double)pseudo->dt_increment)); in TSView_Pseudo()
313 … PetscCall(PetscViewerASCIIPrintf(viewer, " dt_max - maximum time %g\n", (double)pseudo->dt_max)); in TSView_Pseudo()
336 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSPseudoTimeStepDefault() local
337 PetscReal inc = pseudo->dt_increment, fnorm; in TSPseudoTimeStepDefault()
341 if (pseudo->fnorm_initial < 0) { in TSPseudoTimeStepDefault()
343 pseudo->fnorm_initial = fnorm; in TSPseudoTimeStepDefault()
344 pseudo->fnorm_previous = fnorm; in TSPseudoTimeStepDefault()
347 …else if (pseudo->increment_dt_from_initial_dt) *newdt = inc * pseudo->dt_initial * pseudo->fnorm_i… in TSPseudoTimeStepDefault()
348 else *newdt = inc * ts->time_step * pseudo->fnorm_previous / fnorm; in TSPseudoTimeStepDefault()
349 if (pseudo->dt_max > 0) *newdt = PetscMin(*newdt, pseudo->dt_max); in TSPseudoTimeStepDefault()
350 pseudo->fnorm_previous = fnorm; in TSPseudoTimeStepDefault()
356 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSAdaptChoose_TSPseudo() local
360 PetscCallBack("TSPSEUDO callback time step", (*pseudo->dt)(ts, next_h, pseudo->dtctx)); in TSAdaptChoose_TSPseudo()
372 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSAdaptCheckStage_TSPseudo() local
375 if (pseudo->verify) { in TSAdaptCheckStage_TSPseudo()
378 …PetscCallBack("TSPSEUDO callback verify time step", (*pseudo->verify)(ts, Y, pseudo->verifyctx, &d… in TSAdaptCheckStage_TSPseudo()
549 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSPseudoSetVerifyTimeStep_Pseudo() local
552 pseudo->verify = dt; in TSPseudoSetVerifyTimeStep_Pseudo()
553 pseudo->verifyctx = ctx; in TSPseudoSetVerifyTimeStep_Pseudo()
559 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSPseudoSetTimeStepIncrement_Pseudo() local
562 pseudo->dt_increment = inc; in TSPseudoSetTimeStepIncrement_Pseudo()
568 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSPseudoSetMaxTimeStep_Pseudo() local
571 pseudo->dt_max = maxdt; in TSPseudoSetMaxTimeStep_Pseudo()
577 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSPseudoIncrementDtFromInitialDt_Pseudo() local
580 pseudo->increment_dt_from_initial_dt = PETSC_TRUE; in TSPseudoIncrementDtFromInitialDt_Pseudo()
587 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSPseudoSetTimeStep_Pseudo() local
590 pseudo->dt = dt; in TSPseudoSetTimeStep_Pseudo()
591 pseudo->dtctx = ctx; in TSPseudoSetTimeStep_Pseudo()
670 TS_Pseudo *pseudo; in TSCreate_Pseudo() local
692 PetscCall(PetscNew(&pseudo)); in TSCreate_Pseudo()
693 ts->data = (void *)pseudo; in TSCreate_Pseudo()
695 pseudo->dt = TSPseudoTimeStepDefault; in TSCreate_Pseudo()
696 pseudo->dtctx = NULL; in TSCreate_Pseudo()
697 pseudo->dt_increment = 1.1; in TSCreate_Pseudo()
698 pseudo->increment_dt_from_initial_dt = PETSC_FALSE; in TSCreate_Pseudo()
699 pseudo->fnorm = -1; in TSCreate_Pseudo()
700 pseudo->fnorm_initial = -1; in TSCreate_Pseudo()
701 pseudo->fnorm_previous = -1; in TSCreate_Pseudo()
703 pseudo->fatol = 1.e-25; in TSCreate_Pseudo()
704 pseudo->frtol = 1.e-5; in TSCreate_Pseudo()
706 pseudo->fatol = 1.e-50; in TSCreate_Pseudo()
707 pseudo->frtol = 1.e-12; in TSCreate_Pseudo()