void pup(PUP::er &p) { p|len1; if (p.isUnpacking()) arr1=new int[len1]; PUParray(p,arr1,len1); p|len2; if (p.isUnpacking()) arr2=new int[len2]; PUParray(p,arr2,len2); p|subclass; }
//============================================================================ //cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc //============================================================================ void CP_Rho_GSpacePlane::pup(PUP::er &p){ ArrayElement1D::pup(p); PUParray(p, myGrid_length, 3); PUParray(p, myGrid_start, 3); PUParray(p, myGrid_end, 3); p|myGrid_size; p|numPoints; p|myTime; p|doneWhiteByrd; p|ehart_ret; p|eext_ret; p|ewd_ret; //TODO: pup needs to be done for following //myPoints, nlsectproxy //divRho{X,Y,Z} //-------------------------------------------------------------------------- }//end routine
void pup(PUP::er &p){ CBase_Jacobi::pup(p); //__sdag_pup(p); p|messages_due; p|itercnt; p|hasSent; p|usesAtSync; if(p.isUnpacking()){ temperature = new double*[block_height+2]; for (int i=0; i<block_height+2; i++) temperature[i] = new double[block_width+2]; } for (int i=0; i<block_height+2; i++) { PUParray(p, temperature[i], block_width+2); } }
//============================================================================== //cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc //============================================================================== void RealStateSlab::pup(PUP::er &p) { //============================================================================== p|ngrid_a; p|ngrid_b; p|size; if (p.isUnpacking()) { planeArr = (complex *) fftw_malloc(size*sizeof(complex)); planeArrR = reinterpret_cast<double*> (planeArr); } PUParray(p, planeArr, size); p|thisState; p|thisPlane; p|numPlanesToExpect; p|nsize; p|rsize; p|size; p|e_gga; }
/// Pack/unpack/sizing operator void sim::pup(PUP::er &p) { // pup simple types p(active); p(myPVTidx); p(myLBidx); p(sync); p(DOs); p(UNDOs); // pup event queue if (p.isUnpacking()) { eq = new eventQueue(); } eq->pup(p); // pup cancellations cancels.pup(p); if (p.isUnpacking()) { // reactivate migrated object #if !CMK_TRACE_DISABLED localStats = (localStat *)CkLocalBranch(theLocalStats); #endif #ifndef SEQUENTIAL_POSE localPVT = (PVT *)CkLocalBranch(ThePVT); myPVTidx = localPVT->objRegister(thisIndex, localPVT->getGVT(), sync, this); if(pose_config.lb_on){ localLBG = TheLBG.ckLocalBranch(); myLBidx = localLBG->objRegister(thisIndex, sync, this); } #endif active = 0; } PUParray(p, basicStats, 2); // pup checkpoint info for sequential mode using sim 0 only #ifdef SEQUENTIAL_POSE if (thisIndex == 0) { p|seqCheckpointInProgress; p|seqLastCheckpointGVT; p|seqLastCheckpointTime; p|seqStartTime; p|POSE_Skipped_Events; p|poseIndexOfStopEvent; if (p.isUnpacking()) { seqStartTime = seqLastCheckpointTime; } } #endif }