Lines Matching refs:ts

10 static PetscErrorCode TSStep_Euler(TS ts)  in TSStep_Euler()  argument
12 TS_Euler *euler = (TS_Euler *)ts->data; in TSStep_Euler()
13 Vec solution = ts->vec_sol, update = euler->update; in TSStep_Euler()
15 PetscReal next_time_step = ts->time_step; in TSStep_Euler()
18 PetscCall(TSPreStage(ts, ts->ptime)); in TSStep_Euler()
19 PetscCall(TSComputeRHSFunction(ts, ts->ptime, solution, update)); in TSStep_Euler()
20 PetscCall(VecAYPX(update, ts->time_step, solution)); in TSStep_Euler()
21 PetscCall(TSPostStage(ts, ts->ptime, 0, &solution)); in TSStep_Euler()
22 PetscCall(TSAdaptCheckStage(ts->adapt, ts, ts->ptime, solution, &stageok)); in TSStep_Euler()
24 ts->reason = TS_DIVERGED_STEP_REJECTED; in TSStep_Euler()
27 PetscCall(TSFunctionDomainError(ts, ts->ptime + ts->time_step, update, &stageok)); in TSStep_Euler()
29 ts->reason = TS_DIVERGED_STEP_REJECTED; in TSStep_Euler()
33 PetscCall(TSAdaptChoose(ts->adapt, ts, ts->time_step, NULL, &next_time_step, &accept)); in TSStep_Euler()
35 ts->reason = TS_DIVERGED_STEP_REJECTED; in TSStep_Euler()
40 ts->ptime += ts->time_step; in TSStep_Euler()
41 ts->time_step = next_time_step; in TSStep_Euler()
45 static PetscErrorCode TSSetUp_Euler(TS ts) in TSSetUp_Euler() argument
47 TS_Euler *euler = (TS_Euler *)ts->data; in TSSetUp_Euler()
50 PetscCall(TSCheckImplicitTerm(ts)); in TSSetUp_Euler()
51 PetscCall(VecDuplicate(ts->vec_sol, &euler->update)); in TSSetUp_Euler()
52 PetscCall(TSGetAdapt(ts, &ts->adapt)); in TSSetUp_Euler()
53 PetscCall(TSAdaptCandidatesClear(ts->adapt)); in TSSetUp_Euler()
57 static PetscErrorCode TSReset_Euler(TS ts) in TSReset_Euler() argument
59 TS_Euler *euler = (TS_Euler *)ts->data; in TSReset_Euler()
66 static PetscErrorCode TSDestroy_Euler(TS ts) in TSDestroy_Euler() argument
69 PetscCall(TSReset_Euler(ts)); in TSDestroy_Euler()
70 PetscCall(PetscFree(ts->data)); in TSDestroy_Euler()
74 static PetscErrorCode TSSetFromOptions_Euler(TS ts, PetscOptionItems PetscOptionsObject) in TSSetFromOptions_Euler() argument
80 static PetscErrorCode TSView_Euler(TS ts, PetscViewer viewer) in TSView_Euler() argument
86 static PetscErrorCode TSInterpolate_Euler(TS ts, PetscReal t, Vec X) in TSInterpolate_Euler() argument
88 TS_Euler *euler = (TS_Euler *)ts->data; in TSInterpolate_Euler()
90 PetscReal alpha = (ts->ptime - t) / ts->time_step; in TSInterpolate_Euler()
93 PetscCall(VecWAXPY(X, -ts->time_step, update, ts->vec_sol)); in TSInterpolate_Euler()
94 PetscCall(VecAXPBY(X, 1.0 - alpha, alpha, ts->vec_sol)); in TSInterpolate_Euler()
98 static PetscErrorCode TSComputeLinearStability_Euler(TS ts, PetscReal xr, PetscReal xi, PetscReal *… in TSComputeLinearStability_Euler() argument
113 PETSC_EXTERN PetscErrorCode TSCreate_Euler(TS ts) in TSCreate_Euler() argument
119 ts->data = (void *)euler; in TSCreate_Euler()
121 ts->ops->setup = TSSetUp_Euler; in TSCreate_Euler()
122 ts->ops->step = TSStep_Euler; in TSCreate_Euler()
123 ts->ops->reset = TSReset_Euler; in TSCreate_Euler()
124 ts->ops->destroy = TSDestroy_Euler; in TSCreate_Euler()
125 ts->ops->setfromoptions = TSSetFromOptions_Euler; in TSCreate_Euler()
126 ts->ops->view = TSView_Euler; in TSCreate_Euler()
127 ts->ops->interpolate = TSInterpolate_Euler; in TSCreate_Euler()
128 ts->ops->linearstability = TSComputeLinearStability_Euler; in TSCreate_Euler()
129 ts->default_adapt_type = TSADAPTNONE; in TSCreate_Euler()
130 ts->usessnes = PETSC_FALSE; in TSCreate_Euler()