Lines Matching refs:stack
125 Stack stack; member
161 static PetscErrorCode ElementCreate(TS ts, CheckpointType cptype, Stack *stack, StackElement *e) in ElementCreate() argument
167 if (stack->top < stack->stacksize - 1 && stack->container[stack->top + 1]) { in ElementCreate()
168 *e = stack->container[stack->top + 1]; in ElementCreate()
175 PetscCall(TSGetStages(ts, &stack->numY, &Y)); in ElementCreate()
176 if (stack->numY) PetscCall(VecDuplicateVecs(Y[0], stack->numY, &(*e)->Y)); in ElementCreate()
178 if (cptype == 0 && (*e)->Y) PetscCall(VecDestroyVecs(stack->numY, &(*e)->Y)); in ElementCreate()
182 if (stack->use_dram) PetscCall(PetscMallocSetDRAM()); in ElementCreate()
189 PetscCall(TSGetStages(ts, &stack->numY, &Y)); in ElementCreate()
190 if (stack->numY) PetscCall(VecDuplicateVecs(Y[0], stack->numY, &(*e)->Y)); in ElementCreate()
192 if (stack->use_dram) PetscCall(PetscMallocResetDRAM()); in ElementCreate()
193 stack->nallocated++; in ElementCreate()
198 static PetscErrorCode ElementSet(TS ts, Stack *stack, StackElement *e, PetscInt stepnum, PetscReal … in ElementSet() argument
207 PetscCall(TSGetStages(ts, &stack->numY, &Y)); in ElementSet()
208 for (i = 0; i < stack->numY; i++) PetscCall(VecCopy(Y[i], (*e)->Y[i])); in ElementSet()
222 static PetscErrorCode ElementDestroy(Stack *stack, StackElement e) in ElementDestroy() argument
225 if (stack->use_dram) PetscCall(PetscMallocSetDRAM()); in ElementDestroy()
227 if (e->Y) PetscCall(VecDestroyVecs(stack->numY, &e->Y)); in ElementDestroy()
229 if (stack->use_dram) PetscCall(PetscMallocResetDRAM()); in ElementDestroy()
230 stack->nallocated--; in ElementDestroy()
234 static PetscErrorCode StackResize(Stack *stack, PetscInt newsize) in StackResize() argument
241 for (i = 0; i < stack->stacksize; i++) newcontainer[i] = stack->container[i]; in StackResize()
242 PetscCall(PetscFree(stack->container)); in StackResize()
243 stack->container = newcontainer; in StackResize()
244 stack->stacksize = newsize; in StackResize()
248 static PetscErrorCode StackPush(Stack *stack, StackElement e) in StackPush() argument
251 …PetscCheck(stack->top + 1 < stack->stacksize, PETSC_COMM_SELF, PETSC_ERR_MEMC, "Maximum stack size… in StackPush()
252 stack->container[++stack->top] = e; in StackPush()
256 static PetscErrorCode StackPop(Stack *stack, StackElement *e) in StackPop() argument
260 PetscCheck(stack->top != -1, PETSC_COMM_SELF, PETSC_ERR_MEMC, "Empty stack"); in StackPop()
261 *e = stack->container[stack->top--]; in StackPop()
265 static PetscErrorCode StackTop(Stack *stack, StackElement *e) in StackTop() argument
268 *e = stack->container[stack->top]; in StackTop()
272 static PetscErrorCode StackInit(Stack *stack, PetscInt size, PetscInt ny) in StackInit() argument
275 stack->top = -1; in StackInit()
276 stack->numY = ny; in StackInit()
278 if (!stack->container) PetscCall(PetscCalloc1(size, &stack->container)); in StackInit()
282 static PetscErrorCode StackDestroy(Stack *stack) in StackDestroy() argument
284 const PetscInt n = stack->nallocated; in StackDestroy()
287 if (!stack->container) PetscFunctionReturn(PETSC_SUCCESS); in StackDestroy()
288 …PetscCheck(stack->top + 1 <= n, PETSC_COMM_SELF, PETSC_ERR_PLIB, "Stack size does not match elemen… in StackDestroy()
289 for (PetscInt i = 0; i < n; i++) PetscCall(ElementDestroy(stack, stack->container[i])); in StackDestroy()
290 PetscCall(PetscFree(stack->container)); in StackDestroy()
294 static PetscErrorCode StackFind(Stack *stack, StackElement *e, PetscInt index) in StackFind() argument
298 …PetscCheck(index >= 0 && index <= stack->top, PETSC_COMM_SELF, PETSC_ERR_PLIB, "Invalid index %" P… in StackFind()
299 *e = stack->container[index]; in StackFind()
337 static PetscErrorCode StackDumpAll(TSTrajectory tj, TS ts, Stack *stack, PetscInt id) in StackDumpAll() argument
356 ndumped = stack->top + 1; in StackDumpAll()
359 e = stack->container[i]; in StackDumpAll()
363 …PetscCall(WriteToDisk(ts->stifflyaccurate, e->stepnum, e->time, e->timeprev, e->X, e->Y, stack->nu… in StackDumpAll()
366 PetscCall(StackPop(stack, &e)); in StackDumpAll()
369 PetscCall(TSGetStages(ts, &stack->numY, &Y)); in StackDumpAll()
371 …s->stifflyaccurate, ts->steps, ts->ptime, ts->ptime_prev, ts->vec_sol, Y, stack->numY, SOLUTION_ST… in StackDumpAll()
377 static PetscErrorCode StackLoadAll(TSTrajectory tj, TS ts, Stack *stack, PetscInt id) in StackLoadAll() argument
398 PetscCall(ElementCreate(ts, (CheckpointType)cptype_int, stack, &e)); in StackLoadAll()
399 PetscCall(StackPush(stack, e)); in StackLoadAll()
401 …isk(ts->stifflyaccurate, &e->stepnum, &e->time, &e->timeprev, e->X, e->Y, stack->numY, e->cptype, … in StackLoadAll()
406 PetscCall(TSGetStages(ts, &stack->numY, &Y)); in StackLoadAll()
408 …stifflyaccurate, &ts->steps, &ts->ptime, &ts->ptime_prev, ts->vec_sol, Y, stack->numY, SOLUTION_ST… in StackLoadAll()
417 static PetscErrorCode StackLoadLast(TSTrajectory tj, TS ts, Stack *stack, PetscInt id) in StackLoadLast() argument
435 PetscCall(TSGetStages(ts, &stack->numY, &Y)); in StackLoadLast()
438 …off = -((stack->solution_only ? 0 : stack->numY) + 1) * (size * PETSC_BINARY_SCALAR_SIZE + 2 * PET… in StackLoadLast()
458 …stifflyaccurate, &ts->steps, &ts->ptime, &ts->ptime_prev, ts->vec_sol, Y, stack->numY, SOLUTION_ST… in StackLoadLast()
467 static PetscErrorCode DumpSingle(TSTrajectory tj, TS ts, Stack *stack, PetscInt id) in DumpSingle() argument
487 PetscCall(TSGetStages(ts, &stack->numY, &Y)); in DumpSingle()
489 …(ts->stifflyaccurate, stepnum, ts->ptime, ts->ptime_prev, ts->vec_sol, Y, stack->numY, SOLUTION_ST… in DumpSingle()
495 static PetscErrorCode LoadSingle(TSTrajectory tj, TS ts, Stack *stack, PetscInt id) in LoadSingle() argument
511 PetscCall(TSGetStages(ts, &stack->numY, &Y)); in LoadSingle()
513 …stifflyaccurate, &ts->steps, &ts->ptime, &ts->ptime_prev, ts->vec_sol, Y, stack->numY, SOLUTION_ST… in LoadSingle()
520 static PetscErrorCode UpdateTS(TS ts, Stack *stack, StackElement e, PetscInt stepnum, PetscBool adj… in UpdateTS() argument
529 PetscCall(TSGetStages(ts, &stack->numY, &Y)); in UpdateTS()
531 for (i = 0; i < stack->numY; i++) PetscCall(VecCopy(e->Y[i], Y[i])); in UpdateTS()
533 PetscCall(VecCopy(e->Y[stack->numY - 1], ts->vec_sol)); in UpdateTS()
549 Stack *stack = &tjsch->stack; in ReCompute() local
556 if (stack->solution_only && !tjsch->skip_trajectory) { /* revolve online need this */ in ReCompute()
562 if (!stack->solution_only && !tjsch->skip_trajectory) { in ReCompute()
578 Stack *stack = &tjsch->stack; in TopLevelStore() local
588 if (stack->solution_only) { in TopLevelStore()
591 PetscCall(StackDumpAll(tj, ts, stack, stridenum + 1)); in TopLevelStore()
597 PetscCall(DumpSingle(tj, ts, stack, stridenum + 1)); in TopLevelStore()
605 PetscCall(StackDumpAll(tj, ts, stack, stridenum)); in TopLevelStore()
611 PetscCall(DumpSingle(tj, ts, stack, stridenum + 1)); in TopLevelStore()
622 Stack *stack = &tjsch->stack; in TSTrajectoryMemorySet_N() local
631 if (stack->solution_only) { in TSTrajectoryMemorySet_N()
633 PetscCall(StackPop(stack, &e)); in TSTrajectoryMemorySet_N()
638 if (stack->solution_only && tjsch->recompute) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_N()
640 if (!stack->solution_only && stepnum == 0) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_N()
643 if (stack->top + 1 == stack->stacksize) PetscCall(StackResize(stack, 2 * stack->stacksize)); in TSTrajectoryMemorySet_N()
645 if (stack->top > -1) { in TSTrajectoryMemorySet_N()
646 PetscCall(StackTop(stack, &e)); in TSTrajectoryMemorySet_N()
649 …PetscCheck(stepnum >= stack->top, PetscObjectComm((PetscObject)ts), PETSC_ERR_MEMC, "Illegal modif… in TSTrajectoryMemorySet_N()
650 cptype = stack->solution_only ? SOLUTIONONLY : STAGESONLY; in TSTrajectoryMemorySet_N()
651 PetscCall(ElementCreate(ts, cptype, stack, &e)); in TSTrajectoryMemorySet_N()
652 PetscCall(ElementSet(ts, stack, &e, stepnum, time, X)); in TSTrajectoryMemorySet_N()
653 PetscCall(StackPush(stack, e)); in TSTrajectoryMemorySet_N()
659 Stack *stack = &tjsch->stack; in TSTrajectoryMemorySet_N_2() local
664 if (stack->top + 1 == stack->stacksize) PetscCall(StackResize(stack, 2 * stack->stacksize)); in TSTrajectoryMemorySet_N_2()
666 if (stack->top > -1) { in TSTrajectoryMemorySet_N_2()
667 PetscCall(StackTop(stack, &e)); in TSTrajectoryMemorySet_N_2()
670 …PetscCheck(stepnum >= stack->top, PetscObjectComm((PetscObject)ts), PETSC_ERR_MEMC, "Illegal modif… in TSTrajectoryMemorySet_N_2()
671 …cptype = stack->solution_only ? SOLUTIONONLY : SOLUTION_STAGES; /* Always include solution in a ch… in TSTrajectoryMemorySet_N_2()
672 PetscCall(ElementCreate(ts, cptype, stack, &e)); in TSTrajectoryMemorySet_N_2()
673 PetscCall(ElementSet(ts, stack, &e, stepnum, time, X)); in TSTrajectoryMemorySet_N_2()
674 PetscCall(StackPush(stack, e)); in TSTrajectoryMemorySet_N_2()
680 Stack *stack = &tjsch->stack; in TSTrajectoryMemoryGet_N() local
692 PetscCall(StackTop(stack, &e)); in TSTrajectoryMemoryGet_N()
693 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_TRUE)); in TSTrajectoryMemoryGet_N()
695 if (stack->solution_only && ns) { /* recompute one step */ in TSTrajectoryMemoryGet_N()
699 PetscCall(StackPop(stack, &e)); in TSTrajectoryMemoryGet_N()
705 Stack *stack = &tjsch->stack; in TSTrajectoryMemoryGet_N_2() local
709 PetscCall(StackFind(stack, &e, stepnum)); in TSTrajectoryMemoryGet_N_2()
711 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_FALSE)); in TSTrajectoryMemoryGet_N_2()
717 Stack *stack = &tjsch->stack; in TSTrajectoryMemorySet_TLNR() local
724 if (!stack->solution_only && stepnum == 0) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_TLNR()
725 if (stack->solution_only && stepnum == tjsch->total_steps) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_TLNR()
737 …if (!stack->solution_only && localstepnum == 0) PetscFunctionReturn(PETSC_SUCCESS); … in TSTrajectoryMemorySet_TLNR()
738 …if (stack->solution_only && localstepnum == tjsch->stride - 1) PetscFunctionReturn(PETSC_SUCCESS);… in TSTrajectoryMemorySet_TLNR()
740 cptype = stack->solution_only ? SOLUTIONONLY : STAGESONLY; in TSTrajectoryMemorySet_TLNR()
741 PetscCall(ElementCreate(ts, cptype, stack, &e)); in TSTrajectoryMemorySet_TLNR()
742 PetscCall(ElementSet(ts, stack, &e, stepnum, time, X)); in TSTrajectoryMemorySet_TLNR()
743 PetscCall(StackPush(stack, e)); in TSTrajectoryMemorySet_TLNR()
749 Stack *stack = &tjsch->stack; in TSTrajectoryMemoryGet_TLNR() local
762 if (stack->solution_only) { in TSTrajectoryMemoryGet_TLNR()
767 PetscCall(StackLoadAll(tj, ts, stack, id)); in TSTrajectoryMemoryGet_TLNR()
773 PetscCall(LoadSingle(tj, ts, stack, id)); in TSTrajectoryMemoryGet_TLNR()
780 PetscCall(StackPop(stack, &e)); in TSTrajectoryMemoryGet_TLNR()
781 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_TRUE)); in TSTrajectoryMemoryGet_TLNR()
792 PetscCall(StackLoadAll(tj, ts, stack, id)); in TSTrajectoryMemoryGet_TLNR()
794 PetscCall(LoadSingle(tj, ts, stack, id)); in TSTrajectoryMemoryGet_TLNR()
795 PetscCall(ElementCreate(ts, cptype, stack, &e)); in TSTrajectoryMemoryGet_TLNR()
796 PetscCall(ElementSet(ts, stack, &e, (id - 1) * tjsch->stride + 1, ts->ptime, ts->vec_sol)); in TSTrajectoryMemoryGet_TLNR()
797 PetscCall(StackPush(stack, e)); in TSTrajectoryMemoryGet_TLNR()
804 PetscCall(StackPop(stack, &e)); in TSTrajectoryMemoryGet_TLNR()
805 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_TRUE)); in TSTrajectoryMemoryGet_TLNR()
976 Stack *stack = &tjsch->stack; in TSTrajectoryMemorySet_ROF() local
983 if (!stack->solution_only && stepnum == 0) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_ROF()
984 if (stack->solution_only && stepnum == tjsch->total_steps) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_ROF()
989 …PetscCheck(stepnum >= stack->top, PetscObjectComm((PetscObject)ts), PETSC_ERR_MEMC, "Illegal modif… in TSTrajectoryMemorySet_ROF()
990 cptype = stack->solution_only ? SOLUTIONONLY : SOLUTION_STAGES; in TSTrajectoryMemorySet_ROF()
991 PetscCall(ElementCreate(ts, cptype, stack, &e)); in TSTrajectoryMemorySet_ROF()
992 PetscCall(ElementSet(ts, stack, &e, stepnum, time, X)); in TSTrajectoryMemorySet_ROF()
993 PetscCall(StackPush(stack, e)); in TSTrajectoryMemorySet_ROF()
1000 Stack *stack = &tjsch->stack; in TSTrajectoryMemoryGet_ROF() local
1012 PetscCall(StackTop(stack, &e)); in TSTrajectoryMemoryGet_ROF()
1013 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_TRUE)); in TSTrajectoryMemoryGet_ROF()
1016 if (stack->solution_only) { /* start with restoring a checkpoint */ in TSTrajectoryMemoryGet_ROF()
1031 if (stack->solution_only || (!stack->solution_only && e->stepnum < stepnum)) { in TSTrajectoryMemoryGet_ROF()
1035 …if ((stack->solution_only && e->stepnum + 1 == stepnum) || (!stack->solution_only && e->stepnum ==… in TSTrajectoryMemoryGet_ROF()
1042 Stack *stack = &tjsch->stack; in TSTrajectoryMemorySet_RON() local
1052 if (!stack->solution_only && stepnum == 0) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_RON()
1053 if (stack->solution_only && stepnum == tjsch->total_steps) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_RON()
1058 if (rctx->check != stack->top + 1) { /* overwrite some non-top checkpoint in the stack */ in TSTrajectoryMemorySet_RON()
1059 PetscCall(StackFind(stack, &e, rctx->check)); in TSTrajectoryMemorySet_RON()
1062 PetscCall(TSGetStages(ts, &stack->numY, &Y)); in TSTrajectoryMemorySet_RON()
1063 for (i = 0; i < stack->numY; i++) PetscCall(VecCopy(Y[i], e->Y[i])); in TSTrajectoryMemorySet_RON()
1070 …PetscCheck(stepnum >= stack->top, PetscObjectComm((PetscObject)ts), PETSC_ERR_MEMC, "Illegal modif… in TSTrajectoryMemorySet_RON()
1071 cptype = stack->solution_only ? SOLUTIONONLY : SOLUTION_STAGES; in TSTrajectoryMemorySet_RON()
1072 PetscCall(ElementCreate(ts, cptype, stack, &e)); in TSTrajectoryMemorySet_RON()
1073 PetscCall(ElementSet(ts, stack, &e, stepnum, time, X)); in TSTrajectoryMemorySet_RON()
1074 PetscCall(StackPush(stack, e)); in TSTrajectoryMemorySet_RON()
1082 Stack *stack = &tjsch->stack; in TSTrajectoryMemoryGet_RON() local
1100 PetscCall(StackFind(stack, &e, tjsch->rctx->check)); in TSTrajectoryMemoryGet_RON()
1101 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_TRUE)); in TSTrajectoryMemoryGet_RON()
1102 if (!stack->solution_only) { /* whattodo must be 5 */ in TSTrajectoryMemoryGet_RON()
1116 if (stack->solution_only || (!stack->solution_only && e->stepnum < stepnum)) { in TSTrajectoryMemoryGet_RON()
1126 Stack *stack = &tjsch->stack; in TSTrajectoryMemorySet_TLR() local
1134 if (!stack->solution_only && stepnum == 0) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_TLR()
1135 if (stack->solution_only && stepnum == tjsch->total_steps) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_TLR()
1144 …if (!stack->solution_only && !tjsch->save_stack && stepnum <= tjsch->total_steps - laststridesize)… in TSTrajectoryMemorySet_TLR()
1145 …if (stack->solution_only && !tjsch->save_stack && stepnum < tjsch->total_steps - laststridesize) P… in TSTrajectoryMemorySet_TLR()
1152 …if (stack->solution_only && stepnum == tjsch->total_steps - laststridesize && !tjsch->recompute) {… in TSTrajectoryMemorySet_TLR()
1155 …if (!stack->solution_only && stepnum == tjsch->total_steps - laststridesize + 1 && !tjsch->recompu… in TSTrajectoryMemorySet_TLR()
1164 …PetscCheck(localstepnum >= stack->top, PetscObjectComm((PetscObject)ts), PETSC_ERR_MEMC, "Illegal … in TSTrajectoryMemorySet_TLR()
1165 cptype = stack->solution_only ? SOLUTIONONLY : SOLUTION_STAGES; in TSTrajectoryMemorySet_TLR()
1166 PetscCall(ElementCreate(ts, cptype, stack, &e)); in TSTrajectoryMemorySet_TLR()
1167 PetscCall(ElementSet(ts, stack, &e, stepnum, time, X)); in TSTrajectoryMemorySet_TLR()
1168 PetscCall(StackPush(stack, e)); in TSTrajectoryMemorySet_TLR()
1175 Stack *stack = &tjsch->stack; in TSTrajectoryMemoryGet_TLR() local
1194 if (stack->solution_only) { in TSTrajectoryMemoryGet_TLR()
1198 PetscCall(StackLoadAll(tj, ts, stack, stridenum)); in TSTrajectoryMemoryGet_TLR()
1206 PetscCall(LoadSingle(tj, ts, stack, stridenum)); in TSTrajectoryMemoryGet_TLR()
1214 PetscCall(StackTop(stack, &e)); in TSTrajectoryMemoryGet_TLR()
1215 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_TRUE)); in TSTrajectoryMemoryGet_TLR()
1224 if (e->stepnum + 1 == stepnum) PetscCall(StackPop(stack, &e)); in TSTrajectoryMemoryGet_TLR()
1229 PetscCall(StackLoadAll(tj, ts, stack, stridenum)); in TSTrajectoryMemoryGet_TLR()
1234 PetscCall(LoadSingle(tj, ts, stack, stridenum)); in TSTrajectoryMemoryGet_TLR()
1245 PetscCall(ElementCreate(ts, cptype, stack, &e)); in TSTrajectoryMemoryGet_TLR()
1246 … PetscCall(ElementSet(ts, stack, &e, (stridenum - 1) * tjsch->stride + 1, ts->ptime, ts->vec_sol)); in TSTrajectoryMemoryGet_TLR()
1247 PetscCall(StackPush(stack, e)); in TSTrajectoryMemoryGet_TLR()
1254 PetscCall(StackTop(stack, &e)); in TSTrajectoryMemoryGet_TLR()
1255 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_TRUE)); in TSTrajectoryMemoryGet_TLR()
1268 if (e->stepnum == stepnum) PetscCall(StackPop(stack, &e)); in TSTrajectoryMemoryGet_TLR()
1276 Stack *stack = &tjsch->stack; in TSTrajectoryMemorySet_TLTR() local
1283 if (!stack->solution_only && stepnum == 0) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_TLTR()
1284 if (stack->solution_only && stepnum == tjsch->total_steps) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_TLTR()
1290 if (stack->solution_only && localstepnum == 0 && !tjsch->rctx2->reverseonestep) { in TSTrajectoryMemorySet_TLTR()
1296 if (!stack->solution_only && localstepnum == 1 && !tjsch->rctx2->reverseonestep) { in TSTrajectoryMemorySet_TLTR()
1314 …if (!stack->solution_only && localstepnum == 0 && stepnum != tjsch->total_steps && !tjsch->recompu… in TSTrajectoryMemorySet_TLTR()
1321 …PetscCheck(localstepnum >= stack->top, PetscObjectComm((PetscObject)ts), PETSC_ERR_MEMC, "Illegal … in TSTrajectoryMemorySet_TLTR()
1322 cptype = stack->solution_only ? SOLUTIONONLY : SOLUTION_STAGES; in TSTrajectoryMemorySet_TLTR()
1323 PetscCall(ElementCreate(ts, cptype, stack, &e)); in TSTrajectoryMemorySet_TLTR()
1324 PetscCall(ElementSet(ts, stack, &e, stepnum, time, X)); in TSTrajectoryMemorySet_TLTR()
1325 PetscCall(StackPush(stack, e)); in TSTrajectoryMemorySet_TLTR()
1332 Stack *stack = &tjsch->stack; in TSTrajectoryMemoryGet_TLTR() local
1361 if (!tjsch->save_stack && stack->solution_only) { /* start with restoring a checkpoint */ in TSTrajectoryMemoryGet_TLTR()
1380 if (stack->solution_only) { in TSTrajectoryMemoryGet_TLTR()
1383 PetscCall(StackLoadLast(tj, ts, stack, restoredstridenum)); in TSTrajectoryMemoryGet_TLTR()
1385 PetscCall(StackLoadAll(tj, ts, stack, restoredstridenum)); in TSTrajectoryMemoryGet_TLTR()
1401 PetscCall(LoadSingle(tj, ts, stack, restoredstridenum)); in TSTrajectoryMemoryGet_TLTR()
1409 PetscCall(StackLoadLast(tj, ts, stack, restoredstridenum)); in TSTrajectoryMemoryGet_TLTR()
1415 PetscCall(StackLoadAll(tj, ts, stack, restoredstridenum)); in TSTrajectoryMemoryGet_TLTR()
1420 PetscCall(LoadSingle(tj, ts, stack, restoredstridenum)); in TSTrajectoryMemoryGet_TLTR()
1434 PetscCall(ElementCreate(ts, cptype, stack, &e)); in TSTrajectoryMemoryGet_TLTR()
1435 …PetscCall(ElementSet(ts, stack, &e, (restoredstridenum - 1) * tjsch->stride + 1, ts->ptime, ts->ve… in TSTrajectoryMemoryGet_TLTR()
1436 PetscCall(StackPush(stack, e)); in TSTrajectoryMemoryGet_TLTR()
1447 if (stack->solution_only) { in TSTrajectoryMemoryGet_TLTR()
1449 PetscCall(StackTop(stack, &e)); in TSTrajectoryMemoryGet_TLTR()
1450 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_TRUE)); in TSTrajectoryMemoryGet_TLTR()
1461 if (e->stepnum + 1 == stepnum) PetscCall(StackPop(stack, &e)); in TSTrajectoryMemoryGet_TLTR()
1465 PetscCall(StackTop(stack, &e)); in TSTrajectoryMemoryGet_TLTR()
1466 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_TRUE)); in TSTrajectoryMemoryGet_TLTR()
1482 if (e->stepnum == stepnum) PetscCall(StackPop(stack, &e)); in TSTrajectoryMemoryGet_TLTR()
1490 Stack *stack = &tjsch->stack; in TSTrajectoryMemorySet_RMS() local
1496 if (!stack->solution_only && stepnum == 0) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_RMS()
1497 if (stack->solution_only && stepnum == tjsch->total_steps) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_RMS()
1503 …PetscCheck(stepnum >= stack->top, PetscObjectComm((PetscObject)ts), PETSC_ERR_MEMC, "Illegal modif… in TSTrajectoryMemorySet_RMS()
1504 cptype = stack->solution_only ? SOLUTIONONLY : SOLUTION_STAGES; in TSTrajectoryMemorySet_RMS()
1505 PetscCall(ElementCreate(ts, cptype, stack, &e)); in TSTrajectoryMemorySet_RMS()
1506 PetscCall(ElementSet(ts, stack, &e, stepnum, time, X)); in TSTrajectoryMemorySet_RMS()
1507 PetscCall(StackPush(stack, e)); in TSTrajectoryMemorySet_RMS()
1509 PetscCall(DumpSingle(tj, ts, stack, tjsch->rctx->check + 1)); in TSTrajectoryMemorySet_RMS()
1516 Stack *stack = &tjsch->stack; in TSTrajectoryMemoryGet_RMS() local
1538 PetscCall(LoadSingle(tj, ts, stack, tjsch->rctx->check + 1)); in TSTrajectoryMemoryGet_RMS()
1542 PetscCall(StackTop(stack, &e)); in TSTrajectoryMemoryGet_RMS()
1543 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_TRUE)); in TSTrajectoryMemoryGet_RMS()
1545 if (!stack->solution_only) { /* whattodo must be 5 or 8 */ in TSTrajectoryMemoryGet_RMS()
1560 if (stack->solution_only || (!stack->solution_only && restart < stepnum)) { in TSTrajectoryMemoryGet_RMS()
1564 …ondisk && ((stack->solution_only && e->stepnum + 1 == stepnum) || (!stack->solution_only && e->ste… in TSTrajectoryMemoryGet_RMS()
1574 Stack *stack = &tjsch->stack; in TSTrajectoryMemorySet_AOF() local
1581 if (stack->solution_only) { in TSTrajectoryMemorySet_AOF()
1589 if (stack->solution_only && stepnum == tjsch->total_steps) PetscFunctionReturn(PETSC_SUCCESS); in TSTrajectoryMemorySet_AOF()
1592 …PetscCheck(stepnum >= stack->top, PetscObjectComm((PetscObject)ts), PETSC_ERR_MEMC, "Illegal modif… in TSTrajectoryMemorySet_AOF()
1596 PetscCall(ElementCreate(ts, SOLUTION_STAGES, stack, &e)); in TSTrajectoryMemorySet_AOF()
1597 PetscCall(ElementSet(ts, stack, &e, stepnum, time, X)); in TSTrajectoryMemorySet_AOF()
1601 PetscCall(ElementCreate(ts, STAGESONLY, stack, &e)); in TSTrajectoryMemorySet_AOF()
1602 PetscCall(ElementSet(ts, stack, &e, stepnum, time, X)); in TSTrajectoryMemorySet_AOF()
1606 PetscCall(ElementCreate(ts, SOLUTIONONLY, stack, &e)); in TSTrajectoryMemorySet_AOF()
1607 PetscCall(ElementSet(ts, stack, &e, stepnum, time, X)); in TSTrajectoryMemorySet_AOF()
1609 PetscCall(StackPush(stack, e)); in TSTrajectoryMemorySet_AOF()
1612 if (stack->solution_only) { in TSTrajectoryMemorySet_AOF()
1628 Stack *stack = &tjsch->stack; in TSTrajectoryMemoryGet_AOF() local
1638 PetscCall(StackTop(stack, &e)); in TSTrajectoryMemoryGet_AOF()
1641 PetscCall(StackPop(stack, &e)); in TSTrajectoryMemoryGet_AOF()
1643 PetscCall(StackTop(stack, &e)); in TSTrajectoryMemoryGet_AOF()
1655 PetscCall(UpdateTS(ts, stack, e, stepnum, PETSC_TRUE)); in TSTrajectoryMemoryGet_AOF()
1659 if (stack->solution_only) { /* start with restoring a checkpoint */ in TSTrajectoryMemoryGet_AOF()
1668 PetscCall(StackPop(stack, &e)); in TSTrajectoryMemoryGet_AOF()
1675 PetscCall(StackPop(stack, &e)); in TSTrajectoryMemoryGet_AOF()
1681 if (stack->solution_only || (!stack->solution_only && estepnum < stepnum)) { in TSTrajectoryMemoryGet_AOF()
1882 tjsch->stack.use_dram = use_dram; in TSTrajectorySetUseDRAM()
2020 …Use DRAM for checkpointing", "TSTrajectorySetUseDRAM", tjsch->stack.use_dram, &tjsch->stack.use_dr… in TSTrajectorySetFromOptions_Memory()
2031 Stack *stack = &tjsch->stack; in TSTrajectorySetUp_Memory() local
2050 tjsch->stack.solution_only = tj->solution_only; in TSTrajectorySetUp_Memory()
2052 if (stack->solution_only) { in TSTrajectorySetUp_Memory()
2062 …if (tjsch->max_cps_ram > 0) stack->stacksize = tjsch->max_units_ram; /* maximum stack size. Could … in TSTrajectorySetUp_Memory()
2099 if (stack->solution_only) { in TSTrajectorySetUp_Memory()
2152 stack->stacksize = tjsch->max_cps_ram; in TSTrajectorySetUp_Memory()
2183 …if (tjsch->stype == TWO_LEVEL_NOREVOLVE) stack->stacksize = tjsch->stride - 1; /* need tjsch->stri… in TSTrajectorySetUp_Memory()
2185 …if (fixedtimestep) stack->stacksize = stack->solution_only ? tjsch->total_steps : tjsch->total_ste… in TSTrajectorySetUp_Memory()
2187 …if (tjsch->max_cps_ram == -1) stack->stacksize = ts->max_steps < PETSC_INT_MAX ? ts->max_steps : 1… in TSTrajectorySetUp_Memory()
2188 …tjsch->total_steps = stack->solution_only ? stack->stacksize : stack->stacksize + 1; /* will be up… in TSTrajectorySetUp_Memory()
2197 stack->stacksize = PetscMax(stack->stacksize, 1); in TSTrajectorySetUp_Memory()
2199 PetscCall(StackInit(stack, stack->stacksize, numY)); in TSTrajectorySetUp_Memory()
2225 if (tjsch->stack.solution_only) offline_ca_destroy(); in TSTrajectoryReset_Memory()
2238 PetscCall(StackDestroy(&tjsch->stack)); in TSTrajectoryDestroy_Memory()
2278 tjsch->stack.solution_only = tj->solution_only; in TSTrajectoryCreate_Memory()