Lines Matching refs:ts

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()
93 PetscCall(PetscObjectGetComm((PetscObject)ts, &comm)); in TSFunction_Sundials()
101 PetscCall(TSGetDM(ts, &dm)); in TSFunction_Sundials()
105 PetscCall(TSComputeRHSFunction(ts, t, yy, yyd)); in TSFunction_Sundials()
108 PetscCallAbort(comm, TSComputeIFunction(ts, t, yy, yydot, yyd, PETSC_FALSE)); in TSFunction_Sundials()
119 static PetscErrorCode TSStep_Sundials(TS ts) in TSStep_Sundials() argument
121 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSStep_Sundials()
130 tout = ts->max_time; in TSStep_Sundials()
131 PetscCall(VecGetArray(ts->vec_sol, &y_data)); in TSStep_Sundials()
133 PetscCall(VecRestoreArray(ts->vec_sol, NULL)); in TSStep_Sundials()
152 …MT ". Increase '-ts_max_steps <>' or modify TSSetMaxSteps()", (double)tcur, nsteps, ts->max_steps); in TSStep_Sundials()
195 ts->snes_its += nits; in TSStep_Sundials()
196 ts->ksp_its = lits; in TSStep_Sundials()
202 PetscCall(VecCopy(cvode->update, ts->vec_sol)); in TSStep_Sundials()
204 ts->time_step = t - ts->ptime; in TSStep_Sundials()
205 ts->ptime = t; in TSStep_Sundials()
208 …if (!cvode->monitorstep) ts->steps += nsteps - 1; /* TSStep() increments the step counter by one */ in TSStep_Sundials()
212 static PetscErrorCode TSInterpolate_Sundials(TS ts, PetscReal t, Vec X) in TSInterpolate_Sundials() argument
214 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSInterpolate_Sundials()
243 static PetscErrorCode TSReset_Sundials(TS ts) in TSReset_Sundials() argument
245 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSReset_Sundials()
256 static PetscErrorCode TSDestroy_Sundials(TS ts) in TSDestroy_Sundials() argument
258 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSDestroy_Sundials()
261 PetscCall(TSReset_Sundials(ts)); in TSDestroy_Sundials()
263 PetscCall(PetscFree(ts->data)); in TSDestroy_Sundials()
264 PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetType_C", NULL)); in TSDestroy_Sundials()
265 PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetMaxl_C", NULL)); in TSDestroy_Sundials()
266 PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetLinearTolerance_C", NULL)); in TSDestroy_Sundials()
267 PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetGramSchmidtType_C", NULL)); in TSDestroy_Sundials()
268 PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetTolerance_C", NULL)); in TSDestroy_Sundials()
269 PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetMinTimeStep_C", NULL)); in TSDestroy_Sundials()
270 PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetMaxTimeStep_C", NULL)); in TSDestroy_Sundials()
271 PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsGetPC_C", NULL)); in TSDestroy_Sundials()
272 PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsGetIterations_C", NULL)); in TSDestroy_Sundials()
273 PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsMonitorInternalSteps_C", NULL)); in TSDestroy_Sundials()
274 PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetUseDense_C", NULL)); in TSDestroy_Sundials()
278 static PetscErrorCode TSSetUp_Sundials(TS ts) in TSSetUp_Sundials() argument
280 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSSetUp_Sundials()
288 …PetscCheck(ts->exact_final_time != TS_EXACTFINALTIME_MATCHSTEP, PETSC_COMM_SELF, PETSC_ERR_SUP, "N… in TSSetUp_Sundials()
291 PetscCall(VecGetSize(ts->vec_sol, &glosize)); in TSSetUp_Sundials()
292 PetscCall(VecGetLocalSize(ts->vec_sol, &locsize)); in TSSetUp_Sundials()
307 PetscCall(VecGetArray(ts->vec_sol, &parray)); in TSSetUp_Sundials()
310 PetscCall(VecRestoreArray(ts->vec_sol, NULL)); in TSSetUp_Sundials()
312 PetscCall(VecDuplicate(ts->vec_sol, &cvode->update)); in TSSetUp_Sundials()
313 PetscCall(VecDuplicate(ts->vec_sol, &cvode->ydot)); in TSSetUp_Sundials()
320 …PetscCall(VecCreateMPIWithArray(PetscObjectComm((PetscObject)ts), 1, locsize, PETSC_DECIDE, NULL, … in TSSetUp_Sundials()
321 …PetscCall(VecCreateMPIWithArray(PetscObjectComm((PetscObject)ts), 1, locsize, PETSC_DECIDE, NULL, … in TSSetUp_Sundials()
328 PetscCallExternal(CVodeSetUserData, cvode->mem, ts); in TSSetUp_Sundials()
331 PetscCallExternal(CVodeSetInitStep, cvode->mem, (realtype)ts->time_step); in TSSetUp_Sundials()
335 …PetscCheck(flag != CV_MEM_NULL, PetscObjectComm((PetscObject)ts), PETSC_ERR_LIB, "CVodeSetMinStep(… in TSSetUp_Sundials()
336 …PetscCheck(flag != CV_ILL_INPUT, PetscObjectComm((PetscObject)ts), PETSC_ERR_LIB, "CVodeSetMinStep… in TSSetUp_Sundials()
337 SETERRQ(PetscObjectComm((PetscObject)ts), PETSC_ERR_LIB, "CVodeSetMinStep() failed"); in TSSetUp_Sundials()
345 PetscCallExternal(CVodeInit, cvode->mem, TSFunction_Sundials, ts->ptime, cvode->y); in TSSetUp_Sundials()
354 PetscCallExternal(CVodeSetMaxNumSteps, cvode->mem, ts->max_steps); in TSSetUp_Sundials()
361 PetscCall(TSSundialsGetPC(ts, &pc)); in TSSetUp_Sundials()
382 static PetscErrorCode TSSetFromOptions_Sundials(TS ts, PetscOptionItems PetscOptionsObject) in TSSetFromOptions_Sundials() argument
384 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSSetFromOptions_Sundials()
392 if (flag) PetscCall(TSSundialsSetType(ts, (TSSundialsLmmType)indx)); in TSSetFromOptions_Sundials()
394 if (flag) PetscCall(TSSundialsSetGramSchmidtType(ts, (TSSundialsGramSchmidtType)indx)); in TSSetFromOptions_Sundials()
405 PetscCall(TSSundialsGetPC(ts, &pc)); in TSSetFromOptions_Sundials()
410 static PetscErrorCode TSView_Sundials(TS ts, PetscViewer viewer) in TSView_Sundials() argument
412 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSView_Sundials()
465 PetscCall(TSSundialsGetPC(ts, &pc)); in TSView_Sundials()
482 static PetscErrorCode TSSundialsSetType_Sundials(TS ts, TSSundialsLmmType type) in TSSundialsSetType_Sundials() argument
484 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSSundialsSetType_Sundials()
491 static PetscErrorCode TSSundialsSetMaxl_Sundials(TS ts, PetscInt maxl) in TSSundialsSetMaxl_Sundials() argument
493 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSSundialsSetMaxl_Sundials()
500 static PetscErrorCode TSSundialsSetLinearTolerance_Sundials(TS ts, PetscReal tol) in TSSundialsSetLinearTolerance_Sundials() argument
502 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSSundialsSetLinearTolerance_Sundials()
509 static PetscErrorCode TSSundialsSetGramSchmidtType_Sundials(TS ts, TSSundialsGramSchmidtType type) in TSSundialsSetGramSchmidtType_Sundials() argument
511 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSSundialsSetGramSchmidtType_Sundials()
518 static PetscErrorCode TSSundialsSetTolerance_Sundials(TS ts, PetscReal aabs, PetscReal rel) in TSSundialsSetTolerance_Sundials() argument
520 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSSundialsSetTolerance_Sundials()
528 static PetscErrorCode TSSundialsSetMinTimeStep_Sundials(TS ts, PetscReal mindt) in TSSundialsSetMinTimeStep_Sundials() argument
530 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSSundialsSetMinTimeStep_Sundials()
537 static PetscErrorCode TSSundialsSetMaxTimeStep_Sundials(TS ts, PetscReal maxdt) in TSSundialsSetMaxTimeStep_Sundials() argument
539 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSSundialsSetMaxTimeStep_Sundials()
546 static PetscErrorCode TSSundialsSetUseDense_Sundials(TS ts, PetscBool use_dense) in TSSundialsSetUseDense_Sundials() argument
548 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSSundialsSetUseDense_Sundials()
555 static PetscErrorCode TSSundialsGetPC_Sundials(TS ts, PC *pc) in TSSundialsGetPC_Sundials() argument
561 PetscCall(TSGetSNES(ts, &snes)); in TSSundialsGetPC_Sundials()
567 static PetscErrorCode TSSundialsGetIterations_Sundials(TS ts, int *nonlin, int *lin) in TSSundialsGetIterations_Sundials() argument
570 if (nonlin) *nonlin = ts->snes_its; in TSSundialsGetIterations_Sundials()
571 if (lin) *lin = ts->ksp_its; in TSSundialsGetIterations_Sundials()
575 static PetscErrorCode TSSundialsMonitorInternalSteps_Sundials(TS ts, PetscBool s) in TSSundialsMonitorInternalSteps_Sundials() argument
577 TS_Sundials *cvode = (TS_Sundials *)ts->data; in TSSundialsMonitorInternalSteps_Sundials()
605 PetscErrorCode TSSundialsGetIterations(TS ts, int *nonlin, int *lin) in TSSundialsGetIterations() argument
608 PetscUseMethod(ts, "TSSundialsGetIterations_C", (TS, int *, int *), (ts, nonlin, lin)); in TSSundialsGetIterations()
627 PetscErrorCode TSSundialsSetType(TS ts, TSSundialsLmmType type) in TSSundialsSetType() argument
630 PetscTryMethod(ts, "TSSundialsSetType_C", (TS, TSSundialsLmmType), (ts, type)); in TSSundialsSetType()
649 PetscErrorCode TSSundialsSetMaxord(TS ts, PetscInt maxord) in TSSundialsSetMaxord() argument
652 PetscValidLogicalCollectiveInt(ts, maxord, 2); in TSSundialsSetMaxord()
653 PetscTryMethod(ts, "TSSundialsSetMaxOrd_C", (TS, PetscInt), (ts, maxord)); in TSSundialsSetMaxord()
674 PetscErrorCode TSSundialsSetMaxl(TS ts, PetscInt maxl) in TSSundialsSetMaxl() argument
677 PetscValidLogicalCollectiveInt(ts, maxl, 2); in TSSundialsSetMaxl()
678 PetscTryMethod(ts, "TSSundialsSetMaxl_C", (TS, PetscInt), (ts, maxl)); in TSSundialsSetMaxl()
700 PetscErrorCode TSSundialsSetLinearTolerance(TS ts, PetscReal tol) in TSSundialsSetLinearTolerance() argument
703 PetscValidLogicalCollectiveReal(ts, tol, 2); in TSSundialsSetLinearTolerance()
704 PetscTryMethod(ts, "TSSundialsSetLinearTolerance_C", (TS, PetscReal), (ts, tol)); in TSSundialsSetLinearTolerance()
725 PetscErrorCode TSSundialsSetGramSchmidtType(TS ts, TSSundialsGramSchmidtType type) in TSSundialsSetGramSchmidtType() argument
728 PetscTryMethod(ts, "TSSundialsSetGramSchmidtType_C", (TS, TSSundialsGramSchmidtType), (ts, type)); in TSSundialsSetGramSchmidtType()
753 PetscErrorCode TSSundialsSetTolerance(TS ts, PetscReal aabs, PetscReal rel) in TSSundialsSetTolerance() argument
756 PetscTryMethod(ts, "TSSundialsSetTolerance_C", (TS, PetscReal, PetscReal), (ts, aabs, rel)); in TSSundialsSetTolerance()
774 PetscErrorCode TSSundialsGetPC(TS ts, PC *pc) in TSSundialsGetPC() argument
777 PetscUseMethod(ts, "TSSundialsGetPC_C", (TS, PC *), (ts, pc)); in TSSundialsGetPC()
796 PetscErrorCode TSSundialsSetMinTimeStep(TS ts, PetscReal mindt) in TSSundialsSetMinTimeStep() argument
799 PetscTryMethod(ts, "TSSundialsSetMinTimeStep_C", (TS, PetscReal), (ts, mindt)); in TSSundialsSetMinTimeStep()
814 PetscErrorCode TSSundialsSetMaxTimeStep(TS ts, PetscReal maxdt) in TSSundialsSetMaxTimeStep() argument
817 PetscTryMethod(ts, "TSSundialsSetMaxTimeStep_C", (TS, PetscReal), (ts, maxdt)); in TSSundialsSetMaxTimeStep()
834 PetscErrorCode TSSundialsMonitorInternalSteps(TS ts, PetscBool ft) in TSSundialsMonitorInternalSteps() argument
837 PetscTryMethod(ts, "TSSundialsMonitorInternalSteps_C", (TS, PetscBool), (ts, ft)); in TSSundialsMonitorInternalSteps()
854 PetscErrorCode TSSundialsSetUseDense(TS ts, PetscBool use_dense) in TSSundialsSetUseDense() argument
857 PetscValidLogicalCollectiveInt(ts, use_dense, 2); in TSSundialsSetUseDense()
858 PetscTryMethod(ts, "TSSundialsSetUseDense_C", (TS, PetscBool), (ts, use_dense)); in TSSundialsSetUseDense()
884 PETSC_EXTERN PetscErrorCode TSCreate_Sundials(TS ts) in TSCreate_Sundials() argument
890 ts->ops->reset = TSReset_Sundials; in TSCreate_Sundials()
891 ts->ops->destroy = TSDestroy_Sundials; in TSCreate_Sundials()
892 ts->ops->view = TSView_Sundials; in TSCreate_Sundials()
893 ts->ops->setup = TSSetUp_Sundials; in TSCreate_Sundials()
894 ts->ops->step = TSStep_Sundials; in TSCreate_Sundials()
895 ts->ops->interpolate = TSInterpolate_Sundials; in TSCreate_Sundials()
896 ts->ops->setfromoptions = TSSetFromOptions_Sundials; in TSCreate_Sundials()
897 ts->default_adapt_type = TSADAPTNONE; in TSCreate_Sundials()
901 ts->usessnes = PETSC_TRUE; in TSCreate_Sundials()
903 ts->data = (void *)cvode; in TSCreate_Sundials()
912 PetscCallMPI(MPI_Comm_dup(PetscObjectComm((PetscObject)ts), &cvode->comm_sundials)); in TSCreate_Sundials()
922 PetscCall(TSSundialsGetPC_Sundials(ts, &pc)); in TSCreate_Sundials()
925 …PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetType_C", TSSundialsSetType_Sun… in TSCreate_Sundials()
926 …PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetMaxl_C", TSSundialsSetMaxl_Sun… in TSCreate_Sundials()
927 …PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetLinearTolerance_C", TSSundials… in TSCreate_Sundials()
928 …PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetGramSchmidtType_C", TSSundials… in TSCreate_Sundials()
929 …PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetTolerance_C", TSSundialsSetTol… in TSCreate_Sundials()
930 …PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetMinTimeStep_C", TSSundialsSetM… in TSCreate_Sundials()
931 …PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetMaxTimeStep_C", TSSundialsSetM… in TSCreate_Sundials()
932 …PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsGetPC_C", TSSundialsGetPC_Sundial… in TSCreate_Sundials()
933 …PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsGetIterations_C", TSSundialsGetIt… in TSCreate_Sundials()
934 …PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsMonitorInternalSteps_C", TSSundia… in TSCreate_Sundials()
935 …PetscCall(PetscObjectComposeFunction((PetscObject)ts, "TSSundialsSetUseDense_C", TSSundialsSetUseD… in TSCreate_Sundials()