| /petsc/src/ts/interface/sensitivity/ |
| H A D | tssen.c | 28 PetscErrorCode TSSetRHSJacobianP(TS ts, Mat Amat, TSRHSJacobianPFn *func, PetscCtx ctx) in TSSetRHSJacobianP() argument 31 PetscValidHeaderSpecific(ts, TS_CLASSID, 1); in TSSetRHSJacobianP() 34 ts->rhsjacobianp = func; in TSSetRHSJacobianP() 35 ts->rhsjacobianpctx = ctx; in TSSetRHSJacobianP() 38 PetscCall(MatDestroy(&ts->Jacprhs)); in TSSetRHSJacobianP() 39 ts->Jacprhs = Amat; in TSSetRHSJacobianP() 64 PetscErrorCode TSGetRHSJacobianP(TS ts, Mat *Amat, TSRHSJacobianPFn **func, PetscCtxRt ctx) in TSGetRHSJacobianP() argument 67 if (func) *func = ts->rhsjacobianp; in TSGetRHSJacobianP() 68 if (ctx) *(void **)ctx = ts->rhsjacobianpctx; in TSGetRHSJacobianP() 69 if (Amat) *Amat = ts->Jacprhs; in TSGetRHSJacobianP() [all …]
|
| /petsc/src/ts/interface/ |
| H A D | ts.c | 89 PetscErrorCode TSSetFromOptions(TS ts) in TSSetFromOptions() argument 102 PetscValidHeaderSpecific(ts, TS_CLASSID, 1); in TSSetFromOptions() 105 PetscCall(TSGetIFunction(ts, NULL, &ifun, NULL)); in TSSetFromOptions() 107 PetscObjectOptionsBegin((PetscObject)ts); in TSSetFromOptions() 108 if (((PetscObject)ts)->type_name) defaultType = ((PetscObject)ts)->type_name; in TSSetFromOptions() 111 if (opt) PetscCall(TSSetType(ts, typeName)); in TSSetFromOptions() 112 else PetscCall(TSSetType(ts, defaultType)); in TSSetFromOptions() 116 …tionsReal("-ts_max_time", "Maximum time to run to", "TSSetMaxTime", ts->max_time, &ts->max_time, N… in TSSetFromOptions() 118 if (flg) PetscCall(TSSetTimeSpan(ts, num_eval_times, eval_times)); in TSSetFromOptions() 121 …PetscCheck(flg != opt || (!flg && !opt), PetscObjectComm((PetscObject)ts), PETSC_ERR_ARG_WRONG, "M… in TSSetFromOptions() [all …]
|
| H A D | tsrhssplit.c | 3 static PetscErrorCode TSRHSSplitGetRHSSplit(TS ts, const char splitname[], TS_RHSSplitLink *isplit) in TSRHSSplitGetRHSSplit() argument 8 *isplit = ts->tsrhssplit; in TSRHSSplitGetRHSSplit() 32 PetscErrorCode TSRHSSplitSetIS(TS ts, const char splitname[], IS is) in TSRHSSplitSetIS() argument 34 TS_RHSSplitLink newsplit, next = ts->tsrhssplit; in TSRHSSplitSetIS() 38 PetscValidHeaderSpecific(ts, TS_CLASSID, 1); in TSRHSSplitSetIS() 46 PetscCall(PetscSNPrintf(newsplit->splitname, 7, "%" PetscInt_FMT, ts->num_rhs_splits)); in TSRHSSplitSetIS() 50 PetscCall(TSCreate(PetscObjectComm((PetscObject)ts), &newsplit->ts)); in TSRHSSplitSetIS() 52 PetscCall(PetscObjectIncrementTabLevel((PetscObject)newsplit->ts, (PetscObject)ts, 1)); in TSRHSSplitSetIS() 53 …rintf(prefix, sizeof(prefix), "%srhsplit_%s_", ((PetscObject)ts)->prefix ? ((PetscObject)ts)->pref… in TSRHSSplitSetIS() 54 PetscCall(TSSetOptionsPrefix(newsplit->ts, prefix)); in TSRHSSplitSetIS() [all …]
|
| /petsc/src/ts/impls/implicit/theta/ |
| H A D | theta.c | 45 static PetscErrorCode TSThetaGetX0AndXdot(TS ts, DM dm, Vec *X0, Vec *Xdot) in TSThetaGetX0AndXdot() argument 47 TS_Theta *th = (TS_Theta *)ts->data; in TSThetaGetX0AndXdot() 51 if (dm && dm != ts->dm) PetscCall(DMGetNamedGlobalVector(dm, "TSTheta_X0", X0)); in TSThetaGetX0AndXdot() 52 else *X0 = ts->vec_sol; in TSThetaGetX0AndXdot() 55 if (dm && dm != ts->dm) PetscCall(DMGetNamedGlobalVector(dm, "TSTheta_Xdot", Xdot)); in TSThetaGetX0AndXdot() 61 static PetscErrorCode TSThetaRestoreX0AndXdot(TS ts, DM dm, Vec *X0, Vec *Xdot) in TSThetaRestoreX0AndXdot() argument 65 if (dm && dm != ts->dm) PetscCall(DMRestoreNamedGlobalVector(dm, "TSTheta_X0", X0)); in TSThetaRestoreX0AndXdot() 68 if (dm && dm != ts->dm) PetscCall(DMRestoreNamedGlobalVector(dm, "TSTheta_Xdot", Xdot)); in TSThetaRestoreX0AndXdot() 81 TS ts = (TS)ctx; in DMRestrictHook_TSTheta() local 85 PetscCall(TSThetaGetX0AndXdot(ts, fine, &X0, &Xdot)); in DMRestrictHook_TSTheta() [all …]
|
| /petsc/src/ts/impls/explicit/euler/ |
| H A D | euler.c | 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() [all …]
|
| /petsc/src/binding/petsc4py/test/ |
| H A D | test_ts.py | 23 def rhsfunction(self, ts, t, u, F): argument 29 def rhsjacobian(self, ts, t, u, J, P): argument 40 def ifunction(self, ts, t, u, du, F): argument 46 def ijacobian(self, ts, t, u, du, a, J, P): argument 57 def monitor(self, ts, s, t, u): argument 69 self.ts = PETSc.TS().create(PETSc.COMM_SELF) 71 self.ts.setExactFinalTime(eft) 73 self.ts.setProblemType(ptype) 74 self.ts.setType(self.TYPE) 76 snes = self.ts.getSNES() [all …]
|
| H A D | test_ts_py.py | 18 def function(self, ts, t, u, du, F): argument 24 def jacobian(self, ts, t, u, du, a, J, P): argument 44 def create(self, ts, *args): argument 48 def destroy(self, ts, *args): argument 52 def setFromOptions(self, ts, *args): argument 55 def setUp(self, ts, *args): argument 56 self._log('setUp', ts, *args) 57 self.vec_update = ts.getSolution().duplicate() 59 def reset(self, ts, *args): argument 60 self._log('reset', ts, *args) [all …]
|
| /petsc/src/ts/impls/pseudo/ |
| H A D | posindep.c | 59 PetscErrorCode TSPseudoComputeFunction(TS ts, Vec solution, Vec *residual, PetscReal *fnorm) in TSPseudoComputeFunction() argument 61 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSPseudoComputeFunction() 65 PetscValidHeaderSpecific(ts, TS_CLASSID, 1); in TSPseudoComputeFunction() 73 PetscCall(TSComputeIFunction(ts, ts->ptime, solution, pseudo->xdot, pseudo->func, PETSC_FALSE)); in TSPseudoComputeFunction() 82 static PetscErrorCode TSStep_Pseudo(TS ts) in TSStep_Pseudo() argument 84 TS_Pseudo *pseudo = (TS_Pseudo *)ts->data; in TSStep_Pseudo() 87 PetscReal next_time_step = ts->time_step, fnorm; in TSStep_Pseudo() 91 if (ts->steps == 0) pseudo->dt_initial = ts->time_step; in TSStep_Pseudo() 94 while (!ts->reason && pseudo->status != TS_STEP_COMPLETE) { in TSStep_Pseudo() 95 PetscCall(TSPreStage(ts, ts->ptime + ts->time_step)); in TSStep_Pseudo() [all …]
|
| /petsc/src/ts/impls/implicit/alpha/ |
| H A D | alpha1.c | 37 static PetscErrorCode TSResizeRegister_Alpha(TS ts, PetscBool reg) in TSResizeRegister_Alpha() argument 39 TS_Alpha *th = (TS_Alpha *)ts->data; in TSResizeRegister_Alpha() 43 PetscCall(TSResizeRegisterVec(ts, "ts:theta:sol_prev", th->vec_sol_prev)); in TSResizeRegister_Alpha() 44 PetscCall(TSResizeRegisterVec(ts, "ts:theta:X0", th->X0)); in TSResizeRegister_Alpha() 46 PetscCall(TSResizeRetrieveVec(ts, "ts:theta:sol_prev", &th->vec_sol_prev)); in TSResizeRegister_Alpha() 48 PetscCall(TSResizeRetrieveVec(ts, "ts:theta:X0", &th->X0)); in TSResizeRegister_Alpha() 54 static PetscErrorCode TSAlpha_StageTime(TS ts) in TSAlpha_StageTime() argument 56 TS_Alpha *th = (TS_Alpha *)ts->data; in TSAlpha_StageTime() 57 PetscReal t = ts->ptime; in TSAlpha_StageTime() 58 PetscReal dt = ts->time_step; in TSAlpha_StageTime() [all …]
|
| H A D | alpha2.c | 65 PetscErrorCode TSAlpha2SetPredictor(TS ts, TSAlpha2PredictorFn *predictor, PetscCtx ctx) in TSAlpha2SetPredictor() argument 67 TS_Alpha *th = (TS_Alpha *)ts->data; in TSAlpha2SetPredictor() 75 static PetscErrorCode TSAlpha_ApplyPredictor(TS ts, Vec X1) in TSAlpha_ApplyPredictor() argument 78 TS_Alpha *th = (TS_Alpha *)ts->data; in TSAlpha_ApplyPredictor() 81 if (th->predictor) PetscCall(th->predictor(ts, th->X0, th->V0, th->A0, X1, th->predictor_ctx)); in TSAlpha_ApplyPredictor() 86 static PetscErrorCode TSAlpha_StageTime(TS ts) in TSAlpha_StageTime() argument 88 TS_Alpha *th = (TS_Alpha *)ts->data; in TSAlpha_StageTime() 89 PetscReal t = ts->ptime; in TSAlpha_StageTime() 90 PetscReal dt = ts->time_step; in TSAlpha_StageTime() 104 static PetscErrorCode TSAlpha_StageVecs(TS ts, Vec X) in TSAlpha_StageVecs() argument [all …]
|
| /petsc/src/ts/impls/bdf/ |
| H A D | bdf.c | 55 static PetscErrorCode TSBDF_GetVecs(TS ts, DM dm, Vec *Xdot, Vec *Ydot) in TSBDF_GetVecs() argument 57 TS_BDF *bdf = (TS_BDF *)ts->data; in TSBDF_GetVecs() 60 if (dm && dm != ts->dm) { in TSBDF_GetVecs() 70 static PetscErrorCode TSBDF_RestoreVecs(TS ts, DM dm, Vec *Xdot, Vec *Ydot) in TSBDF_RestoreVecs() argument 72 TS_BDF *bdf = (TS_BDF *)ts->data; in TSBDF_RestoreVecs() 75 if (dm && dm != ts->dm) { in TSBDF_RestoreVecs() 79 …PetscCheck(*Xdot == bdf->vec_dot, PetscObjectComm((PetscObject)ts), PETSC_ERR_ARG_INCOMP, "Vec doe… in TSBDF_RestoreVecs() 80 …PetscCheck(*Ydot == bdf->vec_wrk, PetscObjectComm((PetscObject)ts), PETSC_ERR_ARG_INCOMP, "Vec doe… in TSBDF_RestoreVecs() 95 TS ts = (TS)ctx; in DMRestrictHook_TSBDF() local 100 PetscCall(TSBDF_GetVecs(ts, fine, &Xdot, &Ydot)); in DMRestrictHook_TSBDF() [all …]
|
| /petsc/src/ts/impls/explicit/ssp/ |
| H A D | ssp.c | 18 static PetscErrorCode TSSSPGetWorkVectors(TS ts, PetscInt n, Vec **work) in TSSSPGetWorkVectors() argument 20 TS_SSP *ssp = (TS_SSP *)ts->data; in TSSSPGetWorkVectors() 26 PetscCall(VecDuplicateVecs(ts->vec_sol, n, &ssp->work)); in TSSSPGetWorkVectors() 34 static PetscErrorCode TSSSPRestoreWorkVectors(TS ts, PetscInt n, Vec **work) in TSSSPRestoreWorkVectors() argument 36 TS_SSP *ssp = (TS_SSP *)ts->data; in TSSSPRestoreWorkVectors() 53 static PetscErrorCode TSSSPStep_RK_2(TS ts, PetscReal t0, PetscReal dt, Vec sol) in TSSSPStep_RK_2() argument 55 TS_SSP *ssp = (TS_SSP *)ts->data; in TSSSPStep_RK_2() 61 PetscCall(TSSSPGetWorkVectors(ts, 2, &work)); in TSSSPStep_RK_2() 66 PetscCall(TSPreStage(ts, stage_time)); in TSSSPStep_RK_2() 67 PetscCall(TSComputeRHSFunction(ts, stage_time, work[0], F)); in TSSSPStep_RK_2() [all …]
|
| /petsc/src/ts/impls/mimex/ |
| H A D | mimex.c | 15 static PetscErrorCode TSMimexGetX0AndXdot(TS ts, DM dm, Vec *X0, Vec *Xdot) in TSMimexGetX0AndXdot() argument 17 TS_Mimex *mimex = (TS_Mimex *)ts->data; in TSMimexGetX0AndXdot() 21 if (dm && dm != ts->dm) PetscCall(DMGetNamedGlobalVector(dm, "TSMimex_X0", X0)); in TSMimexGetX0AndXdot() 22 else *X0 = ts->vec_sol; in TSMimexGetX0AndXdot() 25 if (dm && dm != ts->dm) PetscCall(DMGetNamedGlobalVector(dm, "TSMimex_Xdot", Xdot)); in TSMimexGetX0AndXdot() 31 static PetscErrorCode TSMimexRestoreX0AndXdot(TS ts, DM dm, Vec *X0, Vec *Xdot) in TSMimexRestoreX0AndXdot() argument 35 if (dm && dm != ts->dm) PetscCall(DMRestoreNamedGlobalVector(dm, "TSMimex_X0", X0)); in TSMimexRestoreX0AndXdot() 37 if (dm && dm != ts->dm) PetscCall(DMRestoreNamedGlobalVector(dm, "TSMimex_Xdot", Xdot)); in TSMimexRestoreX0AndXdot() 41 static PetscErrorCode TSMimexGetXstarAndG(TS ts, DM dm, Vec *Xstar, Vec *G) in TSMimexGetXstarAndG() argument 49 static PetscErrorCode TSMimexRestoreXstarAndG(TS ts, DM dm, Vec *Xstar, Vec *G) in TSMimexRestoreXstarAndG() argument [all …]
|
| /petsc/src/ts/impls/eimex/ |
| H A D | eimex.c | 32 static PetscErrorCode TSEvaluateStep_EIMEX(TS ts, PetscInt order, Vec X, PetscBool *done) in TSEvaluateStep_EIMEX() argument 34 TS_EIMEX *ext = (TS_EIMEX *)ts->data; in TSEvaluateStep_EIMEX() 42 static PetscErrorCode TSStage_EIMEX(TS ts, PetscInt istage) in TSStage_EIMEX() argument 44 TS_EIMEX *ext = (TS_EIMEX *)ts->data; in TSStage_EIMEX() 53 PetscCall(TSGetSNES(ts, &snes)); in TSStage_EIMEX() 54 h = ts->time_step / ext->N[istage]; /* step size for the istage-th stage */ in TSStage_EIMEX() 60 ext->ctime = ts->ptime + h * i; in TSStage_EIMEX() 65 ts->snes_its += its; in TSStage_EIMEX() 66 ts->ksp_its += lits; in TSStage_EIMEX() 67 PetscCall(TSGetAdapt(ts, &adapt)); in TSStage_EIMEX() [all …]
|
| /petsc/src/ts/impls/implicit/discgrad/ |
| H A D | tsdiscgrad.c | 29 static PetscErrorCode TSDiscGradGetX0AndXdot(TS ts, DM dm, Vec *X0, Vec *Xdot) in TSDiscGradGetX0AndXdot() argument 31 TS_DiscGrad *dg = (TS_DiscGrad *)ts->data; in TSDiscGradGetX0AndXdot() 35 if (dm && dm != ts->dm) PetscCall(DMGetNamedGlobalVector(dm, "TSDiscGrad_X0", X0)); in TSDiscGradGetX0AndXdot() 36 else *X0 = ts->vec_sol; in TSDiscGradGetX0AndXdot() 39 if (dm && dm != ts->dm) PetscCall(DMGetNamedGlobalVector(dm, "TSDiscGrad_Xdot", Xdot)); in TSDiscGradGetX0AndXdot() 45 static PetscErrorCode TSDiscGradRestoreX0AndXdot(TS ts, DM dm, Vec *X0, Vec *Xdot) in TSDiscGradRestoreX0AndXdot() argument 49 if (dm && dm != ts->dm) PetscCall(DMRestoreNamedGlobalVector(dm, "TSDiscGrad_X0", X0)); in TSDiscGradRestoreX0AndXdot() 52 if (dm && dm != ts->dm) PetscCall(DMRestoreNamedGlobalVector(dm, "TSDiscGrad_Xdot", Xdot)); in TSDiscGradRestoreX0AndXdot() 65 TS ts = (TS)ctx; in DMRestrictHook_TSDiscGrad() local 69 PetscCall(TSDiscGradGetX0AndXdot(ts, fine, &X0, &Xdot)); in DMRestrictHook_TSDiscGrad() [all …]
|
| /petsc/src/ts/tests/ |
| H A D | ex14.c | 5 static PetscErrorCode RHSFunction(TS ts, PetscReal t, Vec X, Vec F, PetscCtx ctx) in RHSFunction() argument 24 PetscErrorCode TestCheckStage(TSAdapt adapt, TS ts, PetscReal t, Vec X, PetscBool *accept) in TestCheckStage() argument 29 PetscCall(TSGetStepNumber(ts, &step)); in TestCheckStage() 34 static PetscErrorCode TestExplicitTS(TS ts, PetscInt order, const char subtype[]) in TestExplicitTS() argument 51 PetscCall(TSGetType(ts, &type)); in TestExplicitTS() 52 PetscCall(TSGetSolution(ts, &U)); in TestExplicitTS() 54 PetscCall(TSSetStepNumber(ts, 0)); in TestExplicitTS() 55 PetscCall(TSSetTime(ts, 0)); in TestExplicitTS() 56 PetscCall(TSSetTimeStep(ts, dt)); in TestExplicitTS() 57 PetscCall(TSSetMaxTime(ts, Tf)); in TestExplicitTS() [all …]
|
| /petsc/src/ts/impls/implicit/irk/ |
| H A D | irk.c | 67 PetscErrorCode TSIRKTableauCreate(TS ts, PetscInt nstages, const PetscReal *A, const PetscReal *b, … in TSIRKTableauCreate() argument 69 TS_IRK *irk = (TS_IRK *)ts->data; in TSIRKTableauCreate() 88 static PetscErrorCode TSIRKCreate_Gauss(TS ts) in TSIRKCreate_Gauss() argument 98 PetscCall(TSIRKGetNumStages(ts, &nstages)); in TSIRKCreate_Gauss() 153 …PetscCall(TSIRKTableauCreate(ts, nstages, gauss_A_real, gauss_b, gauss_c, NULL, gauss_A_inv, gauss… in TSIRKCreate_Gauss() 269 static PetscErrorCode TSEvaluateStep_IRK(TS ts, PetscInt order, Vec U, PetscBool *done) in TSEvaluateStep_IRK() argument 271 TS_IRK *irk = (TS_IRK *)ts->data; in TSEvaluateStep_IRK() 282 h = ts->time_step; in TSEvaluateStep_IRK() 285 h = ts->ptime - ts->ptime_prev; in TSEvaluateStep_IRK() 288 SETERRQ(PetscObjectComm((PetscObject)ts), PETSC_ERR_PLIB, "Invalid TSStepStatus"); in TSEvaluateStep_IRK() [all …]
|
| /petsc/src/ts/event/tests/ |
| H A D | ex1.c | 19 TS ts; in main() local 31 PetscCall(TSCreate(PETSC_COMM_WORLD, &ts)); in main() 37 PetscCall(TSSetRHSFunction(ts, f, RHSFunction, NULL)); in main() 49 PetscCall(TSSetRHSJacobian(ts, A, A, RHSJacobian, NULL)); in main() 56 PetscCall(TSSetSolution(ts, x)); in main() 59 PetscCall(TSMonitorSet(ts, Monitor, NULL, NULL)); in main() 60 PetscCall(TSSetPreStep(ts, PreStep)); in main() 61 PetscCall(TSSetPostStep(ts, PostStep)); in main() 65 PetscCall(TSGetAdapt(ts, &adapt)); in main() 77 PetscCall(TSSetTimeStep(ts, 1)); in main() [all …]
|
| /petsc/src/ts/impls/implicit/sundials/ |
| H A D | sundials.c | 16 TS ts = (TS)P_data; in TSPrecond_Sundials_Petsc() local 17 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSPrecond_Sundials_Petsc() 25 PetscCall(TSGetIJacobian(ts, &J, &P, NULL, NULL)); in TSPrecond_Sundials_Petsc() 30 PetscCall(TSComputeIJacobian(ts, ts->ptime, yy, yydot, 1 / gm, J, P, PETSC_FALSE)); in TSPrecond_Sundials_Petsc() 34 PetscCall(TSSundialsGetPC(ts, &pc)); in TSPrecond_Sundials_Petsc() 51 TS ts = (TS)P_data; in TSPSolve_Sundials_Petsc() local 52 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSPSolve_Sundials_Petsc() 65 PetscCall(TSSundialsGetPC(ts, &pc)); in TSPSolve_Sundials_Petsc() 83 TS ts = (TS)ctx; in TSFunction_Sundials() local 88 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSFunction_Sundials() [all …]
|
| /petsc/src/ts/impls/explicit/rk/ |
| H A D | rk.c | 485 static PetscErrorCode TSRKGetTableau_RK(TS ts, PetscInt *s, const PetscReal **A, const PetscReal **… in TSRKGetTableau_RK() argument 487 TS_RK *rk = (TS_RK *)ts->data; in TSRKGetTableau_RK() 524 PetscErrorCode TSRKGetTableau(TS ts, PetscInt *s, const PetscReal **A, const PetscReal **b, const P… in TSRKGetTableau() argument 527 PetscValidHeaderSpecific(ts, TS_CLASSID, 1); in TSRKGetTableau() 528 …ts, "TSRKGetTableau_C", (TS, PetscInt *, const PetscReal **, const PetscReal **, const PetscReal *… in TSRKGetTableau() 548 static PetscErrorCode TSEvaluateStep_RK(TS ts, PetscInt order, Vec X, PetscBool *done) in TSEvaluateStep_RK() argument 550 TS_RK *rk = (TS_RK *)ts->data; in TSEvaluateStep_RK() 560 h = ts->time_step; in TSEvaluateStep_RK() 563 h = ts->ptime - ts->ptime_prev; in TSEvaluateStep_RK() 566 SETERRQ(PetscObjectComm((PetscObject)ts), PETSC_ERR_PLIB, "Invalid TSStepStatus"); in TSEvaluateStep_RK() [all …]
|
| H A D | mrk.c | 19 static PetscErrorCode TSReset_RK_MultirateNonsplit(TS ts) in TSReset_RK_MultirateNonsplit() argument 21 TS_RK *rk = (TS_RK *)ts->data; in TSReset_RK_MultirateNonsplit() 30 static PetscErrorCode TSInterpolate_RK_MultirateNonsplit(TS ts, PetscReal itime, Vec X) in TSInterpolate_RK_MultirateNonsplit() argument 32 TS_RK *rk = (TS_RK *)ts->data; in TSInterpolate_RK_MultirateNonsplit() 34 PetscReal h = ts->time_step; in TSInterpolate_RK_MultirateNonsplit() 40 …PetscCheck(B, PetscObjectComm((PetscObject)ts), PETSC_ERR_SUP, "TSRK %s does not have an interpola… in TSInterpolate_RK_MultirateNonsplit() 53 static PetscErrorCode TSStepRefine_RK_MultirateNonsplit(TS ts) in TSStepRefine_RK_MultirateNonsplit() argument 56 TS_RK *rk = (TS_RK *)ts->data; in TSStepRefine_RK_MultirateNonsplit() 64 PetscReal t = ts->ptime, h = ts->time_step; in TSStepRefine_RK_MultirateNonsplit() 67 PetscCall(VecDuplicate(ts->vec_sol, &vec_fast)); in TSStepRefine_RK_MultirateNonsplit() [all …]
|
| /petsc/src/ts/interface/ftn-custom/ |
| H A D | ztsf.c | 68 static PetscErrorCode ourprestep(TS ts) in ourprestep() argument 72 …PetscCall(PetscObjectGetFortranCallback((PetscObject)ts, PETSC_FORTRAN_CALLBACK_CLASS, _cb.functio… in ourprestep() 74 …PetscObjectUseFortranCallback(ts, _cb.prestep, (TS *, PetscErrorCode * /* PETSC_F90_2PTR_PROTO_NOV… in ourprestep() 76 static PetscErrorCode ourpoststep(TS ts) in ourpoststep() argument 80 …PetscCall(PetscObjectGetFortranCallback((PetscObject)ts, PETSC_FORTRAN_CALLBACK_CLASS, _cb.functio… in ourpoststep() 82 …PetscObjectUseFortranCallback(ts, _cb.poststep, (TS *, PetscErrorCode * /* PETSC_F90_2PTR_PROTO_NO… in ourpoststep() 84 static PetscErrorCode ourrhsfunction(TS ts, PetscReal d, Vec x, Vec f, PetscCtx ctx) in ourrhsfunction() argument 88 …PetscCall(PetscObjectGetFortranCallback((PetscObject)ts, PETSC_FORTRAN_CALLBACK_CLASS, _cb.functio… in ourrhsfunction() 90 …eFortranCallback(ts, _cb.rhsfunction, (TS *, PetscReal *, Vec *, Vec *, void *, PetscErrorCode * /… in ourrhsfunction() 92 static PetscErrorCode ourifunction(TS ts, PetscReal d, Vec x, Vec xdot, Vec f, PetscCtx ctx) in ourifunction() argument [all …]
|
| /petsc/src/ts/impls/symplectic/basicsymplectic/ |
| H A D | basicsymplectic.c | 203 static PetscErrorCode TSStep_BasicSymplectic(TS ts) in TSStep_BasicSymplectic() argument 205 TS_BasicSymplectic *bsymp = (TS_BasicSymplectic *)ts->data; in TSStep_BasicSymplectic() 207 Vec solution = ts->vec_sol, update = bsymp->update, q, p, q_update, p_update; in TSStep_BasicSymplectic() 211 PetscReal ptime, next_time_step = ts->time_step; in TSStep_BasicSymplectic() 215 PetscCall(TSGetStepNumber(ts, &n)); in TSStep_BasicSymplectic() 218 PetscCall(TSGetTime(ts, &ptime)); in TSStep_BasicSymplectic() 224 PetscCall(TSPreStage(ts, ptime)); in TSStep_BasicSymplectic() 230 PetscCall(VecAXPY(q, scheme->c[iter] * ts->time_step, q_update)); in TSStep_BasicSymplectic() 234 ptime = ptime + scheme->d[iter] * ts->time_step; in TSStep_BasicSymplectic() 236 PetscCall(VecAXPY(p, scheme->d[iter] * ts->time_step, p_update)); in TSStep_BasicSymplectic() [all …]
|
| /petsc/src/ts/impls/glee/ |
| H A D | glee.c | 433 static PetscErrorCode TSEvaluateStep_GLEE(TS ts, PetscInt order, Vec X, PetscBool *done) in TSEvaluateStep_GLEE() argument 435 TS_GLEE *glee = (TS_GLEE *)ts->data; in TSEvaluateStep_GLEE() 446 h = ts->time_step; in TSEvaluateStep_GLEE() 449 h = ts->ptime - ts->ptime_prev; in TSEvaluateStep_GLEE() 452 SETERRQ(PetscObjectComm((PetscObject)ts), PETSC_ERR_PLIB, "Invalid TSStepStatus"); in TSEvaluateStep_GLEE() 471 } else PetscCall(VecCopy(ts->vec_sol, X)); in TSEvaluateStep_GLEE() 490 …PetscCheck(done, PetscObjectComm((PetscObject)ts), PETSC_ERR_SUP, "GLEE '%s' of order %" PetscInt_… in TSEvaluateStep_GLEE() 495 static PetscErrorCode TSStep_GLEE(TS ts) in TSStep_GLEE() argument 497 TS_GLEE *glee = (TS_GLEE *)ts->data; in TSStep_GLEE() 515 PetscCall(TSGetSNES(ts, &snes)); in TSStep_GLEE() [all …]
|
| /petsc/src/ts/impls/arkimex/ |
| H A D | fsarkimex.c | 6 static PetscErrorCode TSARKIMEXSetSplits(TS ts) in TSARKIMEXSetSplits() argument 8 TS_ARKIMEX *ark = (TS_ARKIMEX *)ts->data; in TSARKIMEXSetSplits() 12 PetscCall(TSRHSSplitGetSubTS(ts, "slow", &ark->subts_slow)); in TSARKIMEXSetSplits() 13 PetscCall(TSRHSSplitGetSubTS(ts, "fast", &ark->subts_fast)); in TSARKIMEXSetSplits() 15 PetscCall(TSGetDM(ts, &dm)); in TSARKIMEXSetSplits() 33 static PetscErrorCode SNESTSFormFunction_ARKIMEX_FastSlowSplit(SNES snes, Vec X, Vec F, TS ts) in SNESTSFormFunction_ARKIMEX_FastSlowSplit() argument 35 TS_ARKIMEX *ark = (TS_ARKIMEX *)ts->data; in SNESTSFormFunction_ARKIMEX_FastSlowSplit() 41 dmsave = ts->dm; in SNESTSFormFunction_ARKIMEX_FastSlowSplit() 42 ts->dm = dm; // Use the SNES DM to compute IFunction in SNESTSFormFunction_ARKIMEX_FastSlowSplit() 44 PetscReal shift = ark->scoeff / ts->time_step; in SNESTSFormFunction_ARKIMEX_FastSlowSplit() [all …]
|