/* * Load internal state from an archive. */ void StructureFactorGrid::loadParameters(Serializable::IArchive &ar) { nAtomType_ = simulation().nAtomType(); // Load parameter file parameters loadInterval(ar); loadOutputFileName(ar); loadParameter<int>(ar, "nMode", nMode_); modes_.allocate(nMode_, nAtomType_); loadDMatrix<double>(ar, "modes", modes_, nMode_, nAtomType_); loadParameter<int>(ar, "hMax", hMax_); loadParameter<LatticeSystem>(ar, "lattice", lattice_); // Load and broadcast other distributed members MpiLoader<Serializable::IArchive> loader(*this, ar); loader.load(nWave_); waveIntVectors_.allocate(nWave_); loader.load(waveIntVectors_, nWave_); loader.load(nStar_); starIds_.allocate(nStar_); loader.load(starIds_, nStar_); starSizes_.allocate(nStar_); loader.load(starSizes_, nStar_); loader.load(nSample_); if (simulation().domain().isMaster()) { structureFactors_.allocate(nWave_, nMode_); ar >> structureFactors_; }
/* * Load state from a binary file archive. */ void McMuExchange::loadParameters(Serializable::IArchive& ar) { loadInterval(ar); loadOutputFileName(ar); loadParameter(ar, "speciesId", speciesId_); ar >> nAtom_; Species* speciesPtr; speciesPtr = &(system().simulation().species(speciesId_)); if (nAtom_ != speciesPtr->nAtom()) { UTIL_THROW("Inconsistent values of nAtom on loading"); } newTypeIds_.allocate(nAtom_); loadDArray(ar, "newTypeIds", newTypeIds_, nAtom_); flipAtomIds_.allocate(nAtom_); isAtomFlipped_.allocate(nAtom_); for (int i = 0; i < nAtom_; ++i) { if (newTypeIds_[i] != speciesPtr->atomTypeId(i)) { flipAtomIds_.append(i); isAtomFlipped_[i] = 1; } else { isAtomFlipped_[i] = 0; } } accumulators_.allocate(speciesPtr->capacity()); ar >> nMolecule_; for (int i = 0; i < nMolecule_; ++i) { ar >> accumulators_[i]; } isInitialized_ = true; }
/* * Load internal state from an archive. */ void SymmTensorAverageAnalyzer::loadParameters(Serializable::IArchive &ar) { loadInterval(ar); loadOutputFileName(ar); nSamplePerBlock_ = 0; bool isRequired = false; loadParameter<int>(ar, "nSamplePerBlock", nSamplePerBlock_, isRequired); if (simulation().domain().isMaster()) { accumulatorPtr_ = new SymmTensorAverage; ar >> *accumulatorPtr_; if (nSamplePerBlock_ != accumulatorPtr_->nSamplePerBlock()) { UTIL_THROW("Inconsistent values of nSamplePerBlock"); } } else {
/* * Load state from an archive. */ void VanHove::loadParameters(Serializable::IArchive& ar) { nAtomType_ = simulation().nAtomType(); loadInterval(ar); loadOutputFileName(ar); atomTypeCoeffs_.allocate(nAtomType_); loadDArray<double>(ar, "atomTypeCoeffs", atomTypeCoeffs_, nAtomType_); loadParameter<int>(ar, "nBuffer", nBuffer_); loadParameter<int>(ar, "nWave", nWave_); waveIntVectors_.allocate(nWave_); loadDArray<IntVector>(ar, "waveIntVectors", waveIntVectors_, nWave_); // Load and broadcast nSample_ MpiLoader<Serializable::IArchive> loader(*this, ar); loader.load(nSample_); if (simulation().domain().isMaster()) { accumulators_.allocate(nWave_); ar >> accumulators_; }
Status userCacheInvalidationIntervalSecsNotify(const int& value) { globalInvalidationInterval()->setInterval(loadInterval()); return Status::OK(); }