- Timestamp:
- Jul 10, 2012, 1:15:50 PM (13 years ago)
- Children:
- dca43b
- Parents:
- 09bc09
- git-author:
- Frederik Heber <heber@…> (07/06/12 19:24:35)
- git-committer:
- Frederik Heber <heber@…> (07/10/12 13:15:50)
- File:
-
- 1 edited
-
src/bin/mpqc/mpqc.cc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/bin/mpqc/mpqc.cc
r09bc09 r666f70 795 795 } 796 796 797 void performRestart( 798 Ref<KeyVal> &keyval, 799 Ref<MessageGrp> &grp, 800 Ref<Optimize> &opt, 801 Ref<MolecularEnergy> &mole, 802 char *&restartfile 803 ) 804 { 805 int restart = keyval->booleanvalue("restart",truevalue); 806 struct stat sb; 807 int statresult, statsize; 808 if (restart) { 809 if (grp->me() == 0) { 810 statresult = stat(restartfile,&sb); 811 statsize = (statresult==0) ? sb.st_size : 0; 812 } 813 grp->bcast(statresult); 814 grp->bcast(statsize); 815 } 816 if (restart && statresult==0 && statsize) { 817 BcastStateInBin si(grp,restartfile); 818 if (keyval->exists("override")) { 819 si.set_override(new PrefixKeyVal(keyval,"override")); 820 } 821 char *suf = strrchr(restartfile,'.'); 822 if (!strcmp(suf,".wfn")) { 823 mole << SavableState::key_restore_state(si,"mole"); 824 ExEnv::out0() << endl 825 << indent << "Restored <" << mole->class_name() 826 << "> from " << restartfile << endl; 827 828 opt << keyval->describedclassvalue("opt"); 829 if (opt.nonnull()) 830 opt->set_function(mole.pointer()); 831 } 832 else { 833 opt << SavableState::key_restore_state(si,"opt"); 834 if (opt.nonnull()) { 835 mole << opt->function(); 836 ExEnv::out0() << endl << indent 837 << "Restored <Optimize> from " << restartfile << endl; 838 } 839 } 840 } else { 841 mole << keyval->describedclassvalue("mole"); 842 opt << keyval->describedclassvalue("opt"); 843 } 844 } 845 846 797 847 int 798 848 try_main(int argc, char *argv[]) … … 894 944 << "Total number of processors = " << grp->n() * thread->nthread() << endl; 895 945 896 // prepa pre CCA if available946 // prepare CCA if available 897 947 prepareCCA(keyval, options); 898 948 … … 942 992 int savestate = keyval->booleanvalue("savestate",truevalue); 943 993 944 struct stat sb;945 994 Ref<MolecularEnergy> mole; 946 995 Ref<Optimize> opt; 947 996 948 int statresult, statsize; 949 if (restart) { 950 if (grp->me() == 0) { 951 statresult = stat(restartfile,&sb); 952 statsize = (statresult==0) ? sb.st_size : 0; 953 } 954 grp->bcast(statresult); 955 grp->bcast(statsize); 956 } 957 if (restart && statresult==0 && statsize) { 958 BcastStateInBin si(grp,restartfile); 959 if (keyval->exists("override")) { 960 si.set_override(new PrefixKeyVal(keyval,"override")); 961 } 962 char *suf = strrchr(restartfile,'.'); 963 if (!strcmp(suf,".wfn")) { 964 mole << SavableState::key_restore_state(si,"mole"); 965 ExEnv::out0() << endl 966 << indent << "Restored <" << mole->class_name() 967 << "> from " << restartfile << endl; 968 969 opt << keyval->describedclassvalue("opt"); 970 if (opt.nonnull()) 971 opt->set_function(mole.pointer()); 972 } 973 else { 974 opt << SavableState::key_restore_state(si,"opt"); 975 if (opt.nonnull()) { 976 mole << opt->function(); 977 ExEnv::out0() << endl << indent 978 << "Restored <Optimize> from " << restartfile << endl; 979 } 980 } 981 } else { 982 mole << keyval->describedclassvalue("mole"); 983 opt << keyval->describedclassvalue("opt"); 984 } 997 performRestart(keyval, grp, opt, mole, restartfile); 985 998 986 999 if (mole.nonnull()) {
Note:
See TracChangeset
for help on using the changeset viewer.
