Changeset 23474


Ignore:
Timestamp:
11/29/18 02:21:52 (6 years ago)
Author:
rueckamp
Message:

CHG: added coupling frequency of StressBalance solver in transient core

Location:
issm/trunk-jpl/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/cores/transient_core.cpp

    r23370 r23474  
    2525        int        timestepping;
    2626        int        output_frequency;
     27        int        sb_coupling_frequency;
    2728        int        recording_frequency;
    2829        int        domaintype,groundingline_migration,smb_model,amr_frequency,amr_restart;
     
    4849        femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
    4950        femmodel->parameters->FindParam(&output_frequency,SettingsOutputFrequencyEnum);
     51        femmodel->parameters->FindParam(&sb_coupling_frequency,SettingsSbCouplingFrequencyEnum);
    5052        femmodel->parameters->FindParam(&timestepping,TimesteppingTypeEnum);
    5153        femmodel->parameters->FindParam(&isstressbalance,TransientIsstressbalanceEnum);
     
    389391                if(ishydrology) hydrology_core(femmodel);
    390392
    391                 if(isstressbalance) stressbalance_core(femmodel);
     393                if(isstressbalance && (step%sb_coupling_frequency==0 || step==1) ) stressbalance_core(femmodel);
    392394
    393395                if(isdamageevolution) damage_core(femmodel);
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r23242 r23474  
    4747        parameters->AddObject(iomodel->CopyConstantObject("md.mesh.domain_dimension",DomainDimensionEnum));
    4848        parameters->AddObject(iomodel->CopyConstantObject("md.settings.output_frequency",SettingsOutputFrequencyEnum));
     49        parameters->AddObject(iomodel->CopyConstantObject("md.settings.sb_coupling_frequency",SettingsSbCouplingFrequencyEnum));
    4950        parameters->AddObject(iomodel->CopyConstantObject("md.settings.recording_frequency",SettingsRecordingFrequencyEnum));
    5051        parameters->AddObject(iomodel->CopyConstantObject("md.constants.yts",ConstantsYtsEnum));
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r23468 r23474  
    269269        SettingsIoGatherEnum,
    270270        SettingsOutputFrequencyEnum,
     271        SettingsSbCouplingFrequencyEnum,
    271272        SettingsRecordingFrequencyEnum,
    272273        SettingsResultsOnNodesEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r23468 r23474  
    277277                case SettingsIoGatherEnum : return "SettingsIoGather";
    278278                case SettingsOutputFrequencyEnum : return "SettingsOutputFrequency";
     279                case SettingsSbCouplingFrequencyEnum : return "SettingsSbCouplingFrequency";
    279280                case SettingsRecordingFrequencyEnum : return "SettingsRecordingFrequency";
    280281                case SettingsResultsOnNodesEnum : return "SettingsResultsOnNodes";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r23468 r23474  
    283283              else if (strcmp(name,"SettingsIoGather")==0) return SettingsIoGatherEnum;
    284284              else if (strcmp(name,"SettingsOutputFrequency")==0) return SettingsOutputFrequencyEnum;
     285              else if (strcmp(name,"SettingsSbCouplingFrequency")==0) return SettingsSbCouplingFrequencyEnum;
    285286              else if (strcmp(name,"SettingsRecordingFrequency")==0) return SettingsRecordingFrequencyEnum;
    286287              else if (strcmp(name,"SettingsResultsOnNodes")==0) return SettingsResultsOnNodesEnum;
     
    382383              else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum;
    383384              else if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum;
    384               else if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"TransientIsoceancoupling")==0) return TransientIsoceancouplingEnum;
     388              if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum;
     389              else if (strcmp(name,"TransientIsoceancoupling")==0) return TransientIsoceancouplingEnum;
    389390              else if (strcmp(name,"TransientIsslr")==0) return TransientIsslrEnum;
    390391              else if (strcmp(name,"TransientIssmb")==0) return TransientIssmbEnum;
     
    505506              else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum;
    506507              else if (strcmp(name,"HydrologyDrainageRate")==0) return HydrologyDrainageRateEnum;
    507               else if (strcmp(name,"Ice")==0) return IceEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;
     511              if (strcmp(name,"Ice")==0) return IceEnum;
     512              else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;
    512513              else if (strcmp(name,"Input")==0) return InputEnum;
    513514              else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum;
     
    628629              else if (strcmp(name,"SmbVmean")==0) return SmbVmeanEnum;
    629630              else if (strcmp(name,"SmbTz")==0) return SmbTzEnum;
    630               else if (strcmp(name,"SmbV")==0) return SmbVEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"SmbVz")==0) return SmbVzEnum;
     634              if (strcmp(name,"SmbV")==0) return SmbVEnum;
     635              else if (strcmp(name,"SmbVz")==0) return SmbVzEnum;
    635636              else if (strcmp(name,"SmbW")==0) return SmbWEnum;
    636637              else if (strcmp(name,"SmbWini")==0) return SmbWiniEnum;
     
    751752              else if (strcmp(name,"DamageEvolutionAnalysis")==0) return DamageEvolutionAnalysisEnum;
    752753              else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum;
    753               else if (strcmp(name,"DataSet")==0) return DataSetEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
     757              if (strcmp(name,"DataSet")==0) return DataSetEnum;
     758              else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
    758759              else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
    759760              else if (strcmp(name,"DefaultAnalysis")==0) return DefaultAnalysisEnum;
     
    874875              else if (strcmp(name,"L2ProjectionBaseAnalysis")==0) return L2ProjectionBaseAnalysisEnum;
    875876              else if (strcmp(name,"L2ProjectionEPLAnalysis")==0) return L2ProjectionEPLAnalysisEnum;
    876               else if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"LambdaS")==0) return LambdaSEnum;
     880              if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum;
     881              else if (strcmp(name,"LambdaS")==0) return LambdaSEnum;
    881882              else if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum;
    882883              else if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum;
     
    997998              else if (strcmp(name,"Outputdefinition34")==0) return Outputdefinition34Enum;
    998999              else if (strcmp(name,"Outputdefinition35")==0) return Outputdefinition35Enum;
    999               else if (strcmp(name,"Outputdefinition36")==0) return Outputdefinition36Enum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"Outputdefinition37")==0) return Outputdefinition37Enum;
     1003              if (strcmp(name,"Outputdefinition36")==0) return Outputdefinition36Enum;
     1004              else if (strcmp(name,"Outputdefinition37")==0) return Outputdefinition37Enum;
    10041005              else if (strcmp(name,"Outputdefinition38")==0) return Outputdefinition38Enum;
    10051006              else if (strcmp(name,"Outputdefinition39")==0) return Outputdefinition39Enum;
     
    11201121              else if (strcmp(name,"SIAApproximation")==0) return SIAApproximationEnum;
    11211122              else if (strcmp(name,"SigmaVM")==0) return SigmaVMEnum;
    1122               else if (strcmp(name,"SmbAnalysis")==0) return SmbAnalysisEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
     1126              if (strcmp(name,"SmbAnalysis")==0) return SmbAnalysisEnum;
     1127              else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
    11271128              else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
    11281129              else if (strcmp(name,"SmbDesfac")==0) return SmbDesfacEnum;
  • issm/trunk-jpl/src/m/classes/issmsettings.m

    r22297 r23474  
    1010                lowmem              = 0;
    1111                output_frequency    = 0;
     12                sb_coupling_frequency   = 0;
    1213                recording_frequency   = 0;
    1314                waitonlock          = 0;
     
    3940                        self.output_frequency=1;
    4041
     42                        %coupling frequency of the stress balance solver by default every step
     43                        self.sb_coupling_frequency=1;
     44                       
    4145                        %checkpoints frequency, by default never:
    4246                        self.recording_frequency=0;
     
    6165                        md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0 1]);
    6266                        md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1);
     67                        md = checkfield(md,'fieldname','settings.sb_coupling_frequency','numel',[1],'>=',1);
    6368                        md = checkfield(md,'fieldname','settings.recording_frequency','numel',[1],'>=',0);
    6469                        md = checkfield(md,'fieldname','settings.waitonlock','numel',[1]);
     
    7378                        fielddisplay(self,'lowmem','is the memory limited ? (0 or 1)');
    7479                        fielddisplay(self,'output_frequency','frequency at which results are saved in all solutions with multiple time_steps');
     80                        fielddisplay(self,'sb_coupling_frequency','frequency at which StressBalance solver is coupled (default 1)');
    7581                        fielddisplay(self,'recording_frequency','frequency at which the runs are being recorded, allowing for a restart');
    7682                        fielddisplay(self,'waitonlock','maximum number of minutes to wait for batch results (NaN to deactivate)');
     
    8894                        WriteData(fid,prefix,'object',self,'class','settings','fieldname','lowmem','format','Boolean');
    8995                        WriteData(fid,prefix,'object',self,'class','settings','fieldname','output_frequency','format','Integer');
     96                        WriteData(fid,prefix,'object',self,'class','settings','fieldname','sb_coupling_frequency','format','Integer');
    9097                        WriteData(fid,prefix,'object',self,'class','settings','fieldname','recording_frequency','format','Integer');
    9198                        WriteData(fid,prefix,'object',self,'class','settings','fieldname','waitonlock','data',self.waitonlock>0,'format','Boolean');
     
    98105                        writejsdouble(fid,[modelname '.settings.lowmem'],self.lowmem);
    99106                        writejsdouble(fid,[modelname '.settings.output_frequency'],self.output_frequency);
     107                        writejsdouble(fid,[modelname '.settings.sb_coupling_frequency'],self.sb_coupling_frequency);
    100108                        writejsdouble(fid,[modelname '.settings.recording_frequency'],self.recording_frequency);
    101109                        writejsdouble(fid,[modelname '.settings.waitonlock'],self.waitonlock);
  • issm/trunk-jpl/src/m/classes/issmsettings.py

    r22298 r23474  
    1616                self.lowmem              = 0
    1717                self.output_frequency    = 0
     18                self.coupling_frequency         = 0
    1819                self.recording_frequency = 0
    1920                self.waitonlock          = 0
     
    3132                string="%s\n%s"%(string,fielddisplay(self,"lowmem","is the memory limited ? (0 or 1)"))
    3233                string="%s\n%s"%(string,fielddisplay(self,"output_frequency","frequency at which results are saved in all solutions with multiple time_steps"))
     34                string="%s\n%s"%(string,fielddisplay(self,"sb_coupling_frequency","frequency at which StressBalance solver is coupled (default 1)"))
    3335                string="%s\n%s"%(string,fielddisplay(self,"recording_frequency","frequency at which the runs are being recorded, allowing for a restart"))
    3436                string="%s\n%s"%(string,fielddisplay(self,"waitonlock","maximum number of minutes to wait for batch results, or return 0"))
     
    4749                self.output_frequency=1
    4850
     51                #coupling frequency of the stress balance solver by default every step
     52                self.sb_coupling_frequency=1
     53               
    4954                #checkpoints frequency, by default never:
    5055                self.recording_frequency=0
     
    6772                md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0,1])
    6873                md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1)
     74                md = checkfield(md,'fieldname','settings.sb_coupling_frequency','numel',[1],'>=',1)
    6975                md = checkfield(md,'fieldname','settings.recording_frequency','numel',[1],'>=',0)
    7076                md = checkfield(md,'fieldname','settings.waitonlock','numel',[1])
     
    7884                WriteData(fid,prefix,'object',self,'class','settings','fieldname','lowmem','format','Boolean')
    7985                WriteData(fid,prefix,'object',self,'class','settings','fieldname','output_frequency','format','Integer')
     86                WriteData(fid,prefix,'object',self,'class','settings','fieldname','sb_coupling_frequency','format','Integer')
    8087                WriteData(fid,prefix,'object',self,'class','settings','fieldname','recording_frequency','format','Integer')
    8188               
Note: See TracChangeset for help on using the changeset viewer.