Write resume command even when computation concludes

This commit is contained in:
Ian Jauslin 2023-04-26 17:20:38 -04:00
parent a94c066014
commit 4436866d2f

View File

@ -159,36 +159,35 @@ int eea(
if (savefile==NULL){ if (savefile==NULL){
savefile=stderr; savefile=stderr;
} }
fprintf(savefile,"# Interrupted computation. Resume with\n");
// command to resume
fprintf(savefile,"#! ");
fprintf(savefile, cmd_string);
// params
// allocate buffer for params
if(params_string!=NULL) {
char* params=calloc(sizeof(char), strlen(params_string)+1);
strcpy(params, params_string);
remove_entry(params, "starting_time");
remove_entry(params, "init");
remove_entry(params, "nsteps");
fprintf(savefile," -p \"%s;starting_time=%lu;nsteps=%lu;init=file:%s\"", params, t+1, (nsteps == 0 ? 0 : nsteps-t-1), savefile_string);
free(params);
}
fprintf(savefile," energy\n");
break; break;
} }
} }
// save final entry to savefile if(savefile!=NULL){
if(savefile==stderr || savefile==stdout){ fprintf(savefile,"# Continue computation with\n");
write_vec(u, K1, K2, savefile);
} else { // command to resume
write_vec_bin(u, K1, K2, savefile); fprintf(savefile,"#! ");
fprintf(savefile, cmd_string);
// params
// allocate buffer for params
if(params_string!=NULL) {
char* params=calloc(sizeof(char), strlen(params_string)+1);
strcpy(params, params_string);
remove_entry(params, "starting_time");
remove_entry(params, "init");
remove_entry(params, "nsteps");
fprintf(savefile," -p \"%s;starting_time=%lu;nsteps=%lu;init=file:%s\"", params, t+1, (nsteps < t+1 ? 0 : nsteps-t-1), savefile_string);
free(params);
}
fprintf(savefile," energy\n");
// save final u to savefile
if(savefile==stderr || savefile==stdout){
write_vec(u, K1, K2, savefile);
} else {
write_vec_bin(u, K1, K2, savefile);
}
} }
ns_free_tmps(u, tmp1, tmp2, tmp3, fft1, fft2, ifft); ns_free_tmps(u, tmp1, tmp2, tmp3, fft1, fft2, ifft);