Lines Matching refs:tab

42   struct _MPRKTableau tab;  member
385 MPRKTableau t = &link->tab; in TSMPRKRegisterDestroy()
485 t = &link->tab; in TSMPRKRegister()
556 MPRKTableau tab = mprk->tableau; in TSMPRKSetSplits() local
594 if (tab->np == 3) { in TSMPRKSetSplits()
629 MPRKTableau tab = mprk->tableau; in TSEvaluateStep_MPRK() local
632 PetscInt s = tab->s, j; in TSEvaluateStep_MPRK()
635 for (j = 0; j < s; j++) wf[j] = h * tab->bf[j]; in TSEvaluateStep_MPRK()
646 MPRKTableau tab = mprk->tableau; in TSStep_MPRK() local
647 const PetscInt s = tab->s; in TSStep_MPRK()
648 const PetscReal *Af = tab->Af, *cf = tab->cf, *Asb = tab->Asb, *csb = tab->csb; in TSStep_MPRK()
682 if (tab->np == 3) { in TSStep_MPRK()
687 for (j = 0; j < i; j++) wmb[j] = h * tab->Amb[i * s + j]; in TSStep_MPRK()
707 PetscCall(TSEvaluateStep(ts, tab->order, ts->vec_sol, NULL)); in TSStep_MPRK()
721 MPRKTableau tab = mprk->tableau; in TSEvaluateStep_MPRKSPLIT() local
725 PetscInt s = tab->s, j, computedstages; in TSEvaluateStep_MPRKSPLIT()
734 if (tab->rsb[j]) ws[tab->rsb[j] - 1] += h * tab->bsb[j]; in TSEvaluateStep_MPRKSPLIT()
735 else ws[computedstages++] = h * tab->bsb[j]; in TSEvaluateStep_MPRKSPLIT()
742 if (tab->np == 3 && mprk->is_medium) { in TSEvaluateStep_MPRKSPLIT()
745 …if (tab->rmb[j]) wsb[computedstages - tab->sbase + (tab->rmb[j] - 1) % tab->sbase] += h * tab->bsb… in TSEvaluateStep_MPRKSPLIT()
746 else wsb[computedstages++] = h * tab->bsb[j]; in TSEvaluateStep_MPRKSPLIT()
753 for (j = 0; j < s; j++) wsb[j] = h * tab->bsb[j]; in TSEvaluateStep_MPRKSPLIT()
758 if (tab->np == 3) { in TSEvaluateStep_MPRKSPLIT()
765 …if (tab->rmb[j]) wm[computedstages - tab->sbase + (tab->rmb[j] - 1) % tab->sbase] += h * tab->bmb[… in TSEvaluateStep_MPRKSPLIT()
766 else wm[computedstages++] = h * tab->bmb[j]; in TSEvaluateStep_MPRKSPLIT()
773 for (j = 0; j < s; j++) wmb[j] = h * tab->bmb[j]; in TSEvaluateStep_MPRKSPLIT()
779 for (j = 0; j < s; j++) wf[j] = h * tab->bf[j]; in TSEvaluateStep_MPRKSPLIT()
789 MPRKTableau tab = mprk->tableau; in TSStep_MPRKSPLIT() local
792 PetscInt s = tab->s; in TSStep_MPRKSPLIT()
793 const PetscReal *Af = tab->Af, *cf = tab->cf, *Asb = tab->Asb, *csb = tab->csb; in TSStep_MPRKSPLIT()
807 if (tab->np == 3 && mprk->is_medium) { in TSStep_MPRKSPLIT()
808 if (tab->rmb[i]) { in TSStep_MPRKSPLIT()
810 PetscCall(VecISCopy(Y[tab->rmb[i] - 1], mprk->is_slowbuffer, SCATTER_REVERSE, Yslowbuffer)); in TSStep_MPRKSPLIT()
816 … if (tab->rmb[j]) wm[computedstages - tab->sbase + (tab->rmb[j] - 1) % tab->sbase] += wsb[j]; in TSStep_MPRKSPLIT()
831 if (tab->rsb[i]) { /* repeat previous stage */ in TSStep_MPRKSPLIT()
833 PetscCall(VecISCopy(Y[tab->rsb[i] - 1], mprk->is_slow, SCATTER_REVERSE, Yslow)); in TSStep_MPRKSPLIT()
838 if (tab->rsb[j]) ws[tab->rsb[j] - 1] += wsb[j]; in TSStep_MPRKSPLIT()
855 if (tab->np == 3) { in TSStep_MPRKSPLIT()
858 const PetscReal *Amb = tab->Amb, *cmb = tab->cmb; in TSStep_MPRKSPLIT()
868 if (tab->rmb[i]) { /* repeat previous stage */ in TSStep_MPRKSPLIT()
870 PetscCall(VecISCopy(Y[tab->rmb[i] - 1], mprk->is_medium, SCATTER_REVERSE, Ymedium)); in TSStep_MPRKSPLIT()
875 … if (tab->rmb[j]) wm[computedstages - tab->sbase + (tab->rmb[j] - 1) % tab->sbase] += wmb[j]; in TSStep_MPRKSPLIT()
890 …if (!(tab->np == 3 && mprk->is_medium)) PetscCall(TSComputeRHSFunction(mprk->subts_slowbuffer, t +… in TSStep_MPRKSPLIT()
894 PetscCall(TSEvaluateStep(ts, tab->order, ts->vec_sol, NULL)); in TSStep_MPRKSPLIT()
903 MPRKTableau tab = mprk->tableau; in TSMPRKTableauReset() local
906 if (!tab) PetscFunctionReturn(PETSC_SUCCESS); 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()
923 if (tab->np == 3) { in TSMPRKTableauReset()
966 MPRKTableau tab = mprk->tableau; in TSMPRKTableauSetUp() local
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()
973 if (tab->np == 3) { 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()
982 PetscCall(VecDuplicateVecs(YdotRHS_slow, tab->s, &mprk->YdotRHS_slow)); in TSMPRKTableauSetUp()
986 PetscCall(VecDuplicateVecs(YdotRHS_slowbuffer, tab->s, &mprk->YdotRHS_slowbuffer)); in TSMPRKTableauSetUp()
988 if (tab->np == 3) { in TSMPRKTableauSetUp()
991 PetscCall(VecDuplicateVecs(YdotRHS_medium, tab->s, &mprk->YdotRHS_medium)); in TSMPRKTableauSetUp()
995 PetscCall(VecDuplicateVecs(YdotRHS_mediumbuffer, tab->s, &mprk->YdotRHS_mediumbuffer)); in TSMPRKTableauSetUp()
999 PetscCall(VecDuplicateVecs(YdotRHS_fast, tab->s, &mprk->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()
1005 if (tab->np == 3) { 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()
1017 MPRKTableau tab = mprk->tableau; in TSSetUp_MPRK() local
1023 …IS() using split names 'slow' and 'fast' respectively in order to use the method '%s'", tab->name); in TSSetUp_MPRK()
1025 if (tab->np == 3) { in TSSetUp_MPRK()
1027 …lit names 'slow' and 'medium' and 'fast' respectively in order to use the method '%s'", tab->name); in TSSetUp_MPRK()
1070 …k = MPRKTableauList, count = 0; link; link = link->next, count++) namelist[count] = link->tab.name; in TSSetFromOptions_MPRK()
1087 MPRKTableau tab = mprk->tableau; in TSView_MPRK() local
1094 PetscCall(PetscViewerASCIIPrintf(viewer, " Order: %" PetscInt_FMT "\n", tab->order)); in TSView_MPRK()
1096 PetscCall(PetscFormatRealArray(fbuf, sizeof(fbuf), "% 8.6f", tab->s, tab->cf)); in TSView_MPRK()
1099 for (i = 0; i < tab->s; i++) { in TSView_MPRK()
1100 PetscCall(PetscFormatRealArray(fbuf, sizeof(fbuf), "% 8.6f", tab->s, &tab->Af[i * tab->s])); in TSView_MPRK()
1103 PetscCall(PetscFormatRealArray(fbuf, sizeof(fbuf), "% 8.6f", tab->s, tab->bf)); in TSView_MPRK()
1106 PetscCall(PetscFormatRealArray(sbuf, sizeof(sbuf), "% 8.6f", tab->s, tab->csb)); in TSView_MPRK()
1109 for (i = 0; i < tab->s; i++) { in TSView_MPRK()
1110 PetscCall(PetscFormatRealArray(sbuf, sizeof(sbuf), "% 8.6f", tab->s, &tab->Asb[i * tab->s])); in TSView_MPRK()
1113 PetscCall(PetscFormatRealArray(sbuf, sizeof(sbuf), "% 8.6f", tab->s, tab->bsb)); in TSView_MPRK()
1116 if (tab->np == 3) { in TSView_MPRK()
1118 PetscCall(PetscFormatRealArray(mbuf, sizeof(mbuf), "% 8.6f", tab->s, tab->cmb)); in TSView_MPRK()
1121 for (i = 0; i < tab->s; i++) { in TSView_MPRK()
1122 … PetscCall(PetscFormatRealArray(mbuf, sizeof(mbuf), "% 8.6f", tab->s, &tab->Amb[i * tab->s])); in TSView_MPRK()
1125 PetscCall(PetscFormatRealArray(mbuf, sizeof(mbuf), "% 8.6f", tab->s, tab->bmb)); in TSView_MPRK()
1211 PetscCall(PetscStrcmp(link->tab.name, mprktype, &match)); in TSMPRKSetType_MPRK()
1214 mprk->tableau = &link->tab; in TSMPRKSetType_MPRK()