Lines Matching refs:mprk
555 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSMPRKSetSplits() local
556 MPRKTableau tab = mprk->tableau; in TSMPRKSetSplits()
560 PetscCall(TSRHSSplitGetSubTS(ts, "slow", &mprk->subts_slow)); in TSMPRKSetSplits()
561 PetscCall(TSRHSSplitGetSubTS(ts, "fast", &mprk->subts_fast)); in TSMPRKSetSplits()
562 …PetscCheck(mprk->subts_slow && mprk->subts_fast, PetscObjectComm((PetscObject)ts), PETSC_ERR_USER,… in TSMPRKSetSplits()
567 PetscCall(TSRHSSplitGetSubTS(ts, "slowbuffer", &mprk->subts_slowbuffer)); in TSMPRKSetSplits()
568 if (!mprk->subts_slowbuffer) { in TSMPRKSetSplits()
569 mprk->subts_slowbuffer = mprk->subts_slow; in TSMPRKSetSplits()
570 mprk->subts_slow = NULL; in TSMPRKSetSplits()
572 if (mprk->subts_slow) { in TSMPRKSetSplits()
574 PetscCall(TSGetDM(mprk->subts_slow, &subdm)); in TSMPRKSetSplits()
577 PetscCall(TSSetDM(mprk->subts_slow, newdm)); in TSMPRKSetSplits()
581 PetscCall(TSGetDM(mprk->subts_slowbuffer, &subdm)); in TSMPRKSetSplits()
584 PetscCall(TSSetDM(mprk->subts_slowbuffer, newdm)); in TSMPRKSetSplits()
588 PetscCall(TSGetDM(mprk->subts_fast, &subdm)); in TSMPRKSetSplits()
591 PetscCall(TSSetDM(mprk->subts_fast, newdm)); in TSMPRKSetSplits()
595 PetscCall(TSRHSSplitGetSubTS(ts, "medium", &mprk->subts_medium)); in TSMPRKSetSplits()
596 PetscCall(TSRHSSplitGetSubTS(ts, "mediumbuffer", &mprk->subts_mediumbuffer)); in TSMPRKSetSplits()
597 if (mprk->subts_medium && !mprk->subts_mediumbuffer) { in TSMPRKSetSplits()
598 mprk->subts_mediumbuffer = mprk->subts_medium; in TSMPRKSetSplits()
599 mprk->subts_medium = NULL; in TSMPRKSetSplits()
601 if (mprk->subts_medium) { in TSMPRKSetSplits()
603 PetscCall(TSGetDM(mprk->subts_medium, &subdm)); in TSMPRKSetSplits()
606 PetscCall(TSSetDM(mprk->subts_medium, newdm)); in TSMPRKSetSplits()
610 PetscCall(TSGetDM(mprk->subts_mediumbuffer, &subdm)); in TSMPRKSetSplits()
613 PetscCall(TSSetDM(mprk->subts_mediumbuffer, newdm)); in TSMPRKSetSplits()
628 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSEvaluateStep_MPRK() local
629 MPRKTableau tab = mprk->tableau; in TSEvaluateStep_MPRK()
630 PetscScalar *wf = mprk->work_fast; in TSEvaluateStep_MPRK()
637 PetscCall(VecMAXPY(X, s, wf, mprk->YdotRHS)); in TSEvaluateStep_MPRK()
643 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSStep_MPRK() local
644 … *Y = mprk->Y, *YdotRHS = mprk->YdotRHS, *YdotRHS_fast = mprk->YdotRHS_fast, *YdotRHS_slow = m… in TSStep_MPRK()
646 MPRKTableau tab = mprk->tableau; in TSStep_MPRK()
649 PetscScalar *wf = mprk->work_fast, *wsb = mprk->work_slowbuffer; in TSStep_MPRK()
655 mprk->stage_time = t + h * cf[i]; in TSStep_MPRK()
656 PetscCall(TSPreStage(ts, mprk->stage_time)); in TSStep_MPRK()
661 …for (j = 0; j < i; j++) PetscCall(VecGetSubVector(YdotRHS[j], mprk->is_slowbuffer, &YdotRHS_slowbu… in TSStep_MPRK()
662 PetscCall(VecGetSubVector(Y[i], mprk->is_slowbuffer, &Yslowbuffer)); in TSStep_MPRK()
663 PetscCall(VecMAXPY(Yslowbuffer, i, wsb, mprk->YdotRHS_slowbuffer)); in TSStep_MPRK()
664 PetscCall(VecRestoreSubVector(Y[i], mprk->is_slowbuffer, &Yslowbuffer)); in TSStep_MPRK()
665 …for (j = 0; j < i; j++) PetscCall(VecRestoreSubVector(YdotRHS[j], mprk->is_slowbuffer, &YdotRHS_sl… in TSStep_MPRK()
667 if (mprk->is_slow) { in TSStep_MPRK()
668 … for (j = 0; j < i; j++) PetscCall(VecGetSubVector(YdotRHS[j], mprk->is_slow, &YdotRHS_slow[j])); in TSStep_MPRK()
669 PetscCall(VecGetSubVector(Y[i], mprk->is_slow, &Yslow)); in TSStep_MPRK()
670 PetscCall(VecMAXPY(Yslow, i, wsb, mprk->YdotRHS_slow)); in TSStep_MPRK()
671 PetscCall(VecRestoreSubVector(Y[i], mprk->is_slow, &Yslow)); in TSStep_MPRK()
672 …for (j = 0; j < i; j++) PetscCall(VecRestoreSubVector(YdotRHS[j], mprk->is_slow, &YdotRHS_slow[j])… in TSStep_MPRK()
677 for (j = 0; j < i; j++) PetscCall(VecGetSubVector(YdotRHS[j], mprk->is_fast, &YdotRHS_fast[j])); in TSStep_MPRK()
678 PetscCall(VecGetSubVector(Y[i], mprk->is_fast, &Yfast)); in TSStep_MPRK()
679 PetscCall(VecMAXPY(Yfast, i, wf, mprk->YdotRHS_fast)); in TSStep_MPRK()
680 PetscCall(VecRestoreSubVector(Y[i], mprk->is_fast, &Yfast)); in TSStep_MPRK()
681 …for (j = 0; j < i; j++) PetscCall(VecRestoreSubVector(YdotRHS[j], mprk->is_fast, &YdotRHS_fast[j])… in TSStep_MPRK()
683 …Vec *YdotRHS_medium = mprk->YdotRHS_medium, *YdotRHS_mediumbuffer = mprk->YdotRHS_mediumbu… in TSStep_MPRK()
685 PetscScalar *wmb = mprk->work_mediumbuffer; in TSStep_MPRK()
689 if (mprk->is_medium) { in TSStep_MPRK()
690 …for (j = 0; j < i; j++) PetscCall(VecGetSubVector(YdotRHS[j], mprk->is_medium, &YdotRHS_medium[j])… in TSStep_MPRK()
691 PetscCall(VecGetSubVector(Y[i], mprk->is_medium, &Ymedium)); in TSStep_MPRK()
692 PetscCall(VecMAXPY(Ymedium, i, wmb, mprk->YdotRHS_medium)); in TSStep_MPRK()
693 PetscCall(VecRestoreSubVector(Y[i], mprk->is_medium, &Ymedium)); in TSStep_MPRK()
694 …for (j = 0; j < i; j++) PetscCall(VecRestoreSubVector(YdotRHS[j], mprk->is_medium, &YdotRHS_medium… in TSStep_MPRK()
697 …for (j = 0; j < i; j++) PetscCall(VecGetSubVector(YdotRHS[j], mprk->is_mediumbuffer, &YdotRHS_medi… in TSStep_MPRK()
698 PetscCall(VecGetSubVector(Y[i], mprk->is_mediumbuffer, &Ymediumbuffer)); in TSStep_MPRK()
699 PetscCall(VecMAXPY(Ymediumbuffer, i, wmb, mprk->YdotRHS_mediumbuffer)); in TSStep_MPRK()
700 PetscCall(VecRestoreSubVector(Y[i], mprk->is_mediumbuffer, &Ymediumbuffer)); in TSStep_MPRK()
701 …for (j = 0; j < i; j++) PetscCall(VecRestoreSubVector(YdotRHS[j], mprk->is_mediumbuffer, &YdotRHS_… in TSStep_MPRK()
703 PetscCall(TSPostStage(ts, mprk->stage_time, i, Y)); in TSStep_MPRK()
720 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSEvaluateStep_MPRKSPLIT() local
721 MPRKTableau tab = mprk->tableau; in TSEvaluateStep_MPRKSPLIT()
723 PetscScalar *wf = mprk->work_fast, *ws = mprk->work_slow, *wsb = mprk->work_slowbuffer; in TSEvaluateStep_MPRKSPLIT()
731 if (mprk->is_slow) { in TSEvaluateStep_MPRKSPLIT()
737 PetscCall(VecGetSubVector(X, mprk->is_slow, &Xslow)); in TSEvaluateStep_MPRKSPLIT()
738 PetscCall(VecMAXPY(Xslow, computedstages, ws, mprk->YdotRHS_slow)); in TSEvaluateStep_MPRKSPLIT()
739 PetscCall(VecRestoreSubVector(X, mprk->is_slow, &Xslow)); in TSEvaluateStep_MPRKSPLIT()
742 if (tab->np == 3 && mprk->is_medium) { in TSEvaluateStep_MPRKSPLIT()
748 PetscCall(VecGetSubVector(X, mprk->is_slowbuffer, &Xslowbuffer)); in TSEvaluateStep_MPRKSPLIT()
749 PetscCall(VecMAXPY(Xslowbuffer, computedstages, wsb, mprk->YdotRHS_slowbuffer)); in TSEvaluateStep_MPRKSPLIT()
750 PetscCall(VecRestoreSubVector(X, mprk->is_slowbuffer, &Xslowbuffer)); in TSEvaluateStep_MPRKSPLIT()
754 PetscCall(VecGetSubVector(X, mprk->is_slowbuffer, &Xslowbuffer)); in TSEvaluateStep_MPRKSPLIT()
755 PetscCall(VecMAXPY(Xslowbuffer, s, wsb, mprk->YdotRHS_slowbuffer)); in TSEvaluateStep_MPRKSPLIT()
756 PetscCall(VecRestoreSubVector(X, mprk->is_slowbuffer, &Xslowbuffer)); in TSEvaluateStep_MPRKSPLIT()
760 PetscScalar *wm = mprk->work_medium, *wmb = mprk->work_mediumbuffer; in TSEvaluateStep_MPRKSPLIT()
762 if (mprk->is_medium) { in TSEvaluateStep_MPRKSPLIT()
768 PetscCall(VecGetSubVector(X, mprk->is_medium, &Xmedium)); in TSEvaluateStep_MPRKSPLIT()
769 PetscCall(VecMAXPY(Xmedium, computedstages, wm, mprk->YdotRHS_medium)); in TSEvaluateStep_MPRKSPLIT()
770 PetscCall(VecRestoreSubVector(X, mprk->is_medium, &Xmedium)); in TSEvaluateStep_MPRKSPLIT()
774 PetscCall(VecGetSubVector(X, mprk->is_mediumbuffer, &Xmediumbuffer)); in TSEvaluateStep_MPRKSPLIT()
775 PetscCall(VecMAXPY(Xmediumbuffer, s, wmb, mprk->YdotRHS_mediumbuffer)); in TSEvaluateStep_MPRKSPLIT()
776 PetscCall(VecRestoreSubVector(X, mprk->is_mediumbuffer, &Xmediumbuffer)); in TSEvaluateStep_MPRKSPLIT()
780 PetscCall(VecGetSubVector(X, mprk->is_fast, &Xfast)); in TSEvaluateStep_MPRKSPLIT()
781 PetscCall(VecMAXPY(Xfast, s, wf, mprk->YdotRHS_fast)); in TSEvaluateStep_MPRKSPLIT()
782 PetscCall(VecRestoreSubVector(X, mprk->is_fast, &Xfast)); in TSEvaluateStep_MPRKSPLIT()
788 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSStep_MPRKSPLIT() local
789 MPRKTableau tab = mprk->tableau; in TSStep_MPRKSPLIT()
790 …Vec *Y = mprk->Y, *YdotRHS_fast = mprk->YdotRHS_fast, *YdotRHS_slow = mprk->YdotRHS_sl… in TSStep_MPRKSPLIT()
794 PetscScalar *wf = mprk->work_fast, *ws = mprk->work_slow, *wsb = mprk->work_slowbuffer; in TSStep_MPRKSPLIT()
800 mprk->stage_time = t + h * cf[i]; in TSStep_MPRKSPLIT()
801 PetscCall(TSPreStage(ts, mprk->stage_time)); in TSStep_MPRKSPLIT()
807 if (tab->np == 3 && mprk->is_medium) { in TSStep_MPRKSPLIT()
809 PetscCall(VecGetSubVector(Y[i], mprk->is_slowbuffer, &Yslowbuffer)); in TSStep_MPRKSPLIT()
810 PetscCall(VecISCopy(Y[tab->rmb[i] - 1], mprk->is_slowbuffer, SCATTER_REVERSE, Yslowbuffer)); in TSStep_MPRKSPLIT()
811 PetscCall(VecRestoreSubVector(Y[i], mprk->is_slowbuffer, &Yslowbuffer)); in TSStep_MPRKSPLIT()
813 PetscScalar *wm = mprk->work_medium; in TSStep_MPRKSPLIT()
819 PetscCall(VecGetSubVector(Y[i], mprk->is_slowbuffer, &Yslowbuffer)); in TSStep_MPRKSPLIT()
821 PetscCall(VecRestoreSubVector(Y[i], mprk->is_slowbuffer, &Yslowbuffer)); in TSStep_MPRKSPLIT()
824 PetscCall(VecGetSubVector(Y[i], mprk->is_slowbuffer, &Yslowbuffer)); in TSStep_MPRKSPLIT()
826 PetscCall(VecRestoreSubVector(Y[i], mprk->is_slowbuffer, &Yslowbuffer)); in TSStep_MPRKSPLIT()
830 if (mprk->is_slow) { in TSStep_MPRKSPLIT()
832 PetscCall(VecGetSubVector(Y[i], mprk->is_slow, &Yslow)); in TSStep_MPRKSPLIT()
833 PetscCall(VecISCopy(Y[tab->rsb[i] - 1], mprk->is_slow, SCATTER_REVERSE, Yslow)); in TSStep_MPRKSPLIT()
834 PetscCall(VecRestoreSubVector(Y[i], mprk->is_slow, &Yslow)); in TSStep_MPRKSPLIT()
841 PetscCall(VecGetSubVector(Y[i], mprk->is_slow, &Yslow)); in TSStep_MPRKSPLIT()
843 PetscCall(VecRestoreSubVector(Y[i], mprk->is_slow, &Yslow)); in TSStep_MPRKSPLIT()
845 …PetscCall(TSComputeRHSFunction(mprk->subts_slow, t + h * csb[i], Y[i], YdotRHS_slow[computedstages… in TSStep_MPRKSPLIT()
851 PetscCall(VecGetSubVector(Y[i], mprk->is_fast, &Yfast)); in TSStep_MPRKSPLIT()
853 PetscCall(VecRestoreSubVector(Y[i], mprk->is_fast, &Yfast)); in TSStep_MPRKSPLIT()
856 …Vec *YdotRHS_medium = mprk->YdotRHS_medium, *YdotRHS_mediumbuffer = mprk->YdotRHS_medi… in TSStep_MPRKSPLIT()
859 PetscScalar *wm = mprk->work_medium, *wmb = mprk->work_mediumbuffer; in TSStep_MPRKSPLIT()
863 PetscCall(VecGetSubVector(Y[i], mprk->is_mediumbuffer, &Ymediumbuffer)); in TSStep_MPRKSPLIT()
865 PetscCall(VecRestoreSubVector(Y[i], mprk->is_mediumbuffer, &Ymediumbuffer)); in TSStep_MPRKSPLIT()
867 if (mprk->is_medium) { in TSStep_MPRKSPLIT()
869 PetscCall(VecGetSubVector(Y[i], mprk->is_medium, &Ymedium)); in TSStep_MPRKSPLIT()
870 PetscCall(VecISCopy(Y[tab->rmb[i] - 1], mprk->is_medium, SCATTER_REVERSE, Ymedium)); in TSStep_MPRKSPLIT()
871 PetscCall(VecRestoreSubVector(Y[i], mprk->is_medium, &Ymedium)); in TSStep_MPRKSPLIT()
878 PetscCall(VecGetSubVector(Y[i], mprk->is_medium, &Ymedium)); in TSStep_MPRKSPLIT()
880 PetscCall(VecRestoreSubVector(Y[i], mprk->is_medium, &Ymedium)); in TSStep_MPRKSPLIT()
882 …PetscCall(TSComputeRHSFunction(mprk->subts_medium, t + h * cmb[i], Y[i], YdotRHS_medium[computedst… in TSStep_MPRKSPLIT()
884 …PetscCall(TSComputeRHSFunction(mprk->subts_slowbuffer, t + h * csb[i], Y[i], YdotRHS_slowbuffer[co… in TSStep_MPRKSPLIT()
888 …PetscCall(TSComputeRHSFunction(mprk->subts_mediumbuffer, t + h * cmb[i], Y[i], YdotRHS_mediumbuffe… in TSStep_MPRKSPLIT()
890 …if (!(tab->np == 3 && mprk->is_medium)) PetscCall(TSComputeRHSFunction(mprk->subts_slowbuffer, t +… in TSStep_MPRKSPLIT()
891 PetscCall(TSComputeRHSFunction(mprk->subts_fast, t + h * cf[i], Y[i], YdotRHS_fast[i])); in TSStep_MPRKSPLIT()
902 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSMPRKTableauReset() local
903 MPRKTableau tab = mprk->tableau; in TSMPRKTableauReset()
907 PetscCall(PetscFree(mprk->work_fast)); in TSMPRKTableauReset()
908 PetscCall(PetscFree(mprk->work_slow)); in TSMPRKTableauReset()
909 PetscCall(PetscFree(mprk->work_slowbuffer)); in TSMPRKTableauReset()
910 PetscCall(PetscFree(mprk->work_medium)); in TSMPRKTableauReset()
911 PetscCall(PetscFree(mprk->work_mediumbuffer)); in TSMPRKTableauReset()
912 PetscCall(VecDestroyVecs(tab->s, &mprk->Y)); in TSMPRKTableauReset()
914 PetscCall(VecDestroyVecs(tab->s, &mprk->YdotRHS_fast)); in TSMPRKTableauReset()
915 PetscCall(VecDestroyVecs(tab->s, &mprk->YdotRHS_slow)); in TSMPRKTableauReset()
916 PetscCall(VecDestroyVecs(tab->s, &mprk->YdotRHS_slowbuffer)); in TSMPRKTableauReset()
917 PetscCall(VecDestroyVecs(tab->s, &mprk->YdotRHS_medium)); in TSMPRKTableauReset()
918 PetscCall(VecDestroyVecs(tab->s, &mprk->YdotRHS_mediumbuffer)); in TSMPRKTableauReset()
920 PetscCall(VecDestroyVecs(tab->s, &mprk->YdotRHS)); in TSMPRKTableauReset()
921 if (mprk->is_slow) PetscCall(PetscFree(mprk->YdotRHS_slow)); in TSMPRKTableauReset()
922 PetscCall(PetscFree(mprk->YdotRHS_slowbuffer)); in TSMPRKTableauReset()
924 if (mprk->is_medium) PetscCall(PetscFree(mprk->YdotRHS_medium)); in TSMPRKTableauReset()
925 PetscCall(PetscFree(mprk->YdotRHS_mediumbuffer)); in TSMPRKTableauReset()
927 PetscCall(PetscFree(mprk->YdotRHS_fast)); in TSMPRKTableauReset()
965 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSMPRKTableauSetUp() local
966 MPRKTableau tab = mprk->tableau; in TSMPRKTableauSetUp()
970 PetscCall(VecDuplicateVecs(ts->vec_sol, tab->s, &mprk->Y)); in TSMPRKTableauSetUp()
971 if (mprk->is_slow) PetscCall(PetscMalloc1(tab->s, &mprk->work_slow)); in TSMPRKTableauSetUp()
972 PetscCall(PetscMalloc1(tab->s, &mprk->work_slowbuffer)); in TSMPRKTableauSetUp()
974 if (mprk->is_medium) PetscCall(PetscMalloc1(tab->s, &mprk->work_medium)); in TSMPRKTableauSetUp()
975 PetscCall(PetscMalloc1(tab->s, &mprk->work_mediumbuffer)); in TSMPRKTableauSetUp()
977 PetscCall(PetscMalloc1(tab->s, &mprk->work_fast)); in TSMPRKTableauSetUp()
980 if (mprk->is_slow) { in TSMPRKTableauSetUp()
981 PetscCall(VecGetSubVector(ts->vec_sol, mprk->is_slow, &YdotRHS_slow)); in TSMPRKTableauSetUp()
982 PetscCall(VecDuplicateVecs(YdotRHS_slow, tab->s, &mprk->YdotRHS_slow)); in TSMPRKTableauSetUp()
983 PetscCall(VecRestoreSubVector(ts->vec_sol, mprk->is_slow, &YdotRHS_slow)); in TSMPRKTableauSetUp()
985 PetscCall(VecGetSubVector(ts->vec_sol, mprk->is_slowbuffer, &YdotRHS_slowbuffer)); in TSMPRKTableauSetUp()
986 PetscCall(VecDuplicateVecs(YdotRHS_slowbuffer, tab->s, &mprk->YdotRHS_slowbuffer)); in TSMPRKTableauSetUp()
987 PetscCall(VecRestoreSubVector(ts->vec_sol, mprk->is_slowbuffer, &YdotRHS_slowbuffer)); in TSMPRKTableauSetUp()
989 if (mprk->is_medium) { in TSMPRKTableauSetUp()
990 PetscCall(VecGetSubVector(ts->vec_sol, mprk->is_medium, &YdotRHS_medium)); in TSMPRKTableauSetUp()
991 PetscCall(VecDuplicateVecs(YdotRHS_medium, tab->s, &mprk->YdotRHS_medium)); in TSMPRKTableauSetUp()
992 PetscCall(VecRestoreSubVector(ts->vec_sol, mprk->is_medium, &YdotRHS_medium)); in TSMPRKTableauSetUp()
994 PetscCall(VecGetSubVector(ts->vec_sol, mprk->is_mediumbuffer, &YdotRHS_mediumbuffer)); in TSMPRKTableauSetUp()
995 PetscCall(VecDuplicateVecs(YdotRHS_mediumbuffer, tab->s, &mprk->YdotRHS_mediumbuffer)); in TSMPRKTableauSetUp()
996 PetscCall(VecRestoreSubVector(ts->vec_sol, mprk->is_mediumbuffer, &YdotRHS_mediumbuffer)); in TSMPRKTableauSetUp()
998 PetscCall(VecGetSubVector(ts->vec_sol, mprk->is_fast, &YdotRHS_fast)); in TSMPRKTableauSetUp()
999 PetscCall(VecDuplicateVecs(YdotRHS_fast, tab->s, &mprk->YdotRHS_fast)); in TSMPRKTableauSetUp()
1000 PetscCall(VecRestoreSubVector(ts->vec_sol, mprk->is_fast, &YdotRHS_fast)); in TSMPRKTableauSetUp()
1002 PetscCall(VecDuplicateVecs(ts->vec_sol, tab->s, &mprk->YdotRHS)); in TSMPRKTableauSetUp()
1003 if (mprk->is_slow) PetscCall(PetscMalloc1(tab->s, &mprk->YdotRHS_slow)); in TSMPRKTableauSetUp()
1004 PetscCall(PetscMalloc1(tab->s, &mprk->YdotRHS_slowbuffer)); in TSMPRKTableauSetUp()
1006 if (mprk->is_medium) PetscCall(PetscMalloc1(tab->s, &mprk->YdotRHS_medium)); in TSMPRKTableauSetUp()
1007 PetscCall(PetscMalloc1(tab->s, &mprk->YdotRHS_mediumbuffer)); in TSMPRKTableauSetUp()
1009 PetscCall(PetscMalloc1(tab->s, &mprk->YdotRHS_fast)); in TSMPRKTableauSetUp()
1016 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSSetUp_MPRK() local
1017 MPRKTableau tab = mprk->tableau; in TSSetUp_MPRK()
1021 PetscCall(TSRHSSplitGetIS(ts, "slow", &mprk->is_slow)); in TSSetUp_MPRK()
1022 PetscCall(TSRHSSplitGetIS(ts, "fast", &mprk->is_fast)); in TSSetUp_MPRK()
1023 …PetscCheck(mprk->is_slow && mprk->is_fast, PetscObjectComm((PetscObject)ts), PETSC_ERR_USER, "Must… in TSSetUp_MPRK()
1026 PetscCall(TSRHSSplitGetIS(ts, "medium", &mprk->is_medium)); in TSSetUp_MPRK()
1027 …PetscCheck(mprk->is_medium, PetscObjectComm((PetscObject)ts), PETSC_ERR_USER, "Must set up RHSSpli… in TSSetUp_MPRK()
1028 PetscCall(TSRHSSplitGetIS(ts, "mediumbuffer", &mprk->is_mediumbuffer)); in TSSetUp_MPRK()
1029 if (!mprk->is_mediumbuffer) { /* let medium buffer cover whole medium region */ in TSSetUp_MPRK()
1030 mprk->is_mediumbuffer = mprk->is_medium; in TSSetUp_MPRK()
1031 mprk->is_medium = NULL; in TSSetUp_MPRK()
1036 PetscCall(TSRHSSplitGetIS(ts, "slowbuffer", &mprk->is_slowbuffer)); in TSSetUp_MPRK()
1037 if (!mprk->is_slowbuffer) { /* let slow buffer cover whole slow region */ in TSSetUp_MPRK()
1038 mprk->is_slowbuffer = mprk->is_slow; in TSSetUp_MPRK()
1039 mprk->is_slow = NULL; in TSSetUp_MPRK()
1059 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSSetFromOptions_MPRK() local
1071 …y of MPRK method", "TSMPRKSetType", (const char *const *)namelist, count, mprk->tableau->name, &ch… in TSSetFromOptions_MPRK()
1081 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSView_MPRK() local
1087 MPRKTableau tab = mprk->tableau; in TSView_MPRK()
1192 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSMPRKGetType_MPRK() local
1195 *mprktype = mprk->tableau->name; in TSMPRKGetType_MPRK()
1201 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSMPRKSetType_MPRK() local
1206 if (mprk->tableau) { in TSMPRKSetType_MPRK()
1207 PetscCall(PetscStrcmp(mprk->tableau->name, mprktype, &match)); in TSMPRKSetType_MPRK()
1214 mprk->tableau = &link->tab; in TSMPRKSetType_MPRK()
1224 TS_MPRK *mprk = (TS_MPRK *)ts->data; in TSGetStages_MPRK() local
1227 *ns = mprk->tableau->s; in TSGetStages_MPRK()
1228 if (Y) *Y = mprk->Y; in TSGetStages_MPRK()
1261 TS_MPRK *mprk; in TSCreate_MPRK() local
1276 PetscCall(PetscNew(&mprk)); in TSCreate_MPRK()
1277 ts->data = (void *)mprk; in TSCreate_MPRK()