Changeset 23758
- Timestamp:
- 02/26/19 12:51:34 (6 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r23644 r23758 5151 5151 void StressbalanceAnalysis::InputUpdateFromSolutionFS(IssmDouble* solution,Element* element){/*{{{*/ 5152 5152 5153 bool results_on_nodes;5154 5153 int i,dim; 5155 5154 int* vdoflist=NULL; … … 5159 5158 element->FindParam(&dim,DomainDimensionEnum); 5160 5159 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 5161 element->FindParam(&results_on_nodes,SettingsResultsOnNodesEnum);5162 5160 5163 5161 /*Fetch number of nodes and dof for this finite element*/ -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r23672 r23758 2134 2134 /*Intermediaries*/ 2135 2135 bool isvec,results_on_nodes; 2136 int step,output_enum ;2136 int step,output_enum,numonnodes; 2137 2137 IssmDouble time; 2138 2138 IssmDouble double_result; 2139 2139 const char *output_string = NULL; 2140 char** resultsonnodes = NULL; 2140 2141 2141 2142 /*recover results*/ … … 2146 2147 parameters->FindParam(&step,StepEnum); 2147 2148 parameters->FindParam(&time,TimeEnum); 2148 parameters->FindParam(&results_on_nodes,SettingsResultsOnNodesEnum); 2149 parameters->FindParam(&numonnodes,SettingsNumResultsOnNodesEnum); 2150 if(numonnodes) parameters->FindParam(&resultsonnodes,&numonnodes,SettingsResultsOnNodesEnum); 2149 2151 2150 2152 /*Go through all requested output*/ … … 2249 2251 ISSM_MPI_Bcast(&nodesperelement,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 2250 2252 ISSM_MPI_Bcast(&array_size,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 2253 2254 results_on_nodes=false; 2255 /*Loop to see if this output was requested on nodes*/ 2256 for(int j=0;j<numonnodes & results_on_nodes==false;j++){ 2257 if(strcmp(resultsonnodes[j],output_string) == 0 || strcmp(resultsonnodes[j],"all") == 0) results_on_nodes=true; 2258 } 2251 2259 2252 2260 if(results_on_nodes){ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r23697 r23758 21 21 int numoutputs,basalforcing_model,timestepping_type; 22 22 char** requestedoutputs = NULL; 23 char** outputonnodes = NULL; 23 24 char* fieldname = NULL; 24 25 IssmDouble time; … … 54 55 parameters->AddObject(iomodel->CopyConstantObject("md.settings.waitonlock",SettingsWaitonlockEnum)); 55 56 parameters->AddObject(iomodel->CopyConstantObject("md.mesh.numberofvertices",MeshNumberofverticesEnum)); 56 parameters->AddObject(iomodel->CopyConstantObject("md.settings.results_on_nodes",SettingsResultsOnNodesEnum));57 57 parameters->AddObject(iomodel->CopyConstantObject("md.settings.io_gather",SettingsIoGatherEnum)); 58 58 parameters->AddObject(iomodel->CopyConstantObject("md.settings.solver_residue_threshold",SettingsSolverResidueThresholdEnum)); … … 261 261 /*By default, save all results*/ 262 262 parameters->AddObject(new BoolParam(SaveResultsEnum,true)); 263 264 /*Should we output results on nodes?*/ 265 iomodel->FindConstant(&outputonnodes,&numoutputs,"md.settings.results_on_nodes"); 266 parameters->AddObject(new IntParam(SettingsNumResultsOnNodesEnum,numoutputs)); 267 if(numoutputs)parameters->AddObject(new StringArrayParam(SettingsResultsOnNodesEnum,outputonnodes,numoutputs)); 268 iomodel->DeleteData(&outputonnodes,numoutputs,"md.settings.results_on_nodes"); 263 269 264 270 /*Requested outputs */ -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r23697 r23758 306 306 SettingsRecordingFrequencyEnum, 307 307 SettingsResultsOnNodesEnum, 308 SettingsNumResultsOnNodesEnum, 308 309 SettingsSolverResidueThresholdEnum, 309 310 SettingsWaitonlockEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r23697 r23758 314 314 case SettingsRecordingFrequencyEnum : return "SettingsRecordingFrequency"; 315 315 case SettingsResultsOnNodesEnum : return "SettingsResultsOnNodes"; 316 case SettingsNumResultsOnNodesEnum : return "SettingsNumResultsOnNodes"; 316 317 case SettingsSolverResidueThresholdEnum : return "SettingsSolverResidueThreshold"; 317 318 case SettingsWaitonlockEnum : return "SettingsWaitonlock"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r23697 r23758 320 320 else if (strcmp(name,"SettingsRecordingFrequency")==0) return SettingsRecordingFrequencyEnum; 321 321 else if (strcmp(name,"SettingsResultsOnNodes")==0) return SettingsResultsOnNodesEnum; 322 else if (strcmp(name,"SettingsNumResultsOnNodes")==0) return SettingsNumResultsOnNodesEnum; 322 323 else if (strcmp(name,"SettingsSolverResidueThreshold")==0) return SettingsSolverResidueThresholdEnum; 323 324 else if (strcmp(name,"SettingsWaitonlock")==0) return SettingsWaitonlockEnum; … … 382 383 else if (strcmp(name,"StressbalanceIsnewton")==0) return StressbalanceIsnewtonEnum; 383 384 else if (strcmp(name,"StressbalanceMaxiter")==0) return StressbalanceMaxiterEnum; 384 else if (strcmp(name,"StressbalanceNumRequestedOutputs")==0) return StressbalanceNumRequestedOutputsEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"StressbalancePenaltyFactor")==0) return StressbalancePenaltyFactorEnum; 388 if (strcmp(name,"StressbalanceNumRequestedOutputs")==0) return StressbalanceNumRequestedOutputsEnum; 389 else if (strcmp(name,"StressbalancePenaltyFactor")==0) return StressbalancePenaltyFactorEnum; 389 390 else if (strcmp(name,"StressbalanceReltol")==0) return StressbalanceReltolEnum; 390 391 else if (strcmp(name,"StressbalanceRequestedOutputs")==0) return StressbalanceRequestedOutputsEnum; … … 505 506 else if (strcmp(name,"EtaDiff")==0) return EtaDiffEnum; 506 507 else if (strcmp(name,"FrictionAs")==0) return FrictionAsEnum; 507 else if (strcmp(name,"FrictionC")==0) return FrictionCEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum; 511 if (strcmp(name,"FrictionC")==0) return FrictionCEnum; 512 else if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum; 512 513 else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum; 513 514 else if (strcmp(name,"FrictionEffectivePressure")==0) return FrictionEffectivePressureEnum; … … 628 629 else if (strcmp(name,"SmbDailytemperature")==0) return SmbDailytemperatureEnum; 629 630 else if (strcmp(name,"SmbD")==0) return SmbDEnum; 630 else if (strcmp(name,"SmbDini")==0) return SmbDiniEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum; 634 if (strcmp(name,"SmbDini")==0) return SmbDiniEnum; 635 else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum; 635 636 else if (strcmp(name,"SmbDswrf")==0) return SmbDswrfEnum; 636 637 else if (strcmp(name,"SmbDz")==0) return SmbDzEnum; … … 751 752 else if (strcmp(name,"AdjointBalancethickness2Analysis")==0) return AdjointBalancethickness2AnalysisEnum; 752 753 else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum; 753 else if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"Adjointp")==0) return AdjointpEnum; 757 if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum; 758 else if (strcmp(name,"Adjointp")==0) return AdjointpEnum; 758 759 else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum; 759 760 else if (strcmp(name,"AmrBamg")==0) return AmrBamgEnum; … … 874 875 else if (strcmp(name,"Gradient3")==0) return Gradient3Enum; 875 876 else if (strcmp(name,"GroundedArea")==0) return GroundedAreaEnum; 876 else if (strcmp(name,"GroundedAreaScaled")==0) return GroundedAreaScaledEnum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"GroundingOnly")==0) return GroundingOnlyEnum; 880 if (strcmp(name,"GroundedAreaScaled")==0) return GroundedAreaScaledEnum; 881 else if (strcmp(name,"GroundingOnly")==0) return GroundingOnlyEnum; 881 882 else if (strcmp(name,"Gset")==0) return GsetEnum; 882 883 else if (strcmp(name,"Gsl")==0) return GslEnum; … … 997 998 else if (strcmp(name,"Outputdefinition12")==0) return Outputdefinition12Enum; 998 999 else if (strcmp(name,"Outputdefinition13")==0) return Outputdefinition13Enum; 999 else if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"Outputdefinition15")==0) return Outputdefinition15Enum; 1003 if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum; 1004 else if (strcmp(name,"Outputdefinition15")==0) return Outputdefinition15Enum; 1004 1005 else if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum; 1005 1006 else if (strcmp(name,"Outputdefinition17")==0) return Outputdefinition17Enum; … … 1120 1121 else if (strcmp(name,"Regionaloutput")==0) return RegionaloutputEnum; 1121 1122 else if (strcmp(name,"Regular")==0) return RegularEnum; 1122 else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"Scaled")==0) return ScaledEnum; 1126 if (strcmp(name,"Riftfront")==0) return RiftfrontEnum; 1127 else if (strcmp(name,"Scaled")==0) return ScaledEnum; 1127 1128 else if (strcmp(name,"SealevelAbsolute")==0) return SealevelAbsoluteEnum; 1128 1129 else if (strcmp(name,"SealevelEmotion")==0) return SealevelEmotionEnum; -
issm/trunk-jpl/src/m/classes/issmsettings.m
r23474 r23758 6 6 classdef issmsettings 7 7 properties (SetAccess=public) 8 results_on_nodes = 0;8 results_on_nodes = {}; 9 9 io_gather = 0; 10 10 lowmem = 0; … … 61 61 function md = checkconsistency(self,md,solution,analyses) % {{{ 62 62 63 md = checkfield(md,'fieldname','settings.results_on_nodes',' numel',[1],'values',[0 1]);63 md = checkfield(md,'fieldname','settings.results_on_nodes','stringrow',1); 64 64 md = checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0 1]); 65 65 md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0 1]); … … 74 74 disp(sprintf(' general issmsettings parameters:')); 75 75 76 fielddisplay(self,'results_on_nodes',' results are output for all the nodes of each element');76 fielddisplay(self,'results_on_nodes','list of output for which results will be output for all the nodes of each element, Use ''all'' for all output on nodes.'); 77 77 fielddisplay(self,'io_gather','I/O gathering strategy for result outputs (default 1)'); 78 78 fielddisplay(self,'lowmem','is the memory limited ? (0 or 1)'); … … 90 90 end % }}} 91 91 function marshall(self,prefix,md,fid) % {{{ 92 WriteData(fid,prefix,' object',self,'class','settings','fieldname','results_on_nodes','format','Boolean');92 WriteData(fid,prefix,'data',self.results_on_nodes,'name','md.settings.results_on_nodes','format','StringArray'); 93 93 WriteData(fid,prefix,'object',self,'class','settings','fieldname','io_gather','format','Boolean'); 94 94 WriteData(fid,prefix,'object',self,'class','settings','fieldname','lowmem','format','Boolean'); … … 101 101 function savemodeljs(self,fid,modelname) % {{{ 102 102 103 writejs double(fid,[modelname '.settings.results_on_nodes'],self.results_on_nodes);103 writejscellstring(fid,[modelname '.settings.results_on_nodes'],self.results_on_nodes); 104 104 writejsdouble(fid,[modelname '.settings.io_gather'],self.io_gather); 105 105 writejsdouble(fid,[modelname '.settings.lowmem'],self.lowmem); -
issm/trunk-jpl/src/m/classes/issmsettings.py
r23474 r23758 12 12 13 13 def __init__(self): # {{{ 14 self.results_on_nodes = 014 self.results_on_nodes = [] 15 15 self.io_gather = 0 16 16 self.lowmem = 0 … … 28 28 string=" general issmsettings parameters:" 29 29 30 string="%s\n%s"%(string,fielddisplay(self,"results_on_nodes"," results are output for all the nodes of each element"))30 string="%s\n%s"%(string,fielddisplay(self,"results_on_nodes","list of output for which results will be output for all the nodes of each element, Use 'all' for all output on nodes.")) 31 31 string="%s\n%s"%(string,fielddisplay(self,"io_gather","I/O gathering strategy for result outputs (default 1)")) 32 32 string="%s\n%s"%(string,fielddisplay(self,"lowmem","is the memory limited ? (0 or 1)")) … … 68 68 #}}} 69 69 def checkconsistency(self,md,solution,analyses): # {{{ 70 md = checkfield(md,'fieldname','settings.results_on_nodes',' numel',[1],'values',[0,1])70 md = checkfield(md,'fieldname','settings.results_on_nodes','stringrow',1) 71 71 md = checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0,1]) 72 72 md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0,1]) … … 80 80 # }}} 81 81 def marshall(self,prefix,md,fid): # {{{ 82 WriteData(fid,prefix,' object',self,'class','settings','fieldname','results_on_nodes','format','Boolean')82 WriteData(fid,prefix,'data',self.results_on_nodes,'name','md.settings.results_on_nodes','format','StringArray') 83 83 WriteData(fid,prefix,'object',self,'class','settings','fieldname','io_gather','format','Boolean') 84 84 WriteData(fid,prefix,'object',self,'class','settings','fieldname','lowmem','format','Boolean') -
issm/trunk-jpl/src/m/classes/model.m
r23652 r23758 160 160 end 161 161 md.frontalforcings=frontalforcings(md.calving); 162 end 163 %2019 Feb 26 164 if isa(md.settings.results_on_nodes,'double') 165 if md.settings.results_on_nodes == 0 166 md.settings.results_on_nodes = {}; 167 else 168 md.settings.results_on_nodes = {'all'}; 169 end 162 170 end 163 171 end% }}}
Note:
See TracChangeset
for help on using the changeset viewer.