Changeset 25637
- Timestamp:
- 10/06/20 12:31:26 (4 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/cores/transient_core.cpp
r25592 r25637 26 26 bool isoceancoupling,iscontrol,isautodiff,isslr; 27 27 int timestepping; 28 int output_frequency, recording_frequency;28 int output_frequency,checkpoint_frequency; 29 29 int amr_frequency,amr_restart; 30 30 char **requested_outputs = NULL; … … 35 35 36 36 /*first, figure out if there was a check point, if so, do a reset of the FemModel* femmodel structure. */ 37 femmodel->parameters->FindParam(& recording_frequency,SettingsRecordingFrequencyEnum);38 if( recording_frequency) femmodel->Restart();37 femmodel->parameters->FindParam(&checkpoint_frequency,SettingsCheckpointFrequencyEnum); 38 if(checkpoint_frequency) femmodel->Restart(); 39 39 40 40 /*then recover parameters common to all solutions*/ … … 101 101 } 102 102 103 if( recording_frequency && (step%recording_frequency==0)){103 if(checkpoint_frequency && (step%checkpoint_frequency==0)){ 104 104 if(VerboseSolution()) _printf0_(" checkpointing model \n"); 105 105 femmodel->CheckPoint(); … … 270 270 bool isoceancoupling,isslr; 271 271 int step,timestepping; 272 int recording_frequency;272 int checkpoint_frequency; 273 273 274 274 /*Get rank*/ … … 282 282 femmodel->parameters->FindParam(×tepping,TimesteppingTypeEnum); 283 283 femmodel->parameters->FindParam(&isslr,TransientIsslrEnum); 284 femmodel->parameters->FindParam(& recording_frequency,SettingsRecordingFrequencyEnum); _assert_(recording_frequency>0);284 femmodel->parameters->FindParam(&checkpoint_frequency,SettingsCheckpointFrequencyEnum); _assert_(checkpoint_frequency>0); 285 285 if(isslr) sealevelrise_core_geometry(femmodel); 286 286 … … 323 323 324 324 /*Store Model State at the beginning of the step*/ 325 if(step% recording_frequency==0 || step==1){325 if(step%checkpoint_frequency==0 || step==1){ 326 326 if(VerboseSolution()) _printf0_(" checkpointing model (step: "<<step<<")\n"); 327 327 femmodel->CheckPointAD(step); … … 421 421 422 422 /*Get New state*/ 423 for(int ii=0;ii< recording_frequency;ii++){423 for(int ii=0;ii<checkpoint_frequency;ii++){ 424 424 int thisstep = reverse_step+ii; 425 425 IssmDouble thistime = time_all[reverse_step+ii-1]; … … 428 428 femmodel->parameters->SetParam(thisstep,StepEnum); 429 429 femmodel->parameters->SetParam(thisdt,TimesteppingTimeStepEnum); 430 _printf0_("step "<<thisstep<<" ("<<ii+1<<"/"<< recording_frequency<<") time [yr]: "\430 _printf0_("step "<<thisstep<<" ("<<ii+1<<"/"<<checkpoint_frequency<<") time [yr]: "\ 431 431 <<std::fixed<<std::setprecision(2)<<thistime/yts<< " (time step: " << thisdt/yts << ")\n"); 432 432 transient_step(femmodel); … … 444 444 /*First and last segment need special treatment*/ 445 445 if(thisstep==finalstep) break; 446 if(reverse_step==1 && ii== recording_frequency-2) break;446 if(reverse_step==1 && ii==checkpoint_frequency-2) break; 447 447 } 448 448 -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r25308 r25637 49 49 parameters->AddObject(iomodel->CopyConstantObject("md.settings.output_frequency",SettingsOutputFrequencyEnum)); 50 50 parameters->AddObject(iomodel->CopyConstantObject("md.settings.sb_coupling_frequency",SettingsSbCouplingFrequencyEnum)); 51 parameters->AddObject(iomodel->CopyConstantObject("md.settings. recording_frequency",SettingsRecordingFrequencyEnum));51 parameters->AddObject(iomodel->CopyConstantObject("md.settings.checkpoint_frequency",SettingsCheckpointFrequencyEnum)); 52 52 parameters->AddObject(iomodel->CopyConstantObject("md.constants.yts",ConstantsYtsEnum)); 53 53 parameters->AddObject(iomodel->CopyConstantObject("md.debug.profiling",DebugProfilingEnum)); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r25627 r25637 355 355 SettingsNumResultsOnNodesEnum, 356 356 SettingsOutputFrequencyEnum, 357 Settings RecordingFrequencyEnum,357 SettingsCheckpointFrequencyEnum, 358 358 SettingsResultsOnNodesEnum, 359 359 SettingsSbCouplingFrequencyEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r25627 r25637 363 363 case SettingsNumResultsOnNodesEnum : return "SettingsNumResultsOnNodes"; 364 364 case SettingsOutputFrequencyEnum : return "SettingsOutputFrequency"; 365 case Settings RecordingFrequencyEnum : return "SettingsRecordingFrequency";365 case SettingsCheckpointFrequencyEnum : return "SettingsRecordingFrequency"; 366 366 case SettingsResultsOnNodesEnum : return "SettingsResultsOnNodes"; 367 367 case SettingsSbCouplingFrequencyEnum : return "SettingsSbCouplingFrequency"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r25627 r25637 369 369 else if (strcmp(name,"SettingsNumResultsOnNodes")==0) return SettingsNumResultsOnNodesEnum; 370 370 else if (strcmp(name,"SettingsOutputFrequency")==0) return SettingsOutputFrequencyEnum; 371 else if (strcmp(name,"SettingsRecordingFrequency")==0) return Settings RecordingFrequencyEnum;371 else if (strcmp(name,"SettingsRecordingFrequency")==0) return SettingsCheckpointFrequencyEnum; 372 372 else if (strcmp(name,"SettingsResultsOnNodes")==0) return SettingsResultsOnNodesEnum; 373 373 else if (strcmp(name,"SettingsSbCouplingFrequency")==0) return SettingsSbCouplingFrequencyEnum; -
issm/trunk-jpl/src/m/classes/issmsettings.js
r22298 r25637 17 17 18 18 //checkpoints frequency, by default never: 19 this. recording_frequency=0;19 this.checkpoint_frequency=0; 20 20 21 21 //this option can be activated to load automatically the results … … 39 39 fielddisplay(this,'lowmem','is the memory limited ? (0 or 1)'); 40 40 fielddisplay(this,'output_frequency','frequency at which results are saved in all solutions with multiple time_steps'); 41 fielddisplay(this,' recording_frequency','frequency at which the runs are being recorded, allowing for a restart');41 fielddisplay(this,'checkpoint_frequency','frequency at which the runs are being recorded, allowing for a restart'); 42 42 fielddisplay(this,'waitonlock','maximum number of minutes to wait for batch results (NaN to deactivate)'); 43 43 fielddisplay(this,'upload_server','server hostname where model should be uploaded'); … … 60 60 checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0, 1]); 61 61 checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1); 62 checkfield(md,'fieldname','settings. recording_frequency','numel',[1],'>=',0);62 checkfield(md,'fieldname','settings.checkpoint_frequency','numel',[1],'>=',0); 63 63 checkfield(md,'fieldname','settings.waitonlock','numel',[1]); 64 64 checkfield(md,'fieldname','settings.solver_residue_threshold','numel',[1],'>',0); … … 69 69 WriteData(fid,prefix,'object',this,'class','settings','fieldname','lowmem','format','Boolean'); 70 70 WriteData(fid,prefix,'object',this,'class','settings','fieldname','output_frequency','format','Integer'); 71 WriteData(fid,prefix,'object',this,'class','settings','fieldname',' recording_frequency','format','Integer');71 WriteData(fid,prefix,'object',this,'class','settings','fieldname','checkpoint_frequency','format','Integer'); 72 72 WriteData(fid,prefix,'object',this,'class','settings','fieldname','solver_residue_threshold','format','Double'); 73 73 if (this.waitonlock>0) WriteData(fid,prefix,'name','md.settings.waitonlock','data',true,'format','Boolean'); … … 82 82 this.lowmem = 0; 83 83 this.output_frequency = 0; 84 this. recording_frequency = 0;84 this.checkpoint_frequency = 0; 85 85 this.waitonlock = 0; 86 86 this.upload_server = ''; -
issm/trunk-jpl/src/m/classes/issmsettings.m
r23758 r25637 6 6 classdef issmsettings 7 7 properties (SetAccess=public) 8 results_on_nodes = {};9 io_gather = 0;10 lowmem = 0;11 output_frequency = 0;12 sb_coupling_frequency = 0;13 recording_frequency= 0;14 waitonlock = 0;15 upload_server = '';16 upload_path = '';17 upload_login = '';18 upload_port = 0;19 upload_filename = '';8 results_on_nodes = {}; 9 io_gather = 0; 10 lowmem = 0; 11 output_frequency = 0; 12 sb_coupling_frequency = 0; 13 checkpoint_frequency = 0; 14 waitonlock = 0; 15 upload_server = ''; 16 upload_path = ''; 17 upload_login = ''; 18 upload_port = 0; 19 upload_filename = ''; 20 20 solver_residue_threshold = 0; 21 end 22 methods (Static) 23 function self = loadobj(self) % {{{ 24 % This function is directly called by matlab when a model object is 25 % loaded. Update old properties here 26 27 %2020 Oct 6 28 if isstruct(self) 29 objstruct = self; 30 self = structtoobj(issmsettings(),objstruct); 31 if isfield(objstruct,'recording_frequency') 32 self.checkpoint_frequency = self.recording_frequency; 33 end 34 end 35 end % }}} 21 36 end 22 37 methods … … 44 59 45 60 %checkpoints frequency, by default never: 46 self. recording_frequency=0;61 self.checkpoint_frequency=0; 47 62 48 63 %this option can be activated to load automatically the results … … 66 81 md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1); 67 82 md = checkfield(md,'fieldname','settings.sb_coupling_frequency','numel',[1],'>=',1); 68 md = checkfield(md,'fieldname','settings. recording_frequency','numel',[1],'>=',0);83 md = checkfield(md,'fieldname','settings.checkpoint_frequency','numel',[1],'>=',0); 69 84 md = checkfield(md,'fieldname','settings.waitonlock','numel',[1]); 70 85 md = checkfield(md,'fieldname','settings.solver_residue_threshold','numel',[1],'>',0); … … 79 94 fielddisplay(self,'output_frequency','frequency at which results are saved in all solutions with multiple time_steps'); 80 95 fielddisplay(self,'sb_coupling_frequency','frequency at which StressBalance solver is coupled (default 1)'); 81 fielddisplay(self,' recording_frequency','frequency at which the runs are being recorded, allowing for a restart');96 fielddisplay(self,'checkpoint_frequency','frequency at which the runs are being recorded, allowing for a restart'); 82 97 fielddisplay(self,'waitonlock','maximum number of minutes to wait for batch results (NaN to deactivate)'); 83 98 fielddisplay(self,'upload_server','server hostname where model should be uploaded'); … … 95 110 WriteData(fid,prefix,'object',self,'class','settings','fieldname','output_frequency','format','Integer'); 96 111 WriteData(fid,prefix,'object',self,'class','settings','fieldname','sb_coupling_frequency','format','Integer'); 97 WriteData(fid,prefix,'object',self,'class','settings','fieldname',' recording_frequency','format','Integer');112 WriteData(fid,prefix,'object',self,'class','settings','fieldname','checkpoint_frequency','format','Integer'); 98 113 WriteData(fid,prefix,'object',self,'class','settings','fieldname','waitonlock','data',self.waitonlock>0,'format','Boolean'); 99 114 WriteData(fid,prefix,'object',self,'class','settings','fieldname','solver_residue_threshold','format','Double'); … … 106 121 writejsdouble(fid,[modelname '.settings.output_frequency'],self.output_frequency); 107 122 writejsdouble(fid,[modelname '.settings.sb_coupling_frequency'],self.sb_coupling_frequency); 108 writejsdouble(fid,[modelname '.settings. recording_frequency'],self.recording_frequency);123 writejsdouble(fid,[modelname '.settings.checkpoint_frequency'],self.checkpoint_frequency); 109 124 writejsdouble(fid,[modelname '.settings.waitonlock'],self.waitonlock); 110 125 writejsstring(fid,[modelname '.settings.upload_server'],self.upload_server); -
issm/trunk-jpl/src/m/classes/issmsettings.py
r24213 r25637 18 18 self.output_frequency = 0 19 19 self.coupling_frequency = 0 20 self. recording_frequency = 020 self.checkpoint_frequency = 0 21 21 self.waitonlock = 0 22 22 self.solver_residue_threshold = 0 … … 35 35 string = "%s\n%s" % (string, fielddisplay(self, "output_frequency", "frequency at which results are saved in all solutions with multiple time_steps")) 36 36 string = "%s\n%s" % (string, fielddisplay(self, "sb_coupling_frequency", "frequency at which StressBalance solver is coupled (default 1)")) 37 string = "%s\n%s" % (string, fielddisplay(self, " recording_frequency", "frequency at which the runs are being recorded, allowing for a restart"))37 string = "%s\n%s" % (string, fielddisplay(self, "checkpoint_frequency", "frequency at which the runs are being recorded, allowing for a restart")) 38 38 string = "%s\n%s" % (string, fielddisplay(self, "waitonlock", "maximum number of minutes to wait for batch results, or return 0")) 39 39 string = "%s\n%s" % (string, fielddisplay(self, "solver_residue_threshold", "throw an error if solver residue exceeds this value (NaN to deactivate)")) … … 51 51 self.sb_coupling_frequency = 1 52 52 #checkpoints frequency, by default never: 53 self. recording_frequency = 053 self.checkpoint_frequency = 0 54 54 #this option can be activated to load automatically the results 55 55 #onto the model after a parallel run by waiting for the lock file … … 69 69 md = checkfield(md, 'fieldname', 'settings.output_frequency', 'numel', [1], '>=', 1) 70 70 md = checkfield(md, 'fieldname', 'settings.sb_coupling_frequency', 'numel', [1], '>=', 1) 71 md = checkfield(md, 'fieldname', 'settings. recording_frequency', 'numel', [1], '>=', 0)71 md = checkfield(md, 'fieldname', 'settings.checkpoint_frequency', 'numel', [1], '>=', 0) 72 72 md = checkfield(md, 'fieldname', 'settings.waitonlock', 'numel', [1]) 73 73 md = checkfield(md, 'fieldname', 'settings.solver_residue_threshold', 'numel', [1], '>', 0) … … 82 82 WriteData(fid, prefix, 'object', self, 'class', 'settings', 'fieldname', 'output_frequency', 'format', 'Integer') 83 83 WriteData(fid, prefix, 'object', self, 'class', 'settings', 'fieldname', 'sb_coupling_frequency', 'format', 'Integer') 84 WriteData(fid, prefix, 'object', self, 'class', 'settings', 'fieldname', ' recording_frequency', 'format', 'Integer')84 WriteData(fid, prefix, 'object', self, 'class', 'settings', 'fieldname', 'checkpoint_frequency', 'format', 'Integer') 85 85 86 86 if self.waitonlock > 0:
Note:
See TracChangeset
for help on using the changeset viewer.